@node-in-layers/mcp-server 2.5.2 → 2.5.4

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/types.d.ts CHANGED
@@ -1,7 +1,14 @@
1
1
  import { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
2
2
  import { Config, LogLevelNames, LayerContext, XOR, CrossLayerProps, NilAnnotatedFunction } from '@node-in-layers/core';
3
3
  import express from 'express';
4
- import { JsonAble, JsonObj } from 'functional-models';
4
+ import { DatastoreValueType, EqualitySymbol, JsonAble, JsonObj } from 'functional-models';
5
+ import z from 'zod';
6
+ export declare const crossLayerPropsSchema: z.ZodObject<{
7
+ logging: z.ZodOptional<z.ZodObject<{
8
+ ids: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>>;
9
+ }, z.z.core.$loose>>;
10
+ }, z.z.core.$loose>;
11
+ export declare const jsonAbleSchema: z.ZodType<JsonAble, unknown, z.z.core.$ZodTypeInternals<JsonAble, unknown>>;
5
12
  /**
6
13
  * The namespace key used to scope all `@node-in-layers/mcp-server` configuration
7
14
  * inside the system config object.
@@ -17,6 +24,286 @@ import { JsonAble, JsonObj } from 'functional-models';
17
24
  * ```
18
25
  */
19
26
  export declare const McpNamespace = "@node-in-layers/mcp-server";
27
+ export declare enum ModelAction {
28
+ Save = "save",
29
+ Retrieve = "retrieve",
30
+ Delete = "delete",
31
+ Search = "search",
32
+ BulkInsert = "bulkInsert",
33
+ BulkDelete = "bulkDelete"
34
+ }
35
+ export declare enum ModelActionToolName {
36
+ Save = "model_save",
37
+ Retrieve = "model_retrieve",
38
+ Delete = "model_delete",
39
+ Search = "model_search",
40
+ BulkInsert = "model_bulk_insert",
41
+ BulkDelete = "model_bulk_delete"
42
+ }
43
+ export declare const modelBulkInsertSchema: z.ZodObject<{
44
+ modelType: z.ZodString;
45
+ items: z.ZodArray<z.ZodObject<{}, z.z.core.$loose>>;
46
+ }, z.z.core.$strip>;
47
+ export declare const modelRetrieveSchema: z.ZodObject<{
48
+ modelType: z.ZodString;
49
+ id: z.ZodString;
50
+ }, z.z.core.$strip>;
51
+ export declare const modelDeleteSchema: z.ZodObject<{
52
+ modelType: z.ZodString;
53
+ id: z.ZodString;
54
+ }, z.z.core.$strip>;
55
+ export declare const searchSchema: z.ZodObject<{
56
+ take: z.ZodOptional<z.ZodNumber>;
57
+ sort: z.ZodOptional<z.ZodObject<{
58
+ key: z.ZodString;
59
+ order: z.ZodEnum<{
60
+ asc: "asc";
61
+ dsc: "dsc";
62
+ }>;
63
+ }, z.z.core.$strip>>;
64
+ page: z.ZodOptional<z.ZodType<JsonAble, unknown, z.z.core.$ZodTypeInternals<JsonAble, unknown>>>;
65
+ query: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
66
+ AND: "AND";
67
+ OR: "OR";
68
+ }>, z.ZodObject<{
69
+ type: z.ZodLiteral<"property">;
70
+ key: z.ZodString;
71
+ value: z.ZodAny;
72
+ valueType: z.ZodEnum<typeof DatastoreValueType>;
73
+ equalitySymbol: z.ZodEnum<typeof EqualitySymbol>;
74
+ options: z.ZodOptional<z.ZodObject<{
75
+ caseSensitive: z.ZodOptional<z.ZodBoolean>;
76
+ startsWith: z.ZodOptional<z.ZodBoolean>;
77
+ endsWith: z.ZodOptional<z.ZodBoolean>;
78
+ }, z.z.core.$strip>>;
79
+ }, z.z.core.$strip>, z.ZodObject<{
80
+ type: z.ZodLiteral<"datesAfter">;
81
+ key: z.ZodString;
82
+ date: z.ZodString;
83
+ valueType: z.ZodEnum<typeof DatastoreValueType>;
84
+ options: z.ZodOptional<z.ZodObject<{
85
+ equalToAndAfter: z.ZodOptional<z.ZodBoolean>;
86
+ }, z.z.core.$strip>>;
87
+ }, z.z.core.$strip>, z.ZodObject<{
88
+ type: z.ZodLiteral<"datesBefore">;
89
+ key: z.ZodString;
90
+ date: z.ZodString;
91
+ valueType: z.ZodEnum<typeof DatastoreValueType>;
92
+ options: z.ZodOptional<z.ZodObject<{
93
+ equalToAndBefore: z.ZodOptional<z.ZodBoolean>;
94
+ }, z.z.core.$strip>>;
95
+ }, z.z.core.$strip>]>>>;
96
+ }, z.z.core.$strip>;
97
+ export declare const modelSearchSchema: z.ZodObject<{
98
+ modelType: z.ZodString;
99
+ search: z.ZodObject<{
100
+ take: z.ZodOptional<z.ZodNumber>;
101
+ sort: z.ZodOptional<z.ZodObject<{
102
+ key: z.ZodString;
103
+ order: z.ZodEnum<{
104
+ asc: "asc";
105
+ dsc: "dsc";
106
+ }>;
107
+ }, z.z.core.$strip>>;
108
+ page: z.ZodOptional<z.ZodType<JsonAble, unknown, z.z.core.$ZodTypeInternals<JsonAble, unknown>>>;
109
+ query: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
110
+ AND: "AND";
111
+ OR: "OR";
112
+ }>, z.ZodObject<{
113
+ type: z.ZodLiteral<"property">;
114
+ key: z.ZodString;
115
+ value: z.ZodAny;
116
+ valueType: z.ZodEnum<typeof DatastoreValueType>;
117
+ equalitySymbol: z.ZodEnum<typeof EqualitySymbol>;
118
+ options: z.ZodOptional<z.ZodObject<{
119
+ caseSensitive: z.ZodOptional<z.ZodBoolean>;
120
+ startsWith: z.ZodOptional<z.ZodBoolean>;
121
+ endsWith: z.ZodOptional<z.ZodBoolean>;
122
+ }, z.z.core.$strip>>;
123
+ }, z.z.core.$strip>, z.ZodObject<{
124
+ type: z.ZodLiteral<"datesAfter">;
125
+ key: z.ZodString;
126
+ date: z.ZodString;
127
+ valueType: z.ZodEnum<typeof DatastoreValueType>;
128
+ options: z.ZodOptional<z.ZodObject<{
129
+ equalToAndAfter: z.ZodOptional<z.ZodBoolean>;
130
+ }, z.z.core.$strip>>;
131
+ }, z.z.core.$strip>, z.ZodObject<{
132
+ type: z.ZodLiteral<"datesBefore">;
133
+ key: z.ZodString;
134
+ date: z.ZodString;
135
+ valueType: z.ZodEnum<typeof DatastoreValueType>;
136
+ options: z.ZodOptional<z.ZodObject<{
137
+ equalToAndBefore: z.ZodOptional<z.ZodBoolean>;
138
+ }, z.z.core.$strip>>;
139
+ }, z.z.core.$strip>]>>>;
140
+ }, z.z.core.$strip>;
141
+ }, z.z.core.$strip>;
142
+ export declare const modelBulkDeleteSchema: z.ZodObject<{
143
+ modelType: z.ZodString;
144
+ ids: z.ZodArray<z.ZodString>;
145
+ }, z.z.core.$strip>;
146
+ export declare const modelSaveSchema: z.ZodObject<{
147
+ modelType: z.ZodString;
148
+ instance: z.ZodObject<{}, z.z.core.$loose>;
149
+ }, z.z.core.$strip>;
150
+ export type ModelBulkInsert = z.infer<typeof modelBulkInsertSchema>;
151
+ export type ModelRetrieve = z.infer<typeof modelRetrieveSchema>;
152
+ export type ModelDelete = z.infer<typeof modelDeleteSchema>;
153
+ export type ModelSearch = z.infer<typeof modelSearchSchema>;
154
+ export type ModelBulkDelete = z.infer<typeof modelBulkDeleteSchema>;
155
+ export type ModelSave = z.infer<typeof modelSaveSchema>;
156
+ type _ModelActionMap = Readonly<{
157
+ [ModelAction.Save]: Readonly<{
158
+ toolName: ModelActionToolName.Save;
159
+ args: ModelSave;
160
+ }>;
161
+ [ModelAction.Retrieve]: Readonly<{
162
+ toolName: ModelActionToolName.Retrieve;
163
+ args: ModelRetrieve;
164
+ }>;
165
+ [ModelAction.Delete]: Readonly<{
166
+ toolName: ModelActionToolName.Delete;
167
+ args: ModelDelete;
168
+ }>;
169
+ [ModelAction.Search]: Readonly<{
170
+ toolName: ModelActionToolName.Search;
171
+ args: ModelSearch;
172
+ }>;
173
+ [ModelAction.BulkInsert]: Readonly<{
174
+ toolName: ModelActionToolName.BulkInsert;
175
+ args: ModelBulkInsert;
176
+ }>;
177
+ [ModelAction.BulkDelete]: Readonly<{
178
+ toolName: ModelActionToolName.BulkDelete;
179
+ args: ModelBulkDelete;
180
+ }>;
181
+ }>;
182
+ export type MCPToolExecuteData<ToolName extends string, T extends JsonObj = JsonObj> = Readonly<{
183
+ toolName: ToolName;
184
+ args: T;
185
+ }>;
186
+ export declare const executeModelSchema: z.ZodObject<{
187
+ toolName: z.ZodEnum<typeof ModelActionToolName>;
188
+ action: z.ZodEnum<typeof ModelAction>;
189
+ domain: z.ZodString;
190
+ modelName: z.ZodString;
191
+ args: z.ZodXor<readonly [z.ZodObject<{
192
+ modelType: z.ZodString;
193
+ items: z.ZodArray<z.ZodObject<{}, z.z.core.$loose>>;
194
+ }, z.z.core.$strip>, z.ZodObject<{
195
+ modelType: z.ZodString;
196
+ id: z.ZodString;
197
+ }, z.z.core.$strip>, z.ZodObject<{
198
+ modelType: z.ZodString;
199
+ id: z.ZodString;
200
+ }, z.z.core.$strip>, z.ZodObject<{
201
+ modelType: z.ZodString;
202
+ search: z.ZodObject<{
203
+ take: z.ZodOptional<z.ZodNumber>;
204
+ sort: z.ZodOptional<z.ZodObject<{
205
+ key: z.ZodString;
206
+ order: z.ZodEnum<{
207
+ asc: "asc";
208
+ dsc: "dsc";
209
+ }>;
210
+ }, z.z.core.$strip>>;
211
+ page: z.ZodOptional<z.ZodType<JsonAble, unknown, z.z.core.$ZodTypeInternals<JsonAble, unknown>>>;
212
+ query: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
213
+ AND: "AND";
214
+ OR: "OR";
215
+ }>, z.ZodObject<{
216
+ type: z.ZodLiteral<"property">;
217
+ key: z.ZodString;
218
+ value: z.ZodAny;
219
+ valueType: z.ZodEnum<typeof DatastoreValueType>;
220
+ equalitySymbol: z.ZodEnum<typeof EqualitySymbol>;
221
+ options: z.ZodOptional<z.ZodObject<{
222
+ caseSensitive: z.ZodOptional<z.ZodBoolean>;
223
+ startsWith: z.ZodOptional<z.ZodBoolean>;
224
+ endsWith: z.ZodOptional<z.ZodBoolean>;
225
+ }, z.z.core.$strip>>;
226
+ }, z.z.core.$strip>, z.ZodObject<{
227
+ type: z.ZodLiteral<"datesAfter">;
228
+ key: z.ZodString;
229
+ date: z.ZodString;
230
+ valueType: z.ZodEnum<typeof DatastoreValueType>;
231
+ options: z.ZodOptional<z.ZodObject<{
232
+ equalToAndAfter: z.ZodOptional<z.ZodBoolean>;
233
+ }, z.z.core.$strip>>;
234
+ }, z.z.core.$strip>, z.ZodObject<{
235
+ type: z.ZodLiteral<"datesBefore">;
236
+ key: z.ZodString;
237
+ date: z.ZodString;
238
+ valueType: z.ZodEnum<typeof DatastoreValueType>;
239
+ options: z.ZodOptional<z.ZodObject<{
240
+ equalToAndBefore: z.ZodOptional<z.ZodBoolean>;
241
+ }, z.z.core.$strip>>;
242
+ }, z.z.core.$strip>]>>>;
243
+ }, z.z.core.$strip>;
244
+ }, z.z.core.$strip>, z.ZodObject<{
245
+ modelType: z.ZodString;
246
+ ids: z.ZodArray<z.ZodString>;
247
+ }, z.z.core.$strip>, z.ZodObject<{
248
+ modelType: z.ZodString;
249
+ instance: z.ZodObject<{}, z.z.core.$loose>;
250
+ }, z.z.core.$strip>]>;
251
+ crossLayerProps: z.ZodOptional<z.ZodObject<{
252
+ logging: z.ZodOptional<z.ZodObject<{
253
+ ids: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>>;
254
+ }, z.z.core.$loose>>;
255
+ }, z.z.core.$loose>>;
256
+ }, z.z.core.$strip>;
257
+ /**
258
+ * Extracted data when an MCP tool execution represents a Model CRUD action.
259
+ * @interface
260
+ */
261
+ export type ExecuteModelData<A extends ModelAction = ModelAction> = A extends any ? MCPToolExecuteData<_ModelActionMap[A]['toolName'], _ModelActionMap[A]['args'] & JsonObj> & Readonly<{
262
+ toolName: _ModelActionMap[A]['toolName'];
263
+ action: A;
264
+ domain: string;
265
+ modelName: string;
266
+ }> : never;
267
+ /**
268
+ * Schema for the arguments of a Feature execution.
269
+ * @param argsSchema
270
+ * @returns
271
+ */
272
+ export declare const executeFeatureSchema: (argsSchema: z.ZodObject<any>) => z.ZodObject<{
273
+ toolName: z.ZodLiteral<"execute_feature">;
274
+ domain: z.ZodOptional<z.ZodString>;
275
+ featureName: z.ZodString;
276
+ args: z.ZodObject<any, z.z.core.$strip>;
277
+ crossLayerProps: z.ZodOptional<z.ZodObject<{
278
+ logging: z.ZodOptional<z.ZodObject<{
279
+ ids: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>>;
280
+ }, z.z.core.$loose>>;
281
+ }, z.z.core.$loose>>;
282
+ }, z.z.core.$strip>;
283
+ export declare const executeFunctionSchema: z.ZodObject<{
284
+ toolName: z.ZodString;
285
+ functionName: z.ZodString;
286
+ args: z.ZodObject<{}, z.z.core.$loose>;
287
+ crossLayerProps: z.ZodOptional<z.ZodObject<{
288
+ logging: z.ZodOptional<z.ZodObject<{
289
+ ids: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>>;
290
+ }, z.z.core.$loose>>;
291
+ }, z.z.core.$loose>>;
292
+ }, z.z.core.$strip>;
293
+ /**
294
+ * Extracted data when an MCP tool execution represents a Feature execution.
295
+ * @interface
296
+ */
297
+ export type ExecuteFeatureData = MCPToolExecuteData<'execute_feature'> & Readonly<{
298
+ domain: string;
299
+ featureName: string;
300
+ }>;
301
+ /**
302
+ * Extracted data when an MCP tool execution represents a Function execution.
303
+ */
304
+ export type ExecuteFunctionData = MCPToolExecuteData<string, JsonObj> & Readonly<{
305
+ functionName: string;
306
+ }>;
20
307
  /**
21
308
  * @interface
22
309
  * CLI (stdio) connection configuration. Use this when the MCP server is
@@ -490,6 +777,24 @@ export type RequestCrossLayerProps = Readonly<{
490
777
  */
491
778
  authInfo?: AuthInfo;
492
779
  }> & CrossLayerProps;
780
+ /**
781
+ * A middleware function that can pullout information that will be put into the cross layer props
782
+ * and passed down stream with the request.
783
+ * @interface
784
+ */
785
+ export type CrossLayerPropMiddleware = (
786
+ /**
787
+ * The express request object.
788
+ */
789
+ req: express.Request,
790
+ /**
791
+ * The express response object.
792
+ */
793
+ res: express.Response,
794
+ /**
795
+ * The next function to call.
796
+ */
797
+ next: express.NextFunction) => Promise<Record<string, any> | void>;
493
798
  /**
494
799
  * @interface
495
800
  * The public interface returned by `create()` in `mcp.ts` and stored in the
@@ -503,6 +808,18 @@ export type RequestCrossLayerProps = Readonly<{
503
808
  * ```
504
809
  */
505
810
  export type McpServerMcp = Readonly<{
811
+ /**
812
+ * Adds a middleware function that will be called before the MCP route, that can extract
813
+ * information that will be placed into the cross layer props.
814
+ *
815
+ * NOTE: If you return "logging" cross layer props, it will be merged in appropriately
816
+ * with the normal cross layer props. This can be useful for adding additional IDS.
817
+ *
818
+ * Having said that, NON-"logging" properties, are merged together, and can result in overriding values.
819
+ * @param middleware
820
+ * @returns
821
+ */
822
+ addCrossLayerPropMiddleware: (middleware: CrossLayerPropMiddleware) => void;
506
823
  /**
507
824
  * Starts the MCP server. For HTTP connections, binds an Express app to the
508
825
  * configured port. For CLI connections, connects the stdio transport.
@@ -628,3 +945,4 @@ export type Maybe<T> = Readonly<{
628
945
  /** Returns `true` if a value is present. */
629
946
  hasValue: () => boolean;
630
947
  }>;
948
+ export {};
package/types.js CHANGED
@@ -1,3 +1,29 @@
1
+ import { DatastoreValueType, EqualitySymbol, } from 'functional-models';
2
+ import z from 'zod';
3
+ export const crossLayerPropsSchema = z
4
+ .object({
5
+ logging: z
6
+ .object({
7
+ ids: z
8
+ .array(z
9
+ .record(z.string(), z.string())
10
+ .describe('Each of these are individual objects, that have a key:id pair. Example: "ids": [{"myId":"123"},{"anotherId":"456"}]'))
11
+ .optional(),
12
+ })
13
+ .loose()
14
+ .optional(),
15
+ })
16
+ .loose()
17
+ .describe('CrossLayerProps is an optional argument you can send with NIL MCP tool calls to enable end-to-end tracing across layers (features/services) and across multiple tool invocations. It carries correlation ids that the system logs at each hop so you can stitch together a full execution story.');
18
+ export const jsonAbleSchema = z.lazy(() => z.union([
19
+ z.string(),
20
+ z.number(),
21
+ z.boolean(),
22
+ z.null(),
23
+ z.undefined(),
24
+ z.array(jsonAbleSchema),
25
+ z.record(z.string(), jsonAbleSchema),
26
+ ]));
1
27
  /**
2
28
  * The namespace key used to scope all `@node-in-layers/mcp-server` configuration
3
29
  * inside the system config object.
@@ -13,4 +39,130 @@
13
39
  * ```
14
40
  */
15
41
  export const McpNamespace = '@node-in-layers/mcp-server';
42
+ export var ModelAction;
43
+ (function (ModelAction) {
44
+ ModelAction["Save"] = "save";
45
+ ModelAction["Retrieve"] = "retrieve";
46
+ ModelAction["Delete"] = "delete";
47
+ ModelAction["Search"] = "search";
48
+ ModelAction["BulkInsert"] = "bulkInsert";
49
+ ModelAction["BulkDelete"] = "bulkDelete";
50
+ })(ModelAction || (ModelAction = {}));
51
+ export var ModelActionToolName;
52
+ (function (ModelActionToolName) {
53
+ ModelActionToolName["Save"] = "model_save";
54
+ ModelActionToolName["Retrieve"] = "model_retrieve";
55
+ ModelActionToolName["Delete"] = "model_delete";
56
+ ModelActionToolName["Search"] = "model_search";
57
+ ModelActionToolName["BulkInsert"] = "model_bulk_insert";
58
+ ModelActionToolName["BulkDelete"] = "model_bulk_delete";
59
+ })(ModelActionToolName || (ModelActionToolName = {}));
60
+ export const modelBulkInsertSchema = z.object({
61
+ modelType: z.string(),
62
+ items: z.array(z.object().loose()),
63
+ });
64
+ export const modelRetrieveSchema = z.object({
65
+ modelType: z.string(),
66
+ id: z.string(),
67
+ });
68
+ export const modelDeleteSchema = z.object({
69
+ modelType: z.string(),
70
+ id: z.string(),
71
+ });
72
+ export const searchSchema = z.object({
73
+ take: z.number().int().optional(),
74
+ sort: z
75
+ .object({
76
+ key: z.string(),
77
+ order: z.enum(['asc', 'dsc']),
78
+ })
79
+ .optional(),
80
+ page: jsonAbleSchema.optional(),
81
+ query: z
82
+ .array(z.union([
83
+ z.enum(['AND', 'OR']),
84
+ z.object({
85
+ type: z.literal('property'),
86
+ key: z.string(),
87
+ value: z.any(),
88
+ valueType: z.enum(DatastoreValueType),
89
+ equalitySymbol: z.enum(EqualitySymbol),
90
+ options: z
91
+ .object({
92
+ caseSensitive: z.boolean().optional(),
93
+ startsWith: z.boolean().optional(),
94
+ endsWith: z.boolean().optional(),
95
+ })
96
+ .optional(),
97
+ }),
98
+ z.object({
99
+ type: z.literal('datesAfter'),
100
+ key: z.string(),
101
+ date: z.string(),
102
+ valueType: z.enum(DatastoreValueType),
103
+ options: z
104
+ .object({
105
+ equalToAndAfter: z.boolean().optional(),
106
+ })
107
+ .optional(),
108
+ }),
109
+ z.object({
110
+ type: z.literal('datesBefore'),
111
+ key: z.string(),
112
+ date: z.string(),
113
+ valueType: z.enum(DatastoreValueType),
114
+ options: z
115
+ .object({
116
+ equalToAndBefore: z.boolean().optional(),
117
+ })
118
+ .optional(),
119
+ }),
120
+ ]))
121
+ .optional(),
122
+ });
123
+ export const modelSearchSchema = z.object({
124
+ modelType: z.string(),
125
+ search: searchSchema,
126
+ });
127
+ export const modelBulkDeleteSchema = z.object({
128
+ modelType: z.string(),
129
+ ids: z.array(z.string()),
130
+ });
131
+ export const modelSaveSchema = z.object({
132
+ modelType: z.string(),
133
+ instance: z.object().loose(),
134
+ });
135
+ export const executeModelSchema = z.object({
136
+ toolName: z.enum(ModelActionToolName),
137
+ action: z.enum(ModelAction),
138
+ domain: z.string(),
139
+ modelName: z.string(),
140
+ args: z.xor([
141
+ modelBulkInsertSchema,
142
+ modelRetrieveSchema,
143
+ modelDeleteSchema,
144
+ modelSearchSchema,
145
+ modelBulkDeleteSchema,
146
+ modelSaveSchema,
147
+ ]),
148
+ crossLayerProps: crossLayerPropsSchema.optional(),
149
+ });
150
+ /**
151
+ * Schema for the arguments of a Feature execution.
152
+ * @param argsSchema
153
+ * @returns
154
+ */
155
+ export const executeFeatureSchema = (argsSchema) => z.object({
156
+ toolName: z.literal('execute_feature'),
157
+ domain: z.string().optional(),
158
+ featureName: z.string(),
159
+ args: argsSchema,
160
+ crossLayerProps: crossLayerPropsSchema.optional(),
161
+ });
162
+ export const executeFunctionSchema = z.object({
163
+ toolName: z.string(),
164
+ functionName: z.string(),
165
+ args: z.object().loose(),
166
+ crossLayerProps: crossLayerPropsSchema.optional(),
167
+ });
16
168
  //# sourceMappingURL=types.js.map
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,4BAA4B,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/utils.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import z from 'zod';
1
2
  import { Maybe } from './types.js';
2
3
  /**
3
4
  * Provides a standard way of handling objects that change state.
@@ -19,3 +20,7 @@ export declare const maybe: <T>(_instance: T | undefined) => Readonly<{
19
20
  instance: () => T | undefined;
20
21
  hasValue: () => boolean;
21
22
  }>;
23
+ export declare const zodParse: <T extends object>(schema: z.ZodType<T, unknown, z.z.core.$ZodTypeInternals<T, unknown>>, rawInput: any) => T;
24
+ export declare const checkAndSetDefault: <T extends object>(obj: T, key: string, defaultValue: any) => void;
25
+ export declare const pushArray: <T>(array: T[], item: T) => void;
26
+ export declare const setObjectProperty: <T extends object>(obj: T, key: string, value: any) => void;
package/utils.js CHANGED
@@ -30,4 +30,21 @@ export const maybe = (_instance) => {
30
30
  hasValue,
31
31
  };
32
32
  };
33
+ export const zodParse = (schema, rawInput) => {
34
+ return schema.parse(rawInput);
35
+ };
36
+ export const checkAndSetDefault = (obj, key, defaultValue) => {
37
+ if (!obj[key]) {
38
+ // eslint-disable-next-line functional/immutable-data
39
+ obj[key] = defaultValue;
40
+ }
41
+ };
42
+ export const pushArray = (array, item) => {
43
+ // eslint-disable-next-line functional/immutable-data
44
+ array.push(item);
45
+ };
46
+ export const setObjectProperty = (obj, key, value) => {
47
+ // eslint-disable-next-line functional/immutable-data
48
+ obj[key] = value;
49
+ };
33
50
  //# sourceMappingURL=utils.js.map
package/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAGrB,EAAE;IACH,6CAA6C;IAC7C,IAAI,SAAS,GAAkB,SAAS,CAAA;IAExC,MAAM,GAAG,GAAG,CAAC,KAAQ,EAAE,EAAE;QACvB,SAAS,GAAG,KAAK,CAAA;IACnB,CAAC,CAAA;IAED,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;QAChC,GAAG;KACJ,CAAA;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAI,SAAwB,EAAY,EAAE;IAC7D,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,OAAO,SAAS,KAAK,SAAS,CAAA;IAChC,CAAC,CAAA;IAED,OAAO;QACL,QAAQ;QACR,QAAQ;KACT,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAGrB,EAAE;IACH,6CAA6C;IAC7C,IAAI,SAAS,GAAkB,SAAS,CAAA;IAExC,MAAM,GAAG,GAAG,CAAC,KAAQ,EAAE,EAAE;QACvB,SAAS,GAAG,KAAK,CAAA;IACnB,CAAC,CAAA;IAED,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;QAChC,GAAG;KACJ,CAAA;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAI,SAAwB,EAAY,EAAE;IAC7D,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,OAAO,SAAS,KAAK,SAAS,CAAA;IAChC,CAAC,CAAA;IAED,OAAO;QACL,QAAQ;QACR,QAAQ;KACT,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,MAAoB,EACpB,QAAa,EACV,EAAE;IACL,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;AAC/B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,GAAM,EACN,GAAW,EACX,YAAiB,EACjB,EAAE;IACF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACd,qDAAqD;QACrD,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAA;IACzB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,KAAU,EAAE,IAAO,EAAE,EAAE;IAClD,qDAAqD;IACrD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,GAAM,EACN,GAAW,EACX,KAAU,EACV,EAAE;IACF,qDAAqD;IACrD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAClB,CAAC,CAAA"}