@mapomodule/core 2.0.0-beta.7 → 2.0.0-beta.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.
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mapomodule/core",
3
3
  "configKey": "mapoCore",
4
- "version": "2.0.0-beta.7",
4
+ "version": "2.0.0-beta.9",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "unknown"
@@ -1 +1 @@
1
- {"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../../src/runtime/api/crud.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,UAAU,EAEV,cAAc,EACf,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CAAC,CAAC,EACvB,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,UAAU,GACtB,cAAc,CAAC,CAAC,CAAC,CA+FnB"}
1
+ {"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../../src/runtime/api/crud.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAGV,UAAU,EAEV,cAAc,EACf,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CAAC,CAAC,EACvB,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,UAAU,GACtB,cAAc,CAAC,CAAC,CAAC,CAsGnB"}
@@ -56,6 +56,12 @@ export function useCrud(endpoint, higherConf) {
56
56
  ...merged(config)
57
57
  });
58
58
  },
59
+ options(config) {
60
+ return fetch(base, {
61
+ method: "OPTIONS",
62
+ ...merged(config)
63
+ });
64
+ },
59
65
  updateOrCreate(data, config, opts) {
60
66
  if (data.id) {
61
67
  const { id, ...rest } = data;
@@ -29,6 +29,18 @@ export interface CrudConfig {
29
29
  export interface CrudOptions {
30
30
  multipart?: MultipartPolicy;
31
31
  }
32
+ /**
33
+ * What an endpoint returns from OPTIONS. Deliberately loose: backends extend it
34
+ * (Camomilla adds `lang_info`), and clients read only the keys they know.
35
+ */
36
+ export interface ResourceMetadata {
37
+ name?: string;
38
+ description?: string;
39
+ renders?: string[];
40
+ parses?: string[];
41
+ actions?: Record<string, unknown>;
42
+ [key: string]: unknown;
43
+ }
32
44
  export interface CrudRepository<T> {
33
45
  list(params?: ListParams, config?: CrudConfig): Promise<PaginatedResponse<T>>;
34
46
  detail(id: string | number, config?: CrudConfig): Promise<T>;
@@ -36,6 +48,7 @@ export interface CrudRepository<T> {
36
48
  update(id: string | number, data: Partial<T>, config?: CrudConfig, opts?: CrudOptions): Promise<T>;
37
49
  partialUpdate(id: string | number, diff: Partial<T>, config?: CrudConfig, opts?: CrudOptions): Promise<T>;
38
50
  delete(id: string | number, config?: CrudConfig): Promise<void>;
51
+ options(config?: CrudConfig): Promise<ResourceMetadata>;
39
52
  updateOrCreate(data: Partial<T> & {
40
53
  id?: string | number;
41
54
  }, config?: CrudConfig, opts?: CrudOptions): Promise<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mapomodule/core",
3
- "version": "2.0.0-beta.7",
3
+ "version": "2.0.0-beta.9",
4
4
  "description": "Mapo core: API layer, auth, composables, middleware",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -45,8 +45,8 @@
45
45
  "lint": "eslint src"
46
46
  },
47
47
  "dependencies": {
48
- "@mapomodule/store": "2.0.0-beta.5",
49
- "@mapomodule/utils": "2.0.0-beta.3"
48
+ "@mapomodule/store": "2.0.0-beta.6",
49
+ "@mapomodule/utils": "2.0.0-beta.5"
50
50
  },
51
51
  "peerDependencies": {
52
52
  "nuxt": ">=4.0.0",
@@ -4,6 +4,7 @@ import { useMapoFetch } from "../utils/useMapoFetch";
4
4
  import { MultipartPolicyEnum } from "../types";
5
5
  import type {
6
6
  PaginatedResponse,
7
+ ResourceMetadata,
7
8
  CrudConfig,
8
9
  CrudOptions,
9
10
  CrudRepository,
@@ -111,6 +112,13 @@ export function useCrud<T>(
111
112
  });
112
113
  },
113
114
 
115
+ options(config) {
116
+ return fetch<ResourceMetadata>(base, {
117
+ method: "OPTIONS",
118
+ ...merged(config),
119
+ });
120
+ },
121
+
114
122
  updateOrCreate(data, config, opts) {
115
123
  if (data.id) {
116
124
  const { id, ...rest } = data;
@@ -37,6 +37,19 @@ export interface CrudOptions {
37
37
  multipart?: MultipartPolicy;
38
38
  }
39
39
 
40
+ /**
41
+ * What an endpoint returns from OPTIONS. Deliberately loose: backends extend it
42
+ * (Camomilla adds `lang_info`), and clients read only the keys they know.
43
+ */
44
+ export interface ResourceMetadata {
45
+ name?: string;
46
+ description?: string;
47
+ renders?: string[];
48
+ parses?: string[];
49
+ actions?: Record<string, unknown>;
50
+ [key: string]: unknown;
51
+ }
52
+
40
53
  export interface CrudRepository<T> {
41
54
  list(params?: ListParams, config?: CrudConfig): Promise<PaginatedResponse<T>>;
42
55
  detail(id: string | number, config?: CrudConfig): Promise<T>;
@@ -54,6 +67,7 @@ export interface CrudRepository<T> {
54
67
  opts?: CrudOptions,
55
68
  ): Promise<T>;
56
69
  delete(id: string | number, config?: CrudConfig): Promise<void>;
70
+ options(config?: CrudConfig): Promise<ResourceMetadata>;
57
71
  updateOrCreate(
58
72
  data: Partial<T> & { id?: string | number },
59
73
  config?: CrudConfig,