@eecho/definition 0.0.3 → 0.2.0

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 (38) hide show
  1. package/dist/api/api.d.ts +100 -5
  2. package/dist/api/api.d.ts.map +1 -1
  3. package/dist/api/api.js +88 -8
  4. package/dist/api/api.js.map +1 -1
  5. package/dist/api/definition.api.helper.d.ts +18 -15
  6. package/dist/api/definition.api.helper.d.ts.map +1 -1
  7. package/dist/api/definition.api.helper.js +23 -25
  8. package/dist/api/definition.api.helper.js.map +1 -1
  9. package/dist/definition.context.d.ts +8 -13
  10. package/dist/definition.context.d.ts.map +1 -1
  11. package/dist/definition.context.js +5 -1
  12. package/dist/definition.context.js.map +1 -1
  13. package/dist/definition.type.d.ts +15 -13
  14. package/dist/definition.type.d.ts.map +1 -1
  15. package/dist/index.d.ts +5 -6
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +3 -3
  18. package/dist/index.js.map +1 -1
  19. package/dist/model/model.define.d.ts.map +1 -1
  20. package/dist/model/model.define.js.map +1 -1
  21. package/dist/model/model.define.type.d.ts +7 -7
  22. package/dist/model/model.define.type.js +0 -3
  23. package/dist/model/model.define.type.js.map +1 -1
  24. package/dist/repository/definition.repository.helper.d.ts +9 -4
  25. package/dist/repository/definition.repository.helper.d.ts.map +1 -1
  26. package/dist/repository/definition.repository.helper.js +16 -9
  27. package/dist/repository/definition.repository.helper.js.map +1 -1
  28. package/dist/spec.d.ts +2 -3
  29. package/dist/spec.d.ts.map +1 -1
  30. package/dist/view.definition.d.ts +2 -7
  31. package/dist/view.definition.d.ts.map +1 -1
  32. package/dist/view.definition.js +1 -9
  33. package/dist/view.definition.js.map +1 -1
  34. package/package.json +3 -3
  35. package/dist/model/model.define.helper.d.ts +0 -2
  36. package/dist/model/model.define.helper.d.ts.map +0 -1
  37. package/dist/model/model.define.helper.js +0 -2
  38. package/dist/model/model.define.helper.js.map +0 -1
package/dist/api/api.d.ts CHANGED
@@ -1,6 +1,101 @@
1
- import type { Definition } from "../model/model.define.type.js";
2
- export declare function genAPIDefinition(params: {
3
- definition: Definition;
4
- endpointPrefix: string;
5
- }): void;
1
+ import { z } from 'zod';
2
+ import type { Definition } from '../model/model.define.type.js';
3
+ /**
4
+ * Creates the transport contract shared by API clients and server adapters.
5
+ * Database-specific coercion belongs in the repository adapter, not in this contract.
6
+ */
7
+ export declare function genAPIDefinition<TDefinition extends Definition, const TPrefix extends string>(params: {
8
+ definition: TDefinition;
9
+ endpointPrefix: TPrefix;
10
+ }): {
11
+ CreateAPISpecification: {
12
+ readonly APIEndpoint: `${TPrefix}/createItems`;
13
+ readonly Method: "POST";
14
+ readonly operationId: "createItems";
15
+ readonly Request: {
16
+ readonly body: z.ZodObject<{
17
+ data: z.ZodObject<({ [K_1 in keyof TDefinition]: TDefinition[K_1] extends import("../model/model.define.type.js").PrimitiveDefinition<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], infer TApi extends import("../model/model.define.type.js").APIIndex, string> ? TApi["create"] extends readonly unknown[] ? Extract<"Optional", TApi["create"][number]> | Extract<"System", TApi["create"][number]> extends never ? K_1 : never : K_1 : never; }[keyof TDefinition] extends infer T_1 extends keyof TDefinition ? { [K in T_1 as TDefinition[K] extends import("../model/model.define.type.js").PrimitiveDefinition<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], import("../model/model.define.type.js").APIIndex, string> ? K : never]: TDefinition[K] extends import("../model/model.define.type.js").PrimitiveDefinition<infer TSchema extends z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], import("../model/model.define.type.js").APIIndex, string> ? TSchema : never; } : never) & ((Extract<import("../definition.type.js").PrimitiveKeysWithApiFlag<TDefinition, "create", "Optional">, { [K_4 in keyof TDefinition]: TDefinition[K_4] extends import("../model/model.define.type.js").PrimitiveDefinition<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], infer TApi extends import("../model/model.define.type.js").APIIndex, string> ? TApi["create"] extends readonly unknown[] ? Extract<"System", TApi["create"][number]> extends never ? K_4 : never : K_4 : never; }[keyof TDefinition]> extends infer T_3 extends keyof TDefinition ? { [K_3 in T_3 as TDefinition[K_3] extends import("../model/model.define.type.js").PrimitiveDefinition<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], import("../model/model.define.type.js").APIIndex, string> ? K_3 : never]: TDefinition[K_3] extends import("../model/model.define.type.js").PrimitiveDefinition<infer TSchema extends z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], import("../model/model.define.type.js").APIIndex, string> ? TSchema : never; } : never) extends infer T_2 extends Record<string, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>> ? { [K_2 in keyof T_2]: z.ZodOptional<T_2[K_2]>; } : never) extends infer T ? { -readonly [P in keyof T]: T[P]; } : never, z.core.$strip>;
18
+ }, z.core.$strip>;
19
+ };
20
+ readonly Response: {
21
+ readonly body: z.ZodObject<{
22
+ success: z.ZodLiteral<true>;
23
+ data: z.ZodObject<{
24
+ id: z.ZodUnknown;
25
+ }, z.core.$strip>;
26
+ }, z.core.$strip>;
27
+ };
28
+ };
29
+ ReadAPISpecification: {
30
+ readonly APIEndpoint: `${TPrefix}/getItems`;
31
+ readonly Method: "GET";
32
+ readonly operationId: "getItems";
33
+ readonly Request: {
34
+ readonly queryParams: z.ZodObject<{
35
+ page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
36
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
37
+ filter: z.ZodOptional<z.ZodObject<((import("../definition.type.js").PrimitiveKeysWithApiFlag<TDefinition, "read", "Searchable"> extends infer T_6 extends keyof TDefinition ? { [K_6 in T_6 as TDefinition[K_6] extends import("../model/model.define.type.js").PrimitiveDefinition<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], import("../model/model.define.type.js").APIIndex, string> ? K_6 : never]: TDefinition[K_6] extends import("../model/model.define.type.js").PrimitiveDefinition<infer TSchema extends z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], import("../model/model.define.type.js").APIIndex, string> ? TSchema : never; } : never) extends infer T_5 extends Record<string, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>> ? { [K_5 in keyof T_5]: z.ZodOptional<T_5[K_5]>; } : never) & ((import("../definition.type.js").PrimitiveKeysWithApiFlag<TDefinition, "read", "SearchableArray"> extends infer T_8 extends keyof TDefinition ? { [K_8 in T_8 as TDefinition[K_8] extends import("../model/model.define.type.js").PrimitiveDefinition<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], import("../model/model.define.type.js").APIIndex, string> ? K_8 : never]: TDefinition[K_8] extends import("../model/model.define.type.js").PrimitiveDefinition<infer TSchema extends z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], import("../model/model.define.type.js").APIIndex, string> ? TSchema : never; } : never) extends infer T_7 extends Record<string, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>> ? { [K_7 in keyof T_7]: z.ZodOptional<z.ZodArray<T_7[K_7]>>; } : never) extends infer T_4 ? { -readonly [P_1 in keyof T_4]: T_4[P_1]; } : never, z.core.$strip>>;
38
+ sort: z.ZodOptional<z.ZodObject<{ [K_9 in import("../definition.type.js").PrimitiveKeysWithApiFlag<TDefinition, "read", "Sortable">]: z.ZodOptional<z.ZodEnum<{
39
+ asc: "asc";
40
+ desc: "desc";
41
+ }>>; } extends infer T_9 ? { -readonly [P_2 in keyof T_9]: T_9[P_2]; } : never, z.core.$strip>>;
42
+ }, z.core.$strip>;
43
+ };
44
+ readonly Response: {
45
+ readonly body: z.ZodObject<{
46
+ success: z.ZodLiteral<true>;
47
+ data: z.ZodArray<z.ZodObject<({ [K_11 in keyof TDefinition]: TDefinition[K_11] extends import("../model/model.define.type.js").PrimitiveDefinition<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], infer TApi extends import("../model/model.define.type.js").APIIndex, string> ? TApi["read"] extends readonly unknown[] ? Extract<"Detail", TApi["read"][number]> | Extract<"Hidden", TApi["read"][number]> extends never ? K_11 : never : K_11 : never; }[keyof TDefinition] extends infer T_11 extends keyof TDefinition ? { [K_10 in T_11 as TDefinition[K_10] extends import("../model/model.define.type.js").PrimitiveDefinition<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], import("../model/model.define.type.js").APIIndex, string> ? K_10 : never]: TDefinition[K_10] extends import("../model/model.define.type.js").PrimitiveDefinition<infer TSchema extends z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], import("../model/model.define.type.js").APIIndex, string> ? TSchema : never; } : never) extends infer T_10 ? { -readonly [P_3 in keyof T_10]: T_10[P_3]; } : never, z.core.$strip>>;
48
+ }, z.core.$strip>;
49
+ };
50
+ };
51
+ UpdateAPISpecification: {
52
+ readonly APIEndpoint: `${TPrefix}/updateItem`;
53
+ readonly Method: "POST";
54
+ readonly operationId: "updateItem";
55
+ readonly Request: {
56
+ readonly body: z.ZodObject<{
57
+ id: z.ZodUnknown;
58
+ data: z.ZodObject<((import("../definition.type.js").PrimitiveKeysWithApiFlag<TDefinition, "update", "Updatable"> extends infer T_14 extends keyof TDefinition ? { [K_13 in T_14 as TDefinition[K_13] extends import("../model/model.define.type.js").PrimitiveDefinition<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], import("../model/model.define.type.js").APIIndex, string> ? K_13 : never]: TDefinition[K_13] extends import("../model/model.define.type.js").PrimitiveDefinition<infer TSchema extends z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], import("../model/model.define.type.js").APIIndex, string> ? TSchema : never; } : never) extends infer T_13 extends Record<string, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>> ? { [K_12 in keyof T_13]: z.ZodOptional<T_13[K_12]>; } : never) extends infer T_12 ? { -readonly [P_4 in keyof T_12]: T_12[P_4]; } : never, z.core.$strip>;
59
+ }, z.core.$strip>;
60
+ };
61
+ readonly Response: {
62
+ readonly body: z.ZodObject<{
63
+ success: z.ZodLiteral<true>;
64
+ }, z.core.$strip>;
65
+ };
66
+ };
67
+ DeleteAPISpecification: {
68
+ readonly APIEndpoint: `${TPrefix}/deleteItems`;
69
+ readonly Method: "POST";
70
+ readonly operationId: "deleteItems";
71
+ readonly Request: {
72
+ readonly body: z.ZodObject<{
73
+ ids: z.ZodArray<z.ZodUnknown>;
74
+ }, z.core.$strip>;
75
+ };
76
+ readonly Response: {
77
+ readonly body: z.ZodObject<{
78
+ success: z.ZodLiteral<true>;
79
+ }, z.core.$strip>;
80
+ };
81
+ };
82
+ PutAPISpecification: {
83
+ readonly APIEndpoint: `${TPrefix}/putItem`;
84
+ readonly Method: "PUT";
85
+ readonly operationId: "putItem";
86
+ readonly Request: {
87
+ readonly body: z.ZodObject<{
88
+ data: z.ZodObject<({ [K_1 in keyof TDefinition]: TDefinition[K_1] extends import("../model/model.define.type.js").PrimitiveDefinition<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], infer TApi extends import("../model/model.define.type.js").APIIndex, string> ? TApi["create"] extends readonly unknown[] ? Extract<"Optional", TApi["create"][number]> | Extract<"System", TApi["create"][number]> extends never ? K_1 : never : K_1 : never; }[keyof TDefinition] extends infer T_16 extends keyof TDefinition ? { [K in T_16 as TDefinition[K] extends import("../model/model.define.type.js").PrimitiveDefinition<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], import("../model/model.define.type.js").APIIndex, string> ? K : never]: TDefinition[K] extends import("../model/model.define.type.js").PrimitiveDefinition<infer TSchema extends z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], import("../model/model.define.type.js").APIIndex, string> ? TSchema : never; } : never) & ((Extract<import("../definition.type.js").PrimitiveKeysWithApiFlag<TDefinition, "create", "Optional">, { [K_4 in keyof TDefinition]: TDefinition[K_4] extends import("../model/model.define.type.js").PrimitiveDefinition<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], infer TApi extends import("../model/model.define.type.js").APIIndex, string> ? TApi["create"] extends readonly unknown[] ? Extract<"System", TApi["create"][number]> extends never ? K_4 : never : K_4 : never; }[keyof TDefinition]> extends infer T_18 extends keyof TDefinition ? { [K_3 in T_18 as TDefinition[K_3] extends import("../model/model.define.type.js").PrimitiveDefinition<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], import("../model/model.define.type.js").APIIndex, string> ? K_3 : never]: TDefinition[K_3] extends import("../model/model.define.type.js").PrimitiveDefinition<infer TSchema extends z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, readonly import("../model/model.define.type.js").PrimitiveIndex[], import("../model/model.define.type.js").APIIndex, string> ? TSchema : never; } : never) extends infer T_17 extends Record<string, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>> ? { [K_2 in keyof T_17]: z.ZodOptional<T_17[K_2]>; } : never) extends infer T_15 ? { -readonly [P in keyof T_15]: T_15[P]; } : never, z.core.$strip>;
89
+ }, z.core.$strip>;
90
+ };
91
+ readonly Response: {
92
+ readonly body: z.ZodObject<{
93
+ success: z.ZodLiteral<true>;
94
+ data: z.ZodObject<{
95
+ id: z.ZodUnknown;
96
+ }, z.core.$strip>;
97
+ }, z.core.$strip>;
98
+ };
99
+ };
100
+ };
6
101
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAKhE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,QAgBA"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAWhE;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,SAAS,UAAU,EAC9B,KAAK,CAAC,OAAO,SAAS,MAAM,EAC5B,MAAM,EAAE;IACR,UAAU,EAAE,WAAW,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6FA"}
package/dist/api/api.js CHANGED
@@ -1,15 +1,95 @@
1
- import { z } from "zod";
1
+ import { z } from 'zod';
2
+ import { extractCreateOptionalField, extractCreateRequiredField, extractReadableField, extractSearchArrayOption, extractSearchOption, extractSortableOption, extractUpdateOption, } from './definition.api.helper.js';
3
+ /**
4
+ * Creates the transport contract shared by API clients and server adapters.
5
+ * Database-specific coercion belongs in the repository adapter, not in this contract.
6
+ */
2
7
  export function genAPIDefinition(params) {
8
+ const { definition, endpointPrefix } = params;
9
+ const createFields = {
10
+ ...extractCreateRequiredField({ definition }),
11
+ ...extractCreateOptionalField({ definition }),
12
+ };
13
+ const readableFields = extractReadableField({ definition });
14
+ const searchableFields = extractSearchOption({ definition });
15
+ const searchableArrayFields = extractSearchArrayOption({ definition });
16
+ const sortableFields = extractSortableOption({ definition });
17
+ const updatableFields = extractUpdateOption({ definition });
3
18
  const CreateAPISpecification = {
4
- APIEndpoint: `${params.endpointPrefix}/create`,
19
+ APIEndpoint: `${endpointPrefix}/createItems`,
20
+ Method: 'POST',
21
+ operationId: 'createItems',
22
+ Request: {
23
+ body: z.object({ data: z.object(createFields) }),
24
+ },
25
+ Response: {
26
+ body: z.object({
27
+ success: z.literal(true),
28
+ data: z.object({ id: z.unknown() }),
29
+ }),
30
+ },
31
+ };
32
+ const ReadAPISpecification = {
33
+ APIEndpoint: `${endpointPrefix}/getItems`,
34
+ Method: 'GET',
35
+ operationId: 'getItems',
36
+ Request: {
37
+ queryParams: z.object({
38
+ page: z.coerce.number().int().positive().default(1),
39
+ limit: z.coerce.number().int().positive().default(15),
40
+ filter: z.object({
41
+ ...searchableFields,
42
+ ...searchableArrayFields,
43
+ }).optional(),
44
+ sort: z.object(sortableFields).optional(),
45
+ }),
46
+ },
47
+ Response: {
48
+ body: z.object({
49
+ success: z.literal(true),
50
+ data: z.array(z.object(readableFields)),
51
+ }),
52
+ },
53
+ };
54
+ const UpdateAPISpecification = {
55
+ APIEndpoint: `${endpointPrefix}/updateItem`,
5
56
  Method: 'POST',
6
- Request: {},
57
+ operationId: 'updateItem',
58
+ Request: {
59
+ body: z.object({
60
+ id: z.unknown(),
61
+ data: z.object(updatableFields),
62
+ }),
63
+ },
7
64
  Response: {
8
- body: z.object({})
9
- }
65
+ body: z.object({ success: z.literal(true) }),
66
+ },
67
+ };
68
+ const DeleteAPISpecification = {
69
+ APIEndpoint: `${endpointPrefix}/deleteItems`,
70
+ Method: 'POST',
71
+ operationId: 'deleteItems',
72
+ Request: {
73
+ body: z.object({
74
+ ids: z.array(z.unknown()).min(1),
75
+ }),
76
+ },
77
+ Response: {
78
+ body: z.object({ success: z.literal(true) }),
79
+ },
80
+ };
81
+ const PutAPISpecification = {
82
+ ...CreateAPISpecification,
83
+ APIEndpoint: `${endpointPrefix}/putItem`,
84
+ Method: 'PUT',
85
+ operationId: 'putItem',
86
+ };
87
+ return {
88
+ CreateAPISpecification,
89
+ ReadAPISpecification,
90
+ UpdateAPISpecification,
91
+ DeleteAPISpecification,
92
+ PutAPISpecification,
10
93
  };
11
- const ReadAPISpecification = {};
12
- const UpdateAPISpecification = {};
13
- const DeleteAPISpecification = {};
14
94
  }
15
95
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,MAAM,UAAU,gBAAgB,CAAC,MAGhC;IACC,MAAM,sBAAsB,GAAG;QAC7B,WAAW,EAAE,GAAG,MAAM,CAAC,cAAc,SAAS;QAC9C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAER;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;SACnB;KACwC,CAAC;IAE5C,MAAM,oBAAoB,GAAG,EAAE,CAAC;IAChC,MAAM,sBAAsB,GAAG,EAAE,CAAC;IAClC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEpC,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,33 @@
1
1
  import { z } from 'zod';
2
- import { Definition, PrimitiveDefinition } from '../model/model.define.type.js';
2
+ import type { PrimitiveKeysWithApiFlag, PrimitiveKeysWithIndexFlag } from '../definition.type.js';
3
+ import type { Definition, PrimitiveDefinition, PrimitiveIndex } from '../model/model.define.type.js';
3
4
  type APISection = 'create' | 'read' | 'update';
4
- type PrimitiveSchemaMap<TDefinition extends Definition, TKeys extends keyof TDefinition = keyof TDefinition> = {
5
+ type PrimitiveKeysWithoutApiFlags<TDefinition extends Definition, TSection extends APISection, TFlags extends readonly string[]> = {
6
+ [K in keyof TDefinition]: TDefinition[K] extends PrimitiveDefinition<z.ZodTypeAny, readonly PrimitiveIndex[], infer TApi> ? TApi[TSection] extends readonly unknown[] ? Extract<TFlags[number], TApi[TSection][number]> extends never ? K : never : K : never;
7
+ }[keyof TDefinition];
8
+ type PrimitiveSchemaMap<TDefinition extends Definition, TKeys extends keyof TDefinition> = {
5
9
  [K in TKeys as TDefinition[K] extends PrimitiveDefinition ? K : never]: TDefinition[K] extends PrimitiveDefinition<infer TSchema> ? TSchema : never;
6
10
  };
7
11
  type OptionalSchemaMap<TShape extends Record<string, z.ZodTypeAny>> = {
8
12
  [K in keyof TShape]: z.ZodOptional<TShape[K]>;
9
13
  };
10
14
  type OptionalArraySchemaMap<TShape extends Record<string, z.ZodTypeAny>> = {
11
- [K in keyof TShape]: z.ZodOptional<z.ZodArray<z.ZodOptional<TShape[K]>>>;
15
+ [K in keyof TShape]: z.ZodOptional<z.ZodArray<TShape[K]>>;
12
16
  };
13
- type PrimitiveKeysWithApiFlag<TDefinition extends Definition, TSection extends APISection, TFlag extends string> = {
14
- [K in keyof TDefinition]: TDefinition[K] extends PrimitiveDefinition<any, any, infer TApi> ? TApi[TSection] extends readonly unknown[] ? TFlag extends TApi[TSection][number] ? K : never : never : never;
15
- }[keyof TDefinition];
16
- type PrimitiveKeysWithoutApiFlags<TDefinition extends Definition, TSection extends APISection, TFlags extends readonly string[]> = {
17
- [K in keyof TDefinition]: TDefinition[K] extends PrimitiveDefinition<any, any, infer TApi> ? TApi[TSection] extends readonly unknown[] ? Extract<TFlags[number], TApi[TSection][number]> extends never ? K : never : K : never;
18
- }[keyof TDefinition];
19
- type PrimitiveKeysWithIndexFlag<TDefinition extends Definition, TFlag extends string> = {
20
- [K in keyof TDefinition]: TDefinition[K] extends PrimitiveDefinition<any, infer TIndex> ? TFlag extends TIndex[number] ? K : never : never;
21
- }[keyof TDefinition];
17
+ declare const sortDirectionSchema: z.ZodEnum<{
18
+ asc: "asc";
19
+ desc: "desc";
20
+ }>;
22
21
  export declare function extractCreateRequiredField<TDefinition extends Definition>(params: {
23
22
  definition: TDefinition;
24
23
  }): PrimitiveSchemaMap<TDefinition, PrimitiveKeysWithoutApiFlags<TDefinition, "create", ["Optional", "System"]>>;
25
- export declare function extractReadbleField<TDefinition extends Definition>(params: {
24
+ export declare function extractCreateOptionalField<TDefinition extends Definition>(params: {
25
+ definition: TDefinition;
26
+ }): OptionalSchemaMap<PrimitiveSchemaMap<TDefinition, Extract<PrimitiveKeysWithApiFlag<TDefinition, "create", "Optional">, PrimitiveKeysWithoutApiFlags<TDefinition, "create", ["System"]>>>>;
27
+ export declare function extractReadableField<TDefinition extends Definition>(params: {
26
28
  definition: TDefinition;
27
29
  }): PrimitiveSchemaMap<TDefinition, PrimitiveKeysWithoutApiFlags<TDefinition, "read", ["Hidden", "Detail"]>>;
30
+ export declare const extractReadbleField: typeof extractReadableField;
28
31
  export declare function extractUpdateOption<TDefinition extends Definition>(params: {
29
32
  definition: TDefinition;
30
33
  }): OptionalSchemaMap<PrimitiveSchemaMap<TDefinition, PrimitiveKeysWithApiFlag<TDefinition, "update", "Updatable">>>;
@@ -36,9 +39,9 @@ export declare function extractSearchArrayOption<TDefinition extends Definition>
36
39
  }): OptionalArraySchemaMap<PrimitiveSchemaMap<TDefinition, PrimitiveKeysWithApiFlag<TDefinition, "read", "SearchableArray">>>;
37
40
  export declare function extractSortableOption<TDefinition extends Definition>(params: {
38
41
  definition: TDefinition;
39
- }): OptionalSchemaMap<PrimitiveSchemaMap<TDefinition, PrimitiveKeysWithApiFlag<TDefinition, "read", "Sortable">>>;
42
+ }): { [K in PrimitiveKeysWithApiFlag<TDefinition, "read", "Sortable">]: z.ZodOptional<typeof sortDirectionSchema>; };
40
43
  export declare function extractObjectIdFields<TDefinition extends Definition>(params: {
41
44
  definition: TDefinition;
42
- }): Array<PrimitiveKeysWithIndexFlag<TDefinition, "ObjectId">>;
45
+ }): PrimitiveKeysWithIndexFlag<TDefinition, "ObjectId">[];
43
46
  export {};
44
47
  //# sourceMappingURL=definition.api.helper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.api.helper.d.ts","sourceRoot":"","sources":["../../src/api/definition.api.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definition.api.helper.d.ts","sourceRoot":"","sources":["../../src/api/definition.api.helper.ts"],"names":[],"mappings":"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"}
@@ -1,45 +1,43 @@
1
+ import { z } from 'zod';
2
+ const sortDirectionSchema = z.enum(['asc', 'desc']);
1
3
  function getPrimitiveEntries(definition) {
2
- return Object.entries(definition).filter(([, value]) => value.kind === 'primitive');
4
+ return Object.entries(definition).filter((entry) => entry[1].kind === 'primitive');
3
5
  }
4
- function hasAPIFlag(definition, section, flag) {
5
- return definition.api[section].includes(flag);
6
+ function hasAPIFlag(field, section, ...flags) {
7
+ const declaredFlags = field.api[section];
8
+ return flags.some((flag) => declaredFlags.includes(flag));
6
9
  }
7
- function hasAnyAPIFlag(definition, section, flags) {
8
- return flags.some((flag) => hasAPIFlag(definition, section, flag));
9
- }
10
- function pickPrimitiveSchemaShape(definition, predicate, transform) {
10
+ function pickPrimitiveSchemaShape(definition, predicate, transform = (schema) => schema) {
11
11
  return Object.fromEntries(getPrimitiveEntries(definition)
12
- .filter(([key, value]) => predicate(value, key))
13
- .map(([key, value]) => [key, transform ? transform(value.type) : value.type]));
12
+ .filter(([, field]) => predicate(field))
13
+ .map(([key, field]) => [key, transform(field.type)]));
14
14
  }
15
15
  export function extractCreateRequiredField(params) {
16
- const createRequiredFields = pickPrimitiveSchemaShape(params.definition, (field) => !hasAnyAPIFlag(field, 'create', ['Optional', 'System']));
17
- return createRequiredFields;
16
+ return pickPrimitiveSchemaShape(params.definition, (field) => !hasAPIFlag(field, 'create', 'Optional', 'System'));
17
+ }
18
+ export function extractCreateOptionalField(params) {
19
+ return pickPrimitiveSchemaShape(params.definition, (field) => hasAPIFlag(field, 'create', 'Optional') && !hasAPIFlag(field, 'create', 'System'), (schema) => schema.optional());
18
20
  }
19
- export function extractReadbleField(params) {
20
- const readableFields = pickPrimitiveSchemaShape(params.definition, (field) => !hasAnyAPIFlag(field, 'read', ['Hidden', 'Detail']));
21
- return readableFields;
21
+ export function extractReadableField(params) {
22
+ return pickPrimitiveSchemaShape(params.definition, (field) => !hasAPIFlag(field, 'read', 'Hidden', 'Detail'));
22
23
  }
24
+ // Keep the original misspelled export so existing consumers can migrate without a breaking release.
25
+ export const extractReadbleField = extractReadableField;
23
26
  export function extractUpdateOption(params) {
24
- const updatableFields = pickPrimitiveSchemaShape(params.definition, (field) => hasAPIFlag(field, 'update', 'Updatable'), (schema) => schema.optional());
25
- return updatableFields;
27
+ return pickPrimitiveSchemaShape(params.definition, (field) => hasAPIFlag(field, 'update', 'Updatable'), (schema) => schema.optional());
26
28
  }
27
29
  export function extractSearchOption(params) {
28
- const searchableFields = pickPrimitiveSchemaShape(params.definition, (field) => hasAPIFlag(field, 'read', 'Searchable'), (schema) => schema.optional());
29
- return searchableFields;
30
+ return pickPrimitiveSchemaShape(params.definition, (field) => hasAPIFlag(field, 'read', 'Searchable'), (schema) => schema.optional());
30
31
  }
31
32
  export function extractSearchArrayOption(params) {
32
- const searchableArrayFields = pickPrimitiveSchemaShape(params.definition, (field) => hasAPIFlag(field, 'read', 'SearchableArray'), (schema) => schema.optional().array().optional());
33
- return searchableArrayFields;
33
+ return pickPrimitiveSchemaShape(params.definition, (field) => hasAPIFlag(field, 'read', 'SearchableArray'), (schema) => z.array(schema).optional());
34
34
  }
35
35
  export function extractSortableOption(params) {
36
- const sortableFields = pickPrimitiveSchemaShape(params.definition, (field) => hasAPIFlag(field, 'read', 'Sortable'), (schema) => schema.optional());
37
- return sortableFields;
36
+ return pickPrimitiveSchemaShape(params.definition, (field) => hasAPIFlag(field, 'read', 'Sortable'), () => sortDirectionSchema.optional());
38
37
  }
39
38
  export function extractObjectIdFields(params) {
40
- const objectIdFields = getPrimitiveEntries(params.definition)
41
- .filter(([, value]) => value.index.includes('ObjectId'))
39
+ return getPrimitiveEntries(params.definition)
40
+ .filter(([, field]) => field.index.includes('ObjectId'))
42
41
  .map(([key]) => key);
43
- return objectIdFields;
44
42
  }
45
43
  //# sourceMappingURL=definition.api.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.api.helper.js","sourceRoot":"","sources":["../../src/api/definition.api.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definition.api.helper.js","sourceRoot":"","sources":["../../src/api/definition.api.helper.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,17 @@
1
- import { Definition } from "./model/model.define.type.js";
1
+ import type { Definition } from './model/model.define.type.js';
2
2
  export interface RepositoryContextEntry {
3
3
  model: Definition;
4
4
  collectionName: string;
5
5
  dbName: string;
6
6
  }
7
- interface DefinitionContext {
8
- RepositoryContext: {
9
- model: Definition;
10
- collectionName: string;
11
- dbName: string;
12
- }[];
13
- }
14
- export declare const Context: DefinitionContext;
7
+ export declare const Context: {
8
+ RepositoryContext: RepositoryContextEntry[];
9
+ };
15
10
  export declare function registerRepositoryContext(entry: RepositoryContextEntry): void;
16
- export declare function findRepositoryContext(model: Definition): {
17
- model: Definition;
11
+ export declare function findRepositoryContext(model: Definition): RepositoryContextEntry | undefined;
12
+ export declare function registerModel(params: {
13
+ definition: Definition;
18
14
  collectionName: string;
19
15
  dbName: string;
20
- } | undefined;
21
- export {};
16
+ }): void;
22
17
  //# sourceMappingURL=definition.context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.context.d.ts","sourceRoot":"","sources":["../src/definition.context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,UAAU,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,iBAAiB;IACzB,iBAAiB,EAAE;QACjB,KAAK,EAAE,UAAU,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;KAChB,EAAE,CAAC;CACL;AAED,eAAO,MAAM,OAAO,EAAE,iBAErB,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,sBAAsB,QAEtE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU;WAd5C,UAAU;oBACD,MAAM;YACd,MAAM;cAcjB"}
1
+ {"version":3,"file":"definition.context.d.ts","sourceRoot":"","sources":["../src/definition.context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,UAAU,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,OAAO,EAAE;IAAE,iBAAiB,EAAE,sBAAsB,EAAE,CAAA;CAElE,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,sBAAsB,QAEtE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,sCAEtD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE;IACpC,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,QAGA"}
@@ -1,5 +1,5 @@
1
1
  export const Context = {
2
- RepositoryContext: []
2
+ RepositoryContext: [],
3
3
  };
4
4
  export function registerRepositoryContext(entry) {
5
5
  Context.RepositoryContext.push(entry);
@@ -7,4 +7,8 @@ export function registerRepositoryContext(entry) {
7
7
  export function findRepositoryContext(model) {
8
8
  return Context.RepositoryContext.find((entry) => entry.model === model);
9
9
  }
10
+ export function registerModel(params) {
11
+ const { definition, ...location } = params;
12
+ registerRepositoryContext({ model: definition, ...location });
13
+ }
10
14
  //# sourceMappingURL=definition.context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.context.js","sourceRoot":"","sources":["../src/definition.context.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,MAAM,OAAO,GAAsB;IACxC,iBAAiB,EAAE,EAAE;CACtB,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,KAA6B;IACrE,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAiB;IACrD,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"definition.context.js","sourceRoot":"","sources":["../src/definition.context.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,OAAO,GAAoD;IACtE,iBAAiB,EAAE,EAAE;CACtB,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,KAA6B;IACrE,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAiB;IACrD,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAI7B;IACC,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC;IAC3C,yBAAyB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;AAChE,CAAC"}
@@ -1,23 +1,21 @@
1
1
  import { z } from 'zod';
2
- import type { Definition, PrimitiveDefinition, PrimitiveIndex, APIIndex } from './model/model.define.type.js';
3
- type InferDefinitionValue<TField> = TField extends {
2
+ import type { APIIndex, Definition, PrimitiveDefinition, PrimitiveIndex } from './model/model.define.type.js';
3
+ export type PrimitiveKeysWithIndexFlag<TDefinition extends Definition, TFlag extends PrimitiveIndex> = {
4
+ [K in keyof TDefinition]: TDefinition[K] extends PrimitiveDefinition<z.ZodTypeAny, infer TIndices> ? TFlag extends TIndices[number] ? K : never : never;
5
+ }[keyof TDefinition];
6
+ export type PrimitiveKeysWithApiFlag<TDefinition extends Definition, TSection extends keyof APIIndex, TFlag extends string> = {
7
+ [K in keyof TDefinition]: TDefinition[K] extends PrimitiveDefinition<z.ZodTypeAny, readonly PrimitiveIndex[], infer TApi> ? TApi[TSection] extends readonly unknown[] ? TFlag extends TApi[TSection][number] ? K : never : never : never;
8
+ }[keyof TDefinition];
9
+ export type DefinitionValue<TField> = TField extends {
4
10
  kind: 'primitive';
5
11
  type: infer TSchema extends z.ZodTypeAny;
6
12
  } ? z.infer<TSchema> : TField extends {
7
13
  kind: 'array';
8
14
  type: infer TItem;
9
- } ? InferDefinitionValue<TItem>[] : TField extends {
15
+ } ? DefinitionValue<TItem>[] : TField extends {
10
16
  kind: 'object';
11
17
  type: infer TObject extends Definition;
12
18
  } ? DefinitionDocument<TObject> : never;
13
- type PrimitiveKeysWithIndexFlag<TDefinition extends Definition, TFlag extends PrimitiveIndex> = {
14
- [K in keyof TDefinition]: TDefinition[K] extends PrimitiveDefinition<any, infer TIndices> ? TFlag extends TIndices[number] ? K : never : never;
15
- }[keyof TDefinition];
16
- type PrimitiveKeysWithApiFlag<TDefinition extends Definition, TSection extends keyof APIIndex, TFlag extends string> = {
17
- [K in keyof TDefinition]: TDefinition[K] extends PrimitiveDefinition<any, any, infer TApi> ? TApi[TSection] extends readonly unknown[] ? TFlag extends TApi[TSection][number] ? K : never : never : never;
18
- }[keyof TDefinition];
19
- type SearchInput<TValue> = TValue extends string ? TValue | TValue[] : TValue;
20
- export type DefinitionValue<TField> = InferDefinitionValue<TField>;
21
19
  export type DefinitionDocument<T extends Definition> = {
22
20
  [K in keyof T]: DefinitionValue<T[K]>;
23
21
  };
@@ -26,10 +24,14 @@ export type UpdateField<T extends Definition> = {
26
24
  [K in PrimitiveKeysWithApiFlag<T, 'update', 'Updatable'>]?: DefinitionValue<T[K]>;
27
25
  };
28
26
  export type SearchField<T extends Definition> = {
29
- [K in PrimitiveKeysWithApiFlag<T, 'read', 'Searchable'>]?: SearchInput<DefinitionValue<T[K]>>;
27
+ [K in PrimitiveKeysWithApiFlag<T, 'read', 'Searchable'>]?: DefinitionValue<T[K]>;
28
+ } & {
29
+ [K in PrimitiveKeysWithApiFlag<T, 'read', 'SearchableArray'>]?: DefinitionValue<T[K]>[];
30
+ };
31
+ export type SortField<T extends Definition> = {
32
+ [K in PrimitiveKeysWithApiFlag<T, 'read', 'Sortable'>]?: 'asc' | 'desc';
30
33
  };
31
34
  export type IdentifierField<T extends Definition> = {
32
35
  [K in PrimitiveKeysWithIndexFlag<T, 'Identifier'>]: DefinitionValue<T[K]>;
33
36
  };
34
- export {};
35
37
  //# sourceMappingURL=definition.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.type.d.ts","sourceRoot":"","sources":["../src/definition.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE9G,KAAK,oBAAoB,CAAC,MAAM,IAC9B,MAAM,SAAS;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,OAAO,SAAS,CAAC,CAAC,UAAU,CAAA;CAAE,GAC1E,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAChB,MAAM,SAAS;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,KAAK,CAAA;CAAE,GACjD,oBAAoB,CAAC,KAAK,CAAC,EAAE,GAC7B,MAAM,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,OAAO,SAAS,UAAU,CAAA;CAAE,GACvE,kBAAkB,CAAC,OAAO,CAAC,GAC3B,KAAK,CAAC;AAEhB,KAAK,0BAA0B,CAAC,WAAW,SAAS,UAAU,EAAE,KAAK,SAAS,cAAc,IAAI;KAC7F,CAAC,IAAI,MAAM,WAAW,GACrB,WAAW,CAAC,CAAC,CAAC,SAAS,mBAAmB,CAAC,GAAG,EAAE,MAAM,QAAQ,CAAC,GAC3D,KAAK,SAAS,QAAQ,CAAC,MAAM,CAAC,GAC5B,CAAC,GACD,KAAK,GACP,KAAK;CACZ,CAAC,MAAM,WAAW,CAAC,CAAC;AAErB,KAAK,wBAAwB,CAC3B,WAAW,SAAS,UAAU,EAC9B,QAAQ,SAAS,MAAM,QAAQ,EAC/B,KAAK,SAAS,MAAM,IAClB;KACD,CAAC,IAAI,MAAM,WAAW,GACrB,WAAW,CAAC,CAAC,CAAC,SAAS,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,GAC5D,IAAI,CAAC,QAAQ,CAAC,SAAS,SAAS,OAAO,EAAE,GACvC,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAClC,CAAC,GACD,KAAK,GACP,KAAK,GACP,KAAK;CACZ,CAAC,MAAM,WAAW,CAAC,CAAC;AAErB,KAAK,WAAW,CAAC,MAAM,IAAI,MAAM,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;AAE9E,MAAM,MAAM,eAAe,CAAC,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAEnE,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,UAAU,IAAI;KACpD,CAAC,IAAI,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,UAAU,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAExE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI;KAC7C,CAAC,IAAI,wBAAwB,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAClF,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI;KAC7C,CAAC,IAAI,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9F,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,UAAU,IAAI;KACjD,CAAC,IAAI,0BAA0B,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1E,CAAC"}
1
+ {"version":3,"file":"definition.type.d.ts","sourceRoot":"","sources":["../src/definition.type.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,9 @@
1
- export type { DefinitionDocument, DefinitionValue, IdentifierField, ModelDocument, SearchField, UpdateField, } from './definition.type.js';
2
- export type { UpdateField as UpdateFields } from './definition.type.js';
3
- export { Context } from './definition.context.js';
4
- export { findRepositoryContext, registerRepositoryContext } from './definition.context.js';
1
+ export type { DefinitionDocument, DefinitionValue, IdentifierField, ModelDocument, SearchField, SortField, UpdateField, UpdateField as UpdateFields, } from './definition.type.js';
2
+ export { Context, findRepositoryContext, registerModel, registerRepositoryContext, } from './definition.context.js';
5
3
  export type { RepositoryContextEntry } from './definition.context.js';
6
- export type { ClientAPISpecification, ServerAPISpecification } from './spec.js';
7
- export { extractCreateRequiredField, extractReadbleField, extractUpdateOption, extractSearchOption, extractSearchArrayOption, extractSortableOption, extractObjectIdFields } from './api/definition.api.helper.js';
4
+ export type { APISpecification, ClientAPISpecification, ServerAPISpecification, } from './spec.js';
5
+ export { genAPIDefinition } from './api/api.js';
6
+ export { extractCreateOptionalField, extractCreateRequiredField, extractObjectIdFields, extractReadableField, extractReadbleField, extractSearchArrayOption, extractSearchOption, extractSortableOption, extractUpdateOption, } from './api/definition.api.helper.js';
8
7
  export { extractCreateFieldWithSystem } from './repository/definition.repository.helper.js';
9
8
  export { defineModel } from './model/model.define.js';
10
9
  export type { Definition, DefinitionFrom, InputArrayDefinition, InputDefinition, InputObjectDefinition, InputPrimitiveDefinition, } from './model/model.define.type.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAC,MAAM,WAAW,CAAC;AAE/E,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,4BAA4B,EAC7B,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,YAAY,EACV,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,aAAa,EACb,WAAW,EACX,SAAS,EACT,WAAW,EAEX,WAAW,IAAI,YAAY,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,OAAO,EACP,qBAAqB,EACrB,aAAa,EACb,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC;AAE5F,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,YAAY,EACV,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
- export { Context } from './definition.context.js';
2
- export { findRepositoryContext, registerRepositoryContext } from './definition.context.js';
3
- export { extractCreateRequiredField, extractReadbleField, extractUpdateOption, extractSearchOption, extractSearchArrayOption, extractSortableOption, extractObjectIdFields } from './api/definition.api.helper.js';
1
+ export { Context, findRepositoryContext, registerModel, registerRepositoryContext, } from './definition.context.js';
2
+ export { genAPIDefinition } from './api/api.js';
3
+ export { extractCreateOptionalField, extractCreateRequiredField, extractObjectIdFields, extractReadableField, extractReadbleField, extractSearchArrayOption, extractSearchOption, extractSortableOption, extractUpdateOption, } from './api/definition.api.helper.js';
4
4
  export { extractCreateFieldWithSystem } from './repository/definition.repository.helper.js';
5
5
  export { defineModel } from './model/model.define.js';
6
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAK3F,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,4BAA4B,EAC7B,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,OAAO,EACP,qBAAqB,EACrB,aAAa,EACb,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AAQjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC;AAE5F,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"model.define.d.ts","sourceRoot":"","sources":["../../src/model/model.define.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,cAAc,EAEd,eAAe,EAIhB,MAAM,wBAAwB,CAAC;AAkFhC,wBAAgB,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAOxF"}
1
+ {"version":3,"file":"model.define.d.ts","sourceRoot":"","sources":["../../src/model/model.define.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,cAAc,EAEd,eAAe,EAIhB,MAAM,wBAAwB,CAAC;AAiFhC,wBAAgB,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAOxF"}
@@ -1 +1 @@
1
- {"version":3,"file":"model.define.js","sourceRoot":"","sources":["../../src/model/model.define.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.define.js","sourceRoot":"","sources":["../../src/model/model.define.ts"],"names":[],"mappings":"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"}
@@ -15,17 +15,17 @@ export interface PrimitiveDefinition<TType extends z.ZodTypeAny = z.ZodTypeAny,
15
15
  index: TIndex;
16
16
  api: TApi;
17
17
  key: TKey;
18
- kind: "primitive";
18
+ kind: 'primitive';
19
19
  }
20
20
  export interface ArrayDefinition<TType extends PrimitiveDefinition | ObjectDefinition = PrimitiveDefinition | ObjectDefinition, TKey extends string = string> {
21
21
  type: TType;
22
22
  key: TKey;
23
- kind: "array";
23
+ kind: 'array';
24
24
  }
25
25
  export interface ObjectDefinition<TType extends Definition = Definition, TKey extends string = string> {
26
26
  type: TType;
27
27
  key: TKey;
28
- kind: "object";
28
+ kind: 'object';
29
29
  }
30
30
  export interface Definition {
31
31
  [field: string]: PrimitiveDefinition | ArrayDefinition | ObjectDefinition;
@@ -35,11 +35,11 @@ export interface InputPrimitiveDefinition<TType extends z.ZodTypeAny = z.ZodType
35
35
  index?: TIndex;
36
36
  api?: TApi;
37
37
  }
38
- export interface InputArrayDefinition<Titem extends InputPrimitiveDefinition | InputObjectDefinition = InputPrimitiveDefinition | InputObjectDefinition> {
39
- type: readonly [Titem];
38
+ export interface InputArrayDefinition<TItem extends InputPrimitiveDefinition | InputObjectDefinition = InputPrimitiveDefinition | InputObjectDefinition> {
39
+ type: readonly [TItem];
40
40
  }
41
- export interface InputObjectDefinition<Ttype extends InputDefinition = InputDefinition> {
42
- type: Ttype;
41
+ export interface InputObjectDefinition<TType extends InputDefinition = InputDefinition> {
42
+ type: TType;
43
43
  }
44
44
  export interface InputDefinition {
45
45
  [field: string]: InputPrimitiveDefinition | InputArrayDefinition | InputObjectDefinition;
@@ -1,5 +1,2 @@
1
- ;
2
- ;
3
- ;
4
1
  export {};
5
2
  //# sourceMappingURL=model.define.type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.define.type.js","sourceRoot":"","sources":["../../src/model/model.define.type.ts"],"names":[],"mappings":"AAgCC,CAAC;AAuCD,CAAC;AAUD,CAAC"}
1
+ {"version":3,"file":"model.define.type.js","sourceRoot":"","sources":["../../src/model/model.define.type.ts"],"names":[],"mappings":""}
@@ -1,7 +1,12 @@
1
- import { Definition, PrimitiveDefinition, APIIndex } from '../model/model.define.type.js';
1
+ import { z } from 'zod';
2
+ import type { ArrayDefinition, Definition, ObjectDefinition, PrimitiveDefinition, PrimitiveIndex } from '../model/model.define.type.js';
3
+ import type { DefinitionDocument } from '../definition.type.js';
4
+ type RequiredCreateFieldKeys<TDefinition extends Definition> = {
5
+ [K in keyof TDefinition]: TDefinition[K] extends PrimitiveDefinition<z.ZodTypeAny, readonly PrimitiveIndex[], infer TApi> ? 'Optional' extends TApi['create'][number] ? never : K : K;
6
+ }[keyof TDefinition];
7
+ type FieldSchema<TField> = TField extends PrimitiveDefinition<infer TSchema> ? TSchema : TField extends ArrayDefinition<infer TItem> ? z.ZodArray<FieldSchema<TItem>> : TField extends ObjectDefinition<infer TObject> ? z.ZodType<DefinitionDocument<TObject>> : never;
2
8
  export declare function extractCreateFieldWithSystem<TDefinition extends Definition>(params: {
3
9
  definition: TDefinition;
4
- }): { [K in keyof TDefinition as TDefinition[K] extends PrimitiveDefinition ? TDefinition[K]["api"] extends {
5
- create: infer Indices;
6
- } ? Indices extends APIIndex["create"] ? "Optional" extends Indices[number] ? never : K : K : K : K]: TDefinition[K]["type"]; };
10
+ }): { [K in keyof TDefinition]: K extends RequiredCreateFieldKeys<TDefinition> ? FieldSchema<TDefinition[K]> : z.ZodOptional<FieldSchema<TDefinition[K]>>; };
11
+ export {};
7
12
  //# sourceMappingURL=definition.repository.helper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.repository.helper.d.ts","sourceRoot":"","sources":["../../src/repository/definition.repository.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE1F,wBAAgB,4BAA4B,CAAC,WAAW,SAAS,UAAU,EAAE,MAAM,EAAE;IAAE,UAAU,EAAE,WAAW,CAAA;CAAE,GAUvF,GACpB,CAAC,IAAI,MAAM,WAAW,IACrB,WAAW,CAAC,CAAC,CAAC,SAAS,mBAAmB,GACtC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,OAAO,CAAA;CAAE,GACrD,OAAO,SAAS,QAAQ,CAAC,QAAQ,CAAC,GAChC,UAAU,SAAS,OAAO,CAAC,MAAM,CAAC,GAChC,KAAK,GACL,CAAC,GACH,CAAC,GACH,CAAC,GACH,CAAC,GACH,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAC3B,CACF"}
1
+ {"version":3,"file":"definition.repository.helper.d.ts","sourceRoot":"","sources":["../../src/repository/definition.repository.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,KAAK,uBAAuB,CAAC,WAAW,SAAS,UAAU,IAAI;KAC5D,CAAC,IAAI,MAAM,WAAW,GACrB,WAAW,CAAC,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,EAAE,MAAM,IAAI,CAAC,GAC3F,UAAU,SAAS,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GACvC,KAAK,GACL,CAAC,GACH,CAAC;CACR,CAAC,MAAM,WAAW,CAAC,CAAC;AAErB,KAAK,WAAW,CAAC,MAAM,IACrB,MAAM,SAAS,mBAAmB,CAAC,MAAM,OAAO,CAAC,GAC7C,OAAO,GACP,MAAM,SAAS,eAAe,CAAC,MAAM,KAAK,CAAC,GACzC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAC9B,MAAM,SAAS,gBAAgB,CAAC,MAAM,OAAO,CAAC,GAC5C,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,GACtC,KAAK,CAAC;AAkBhB,wBAAgB,4BAA4B,CAAC,WAAW,SAAS,UAAU,EAAE,MAAM,EAAE;IACnF,UAAU,EAAE,WAAW,CAAC;CACzB,GAUwB,GACpB,CAAC,IAAI,MAAM,WAAW,GAAG,CAAC,SAAS,uBAAuB,CAAC,WAAW,CAAC,GACpE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAC3B,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAC/C,CACF"}
@@ -1,13 +1,20 @@
1
+ import { z } from 'zod';
2
+ function createFieldSchema(field) {
3
+ if (field.kind === 'primitive') {
4
+ return field.type;
5
+ }
6
+ if (field.kind === 'array') {
7
+ return z.array(createFieldSchema(field.type));
8
+ }
9
+ const shape = Object.fromEntries(Object.entries(field.type).map(([key, nestedField]) => [key, createFieldSchema(nestedField)]));
10
+ return z.object(shape);
11
+ }
1
12
  export function extractCreateFieldWithSystem(params) {
2
- const { definition } = params;
3
- const createFields = Object.fromEntries(Object.entries(definition).filter(([_, value]) => {
4
- // Optional만 제외하고, System은 포함
5
- if (value.kind === 'primitive' && value.api?.create?.includes("Optional"))
6
- return false;
7
- else
8
- return true;
9
- }).map(([key, value]) => ([key, value.type])));
13
+ const createFields = Object.fromEntries(Object.entries(params.definition).map(([key, field]) => {
14
+ const schema = createFieldSchema(field);
15
+ const isOptional = field.kind === 'primitive' && field.api.create.includes('Optional');
16
+ return [key, isOptional ? schema.optional() : schema];
17
+ }));
10
18
  return createFields;
11
19
  }
12
- ;
13
20
  //# sourceMappingURL=definition.repository.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.repository.helper.js","sourceRoot":"","sources":["../../src/repository/definition.repository.helper.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,4BAA4B,CAAiC,MAAmC;IAC9G,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CACrC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE;QAC9C,6BAA6B;QAC7B,IAAG,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAA;;YACjF,OAAO,IAAI,CAAC;IACnB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAC,EAAE,CAAA,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5C,CAAC;IAEF,OAAO,YAYN,CAAC;AACJ,CAAC;AAAA,CAAC"}
1
+ {"version":3,"file":"definition.repository.helper.js","sourceRoot":"","sources":["../../src/repository/definition.repository.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA6BxB,SAAS,iBAAiB,CAAC,KAAyB;IAClD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC9B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAC9F,CAAC;IAEF,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAiC,MAE5E;IACC,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CACrC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACrD,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEvF,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,YAIN,CAAC;AACJ,CAAC"}
package/dist/spec.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { z } from "zod";
2
- interface APISpecification {
1
+ import type { z } from 'zod';
2
+ export interface APISpecification {
3
3
  APIEndpoint: string;
4
4
  Method: "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
5
5
  Request: {
@@ -15,5 +15,4 @@ export interface ClientAPISpecification extends APISpecification {
15
15
  }
16
16
  export interface ServerAPISpecification extends APISpecification {
17
17
  }
18
- export {};
19
18
  //# sourceMappingURL=spec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpD,OAAO,EAAE;QACP,WAAW,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;QAC3B,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;CAAG"}
1
+ {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpD,OAAO,EAAE;QACP,WAAW,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;QAC3B,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;CAAG"}
@@ -1,4 +1,4 @@
1
- import { Definition, PrimitiveDefinition } from './model/model.define.type.js';
1
+ import type { Definition, PrimitiveDefinition } from './model/model.define.type.js';
2
2
  export interface ViewDefinition {
3
3
  baseModel: Definition;
4
4
  viewDefinition: {
@@ -11,11 +11,6 @@ export interface ViewDefinition {
11
11
  baseKey: string;
12
12
  relationKey: string;
13
13
  }[];
14
- index?: [];
14
+ index?: readonly never[];
15
15
  }
16
- export declare function registerModel(params: {
17
- definition: Definition;
18
- collectionName: string;
19
- dbName: string;
20
- }): void;
21
16
  //# sourceMappingURL=view.definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"view.definition.d.ts","sourceRoot":"","sources":["../src/view.definition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAG/E,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,UAAU,CAAC;IACtB,cAAc,EAAE;QACd,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,GAAG;YACrC,KAAK,CAAC,EAAE,UAAU,CAAC;SACpB,CAAC;KACH,CAAC;IACF,SAAS,EAAE;QACT,aAAa,EAAE,UAAU,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB,EAAE,CAAC;IACJ,KAAK,CAAC,EAAE,EAAE,CAAC;CACZ;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE;IACpC,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,QAMA"}
1
+ {"version":3,"file":"view.definition.d.ts","sourceRoot":"","sources":["../src/view.definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGpF,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,UAAU,CAAC;IACtB,cAAc,EAAE;QACd,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,GAAG;YACrC,KAAK,CAAC,EAAE,UAAU,CAAC;SACpB,CAAC;KACH,CAAC;IACF,SAAS,EAAE;QACT,aAAa,EAAE,UAAU,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB,EAAE,CAAC;IACJ,KAAK,CAAC,EAAE,SAAS,KAAK,EAAE,CAAC;CAC1B"}
@@ -1,10 +1,2 @@
1
- import { registerRepositoryContext } from './definition.context.js';
2
- ;
3
- export function registerModel(params) {
4
- registerRepositoryContext({
5
- model: params.definition,
6
- collectionName: params.collectionName,
7
- dbName: params.dbName,
8
- });
9
- }
1
+ export {};
10
2
  //# sourceMappingURL=view.definition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"view.definition.js","sourceRoot":"","sources":["../src/view.definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAiBnE,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,MAI7B;IACC,yBAAyB,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC,UAAU;QACxB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"view.definition.js","sourceRoot":"","sources":["../src/view.definition.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@eecho/definition",
3
- "version": "0.0.3",
4
- "description": "EEcho API definition types and schemas",
3
+ "version": "0.2.0",
4
+ "description": "EEcho model definitions and shared runtime API contracts",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -21,7 +21,7 @@
21
21
  "test": "echo \"Error: no test specified\" && exit 1"
22
22
  },
23
23
  "author": "",
24
- "license": "ISC",
24
+ "license": "MIT",
25
25
  "peerDependencies": {
26
26
  "zod": "^4.1.12"
27
27
  },
@@ -1,2 +0,0 @@
1
- export type DefinedModel<T> = {};
2
- //# sourceMappingURL=model.define.helper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.define.helper.d.ts","sourceRoot":"","sources":["../../src/model/model.define.helper.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,EAE7B,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=model.define.helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.define.helper.js","sourceRoot":"","sources":["../../src/model/model.define.helper.ts"],"names":[],"mappings":""}