vome-core 0.0.6 → 0.0.9

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 (41) hide show
  1. package/dist/index.js +236 -1
  2. package/dist/server/index.js +3261 -1
  3. package/package.json +10 -2
  4. package/src/admin/components/vm-auto-perm-dialog.vue +3 -0
  5. package/src/admin/components/vm-check-tree.vue +1 -0
  6. package/src/admin/components/vm-dept-tree.vue +3 -0
  7. package/src/admin/components/vm-empty.vue +1 -0
  8. package/src/admin/components/vm-eps-perm-picker.vue +2 -0
  9. package/src/admin/components/vm-group-cascader.vue +1 -0
  10. package/src/admin/components/vm-icon-picker.vue +1 -0
  11. package/src/admin/components/vm-markdown.vue +1 -0
  12. package/src/admin/components/vm-ri-icon.vue +2 -0
  13. package/src/admin/components/vm-role-picker.vue +2 -0
  14. package/src/admin/components/vm-view-path-picker.vue +1 -0
  15. package/src/admin/crud/components/vm-column-custom.vue +1 -0
  16. package/src/admin/crud/components/vm-context-menu.vue +1 -0
  17. package/src/admin/crud/components/vm-date-picker.vue +1 -0
  18. package/src/admin/crud/components/vm-date-range.vue +1 -0
  19. package/src/admin/crud/components/vm-date-text.vue +1 -0
  20. package/src/admin/crud/components/vm-dict-tag.vue +1 -0
  21. package/src/admin/crud/components/vm-file-icon.vue +1 -0
  22. package/src/admin/crud/components/vm-multi-select.vue +1 -0
  23. package/src/admin/crud/components/vm-select.vue +2 -0
  24. package/src/admin/crud/components/vm-switch.vue +1 -0
  25. package/src/admin/crud/components/vm-tree-select.vue +1 -0
  26. package/src/admin/crud/components/vm-upload-item.vue +1 -0
  27. package/src/admin/crud/components/vm-upload.vue +2 -0
  28. package/src/admin/crud/components/vm-user-select.vue +1 -0
  29. package/src/admin/crud/vm-add-btn.vue +1 -0
  30. package/src/admin/crud/vm-adv-search.vue +1 -0
  31. package/src/admin/crud/vm-crud.vue +2 -0
  32. package/src/admin/crud/vm-dialog.vue +1 -0
  33. package/src/admin/crud/vm-form.vue +1 -0
  34. package/src/admin/crud/vm-pagination.vue +1 -0
  35. package/src/admin/crud/vm-search-key.vue +1 -0
  36. package/src/admin/crud/vm-search.vue +1 -0
  37. package/src/admin/crud/vm-table.vue +1 -0
  38. package/src/admin/crud/vm-toolbar.vue +1 -0
  39. package/src/admin/crud/vm-upsert.vue +2 -0
  40. package/src/admin/lib/eps.ts +3 -2
  41. package/src/admin/service/index.ts +199 -67
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vome-core",
3
- "version": "0.0.6",
3
+ "version": "0.0.9",
4
4
  "description": "Vome framework — shared + Bun/Elysia server + Vue admin",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -48,7 +48,9 @@
48
48
  "vue-sonner": ">=2.0.0",
49
49
  "@vueuse/core": ">=10.0.0",
50
50
  "clsx": ">=2.0.0",
51
- "tailwind-merge": ">=2.0.0"
51
+ "tailwind-merge": ">=2.0.0",
52
+ "dompurify": ">=3.0.0",
53
+ "marked": ">=9.0.0"
52
54
  },
53
55
  "peerDependenciesMeta": {
54
56
  "drizzle-orm": {
@@ -77,6 +79,12 @@
77
79
  },
78
80
  "tailwind-merge": {
79
81
  "optional": true
82
+ },
83
+ "dompurify": {
84
+ "optional": true
85
+ },
86
+ "marked": {
87
+ "optional": true
80
88
  }
81
89
  },
82
90
  "devDependencies": {
@@ -71,6 +71,9 @@
71
71
  </template>
72
72
 
73
73
  <script setup lang="ts">
74
+ import { ref, computed, watch } from 'vue'
75
+ import { api } from '../api/client'
76
+ import { toast } from 'vue-sonner'
74
77
  import { isDialogFloatTarget } from '../lib/dialog-float'
75
78
 
76
79
  defineOptions({ name: 'vm-auto-perm-dialog' })
@@ -42,6 +42,7 @@
42
42
  </template>
43
43
 
44
44
  <script setup lang="ts">
45
+ import { ref, computed, watch } from 'vue'
45
46
  import type { CheckTreeNode } from '../../../typings/admin/comm/check-tree'
46
47
 
47
48
  defineOptions({ name: 'vm-check-tree' })
@@ -101,6 +101,9 @@
101
101
  </template>
102
102
 
103
103
  <script setup lang="ts">
104
+ import { useVome } from '../hooks/useVome'
105
+ import { ref, computed, watch, onMounted } from 'vue'
106
+ import { toast } from 'vue-sonner'
104
107
  import { deepTree } from '../crud'
105
108
  import { vmConfirm } from '../crud/confirm'
106
109
 
@@ -1,4 +1,5 @@
1
1
  <script setup lang="ts">
2
+ import { computed } from 'vue'
2
3
  defineOptions({ name: 'vm-empty' })
3
4
 
4
5
  const scarceModules = import.meta.glob('../static/scarce/*.svg', {
@@ -19,6 +19,8 @@
19
19
  </template>
20
20
 
21
21
  <script setup lang="ts">
22
+ import { ref, computed, watch, onMounted } from 'vue'
23
+ import { api } from '../api/client'
22
24
  import type { EpsSide } from '../lib/eps'
23
25
 
24
26
  defineOptions({ name: 'vm-eps-perm-picker' })
@@ -90,6 +90,7 @@
90
90
  </template>
91
91
 
92
92
  <script setup lang="ts">
93
+ import { ref, computed, watch, nextTick, onMounted, onUnmounted } from 'vue'
93
94
  defineOptions({ name: 'vm-group-cascader' })
94
95
 
95
96
  const props = withDefaults(
@@ -107,6 +107,7 @@
107
107
  </template>
108
108
 
109
109
  <script setup lang="ts">
110
+ import { ref, computed, watch, nextTick, onMounted, onUnmounted } from 'vue'
110
111
  import { FocusScope } from 'reka-ui'
111
112
  import allIcons from '../data/remixicon-all.json'
112
113
 
@@ -3,6 +3,7 @@
3
3
  </template>
4
4
 
5
5
  <script setup lang="ts">
6
+ import { computed } from 'vue'
6
7
  import DOMPurify from 'dompurify'
7
8
  import { marked } from 'marked'
8
9
 
@@ -1,4 +1,6 @@
1
1
  <script setup lang="ts">
2
+ import { computed } from 'vue'
3
+ import { cn } from '../lib/cn'
2
4
  defineOptions({ name: 'vm-ri-icon' })
3
5
 
4
6
  const props = withDefaults(
@@ -48,6 +48,8 @@
48
48
  </template>
49
49
 
50
50
  <script setup lang="ts">
51
+ import { useVome } from '../hooks/useVome'
52
+ import { ref, computed, watch, nextTick, onMounted, onUnmounted } from 'vue'
51
53
  defineOptions({ name: 'vm-role-picker' })
52
54
 
53
55
  const props = withDefaults(
@@ -11,6 +11,7 @@
11
11
  </template>
12
12
 
13
13
  <script setup lang="ts">
14
+ import { ref, onMounted, onUnmounted } from 'vue'
14
15
  import {
15
16
  listViewsTree,
16
17
  VIEWS_RESCAN_EVENT,
@@ -40,6 +40,7 @@
40
40
  </template>
41
41
 
42
42
  <script setup lang="ts">
43
+ import { ref, watch, inject } from 'vue'
43
44
  import { injectTableOptions, TABLE_API_KEY } from '../key'
44
45
  defineOptions({ name: 'vm-column-custom' })
45
46
 
@@ -21,6 +21,7 @@
21
21
  </template>
22
22
 
23
23
  <script setup lang="ts">
24
+ import { ref, onMounted, onUnmounted } from 'vue'
24
25
  defineOptions({ name: 'vm-context-menu' })
25
26
 
26
27
  const props = defineProps<{
@@ -10,6 +10,7 @@
10
10
  </template>
11
11
 
12
12
  <script setup lang="ts">
13
+ import { computed } from 'vue'
13
14
  import { useCrud } from '../useCrud'
14
15
 
15
16
  defineOptions({ name: 'vm-date-picker' })
@@ -45,6 +45,7 @@
45
45
  </template>
46
46
 
47
47
  <script setup lang="ts">
48
+ import { ref, computed } from 'vue'
48
49
  defineOptions({ name: 'vm-date-range' })
49
50
 
50
51
  const props = withDefaults(
@@ -3,6 +3,7 @@
3
3
  </template>
4
4
 
5
5
  <script setup lang="ts">
6
+ import { computed } from 'vue'
6
7
  defineOptions({ name: 'vm-date-text' })
7
8
 
8
9
  const props = withDefaults(
@@ -4,6 +4,7 @@
4
4
  </template>
5
5
 
6
6
  <script setup lang="ts">
7
+ import { computed } from 'vue'
7
8
  import { getCrudStyle } from '../style'
8
9
 
9
10
  defineOptions({ name: 'vm-dict-tag' })
@@ -1,4 +1,5 @@
1
1
  <script setup lang="ts">
2
+ import { computed, onMounted } from 'vue'
2
3
  import { extname } from '../../lib/upload'
3
4
 
4
5
  defineOptions({ name: 'vm-file-icon' })
@@ -30,6 +30,7 @@
30
30
  </template>
31
31
 
32
32
  <script setup lang="ts">
33
+ import { ref, computed, onMounted, onBeforeUnmount } from 'vue'
33
34
  defineOptions({ name: 'vm-multi-select' })
34
35
 
35
36
  const props = withDefaults(
@@ -24,6 +24,8 @@
24
24
  </template>
25
25
 
26
26
  <script setup lang="ts">
27
+ import { ref, computed, watch } from 'vue'
28
+ import { api } from '../../api/client'
27
29
  import { useCrud } from '../useCrud'
28
30
 
29
31
  defineOptions({ name: 'vm-select' })
@@ -13,6 +13,7 @@
13
13
  </template>
14
14
 
15
15
  <script setup lang="ts">
16
+ import { ref, computed, watch } from 'vue'
16
17
  import { toast } from 'vue-sonner'
17
18
  import { vmConfirm } from '../confirm'
18
19
  import { useCrud } from '../useCrud'
@@ -53,6 +53,7 @@
53
53
  </template>
54
54
 
55
55
  <script setup lang="ts">
56
+ import { ref, computed, watch, nextTick, onMounted, onUnmounted } from 'vue'
56
57
  type FlatRow = {
57
58
  key: string
58
59
  label: string
@@ -61,6 +61,7 @@
61
61
  </template>
62
62
 
63
63
  <script setup lang="ts">
64
+ import { ref, computed, watch } from 'vue'
64
65
  import { extname, getUploadRule } from '../../lib/upload'
65
66
  import type { UploadItem } from '../../../../typings/admin/comm/upload'
66
67
 
@@ -73,6 +73,8 @@
73
73
  </template>
74
74
 
75
75
  <script setup lang="ts">
76
+ import { ref, computed, watch } from 'vue'
77
+ import { toast } from 'vue-sonner'
76
78
  import { useUpload } from '../../hooks/useUpload'
77
79
  import { getFileType, getUrls, uploadUid } from '../../lib/upload'
78
80
  import type { UploadItem } from '../../../../typings/admin/comm/upload'
@@ -48,6 +48,7 @@
48
48
  </template>
49
49
 
50
50
  <script setup lang="ts">
51
+ import { ref, computed, watch } from 'vue'
51
52
  import { service } from '../../service'
52
53
 
53
54
  defineOptions({ name: 'vm-user-select' })
@@ -11,6 +11,7 @@
11
11
  </template>
12
12
 
13
13
  <script setup lang="ts">
14
+ import { computed } from 'vue'
14
15
  import { useCrud } from './useCrud'
15
16
 
16
17
  defineOptions({ name: 'vm-add-btn' })
@@ -19,6 +19,7 @@
19
19
  </template>
20
20
 
21
21
  <script setup lang="ts">
22
+ import { ref } from 'vue'
22
23
  import { useCrud } from './useCrud'
23
24
  defineOptions({ name: 'vm-adv-search' })
24
25
 
@@ -5,6 +5,8 @@
5
5
  </template>
6
6
 
7
7
  <script setup lang="ts">
8
+ import { ref, computed, watch, shallowRef, provide } from 'vue'
9
+ import { service } from '../service/index'
8
10
  import { toast } from 'vue-sonner'
9
11
  import { resolveService } from '../service'
10
12
  import { deepTree } from '../lib/tree'
@@ -44,6 +44,7 @@
44
44
  </template>
45
45
 
46
46
  <script setup lang="ts">
47
+ import { computed, getCurrentInstance, useSlots } from 'vue'
47
48
  import { isDialogFloatTarget } from '../lib/dialog-float'
48
49
 
49
50
  defineOptions({ name: 'vm-dialog' })
@@ -48,6 +48,7 @@
48
48
  </template>
49
49
 
50
50
  <script setup lang="ts">
51
+ import { ref, computed, watch, reactive } from 'vue'
51
52
  import { resolveCrudComponent } from './registry'
52
53
  import { getCrudStyle } from './style'
53
54
  import { resolveFormSpan, useFormCols } from './span'
@@ -40,6 +40,7 @@
40
40
  </template>
41
41
 
42
42
  <script setup lang="ts">
43
+ import { computed } from 'vue'
43
44
  import { useCrud } from './useCrud'
44
45
 
45
46
  defineOptions({ name: 'vm-pagination' })
@@ -14,6 +14,7 @@
14
14
  </template>
15
15
 
16
16
  <script setup lang="ts">
17
+ import { ref } from 'vue'
17
18
  import { useCrud } from './useCrud'
18
19
 
19
20
  defineOptions({ name: 'vm-search-key' })
@@ -48,6 +48,7 @@
48
48
  </template>
49
49
 
50
50
  <script setup lang="ts">
51
+ import { ref, computed, watch, reactive, onMounted } from 'vue'
51
52
  import { onBeforeUnmount } from 'vue'
52
53
  import { useCrud } from './useCrud'
53
54
  import { injectSearchOptions } from './key'
@@ -224,6 +224,7 @@
224
224
  </template>
225
225
 
226
226
  <script setup lang="ts">
227
+ import { ref, computed, watch, onMounted, onBeforeUnmount, provide, useSlots } from 'vue'
227
228
  import { useCrud } from './useCrud'
228
229
  import { injectTableOptions, TABLE_API_KEY } from './key'
229
230
  import { flattenTree } from '../lib/tree'
@@ -55,6 +55,7 @@
55
55
  </template>
56
56
 
57
57
  <script setup lang="ts">
58
+ import { computed } from 'vue'
58
59
  import { useCrud } from './useCrud'
59
60
  defineOptions({ name: 'vm-toolbar' })
60
61
 
@@ -113,6 +113,8 @@
113
113
  </template>
114
114
 
115
115
  <script setup lang="ts">
116
+ import { ref, computed, watch, useSlots } from 'vue'
117
+ import { toast } from 'vue-sonner'
116
118
  import { useCrud } from './useCrud'
117
119
  import { injectUpsertOptions } from './key'
118
120
  import { getCrudStyle } from './style'
@@ -12,10 +12,11 @@ const cache: Record<EpsSide, EpsModuleMap | null> = {
12
12
  app: null,
13
13
  }
14
14
 
15
- /** 拉取 EPS(默认 admin */
15
+ /** 拉取 EPS(默认 admin);公开接口失败不弹 toast */
16
16
  export async function loadEps(force = false, side: EpsSide = 'admin') {
17
17
  if (cache[side] && !force) return cache[side]
18
- cache[side] = (await request<EpsModuleMap>(EPS_URL[side])) || {}
18
+ cache[side] =
19
+ (await request<EpsModuleMap>(EPS_URL[side], { toast: false })) || {}
19
20
  return cache[side]
20
21
  }
21
22