@meeovi/layer-lists 1.0.2 → 1.0.3

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 (134) hide show
  1. package/README.md +111 -0
  2. package/app/composables/config.ts +1 -1
  3. package/app/composables/module.ts +75 -0
  4. package/app/composables/providers/directus.ts +112 -16
  5. package/app/composables/providers/memory.ts +39 -0
  6. package/app/composables/registry.ts +5 -0
  7. package/app/composables/types.ts +9 -0
  8. package/app/composables/utils/health.ts +16 -0
  9. package/dist/app/composables/config.d.ts +7 -0
  10. package/dist/app/composables/config.js +9 -0
  11. package/dist/app/composables/globals/useDirectusForm.d.ts +4 -0
  12. package/dist/app/composables/globals/useDirectusForm.js +10 -0
  13. package/dist/app/composables/module.d.ts +7 -0
  14. package/dist/app/composables/module.js +60 -0
  15. package/dist/app/composables/providers/atproto.d.ts +1 -0
  16. package/dist/app/composables/providers/atproto.js +133 -0
  17. package/dist/app/composables/providers/directus.d.ts +1 -0
  18. package/dist/app/composables/providers/directus.js +130 -0
  19. package/dist/app/composables/providers/memory.d.ts +1 -0
  20. package/dist/app/composables/providers/memory.js +110 -0
  21. package/dist/app/composables/registry.d.ts +4 -0
  22. package/dist/app/composables/registry.js +14 -0
  23. package/dist/app/composables/types.d.ts +38 -0
  24. package/dist/app/composables/types.js +1 -0
  25. package/dist/app/composables/useLists.d.ts +11 -0
  26. package/dist/app/composables/useLists.js +17 -0
  27. package/dist/app/composables/utils/health.d.ts +10 -0
  28. package/dist/app/composables/utils/health.js +15 -0
  29. package/dist/app/composables/utils/transforms.d.ts +13 -0
  30. package/dist/app/composables/utils/transforms.js +38 -0
  31. package/dist/app/composables/utils/validation.d.ts +3 -0
  32. package/dist/app/composables/utils/validation.js +16 -0
  33. package/dist/layers/lists/app/composables/config.d.ts +7 -0
  34. package/dist/layers/lists/app/composables/config.js +9 -0
  35. package/dist/layers/lists/app/composables/globals/useDirectusForm.d.ts +1 -0
  36. package/dist/layers/lists/app/composables/globals/useDirectusForm.js +1 -0
  37. package/dist/layers/lists/app/composables/module.d.ts +7 -0
  38. package/dist/layers/lists/app/composables/module.js +60 -0
  39. package/dist/layers/lists/app/composables/providers/atproto.d.ts +1 -0
  40. package/dist/layers/lists/app/composables/providers/atproto.js +133 -0
  41. package/dist/layers/lists/app/composables/providers/directus.d.ts +1 -0
  42. package/dist/layers/lists/app/composables/providers/directus.js +130 -0
  43. package/dist/layers/lists/app/composables/providers/memory.d.ts +1 -0
  44. package/dist/layers/lists/app/composables/providers/memory.js +110 -0
  45. package/dist/layers/lists/app/composables/registry.d.ts +4 -0
  46. package/dist/layers/lists/app/composables/registry.js +14 -0
  47. package/dist/layers/lists/app/composables/types.d.ts +38 -0
  48. package/dist/layers/lists/app/composables/types.js +1 -0
  49. package/dist/layers/lists/app/composables/useLists.d.ts +11 -0
  50. package/dist/layers/lists/app/composables/useLists.js +17 -0
  51. package/dist/layers/lists/app/composables/utils/health.d.ts +10 -0
  52. package/dist/layers/lists/app/composables/utils/health.js +15 -0
  53. package/dist/layers/lists/app/composables/utils/transforms.d.ts +13 -0
  54. package/dist/layers/lists/app/composables/utils/transforms.js +38 -0
  55. package/dist/layers/lists/app/composables/utils/validation.d.ts +3 -0
  56. package/dist/layers/lists/app/composables/utils/validation.js +16 -0
  57. package/dist/layers/lists/nuxt.config.d.ts +2 -0
  58. package/dist/layers/lists/nuxt.config.js +7 -0
  59. package/dist/layers/shared/app/composables/globals/useDirectusForm.d.ts +10 -0
  60. package/dist/layers/shared/app/composables/globals/useDirectusForm.js +66 -0
  61. package/dist/lists/app/composables/config.d.ts +7 -0
  62. package/dist/lists/app/composables/config.js +9 -0
  63. package/dist/lists/app/composables/globals/useDirectusForm.d.ts +1 -0
  64. package/dist/lists/app/composables/globals/useDirectusForm.js +1 -0
  65. package/dist/lists/app/composables/module.d.ts +7 -0
  66. package/dist/lists/app/composables/module.js +60 -0
  67. package/dist/lists/app/composables/providers/atproto.d.ts +1 -0
  68. package/dist/lists/app/composables/providers/atproto.js +133 -0
  69. package/dist/lists/app/composables/providers/directus.d.ts +1 -0
  70. package/dist/lists/app/composables/providers/directus.js +130 -0
  71. package/dist/lists/app/composables/providers/memory.d.ts +1 -0
  72. package/dist/lists/app/composables/providers/memory.js +110 -0
  73. package/dist/lists/app/composables/registry.d.ts +4 -0
  74. package/dist/lists/app/composables/registry.js +14 -0
  75. package/dist/lists/app/composables/types.d.ts +38 -0
  76. package/dist/lists/app/composables/types.js +1 -0
  77. package/dist/lists/app/composables/useLists.d.ts +11 -0
  78. package/dist/lists/app/composables/useLists.js +17 -0
  79. package/dist/lists/app/composables/utils/health.d.ts +10 -0
  80. package/dist/lists/app/composables/utils/health.js +15 -0
  81. package/dist/lists/app/composables/utils/transforms.d.ts +13 -0
  82. package/dist/lists/app/composables/utils/transforms.js +38 -0
  83. package/dist/lists/app/composables/utils/validation.d.ts +3 -0
  84. package/dist/lists/app/composables/utils/validation.js +16 -0
  85. package/dist/lists/nuxt.config.d.ts +2 -0
  86. package/dist/lists/nuxt.config.js +7 -0
  87. package/dist/nuxt.config.d.ts +2 -0
  88. package/dist/nuxt.config.js +7 -0
  89. package/dist/packages/core/index.d.ts +17 -0
  90. package/dist/packages/core/index.js +18 -0
  91. package/dist/packages/core/src/adapters/auth.d.ts +9 -0
  92. package/dist/packages/core/src/adapters/auth.js +1 -0
  93. package/dist/packages/core/src/adapters/cart.d.ts +22 -0
  94. package/dist/packages/core/src/adapters/cart.js +1 -0
  95. package/dist/packages/core/src/adapters/catalog.d.ts +17 -0
  96. package/dist/packages/core/src/adapters/catalog.js +1 -0
  97. package/dist/packages/core/src/adapters/common.d.ts +9 -0
  98. package/dist/packages/core/src/adapters/common.js +1 -0
  99. package/dist/packages/core/src/adapters/lists.d.ts +17 -0
  100. package/dist/packages/core/src/adapters/lists.js +1 -0
  101. package/dist/packages/core/src/adapters/search.d.ts +21 -0
  102. package/dist/packages/core/src/adapters/search.js +1 -0
  103. package/dist/packages/core/src/plugins/defineAdapter.d.ts +2 -0
  104. package/dist/packages/core/src/plugins/defineAdapter.js +3 -0
  105. package/dist/packages/core/src/plugins/defineModule.d.ts +2 -0
  106. package/dist/packages/core/src/plugins/defineModule.js +3 -0
  107. package/dist/packages/core/src/plugins/registry.d.ts +14 -0
  108. package/dist/packages/core/src/plugins/registry.js +46 -0
  109. package/dist/packages/core/src/runtime/app.d.ts +2 -0
  110. package/dist/packages/core/src/runtime/app.js +20 -0
  111. package/dist/packages/core/src/runtime/config.d.ts +7 -0
  112. package/dist/packages/core/src/runtime/config.js +9 -0
  113. package/dist/packages/core/src/runtime/context.d.ts +9 -0
  114. package/dist/packages/core/src/runtime/context.js +11 -0
  115. package/dist/packages/core/src/runtime/hooks.d.ts +5 -0
  116. package/dist/packages/core/src/runtime/hooks.js +18 -0
  117. package/dist/packages/core/src/runtime/lifecycle.d.ts +4 -0
  118. package/dist/packages/core/src/runtime/lifecycle.js +5 -0
  119. package/dist/packages/core/src/types/adapters.d.ts +14 -0
  120. package/dist/packages/core/src/types/adapters.js +1 -0
  121. package/dist/packages/core/src/types/app.d.ts +13 -0
  122. package/dist/packages/core/src/types/app.js +1 -0
  123. package/dist/packages/core/src/types/config.d.ts +8 -0
  124. package/dist/packages/core/src/types/config.js +1 -0
  125. package/dist/packages/core/src/types/events.d.ts +20 -0
  126. package/dist/packages/core/src/types/events.js +22 -0
  127. package/dist/packages/core/src/types/module.d.ts +15 -0
  128. package/dist/packages/core/src/types/module.js +1 -0
  129. package/dist/shared/app/composables/globals/useDirectusForm.d.ts +10 -0
  130. package/dist/shared/app/composables/globals/useDirectusForm.js +66 -0
  131. package/global.d.ts +1 -0
  132. package/package.json +4 -1
  133. package/shims.d.ts +7 -0
  134. package/tsconfig.json +21 -0
@@ -0,0 +1,66 @@
1
+ import { ref, provide } from 'vue';
2
+ export function useDirectusForm(collectionName, fieldsRef, opts) {
3
+ const form = ref({});
4
+ const formError = ref(null);
5
+ const formSuccess = ref(null);
6
+ // provide form context for DirectusFormElement children
7
+ provide('directusForm', {
8
+ form,
9
+ fields: fieldsRef,
10
+ });
11
+ const submitForm = async () => {
12
+ formError.value = null;
13
+ formSuccess.value = null;
14
+ // Validate form data against field validation rules
15
+ for (const field of fieldsRef.value) {
16
+ if (field.meta?.validation) {
17
+ try {
18
+ const validation = field.meta.validation;
19
+ if (validation._and) {
20
+ for (const rule of validation._and) {
21
+ const fieldName = Object.keys(rule)[0];
22
+ if (!fieldName)
23
+ continue;
24
+ const ruleDef = rule[fieldName];
25
+ if (ruleDef && ruleDef._regex) {
26
+ const regex = new RegExp(ruleDef._regex);
27
+ const valueToTest = String(form.value[field.field] ?? '');
28
+ if (!regex.test(valueToTest)) {
29
+ formError.value = field.meta.validation_message || field.meta.field + ' failed validation';
30
+ console.error(`Validation failed for ${field.field}: ${field.meta.validation_message || 'Invalid format'}`);
31
+ return; // Stop submission if validation fails
32
+ }
33
+ }
34
+ }
35
+ }
36
+ }
37
+ catch (err) {
38
+ console.error(`Error parsing validation for ${field.field}:`, err);
39
+ }
40
+ }
41
+ }
42
+ const { $directus, $createItem } = useNuxtApp();
43
+ const result = await $directus.request($createItem(collectionName, form.value));
44
+ if (result.error) {
45
+ formError.value = result.error.message;
46
+ console.error(`Error creating ${collectionName}:`, result.error);
47
+ return; // Stop submission if error occurs
48
+ }
49
+ formSuccess.value = `${collectionName} created successfully`;
50
+ if (opts?.clearOnSuccess) {
51
+ form.value = {};
52
+ }
53
+ if (opts?.closeDialogRef) {
54
+ try {
55
+ opts.closeDialogRef.value = false;
56
+ }
57
+ catch (e) { }
58
+ }
59
+ };
60
+ return {
61
+ form,
62
+ formError,
63
+ formSuccess,
64
+ submitForm,
65
+ };
66
+ }
package/global.d.ts ADDED
@@ -0,0 +1 @@
1
+ declare function useNuxtApp(): any
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@meeovi/layer-lists",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "Official Lists module for the M Framework.",
5
5
  "scripts": {
6
+ "build": "tsc -p tsconfig.json",
6
7
  "test": "echo \"Error: no test specified\" && exit 1"
7
8
  },
8
9
  "keywords": [
@@ -16,6 +17,8 @@
16
17
  "type": "module",
17
18
  "dependencies": {
18
19
  "@meeovi/api": "^1.0.1",
20
+ "@meeovi/core": "^1.0.3",
21
+ "@meeovi/directus-client": "^1.0.0",
19
22
  "@meeovi/layer-social": "^1.0.2",
20
23
  "list.js": "^2.3.1",
21
24
  "nanoid": "^5.1.6"
package/shims.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ declare module '#shared/*'
2
+ declare module '@meeovi/social'
3
+ declare module '@meeovi/api'
4
+ declare module '@meeovi/directus-client'
5
+
6
+ // allow importing JSON-like providers or runtime-only modules
7
+ declare module '*.json'
package/tsconfig.json ADDED
@@ -0,0 +1,21 @@
1
+ {
2
+ "compilerOptions": {
3
+ "baseUrl": ".",
4
+ "types": ["./global.d.ts"],
5
+ "paths": {
6
+ "#shared/*": ["../shared/*"],
7
+ "@meeovi/core": ["../../packages/core/index.ts"],
8
+ "@meeovi/core/*": ["../../packages/core/*"]
9
+ },
10
+ "declaration": true,
11
+ "emitDeclarationOnly": false,
12
+ "outDir": "dist",
13
+ "moduleResolution": "node",
14
+ "module": "ESNext",
15
+ "target": "ESNext",
16
+ "strict": true,
17
+ "jsx": "react-jsx",
18
+ "skipLibCheck": true,
19
+ "noEmitOnError": false
20
+ }
21
+ }