@kellanjs/actioncraft 0.0.2 → 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 (88) hide show
  1. package/README.md +1263 -1
  2. package/dist/actioncraft-error.d.ts +23 -0
  3. package/dist/actioncraft-error.js +60 -0
  4. package/dist/actioncraft-error.js.map +1 -0
  5. package/dist/actioncraft-prev.d.ts +93 -0
  6. package/dist/actioncraft-prev.js +387 -0
  7. package/dist/actioncraft-prev.js.map +1 -0
  8. package/dist/actioncraft.d.ts +94 -40
  9. package/dist/actioncraft.js +337 -68
  10. package/dist/actioncraft.js.map +1 -1
  11. package/dist/api.d.ts +49 -0
  12. package/dist/api.js +84 -0
  13. package/dist/api.js.map +1 -0
  14. package/dist/classes/action-builder.d.ts +59 -0
  15. package/dist/classes/action-builder.js +95 -0
  16. package/dist/classes/action-builder.js.map +1 -0
  17. package/dist/classes/craft-builder.d.ts +66 -0
  18. package/dist/classes/craft-builder.js +129 -0
  19. package/dist/classes/craft-builder.js.map +1 -0
  20. package/dist/classes/crafter.d.ts +66 -0
  21. package/dist/classes/crafter.js +129 -0
  22. package/dist/classes/crafter.js.map +1 -0
  23. package/dist/classes/error.d.ts +23 -0
  24. package/dist/classes/error.js +60 -0
  25. package/dist/classes/error.js.map +1 -0
  26. package/dist/classes/executor/callbacks.d.ts +6 -0
  27. package/dist/classes/executor/callbacks.js +20 -0
  28. package/dist/classes/executor/callbacks.js.map +1 -0
  29. package/dist/classes/executor/errors.d.ts +29 -0
  30. package/dist/classes/executor/errors.js +114 -0
  31. package/dist/classes/executor/errors.js.map +1 -0
  32. package/dist/classes/executor/executor.d.ts +68 -0
  33. package/dist/classes/executor/executor.js +391 -0
  34. package/dist/classes/executor/executor.js.map +1 -0
  35. package/dist/classes/executor/logging.d.ts +2 -0
  36. package/dist/classes/executor/logging.js +8 -0
  37. package/dist/classes/executor/logging.js.map +1 -0
  38. package/dist/classes/executor/transformation.d.ts +17 -0
  39. package/dist/classes/executor/transformation.js +43 -0
  40. package/dist/classes/executor/transformation.js.map +1 -0
  41. package/dist/classes/executor/validation.d.ts +16 -0
  42. package/dist/classes/executor/validation.js +70 -0
  43. package/dist/classes/executor/validation.js.map +1 -0
  44. package/dist/classes/executor.d.ts +64 -0
  45. package/dist/classes/executor.js +354 -0
  46. package/dist/classes/executor.js.map +1 -0
  47. package/dist/classes/internal.d.ts +10 -0
  48. package/dist/classes/internal.js +5 -0
  49. package/dist/classes/internal.js.map +1 -0
  50. package/dist/core/errors.d.ts +2 -2
  51. package/dist/core/errors.js +5 -5
  52. package/dist/core/errors.js.map +1 -1
  53. package/dist/core/logging.d.ts +1 -1
  54. package/dist/core/transformation.d.ts +2 -2
  55. package/dist/core/validation.d.ts +4 -4
  56. package/dist/core/validation.js +14 -14
  57. package/dist/core/validation.js.map +1 -1
  58. package/dist/craft.d.ts +29 -0
  59. package/dist/craft.js +62 -0
  60. package/dist/craft.js.map +1 -0
  61. package/dist/error.d.ts +21 -6
  62. package/dist/error.js +59 -10
  63. package/dist/error.js.map +1 -1
  64. package/dist/index.d.ts +4 -3
  65. package/dist/index.js +4 -3
  66. package/dist/index.js.map +1 -1
  67. package/dist/initial.d.ts +14 -0
  68. package/dist/initial.js +47 -0
  69. package/dist/initial.js.map +1 -0
  70. package/dist/types/actions.d.ts +67 -25
  71. package/dist/types/builder.d.ts +92 -0
  72. package/dist/types/builder.js +2 -0
  73. package/dist/types/builder.js.map +1 -0
  74. package/dist/types/config.d.ts +4 -0
  75. package/dist/types/crafter.d.ts +87 -0
  76. package/dist/types/crafter.js +2 -0
  77. package/dist/types/crafter.js.map +1 -0
  78. package/dist/types/errors.d.ts +26 -18
  79. package/dist/types/inference.d.ts +41 -8
  80. package/dist/types/result.d.ts +8 -14
  81. package/dist/types/result.js +36 -4
  82. package/dist/types/result.js.map +1 -1
  83. package/dist/types/schemas.d.ts +7 -7
  84. package/dist/types/shared.d.ts +17 -7
  85. package/dist/utils.d.ts +30 -6
  86. package/dist/utils.js +68 -8
  87. package/dist/utils.js.map +1 -1
  88. package/package.json +3 -3
@@ -0,0 +1,354 @@
1
+ import { safeExecuteCallback } from "../core/callbacks.js";
2
+ import { createUnhandledErrorResult, createImplicitReturnErrorResult, } from "../core/errors.js";
3
+ import { log } from "../core/logging.js";
4
+ import { serializeRawInput, convertToClientError, } from "../core/transformation.js";
5
+ import { validateInput, validateBindArgs, validateOutput, } from "../core/validation.js";
6
+ import {} from "../types/errors.js";
7
+ import { err, isOk, isResultOk, isResultErr, isErr } from "../types/result.js";
8
+ import { INTERNAL } from "./internal.js";
9
+ import { unstable_rethrow } from "next/navigation.js";
10
+ // ============================================================================
11
+ // EXECUTOR CLASS - Build and execute your action
12
+ // ============================================================================
13
+ export class Executor {
14
+ _config;
15
+ _schemas;
16
+ _errors;
17
+ _callbacks;
18
+ _handler;
19
+ _actionId;
20
+ constructor(crafter) {
21
+ this._config = crafter[INTERNAL]().config;
22
+ this._schemas = crafter[INTERNAL]().schemas;
23
+ this._errors = crafter[INTERNAL]().errors;
24
+ this._callbacks = crafter[INTERNAL]().callbacks;
25
+ this._handler = crafter[INTERNAL]().handler;
26
+ }
27
+ /**
28
+ * Builds and returns the final executable server action.
29
+ */
30
+ craft() {
31
+ if (!this._handler) {
32
+ throw new Error("A handler implementation is required");
33
+ }
34
+ // Generate a unique ID for this action instance
35
+ this._actionId = this._generateActionId();
36
+ const craftedAction = (...args) => {
37
+ return this._runAction(args);
38
+ };
39
+ // Attach the action's config and ID for runtime inspection
40
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
+ craftedAction.__ac_config = this._config;
42
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
+ craftedAction.__ac_id = this._actionId;
44
+ return craftedAction;
45
+ }
46
+ /**
47
+ * Generates a unique identifier for this action instance.
48
+ */
49
+ _generateActionId() {
50
+ return crypto.randomUUID();
51
+ }
52
+ // --------------------------------------------------------------------------
53
+ // ACTION EXECUTION
54
+ // --------------------------------------------------------------------------
55
+ /**
56
+ * Orchestrates action execution (validation, business logic, callbacks, and result formatting.)
57
+ */
58
+ async _runAction(args) {
59
+ // We know these exist because craft() creates/verifies them
60
+ const handler = this._handler;
61
+ const actionId = this._actionId;
62
+ // Extract bindArgs, prevState, and input from the raw args
63
+ const { bindArgs: rawBindArgs, prevState, input: rawInput, } = this._extractActionArgs(args);
64
+ // Check for custom error handler
65
+ const handleThrownErrorFn = this._config.handleThrownError
66
+ ? (error) => err(this._config.handleThrownError(error), actionId)
67
+ : null;
68
+ // Track validation state for error handling
69
+ let validatedInput = undefined;
70
+ let validatedBindArgs = undefined;
71
+ try {
72
+ // Execute onStart callback before any processing
73
+ await this._executeOnStartCallback({
74
+ rawInput,
75
+ rawBindArgs,
76
+ prevState,
77
+ validatedInput: undefined,
78
+ validatedBindArgs: undefined,
79
+ actionId,
80
+ });
81
+ // Validate input and return on failure
82
+ const inputValidation = await this._validateInput(rawInput);
83
+ if (!isOk(inputValidation)) {
84
+ await this._executeResultCallbacks(inputValidation, {
85
+ rawInput,
86
+ rawBindArgs,
87
+ prevState,
88
+ validatedInput,
89
+ validatedBindArgs,
90
+ actionId,
91
+ });
92
+ return this._toActionResult(inputValidation, rawInput);
93
+ }
94
+ // Update validation state
95
+ validatedInput = inputValidation.value;
96
+ // Validate bound arguments and return on failure
97
+ const bindArgsValidation = await this._validateBindArgs(rawBindArgs);
98
+ if (!isOk(bindArgsValidation)) {
99
+ await this._executeResultCallbacks(bindArgsValidation, {
100
+ rawInput,
101
+ rawBindArgs,
102
+ prevState,
103
+ validatedInput,
104
+ validatedBindArgs,
105
+ actionId,
106
+ });
107
+ return this._toActionResult(bindArgsValidation, rawInput);
108
+ }
109
+ // Update validation state
110
+ validatedBindArgs = bindArgsValidation.value;
111
+ // Execute the user's action handler
112
+ const handlerResult = await handler({
113
+ input: inputValidation.value,
114
+ bindArgs: bindArgsValidation.value,
115
+ errors: this._buildErrorFunctions(),
116
+ metadata: {
117
+ rawInput,
118
+ rawBindArgs,
119
+ prevState,
120
+ actionId,
121
+ },
122
+ });
123
+ // Return on `undefined` (implicit return error)
124
+ if (handlerResult === undefined) {
125
+ const implicitReturnError = createImplicitReturnErrorResult(actionId);
126
+ await this._executeResultCallbacks(implicitReturnError, {
127
+ rawInput,
128
+ rawBindArgs,
129
+ prevState,
130
+ validatedInput,
131
+ validatedBindArgs,
132
+ actionId,
133
+ });
134
+ return this._toActionResult(implicitReturnError, rawInput);
135
+ }
136
+ let finalResult;
137
+ // Process different return types from the action
138
+ if (isResultErr(handlerResult)) {
139
+ // Ensure error result has correct action ID
140
+ finalResult = this._ensureResultActionId(handlerResult);
141
+ }
142
+ else {
143
+ const outputData = isResultOk(handlerResult)
144
+ ? handlerResult.value
145
+ : handlerResult;
146
+ finalResult = await this._validateOutput(outputData);
147
+ }
148
+ // Execute callbacks and return final result
149
+ await this._executeResultCallbacks(finalResult, {
150
+ rawInput,
151
+ rawBindArgs,
152
+ prevState,
153
+ validatedInput,
154
+ validatedBindArgs,
155
+ actionId,
156
+ });
157
+ // Use validated input for the values field on a successful run
158
+ const inputForValues = isOk(finalResult)
159
+ ? this._schemas.inputSchema
160
+ ? inputValidation.value
161
+ : rawInput
162
+ : rawInput;
163
+ return this._toActionResult(finalResult, inputForValues);
164
+ }
165
+ catch (error) {
166
+ // Re-throw Next.js framework errors
167
+ unstable_rethrow(error);
168
+ // Handle unexpected thrown errors
169
+ try {
170
+ const errorResult = this._handleThrownError(error, handleThrownErrorFn);
171
+ await this._executeResultCallbacks(errorResult, {
172
+ rawInput,
173
+ rawBindArgs,
174
+ prevState,
175
+ validatedInput,
176
+ validatedBindArgs,
177
+ actionId,
178
+ });
179
+ return this._toActionResult(errorResult, rawInput);
180
+ }
181
+ catch (handlerError) {
182
+ // If we catch another error here, then we're done
183
+ log(this._config.logger, "warn", "Error handling failure - both primary error and error handler threw", { primaryError: error, handlerError });
184
+ return this._toActionResult(createUnhandledErrorResult(actionId), rawInput);
185
+ }
186
+ }
187
+ }
188
+ /**
189
+ * Extracts bind arguments, previous state, and input from raw action arguments.
190
+ */
191
+ _extractActionArgs(args) {
192
+ const numBindSchemas = this._schemas.bindSchemas?.length ?? 0;
193
+ if (this._config.useActionState) {
194
+ return {
195
+ bindArgs: args.slice(0, numBindSchemas),
196
+ prevState: args[numBindSchemas],
197
+ input: args[numBindSchemas + 1],
198
+ };
199
+ }
200
+ // For regular actions (non-useActionState), the input is the first argument after bind args
201
+ // If there are no bind schemas, the input is the first argument (args[0])
202
+ return {
203
+ bindArgs: args.slice(0, numBindSchemas),
204
+ // When useActionState is disabled the prevState parameter is never
205
+ // present, so we cast to never (or undefined) to satisfy the type.
206
+ prevState: undefined,
207
+ input: args[numBindSchemas],
208
+ };
209
+ }
210
+ // --------------------------------------------------------------------------
211
+ // RESULT TRANSFORMATION
212
+ // --------------------------------------------------------------------------
213
+ /**
214
+ * Transforms internal Result objects to client-facing action result format.
215
+ */
216
+ _toActionResult(result, inputForValues) {
217
+ // Convert internal errors to client-facing errors
218
+ const clientResult = isOk(result)
219
+ ? result
220
+ : err(convertToClientError(result.error), this._actionId);
221
+ // Handle useActionState format (always returns StatefulApiResult)
222
+ if (this._config.useActionState) {
223
+ if (isOk(clientResult)) {
224
+ const successValues = this._schemas.inputSchema
225
+ ? inputForValues
226
+ : serializeRawInput(inputForValues);
227
+ return {
228
+ success: true,
229
+ data: clientResult.value,
230
+ values: successValues,
231
+ __ac_id: this._actionId,
232
+ };
233
+ }
234
+ return {
235
+ success: false,
236
+ error: clientResult.error,
237
+ values: serializeRawInput(inputForValues),
238
+ __ac_id: this._actionId,
239
+ };
240
+ }
241
+ const format = this._config.resultFormat ?? "api";
242
+ // Return functional format if configured
243
+ if (format === "functional") {
244
+ return clientResult;
245
+ }
246
+ // Default API format
247
+ if (isOk(clientResult)) {
248
+ return {
249
+ success: true,
250
+ data: clientResult.value,
251
+ __ac_id: this._actionId,
252
+ };
253
+ }
254
+ return {
255
+ success: false,
256
+ error: clientResult.error,
257
+ __ac_id: this._actionId,
258
+ };
259
+ }
260
+ // --------------------------------------------------------------------------
261
+ // ERROR HANDLING
262
+ // --------------------------------------------------------------------------
263
+ /**
264
+ * Handles uncaught exceptions during action execution.
265
+ */
266
+ _handleThrownError(error, customHandler) {
267
+ const caughtErrorResult = customHandler
268
+ ? customHandler(error)
269
+ : createUnhandledErrorResult(this._actionId);
270
+ return caughtErrorResult;
271
+ }
272
+ // --------------------------------------------------------------------------
273
+ // VALIDATION
274
+ // --------------------------------------------------------------------------
275
+ /**
276
+ * Validates input using the shared helper.
277
+ */
278
+ _validateInput(rawInput) {
279
+ return validateInput(this._schemas, this._config, rawInput, this._actionId);
280
+ }
281
+ /**
282
+ * Validates bound arguments using the configured bind schemas.
283
+ */
284
+ _validateBindArgs(bindArgs) {
285
+ return validateBindArgs(this._schemas, this._config, bindArgs, this._actionId);
286
+ }
287
+ /**
288
+ * Validates output data using the configured output schema.
289
+ */
290
+ _validateOutput(data) {
291
+ return validateOutput(this._schemas, this._config, data, this._actionId);
292
+ }
293
+ // --------------------------------------------------------------------------
294
+ // CALLBACKS
295
+ // --------------------------------------------------------------------------
296
+ /**
297
+ * Executes the onStart callback if defined.
298
+ */
299
+ async _executeOnStartCallback(metadata) {
300
+ const callbacks = this._callbacks;
301
+ if (callbacks.onStart) {
302
+ await safeExecuteCallback(() => callbacks.onStart({ metadata }), "onStart", (level, msg, details) => log(this._config.logger, level, msg, details));
303
+ }
304
+ }
305
+ /**
306
+ * Executes result-based lifecycle callbacks (onSuccess, onError, onSettled).
307
+ */
308
+ async _executeResultCallbacks(result, metadata) {
309
+ const callbacks = this._callbacks;
310
+ // Success path
311
+ if (isOk(result)) {
312
+ await safeExecuteCallback(callbacks.onSuccess
313
+ ? () => callbacks.onSuccess({ data: result.value, metadata })
314
+ : undefined, "onSuccess", (level, msg, details) => log(this._config.logger, level, msg, details));
315
+ }
316
+ // Error path
317
+ if (isErr(result)) {
318
+ await safeExecuteCallback(callbacks.onError
319
+ ? () => callbacks.onError({ error: result.error, metadata })
320
+ : undefined, "onError", (level, msg, details) => log(this._config.logger, level, msg, details));
321
+ }
322
+ // onSettled always runs, regardless of result
323
+ const finalResult = this._toActionResult(result);
324
+ await safeExecuteCallback(callbacks.onSettled
325
+ ? () => callbacks.onSettled({ result: finalResult, metadata })
326
+ : undefined, "onSettled", (level, msg, details) => log(this._config.logger, level, msg, details));
327
+ }
328
+ // --------------------------------------------------------------------------
329
+ // UTILITY METHODS
330
+ // --------------------------------------------------------------------------
331
+ /**
332
+ * Ensures a Result object has the correct action ID.
333
+ */
334
+ _ensureResultActionId(result) {
335
+ if (!result.__ac_id || result.__ac_id === "unknown") {
336
+ return {
337
+ ...result,
338
+ __ac_id: this._actionId,
339
+ };
340
+ }
341
+ return result;
342
+ }
343
+ /**
344
+ * Creates error functions that return a Result object when called by the action handler.
345
+ */
346
+ _buildErrorFunctions() {
347
+ const errorFns = {};
348
+ for (const [key, errorDefFn] of Object.entries(this._errors)) {
349
+ errorFns[key] = ((...args) => err(errorDefFn(...args), this._actionId));
350
+ }
351
+ return errorFns;
352
+ }
353
+ }
354
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/classes/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Handler } from "../types/actions.js";
2
+ import type { Config, Schemas, Errors, Callbacks } from "../types/builder.js";
3
+ export declare const INTERNAL: unique symbol;
4
+ export interface CrafterInternals<TConfig extends Config, TSchemas extends Schemas, TErrors extends Errors, TCallbacks extends Callbacks<TConfig, TSchemas, TErrors, TData>, TData> {
5
+ config: TConfig;
6
+ schemas: TSchemas;
7
+ errors: TErrors;
8
+ callbacks: TCallbacks;
9
+ handler?: Handler<TConfig, TSchemas, TErrors, TData>;
10
+ }
@@ -0,0 +1,5 @@
1
+ // ============================================================================
2
+ // INTERNAL INTERFACE FOR CRAFTER-EXECUTOR COMMUNICATION
3
+ // ============================================================================
4
+ export const INTERNAL = Symbol("INTERNAL");
5
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/classes/internal.ts"],"names":[],"mappings":"AAGA,+EAA+E;AAC/E,wDAAwD;AACxD,+EAA+E;AAE/E,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC"}
@@ -11,11 +11,11 @@ export declare const createInternalLogicError: (message: string) => InternalLogi
11
11
  /**
12
12
  * Creates Result objects for unhandled errors.
13
13
  */
14
- export declare function createUnhandledErrorResult<TData = never, TError = UnhandledError>(): Result<TData, TError>;
14
+ export declare function createUnhandledErrorResult<TData = never, TError = UnhandledError>(actionId: string): Result<TData, TError>;
15
15
  /**
16
16
  * Creates Result objects for implicit return errors.
17
17
  */
18
- export declare function createImplicitReturnErrorResult<TData = never, TError = ImplicitReturnError>(): Result<TData, TError>;
18
+ export declare function createImplicitReturnErrorResult<TData = never, TError = ImplicitReturnError>(actionId: string): Result<TData, TError>;
19
19
  /**
20
20
  * Formats validation issues into structured error objects based on the configured format.
21
21
  */
@@ -9,7 +9,7 @@ export const UNHANDLED_ERROR = {
9
9
  };
10
10
  export const IMPLICIT_RETURN_ERROR = {
11
11
  type: INTERNAL_ERROR_TYPES.IMPLICIT_RETURN,
12
- message: "Action implementation must return a value",
12
+ message: "Action handler must return a value",
13
13
  };
14
14
  // ===========================================================================
15
15
  // FACTORY HELPERS
@@ -24,14 +24,14 @@ export const createInternalLogicError = (message) => ({
24
24
  /**
25
25
  * Creates Result objects for unhandled errors.
26
26
  */
27
- export function createUnhandledErrorResult() {
28
- return err({ ...UNHANDLED_ERROR });
27
+ export function createUnhandledErrorResult(actionId) {
28
+ return err({ ...UNHANDLED_ERROR }, actionId);
29
29
  }
30
30
  /**
31
31
  * Creates Result objects for implicit return errors.
32
32
  */
33
- export function createImplicitReturnErrorResult() {
34
- return err({ ...IMPLICIT_RETURN_ERROR });
33
+ export function createImplicitReturnErrorResult(actionId) {
34
+ return err({ ...IMPLICIT_RETURN_ERROR }, actionId);
35
35
  }
36
36
  // ===========================================================================
37
37
  // VALIDATION-ERROR STRUCTURING HELPERS
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAQhF,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C,IAAI,EAAE,oBAAoB,CAAC,SAAS;IACpC,OAAO,EAAE,6BAA6B;CAC9B,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAwB;IACxD,IAAI,EAAE,oBAAoB,CAAC,eAAe;IAC1C,OAAO,EAAE,oCAAoC;CACrC,CAAC;AAEX,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,OAAe,EACK,EAAE,CAAC,CAAC;IACxB,IAAI,EAAE,oBAAoB,CAAC,cAAc;IACzC,OAAO;CACR,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAGxC,QAAgB;IAChB,OAAO,GAAG,CAAC,EAAE,GAAG,eAAe,EAAE,EAAE,QAAQ,CAA0B,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAG7C,QAAgB;IAChB,OAAO,GAAG,CAAC,EAAE,GAAG,qBAAqB,EAAE,EAAE,QAAQ,CAA0B,CAAC;AAC9E,CAAC;AAED,8EAA8E;AAC9E,uCAAuC;AACvC,8EAA8E;AAE9E;;GAEG;AACH,SAAS,cAAc,CACrB,IAAgE;IAEhE,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAElD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;YACxE,MAAM,GAAG,GAAI,OAAwC,CAAC,GAAG,CAAC;YAC1D,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,GAAuB,CAAC;QACxE,CAAC;QAED,OAAO,OAA0B,CAAC;IACpC,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAwB,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAyC,EACzC,MAA8B;IAE9B,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,WAAW,GAAiC,EAAE,CAAC;QAErD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAE/C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;oBAAE,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACrD,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;IACrC,CAAC;IAED,yBAAyB;IACzB,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;YAC1B,OAAO;SACR,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAWD,SAAS,8BAA8B,CACrC,IAAyB,EACzB,OAAe,EACf,MAAwD;IAExD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAY,CAAC;AAC7C,CAAC;AAED,SAAS,2BAA2B,CAClC,IAAyB,EACzB,OAAe,EACf,UAAoB,EACpB,WAAqC;IAErC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAY,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAyB,EACzB,OAAe,EACf,cAAqC;IAErC,IAAI,QAAQ,IAAI,cAAc,EAAE,CAAC;QAC/B,OAAO,8BAA8B,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,2BAA2B,CAChC,IAAI,EACJ,OAAO,EACP,cAAc,CAAC,UAAU,EACzB,cAAc,CAAC,WAAW,CAC3B,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { CrafterConfig } from "../types/config.js";
1
+ import type { CrafterConfig } from "../types/crafter.js";
2
2
  /**
3
3
  * Lightweight wrapper around the optional logger in `CrafterConfig`.
4
4
  */
@@ -1,6 +1,6 @@
1
1
  import type { InferSerializedErrorValues } from "../types/actions.js";
2
- import type { CrafterSchemas } from "../types/config.js";
3
- import type { CrafterConfig, CrafterErrors } from "../types/config.js";
2
+ import type { CrafterSchemas } from "../types/crafter.js";
3
+ import type { CrafterConfig, CrafterErrors } from "../types/crafter.js";
4
4
  import type { PossibleErrors, AllPossibleErrors } from "../types/errors.js";
5
5
  import type { InferRawInput, InferValidatedInput } from "../types/schemas.js";
6
6
  /**
@@ -1,16 +1,16 @@
1
- import type { CrafterConfig, CrafterSchemas, CrafterErrors } from "../types/config.js";
1
+ import type { CrafterConfig, CrafterSchemas, CrafterErrors } from "../types/crafter.js";
2
2
  import type { AllPossibleErrors } from "../types/errors.js";
3
3
  import type { Result } from "../types/result.js";
4
4
  import type { InferValidatedInput, InferRawInput, InferValidatedBindArgs, InferRawBindArgs } from "../types/schemas.js";
5
5
  /**
6
6
  * Validate input using the configured input schema.
7
7
  */
8
- export declare function validateInput<TConfig extends CrafterConfig, TSchemas extends CrafterSchemas, TErrors extends CrafterErrors>(schemas: TSchemas, config: TConfig, rawInput: InferRawInput<TSchemas> | undefined): Promise<Result<InferValidatedInput<TSchemas>, AllPossibleErrors<TErrors, TConfig, TSchemas>>>;
8
+ export declare function validateInput<TConfig extends CrafterConfig, TSchemas extends CrafterSchemas, TErrors extends CrafterErrors>(schemas: TSchemas, config: TConfig, rawInput: InferRawInput<TSchemas> | undefined, actionId: string): Promise<Result<InferValidatedInput<TSchemas>, AllPossibleErrors<TErrors, TConfig, TSchemas>>>;
9
9
  /**
10
10
  * Validate bound arguments using configured bind schemas.
11
11
  */
12
- export declare function validateBindArgs<TConfig extends CrafterConfig, TSchemas extends CrafterSchemas, TErrors extends CrafterErrors>(schemas: TSchemas, config: TConfig, bindArgs: InferRawBindArgs<TSchemas>): Promise<Result<InferValidatedBindArgs<TSchemas>, AllPossibleErrors<TErrors, TConfig, TSchemas>>>;
12
+ export declare function validateBindArgs<TConfig extends CrafterConfig, TSchemas extends CrafterSchemas, TErrors extends CrafterErrors>(schemas: TSchemas, config: TConfig, bindArgs: InferRawBindArgs<TSchemas>, actionId: string): Promise<Result<InferValidatedBindArgs<TSchemas>, AllPossibleErrors<TErrors, TConfig, TSchemas>>>;
13
13
  /**
14
14
  * Validate action output using configured output schema.
15
15
  */
16
- export declare function validateOutput<TConfig extends CrafterConfig, TSchemas extends CrafterSchemas, TErrors extends CrafterErrors, TData>(schemas: TSchemas, config: TConfig, data: TData): Promise<Result<TData, AllPossibleErrors<TErrors, TConfig, TSchemas>>>;
16
+ export declare function validateOutput<TConfig extends CrafterConfig, TSchemas extends CrafterSchemas, TErrors extends CrafterErrors, TData>(schemas: TSchemas, config: TConfig, data: TData, actionId: string): Promise<Result<TData, AllPossibleErrors<TErrors, TConfig, TSchemas>>>;
@@ -5,30 +5,30 @@ import { createValidationError, createInternalLogicError, formatValidationIssues
5
5
  /**
6
6
  * Validate input using the configured input schema.
7
7
  */
8
- export async function validateInput(schemas, config, rawInput) {
8
+ export async function validateInput(schemas, config, rawInput, actionId) {
9
9
  if (!schemas.inputSchema) {
10
- return ok(undefined);
10
+ return ok(undefined, actionId);
11
11
  }
12
12
  const result = await standardParse(schemas.inputSchema, rawInput);
13
13
  if (Array.isArray(result.issues) && result.issues.length > 0) {
14
14
  const format = config.validationErrorFormat ?? "flattened";
15
15
  const baseError = formatValidationIssues(result.issues, format);
16
16
  const inputValidationError = createValidationError(EXTERNAL_ERROR_TYPES.INPUT_VALIDATION, "Input validation failed", baseError);
17
- return err(inputValidationError);
17
+ return err(inputValidationError, actionId);
18
18
  }
19
19
  if (!result.issues && "value" in result) {
20
- return ok(result.value);
20
+ return ok(result.value, actionId);
21
21
  }
22
22
  // Should never happen
23
23
  const logicErr = createInternalLogicError("Unexpected validation state in input validation: neither success nor failure");
24
- return err(logicErr);
24
+ return err(logicErr, actionId);
25
25
  }
26
26
  /**
27
27
  * Validate bound arguments using configured bind schemas.
28
28
  */
29
- export async function validateBindArgs(schemas, config, bindArgs) {
29
+ export async function validateBindArgs(schemas, config, bindArgs, actionId) {
30
30
  if (!schemas.bindSchemas) {
31
- return ok([]);
31
+ return ok([], actionId);
32
32
  }
33
33
  const validated = [];
34
34
  for (let i = 0; i < schemas.bindSchemas.length; i++) {
@@ -39,32 +39,32 @@ export async function validateBindArgs(schemas, config, bindArgs) {
39
39
  const format = config.validationErrorFormat ?? "flattened";
40
40
  const baseError = formatValidationIssues(result.issues, format);
41
41
  const bindError = createValidationError(EXTERNAL_ERROR_TYPES.BIND_ARGS_VALIDATION, "Bind arguments validation failed", baseError);
42
- return err(bindError);
42
+ return err(bindError, actionId);
43
43
  }
44
44
  if ("value" in result) {
45
45
  validated.push(result.value);
46
46
  }
47
47
  }
48
- return ok(validated);
48
+ return ok(validated, actionId);
49
49
  }
50
50
  /**
51
51
  * Validate action output using configured output schema.
52
52
  */
53
- export async function validateOutput(schemas, config, data) {
53
+ export async function validateOutput(schemas, config, data, actionId) {
54
54
  if (!schemas.outputSchema) {
55
- return ok(data);
55
+ return ok(data, actionId);
56
56
  }
57
57
  const result = await standardParse(schemas.outputSchema, data);
58
58
  if (Array.isArray(result.issues) && result.issues.length > 0) {
59
59
  const format = config.validationErrorFormat ?? "flattened";
60
60
  const baseError = formatValidationIssues(result.issues, format);
61
61
  const outputError = createValidationError(INTERNAL_ERROR_TYPES.OUTPUT_VALIDATION, "Output validation failed", baseError);
62
- return err(outputError);
62
+ return err(outputError, actionId);
63
63
  }
64
64
  if (!result.issues && "value" in result) {
65
- return ok(result.value);
65
+ return ok(result.value, actionId);
66
66
  }
67
67
  const logicErr = createInternalLogicError("Unexpected validation state in output validation: neither success nor failure");
68
- return err(logicErr);
68
+ return err(logicErr, actionId);
69
69
  }
70
70
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/core/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAMtD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAQhF,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAO7C,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAKjC,OAAiB,EACjB,MAAe,EACf,QAA6C;IAO7C,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC,SAA0C,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAElE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,qBAAqB,IAAI,WAAW,CAAC;QAC3D,MAAM,SAAS,GAAG,sBAAsB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEhE,MAAM,oBAAoB,GAAG,qBAAqB,CAGhD,oBAAoB,CAAC,gBAAgB,EACrC,yBAAyB,EACzB,SAAS,CACV,CAAC;QAEF,OAAO,GAAG,CAAC,oBAAoB,CAG9B,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC,MAAM,CAAC,KAAsC,CAAC,CAAC;IAC3D,CAAC;IAED,sBAAsB;IACtB,MAAM,QAAQ,GAAG,wBAAwB,CACvC,8EAA8E,CAC/E,CAAC;IACF,OAAO,GAAG,CAAC,QAAQ,CAGlB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAKpC,OAAiB,EACjB,MAAe,EACf,QAAoC;IAOpC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC,EAAsC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,SAAS,GAAc,EAAE,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;QACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAEhD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,qBAAqB,IAAI,WAAW,CAAC;YAC3D,MAAM,SAAS,GAAG,sBAAsB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAEhE,MAAM,SAAS,GAAG,qBAAqB,CAGrC,oBAAoB,CAAC,oBAAoB,EACzC,kCAAkC,EAClC,SAAS,CACV,CAAC;YAEF,OAAO,GAAG,CAAC,SAAS,CAGnB,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC,SAA6C,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAMlC,OAAiB,EACjB,MAAe,EACf,IAAW;IAEX,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAE/D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,qBAAqB,IAAI,WAAW,CAAC;QAC3D,MAAM,SAAS,GAAG,sBAAsB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEhE,MAAM,WAAW,GAAG,qBAAqB,CAGvC,oBAAoB,CAAC,iBAAiB,EACtC,0BAA0B,EAC1B,SAAS,CACV,CAAC;QAEF,OAAO,GAAG,CAAC,WAAW,CAGrB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC,MAAM,CAAC,KAAc,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,QAAQ,GAAG,wBAAwB,CACvC,+EAA+E,CAChF,CAAC;IACF,OAAO,GAAG,CAAC,QAAQ,CAGlB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/core/validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { Crafter } from "./classes/crafter.js";
2
+ import type { CraftedAction } from "./types/actions.js";
3
+ import type { CrafterConfig, CrafterSchemas, CrafterErrors, CrafterCallbacks } from "./types/crafter.js";
4
+ /**
5
+ * Represents the function that the user passes to `craft()` in order to build an action.
6
+ */
7
+ type CraftFn<TConfig extends CrafterConfig, TSchemas extends CrafterSchemas, TErrors extends CrafterErrors, TCallbacks extends CrafterCallbacks<TConfig, TSchemas, TErrors, TData>, TData> = (crafter: Crafter<CrafterConfig, Record<string, never>, Record<string, never>, Record<string, never>, unknown>) => Crafter<TConfig, TSchemas, TErrors, TCallbacks, TData> | Promise<Crafter<TConfig, TSchemas, TErrors, TCallbacks, TData>>;
8
+ /**
9
+ * One of two entry points to the Actioncraft system.
10
+ * It provides you with an empty Crafter instance on which you can call any of the fluent
11
+ * Crafter methods to configure and define your action.
12
+ *
13
+ * Example Usage:
14
+ * ```ts
15
+ * const myAction = craft(async (action) => {
16
+ * return action
17
+ * .config(...)
18
+ * .schemas(...)
19
+ * .errors(...)
20
+ * .handler(...)
21
+ * .callbacks(...)
22
+ * });
23
+ * ```
24
+ *
25
+ * @param craftFn - The function that the user passes to `craft()` in order to build an action.
26
+ * @returns The fully-typed server action function that can be used in your app.
27
+ */
28
+ export declare function craft<TConfig extends CrafterConfig, TSchemas extends CrafterSchemas, TErrors extends CrafterErrors, TCallbacks extends CrafterCallbacks<TConfig, TSchemas, TErrors, TData>, TData>(craftFn: CraftFn<TConfig, TSchemas, TErrors, TCallbacks, TData>): CraftedAction<TConfig, TSchemas, TErrors, TData>;
29
+ export {};