@imolko/ultra-v8n 1.0.1-beta
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/README.md +1 -0
- package/dist-browser/errors/builtin-codes.d.ts +51 -0
- package/dist-browser/errors/builtin-codes.d.ts.map +1 -0
- package/dist-browser/errors/builtin-codes.js +60 -0
- package/dist-browser/errors/builtin-codes.js.map +1 -0
- package/dist-browser/errors/builtin.errors.d.ts +243 -0
- package/dist-browser/errors/builtin.errors.d.ts.map +1 -0
- package/dist-browser/errors/builtin.errors.js +106 -0
- package/dist-browser/errors/builtin.errors.js.map +1 -0
- package/dist-browser/errors/index.d.ts +11 -0
- package/dist-browser/errors/index.d.ts.map +1 -0
- package/dist-browser/errors/index.js +11 -0
- package/dist-browser/errors/index.js.map +1 -0
- package/dist-browser/errors/parse-error.decorator.d.ts +19 -0
- package/dist-browser/errors/parse-error.decorator.d.ts.map +1 -0
- package/dist-browser/errors/parse-error.decorator.js +45 -0
- package/dist-browser/errors/parse-error.decorator.js.map +1 -0
- package/dist-browser/errors/v8n-built-in-parse-error-class-factory.d.ts +15 -0
- package/dist-browser/errors/v8n-built-in-parse-error-class-factory.d.ts.map +1 -0
- package/dist-browser/errors/v8n-built-in-parse-error-class-factory.js +5 -0
- package/dist-browser/errors/v8n-built-in-parse-error-class-factory.js.map +1 -0
- package/dist-browser/errors/v8n-custom-parse-error-class-factory.d.ts +15 -0
- package/dist-browser/errors/v8n-custom-parse-error-class-factory.d.ts.map +1 -0
- package/dist-browser/errors/v8n-custom-parse-error-class-factory.js +5 -0
- package/dist-browser/errors/v8n-custom-parse-error-class-factory.js.map +1 -0
- package/dist-browser/errors/v8n-issue-integration.d.ts +7 -0
- package/dist-browser/errors/v8n-issue-integration.d.ts.map +1 -0
- package/dist-browser/errors/v8n-issue-integration.js +2 -0
- package/dist-browser/errors/v8n-issue-integration.js.map +1 -0
- package/dist-browser/errors/v8n-issue-params.d.ts +7 -0
- package/dist-browser/errors/v8n-issue-params.d.ts.map +1 -0
- package/dist-browser/errors/v8n-issue-params.js +2 -0
- package/dist-browser/errors/v8n-issue-params.js.map +1 -0
- package/dist-browser/errors/v8n-issue.d.ts +16 -0
- package/dist-browser/errors/v8n-issue.d.ts.map +1 -0
- package/dist-browser/errors/v8n-issue.js +2 -0
- package/dist-browser/errors/v8n-issue.js.map +1 -0
- package/dist-browser/errors/v8n-parse-base-error.d.ts +9 -0
- package/dist-browser/errors/v8n-parse-base-error.d.ts.map +1 -0
- package/dist-browser/errors/v8n-parse-base-error.js +28 -0
- package/dist-browser/errors/v8n-parse-base-error.js.map +1 -0
- package/dist-browser/errors/v8n-parser-error-class-factory.d.ts +35 -0
- package/dist-browser/errors/v8n-parser-error-class-factory.d.ts.map +1 -0
- package/dist-browser/errors/v8n-parser-error-class-factory.js +48 -0
- package/dist-browser/errors/v8n-parser-error-class-factory.js.map +1 -0
- package/dist-browser/index.d.ts +7 -0
- package/dist-browser/index.d.ts.map +1 -0
- package/dist-browser/index.js +7 -0
- package/dist-browser/index.js.map +1 -0
- package/dist-browser/utils/convert-zod-issue-to-v8n-error.d.ts +11 -0
- package/dist-browser/utils/convert-zod-issue-to-v8n-error.d.ts.map +1 -0
- package/dist-browser/utils/convert-zod-issue-to-v8n-error.js +89 -0
- package/dist-browser/utils/convert-zod-issue-to-v8n-error.js.map +1 -0
- package/dist-browser/utils/index.d.ts +3 -0
- package/dist-browser/utils/index.d.ts.map +1 -0
- package/dist-browser/utils/index.js +3 -0
- package/dist-browser/utils/index.js.map +1 -0
- package/dist-browser/utils/is-object-json.d.ts +8 -0
- package/dist-browser/utils/is-object-json.d.ts.map +1 -0
- package/dist-browser/utils/is-object-json.js +16 -0
- package/dist-browser/utils/is-object-json.js.map +1 -0
- package/dist-browser/utils/message-template.d.ts +30 -0
- package/dist-browser/utils/message-template.d.ts.map +1 -0
- package/dist-browser/utils/message-template.js +55 -0
- package/dist-browser/utils/message-template.js.map +1 -0
- package/dist-browser/utils/zod-switch.d.ts +11 -0
- package/dist-browser/utils/zod-switch.d.ts.map +1 -0
- package/dist-browser/utils/zod-switch.js +45 -0
- package/dist-browser/utils/zod-switch.js.map +1 -0
- package/dist-browser/utils/zod-wrapper.d.ts +15 -0
- package/dist-browser/utils/zod-wrapper.d.ts.map +1 -0
- package/dist-browser/utils/zod-wrapper.js +62 -0
- package/dist-browser/utils/zod-wrapper.js.map +1 -0
- package/dist-browser/validatable-fn.type.d.ts +10 -0
- package/dist-browser/validatable-fn.type.d.ts.map +1 -0
- package/dist-browser/validatable-fn.type.js +2 -0
- package/dist-browser/validatable-fn.type.js.map +1 -0
- package/dist-browser/validate-zod-schema.d.ts +25 -0
- package/dist-browser/validate-zod-schema.d.ts.map +1 -0
- package/dist-browser/validate-zod-schema.js +39 -0
- package/dist-browser/validate-zod-schema.js.map +1 -0
- package/dist-node/errors/builtin-codes.d.ts +51 -0
- package/dist-node/errors/builtin-codes.d.ts.map +1 -0
- package/dist-node/errors/builtin-codes.js +65 -0
- package/dist-node/errors/builtin-codes.js.map +1 -0
- package/dist-node/errors/builtin.errors.d.ts +243 -0
- package/dist-node/errors/builtin.errors.d.ts.map +1 -0
- package/dist-node/errors/builtin.errors.js +109 -0
- package/dist-node/errors/builtin.errors.js.map +1 -0
- package/dist-node/errors/index.d.ts +11 -0
- package/dist-node/errors/index.d.ts.map +1 -0
- package/dist-node/errors/index.js +27 -0
- package/dist-node/errors/index.js.map +1 -0
- package/dist-node/errors/parse-error.decorator.d.ts +19 -0
- package/dist-node/errors/parse-error.decorator.d.ts.map +1 -0
- package/dist-node/errors/parse-error.decorator.js +51 -0
- package/dist-node/errors/parse-error.decorator.js.map +1 -0
- package/dist-node/errors/v8n-built-in-parse-error-class-factory.d.ts +15 -0
- package/dist-node/errors/v8n-built-in-parse-error-class-factory.d.ts.map +1 -0
- package/dist-node/errors/v8n-built-in-parse-error-class-factory.js +9 -0
- package/dist-node/errors/v8n-built-in-parse-error-class-factory.js.map +1 -0
- package/dist-node/errors/v8n-custom-parse-error-class-factory.d.ts +15 -0
- package/dist-node/errors/v8n-custom-parse-error-class-factory.d.ts.map +1 -0
- package/dist-node/errors/v8n-custom-parse-error-class-factory.js +9 -0
- package/dist-node/errors/v8n-custom-parse-error-class-factory.js.map +1 -0
- package/dist-node/errors/v8n-issue-integration.d.ts +7 -0
- package/dist-node/errors/v8n-issue-integration.d.ts.map +1 -0
- package/dist-node/errors/v8n-issue-integration.js +3 -0
- package/dist-node/errors/v8n-issue-integration.js.map +1 -0
- package/dist-node/errors/v8n-issue-params.d.ts +7 -0
- package/dist-node/errors/v8n-issue-params.d.ts.map +1 -0
- package/dist-node/errors/v8n-issue-params.js +3 -0
- package/dist-node/errors/v8n-issue-params.js.map +1 -0
- package/dist-node/errors/v8n-issue.d.ts +16 -0
- package/dist-node/errors/v8n-issue.d.ts.map +1 -0
- package/dist-node/errors/v8n-issue.js +3 -0
- package/dist-node/errors/v8n-issue.js.map +1 -0
- package/dist-node/errors/v8n-parse-base-error.d.ts +9 -0
- package/dist-node/errors/v8n-parse-base-error.d.ts.map +1 -0
- package/dist-node/errors/v8n-parse-base-error.js +32 -0
- package/dist-node/errors/v8n-parse-base-error.js.map +1 -0
- package/dist-node/errors/v8n-parser-error-class-factory.d.ts +35 -0
- package/dist-node/errors/v8n-parser-error-class-factory.d.ts.map +1 -0
- package/dist-node/errors/v8n-parser-error-class-factory.js +52 -0
- package/dist-node/errors/v8n-parser-error-class-factory.js.map +1 -0
- package/dist-node/index.d.ts +7 -0
- package/dist-node/index.d.ts.map +1 -0
- package/dist-node/index.js +23 -0
- package/dist-node/index.js.map +1 -0
- package/dist-node/utils/convert-zod-issue-to-v8n-error.d.ts +11 -0
- package/dist-node/utils/convert-zod-issue-to-v8n-error.d.ts.map +1 -0
- package/dist-node/utils/convert-zod-issue-to-v8n-error.js +93 -0
- package/dist-node/utils/convert-zod-issue-to-v8n-error.js.map +1 -0
- package/dist-node/utils/index.d.ts +3 -0
- package/dist-node/utils/index.d.ts.map +1 -0
- package/dist-node/utils/index.js +19 -0
- package/dist-node/utils/index.js.map +1 -0
- package/dist-node/utils/is-object-json.d.ts +8 -0
- package/dist-node/utils/is-object-json.d.ts.map +1 -0
- package/dist-node/utils/is-object-json.js +20 -0
- package/dist-node/utils/is-object-json.js.map +1 -0
- package/dist-node/utils/message-template.d.ts +30 -0
- package/dist-node/utils/message-template.d.ts.map +1 -0
- package/dist-node/utils/message-template.js +59 -0
- package/dist-node/utils/message-template.js.map +1 -0
- package/dist-node/utils/zod-switch.d.ts +11 -0
- package/dist-node/utils/zod-switch.d.ts.map +1 -0
- package/dist-node/utils/zod-switch.js +49 -0
- package/dist-node/utils/zod-switch.js.map +1 -0
- package/dist-node/utils/zod-wrapper.d.ts +15 -0
- package/dist-node/utils/zod-wrapper.d.ts.map +1 -0
- package/dist-node/utils/zod-wrapper.js +66 -0
- package/dist-node/utils/zod-wrapper.js.map +1 -0
- package/dist-node/validatable-fn.type.d.ts +10 -0
- package/dist-node/validatable-fn.type.d.ts.map +1 -0
- package/dist-node/validatable-fn.type.js +3 -0
- package/dist-node/validatable-fn.type.js.map +1 -0
- package/dist-node/validate-zod-schema.d.ts +25 -0
- package/dist-node/validate-zod-schema.d.ts.map +1 -0
- package/dist-node/validate-zod-schema.js +43 -0
- package/dist-node/validate-zod-schema.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DataError } from '@imolko/ultra-result';
|
|
2
|
+
import { V8nCustomErrorCode } from './builtin-codes';
|
|
3
|
+
export declare function V8nCustomParseErrorClassFactory<DataExtended extends DataError>(code: V8nCustomErrorCode, title: string, defaultMessage?: string): (abstract new (issue: import("./v8n-issue-params").V8nIssueParams<DataExtended>) => {
|
|
4
|
+
readonly type: string;
|
|
5
|
+
readonly title: string;
|
|
6
|
+
readonly detail: string;
|
|
7
|
+
readonly path: (string | number)[];
|
|
8
|
+
readonly stack: string;
|
|
9
|
+
readonly extended: DataExtended;
|
|
10
|
+
addSteps(steps: string[]): any;
|
|
11
|
+
captureStack(): string;
|
|
12
|
+
}) & {
|
|
13
|
+
v8n(message?: string | import("./v8n-issue-integration").V8nIssueIntegration<DataExtended> | undefined): string;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=v8n-custom-parse-error-class-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v8n-custom-parse-error-class-factory.d.ts","sourceRoot":"","sources":["../../src/errors/v8n-custom-parse-error-class-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,wBAAgB,+BAA+B,CAAC,YAAY,SAAS,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;;;;;;;;;;;EAE/I"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { V8nParseErrorClassFactory } from './v8n-parser-error-class-factory';
|
|
2
|
+
export function V8nCustomParseErrorClassFactory(code, title, defaultMessage) {
|
|
3
|
+
return V8nParseErrorClassFactory(code, title, defaultMessage);
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=v8n-custom-parse-error-class-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v8n-custom-parse-error-class-factory.js","sourceRoot":"","sources":["../../src/errors/v8n-custom-parse-error-class-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAG7E,MAAM,UAAU,+BAA+B,CAAiC,IAAwB,EAAE,KAAa,EAAE,cAAuB;IAC9I,OAAO,yBAAyB,CAAe,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DataError } from '@imolko/ultra-result';
|
|
2
|
+
import { V8nIssue } from './v8n-issue';
|
|
3
|
+
/**
|
|
4
|
+
* Define la forma de mapear un custom issue con el schema o al rule de zod.
|
|
5
|
+
*/
|
|
6
|
+
export type V8nIssueIntegration<DataExtended extends DataError> = Pick<Partial<V8nIssue<DataExtended>>, 'code' | 'message' | 'path' | 'extended'>;
|
|
7
|
+
//# sourceMappingURL=v8n-issue-integration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v8n-issue-integration.d.ts","sourceRoot":"","sources":["../../src/errors/v8n-issue-integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,YAAY,SAAS,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v8n-issue-integration.js","sourceRoot":"","sources":["../../src/errors/v8n-issue-integration.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DataError } from '@imolko/ultra-result';
|
|
2
|
+
import { V8nIssue } from './v8n-issue';
|
|
3
|
+
/**
|
|
4
|
+
* Parametros para crear un issue de validacion de datos para V8n, Los issue son
|
|
5
|
+
*/
|
|
6
|
+
export type V8nIssueParams<DataExtended extends DataError = DataError> = Omit<V8nIssue<DataExtended>, 'code' | 'title'>;
|
|
7
|
+
//# sourceMappingURL=v8n-issue-params.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v8n-issue-params.d.ts","sourceRoot":"","sources":["../../src/errors/v8n-issue-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,YAAY,SAAS,SAAS,GAAG,SAAS,IAAK,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v8n-issue-params.js","sourceRoot":"","sources":["../../src/errors/v8n-issue-params.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DataError } from '@imolko/ultra-result';
|
|
2
|
+
import { V8nErrorCode } from './builtin-codes';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
/**
|
|
5
|
+
* Define un issue de validacion de datos para V8n, Los issue son definidos de fomra interna por V8N
|
|
6
|
+
*/
|
|
7
|
+
export type V8nIssue<DataExtended extends DataError = DataError> = {
|
|
8
|
+
code: V8nErrorCode;
|
|
9
|
+
title: string;
|
|
10
|
+
message?: string;
|
|
11
|
+
path?: (string | number)[];
|
|
12
|
+
stack?: string;
|
|
13
|
+
extended?: DataExtended;
|
|
14
|
+
zodIssue?: z.ZodIssue;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=v8n-issue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v8n-issue.d.ts","sourceRoot":"","sources":["../../src/errors/v8n-issue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,YAAY,SAAS,SAAS,GAAG,SAAS,IAAI;IACjE,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;CACvB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v8n-issue.js","sourceRoot":"","sources":["../../src/errors/v8n-issue.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DataError, ErrorBase } from '@imolko/ultra-result';
|
|
2
|
+
import { V8nIssue } from './v8n-issue';
|
|
3
|
+
/**
|
|
4
|
+
* Clase base para errores de validacion o parseo de datos. Todos los errores de v8n deben extender esta clase.
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class V8nParseBaseError<DataExtended extends DataError> extends ErrorBase<DataExtended> {
|
|
7
|
+
constructor(issue: V8nIssue<DataExtended>);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=v8n-parse-base-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v8n-parse-base-error.d.ts","sourceRoot":"","sources":["../../src/errors/v8n-parse-base-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAuB,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAUvC;;GAEG;AACH,8BAAsB,iBAAiB,CAAC,YAAY,SAAS,SAAS,CAAE,SAAQ,SAAS,CAAC,YAAY,CAAC;gBAEnG,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC;CAiBhC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ErrorBase, APP_ERROR_TYPE_ROOT } from '@imolko/ultra-result';
|
|
2
|
+
import { V8nMessageTemplate } from '../utils/message-template';
|
|
3
|
+
/**
|
|
4
|
+
* Define el tipo base para el codigo de error de validacion o parseo de datos.
|
|
5
|
+
*/
|
|
6
|
+
const ERROR_TYPE_ROOT = APP_ERROR_TYPE_ROOT;
|
|
7
|
+
const LAYER = 'v8n';
|
|
8
|
+
/**
|
|
9
|
+
* Clase base para errores de validacion o parseo de datos. Todos los errores de v8n deben extender esta clase.
|
|
10
|
+
*/
|
|
11
|
+
export class V8nParseBaseError extends ErrorBase {
|
|
12
|
+
constructor(issue) {
|
|
13
|
+
const type = ERROR_TYPE_ROOT.concat(LAYER, issue.code);
|
|
14
|
+
const title = issue?.title || 'Parser Error';
|
|
15
|
+
const path = issue?.path || issue?.zodIssue?.path || [];
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
|
+
const { message: _message, path: _path, fatal: _fatal, ...rest } = issue?.zodIssue || {};
|
|
18
|
+
const extended = { ...{ "code": issue.code }, ...issue?.extended || {}, ...rest };
|
|
19
|
+
let message = issue?.message || issue?.zodIssue?.message || title;
|
|
20
|
+
if (message) {
|
|
21
|
+
if (V8nMessageTemplate.hasVariable(message)) {
|
|
22
|
+
message = V8nMessageTemplate.interpolate(message, extended);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
super(type, title, message, path, extended);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=v8n-parse-base-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v8n-parse-base-error.js","sourceRoot":"","sources":["../../src/errors/v8n-parse-base-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAI/D;;GAEG;AACH,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAC5C,MAAM,KAAK,GAAG,KAAK,CAAC;AAGpB;;GAEG;AACH,MAAM,OAAgB,iBAAkD,SAAQ,SAAuB;IACrG,YACE,KAA6B;QAE7B,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,cAAc,CAAC;QAC7C,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC;QACxD,6DAA6D;QAC7D,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;QACzF,MAAM,QAAQ,GAAG,EAAC,GAAG,EAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAc,EAAE,GAAG,KAAK,EAAE,QAAQ,IAAI,EAAE,EAAE,GAAG,IAAI,EAAiB,CAAC;QAE3G,IAAI,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,QAAQ,EAAE,OAAO,IAAI,KAAK,CAAC;QAClE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5C,OAAO,GAAG,kBAAkB,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;CACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { DataError } from '@imolko/ultra-result';
|
|
2
|
+
import { V8nErrorCode } from './builtin-codes';
|
|
3
|
+
import { V8nIssueParams } from './v8n-issue-params';
|
|
4
|
+
import { V8nIssueIntegration } from './v8n-issue-integration';
|
|
5
|
+
/**
|
|
6
|
+
* Esta funcion crea una clase de error para ser usada en la validacion de datos.
|
|
7
|
+
* @param code codigo del error, el mismo que devuelve
|
|
8
|
+
* @param title el titulo del error
|
|
9
|
+
* @param defaultMessage el mensaje por defecto del error.
|
|
10
|
+
* @returns una clase de error para ser usada en la validacion de datos.
|
|
11
|
+
*/
|
|
12
|
+
export declare function V8nParseErrorClassFactory<DataExtended extends DataError>(code: V8nErrorCode, title: string, defaultMessage?: string): (abstract new (issue: V8nIssueParams<DataExtended>) => {
|
|
13
|
+
readonly type: string;
|
|
14
|
+
readonly title: string; /**
|
|
15
|
+
* Esta funcion crea una clase de error para ser usada en la validacion de datos.
|
|
16
|
+
* @param code codigo del error, el mismo que devuelve
|
|
17
|
+
* @param title el titulo del error
|
|
18
|
+
* @param defaultMessage el mensaje por defecto del error.
|
|
19
|
+
* @returns una clase de error para ser usada en la validacion de datos.
|
|
20
|
+
*/
|
|
21
|
+
readonly detail: string;
|
|
22
|
+
readonly path: (string | number)[];
|
|
23
|
+
readonly stack: string;
|
|
24
|
+
readonly extended: DataExtended;
|
|
25
|
+
addSteps(steps: string[]): any;
|
|
26
|
+
captureStack(): string;
|
|
27
|
+
}) & {
|
|
28
|
+
/**
|
|
29
|
+
* Integracion con zod, devuelve un json que contiene los parametros necesarios para converir el error de zod en un error de v8n.
|
|
30
|
+
* @param message El mensaje de error de zod.
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
33
|
+
v8n(message?: V8nIssueIntegration<DataExtended> | string): string;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=v8n-parser-error-class-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v8n-parser-error-class-factory.d.ts","sourceRoot":"","sources":["../../src/errors/v8n-parser-error-class-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,SAAS,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,yBAStH,eAAe,YAAY,CAAC;;4BAhB1C;;;;;;OAMG;;;;;;;;IAkBC;;;;OAIG;kBACyB,oBAAoB,YAAY,CAAC,GAAG,MAAM,GAAG,MAAM;EAqBlF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { V8nParseBaseError } from './v8n-parse-base-error';
|
|
2
|
+
/**
|
|
3
|
+
* Esta funcion crea una clase de error para ser usada en la validacion de datos.
|
|
4
|
+
* @param code codigo del error, el mismo que devuelve
|
|
5
|
+
* @param title el titulo del error
|
|
6
|
+
* @param defaultMessage el mensaje por defecto del error.
|
|
7
|
+
* @returns una clase de error para ser usada en la validacion de datos.
|
|
8
|
+
*/
|
|
9
|
+
export function V8nParseErrorClassFactory(code, title, defaultMessage) {
|
|
10
|
+
defaultMessage = defaultMessage || title;
|
|
11
|
+
class ParserErrorType extends V8nParseBaseError {
|
|
12
|
+
/**
|
|
13
|
+
* Todas las Parser Error deben definir este constructor.
|
|
14
|
+
* @param issue EL issue de validacion de datos ya verificado.
|
|
15
|
+
*/
|
|
16
|
+
constructor(issue) {
|
|
17
|
+
if (!issue?.message) {
|
|
18
|
+
issue.message = defaultMessage;
|
|
19
|
+
}
|
|
20
|
+
super({ code, title, ...issue });
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Integracion con zod, devuelve un json que contiene los parametros necesarios para converir el error de zod en un error de v8n.
|
|
24
|
+
* @param message El mensaje de error de zod.
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
27
|
+
static v8n(message) {
|
|
28
|
+
if (!message) {
|
|
29
|
+
return JSON.stringify({
|
|
30
|
+
code: code,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
if (typeof message === 'string') {
|
|
34
|
+
return JSON.stringify({
|
|
35
|
+
code: code,
|
|
36
|
+
message: message,
|
|
37
|
+
extended: {},
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return JSON.stringify({
|
|
41
|
+
...message,
|
|
42
|
+
code: code,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return ParserErrorType;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=v8n-parser-error-class-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v8n-parser-error-class-factory.js","sourceRoot":"","sources":["../../src/errors/v8n-parser-error-class-factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAK3D;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CAAiC,IAAkB,EAAE,KAAa,EAAE,cAAuB;IAClI,cAAc,GAAG,cAAc,IAAI,KAAK,CAAC;IAEzC,MAAe,eAAgB,SAAQ,iBAA+B;QACpE;;;WAGG;QACH,YACE,KAAoC;YAEpC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;gBACpB,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC;YACjC,CAAC;YACD,KAAK,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAA2B,CAAC,CAAC;QAC3D,CAAC;QAED;;;;WAIG;QACI,MAAM,CAAC,GAAG,CAAC,OAAoD;YACpE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,IAAI,EAAE,IAAI;iBAC0B,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,OAAO;oBAChB,QAAQ,EAAE,EAAE;iBACwB,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,GAAG,OAAO;gBACV,IAAI,EAAE,IAAI;aAC0B,CAAC,CAAC;QAC1C,CAAC;KACF;IAED,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './errors';
|
|
2
|
+
export * from './utils';
|
|
3
|
+
export * from './validatable-fn.type';
|
|
4
|
+
export * from './validate-zod-schema';
|
|
5
|
+
/** Exportamos los miembros de zod para que puedan ser usados en el domain */
|
|
6
|
+
export * from 'zod';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,6EAA6E;AAC7E,cAAc,KAAK,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './errors';
|
|
2
|
+
export * from './utils';
|
|
3
|
+
export * from './validatable-fn.type';
|
|
4
|
+
export * from './validate-zod-schema';
|
|
5
|
+
/** Exportamos los miembros de zod para que puedan ser usados en el domain */
|
|
6
|
+
export * from 'zod';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,6EAA6E;AAC7E,cAAc,KAAK,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ZodIssue } from 'zod';
|
|
2
|
+
import { V8nParseBaseError } from '../errors';
|
|
3
|
+
/**
|
|
4
|
+
* Convierte un zodIssue en un error de V8n,
|
|
5
|
+
* apto para ser manejado en validations
|
|
6
|
+
*
|
|
7
|
+
* @param iss
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
export declare const convertZodIssueToV8nError: (iss: ZodIssue) => V8nParseBaseError<any>;
|
|
11
|
+
//# sourceMappingURL=convert-zod-issue-to-v8n-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-zod-issue-to-v8n-error.d.ts","sourceRoot":"","sources":["../../src/utils/convert-zod-issue-to-v8n-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAG/B,OAAO,EAEL,iBAAiB,EAGlB,MAAM,WAAW,CAAC;AAkFnB;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,QAAS,QAAQ,KAAG,kBAAkB,GAAG,CAe9E,CAAA"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { isObjectJSON } from './is-object-json';
|
|
2
|
+
import { ZodIssueToV8nError, getInternalErrorFromCode } from '../errors';
|
|
3
|
+
/**
|
|
4
|
+
* Dado un string que contiene un json con un error custom,
|
|
5
|
+
* conviert el zodIssue en el custom Error
|
|
6
|
+
* cuyo code coincide con el que está en el string
|
|
7
|
+
*
|
|
8
|
+
* Se utiliza para extender un message que contiene un error custom
|
|
9
|
+
* y expresarlo como un Error Custom
|
|
10
|
+
*
|
|
11
|
+
* El mecahismo para manejar los errores custom, es colocar
|
|
12
|
+
* la serialización de las propiedades en la propiedad messag
|
|
13
|
+
* del zodIssue.
|
|
14
|
+
*
|
|
15
|
+
* La serialización se realiza con el método v8n() dentro de los errores custom.
|
|
16
|
+
*
|
|
17
|
+
* @param errorSerialized string con el error serializado
|
|
18
|
+
* @param originalPath Path que se encontraba en el error original
|
|
19
|
+
* @param originalExtended Parámetros extendidos en el error original
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
const handleCustomError = (errorSerialized, originalPath, originalExtended) => {
|
|
23
|
+
const parsedIssue = JSON.parse(errorSerialized);
|
|
24
|
+
if (!parsedIssue.code) {
|
|
25
|
+
throw new Error('code is required in the parsed JSON');
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Buscamos el constructor para el código de error,
|
|
29
|
+
* en la lista de errores custom registrados con el decorador @V8nCustomParseError
|
|
30
|
+
*/
|
|
31
|
+
const internalConstructor = getInternalErrorFromCode(parsedIssue.code);
|
|
32
|
+
if (!internalConstructor) {
|
|
33
|
+
throw new Error(`Internal error ${parsedIssue.code} not found`);
|
|
34
|
+
}
|
|
35
|
+
const internalIssue = {
|
|
36
|
+
message: parsedIssue.message,
|
|
37
|
+
path: [...originalPath, ...(parsedIssue.path || [])],
|
|
38
|
+
stack: new Error().stack || '',
|
|
39
|
+
extended: { ...parsedIssue.extended, ...originalExtended },
|
|
40
|
+
};
|
|
41
|
+
/** Creamos el error con los parámetros suministrados */
|
|
42
|
+
return new internalConstructor(internalIssue);
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Convierte un issue de zod en un error de Validación.
|
|
46
|
+
*
|
|
47
|
+
* @param code código del error built-in
|
|
48
|
+
* @param message message que se quiere colocar al error
|
|
49
|
+
* @param path path del error
|
|
50
|
+
* @param extended parámetros extendidos para el error
|
|
51
|
+
* @returns Un error de v8n
|
|
52
|
+
*/
|
|
53
|
+
const handleBuiltInError = (code, message, path, extended) => {
|
|
54
|
+
const internalCode = ZodIssueToV8nError.get(code);
|
|
55
|
+
if (!internalCode) {
|
|
56
|
+
throw new Error(`Internal code ${code} not found`);
|
|
57
|
+
}
|
|
58
|
+
const internalConstructor = getInternalErrorFromCode(internalCode);
|
|
59
|
+
if (!internalConstructor) {
|
|
60
|
+
throw new Error(`Internal error ${internalCode} not found`);
|
|
61
|
+
}
|
|
62
|
+
const internalIssue = {
|
|
63
|
+
message: message,
|
|
64
|
+
path: [...path],
|
|
65
|
+
stack: new Error().stack || '',
|
|
66
|
+
extended: { ...extended },
|
|
67
|
+
};
|
|
68
|
+
/** Creamos el error con los parámetros suministrados */
|
|
69
|
+
return new internalConstructor(internalIssue);
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Convierte un zodIssue en un error de V8n,
|
|
73
|
+
* apto para ser manejado en validations
|
|
74
|
+
*
|
|
75
|
+
* @param iss
|
|
76
|
+
* @returns
|
|
77
|
+
*/
|
|
78
|
+
export const convertZodIssueToV8nError = (iss) => {
|
|
79
|
+
/** Extraemos las propiedades */
|
|
80
|
+
const { code: code, message: message, path: path,
|
|
81
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
82
|
+
fatal: fatal, ...extended } = iss;
|
|
83
|
+
/** Verificamos si el mensaje contiene un error serializado */
|
|
84
|
+
if (isObjectJSON(message)) {
|
|
85
|
+
return handleCustomError(message, path, extended);
|
|
86
|
+
}
|
|
87
|
+
return handleBuiltInError(code, message, path, extended);
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=convert-zod-issue-to-v8n-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-zod-issue-to-v8n-error.js","sourceRoot":"","sources":["../../src/utils/convert-zod-issue-to-v8n-error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAGL,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,WAAW,CAAC;AAGnB;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,iBAAiB,GAAG,CACxB,eAAuB,EACvB,YAAiC,EACjC,gBAAqC,EACb,EAAE;IAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAmC,CAAC;IAClF,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD;;;OAGG;IACH,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,kBAAkB,WAAW,CAAC,IAAI,YAAY,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,aAAa,GAAmB;QACpC,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,IAAI,EAAE,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACpD,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE;QAC9B,QAAQ,EAAE,EAAE,GAAG,WAAW,CAAC,QAAQ,EAAE,GAAG,gBAAgB,EAAE;KAC3D,CAAC;IACF,wDAAwD;IACxD,OAAO,IAAI,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,kBAAkB,GAAG,CACzB,IAAY,EACZ,OAAe,EACf,IAAyB,EACzB,QAA6B,EACL,EAAE;IAC1B,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAW,CAAC,CAAC;IACzD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,YAAY,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;IACnE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,kBAAkB,YAAY,YAAY,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,aAAa,GAAmB;QACpC,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACf,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE;QAC9B,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE;KAC1B,CAAC;IACF,wDAAwD;IACxD,OAAO,IAAI,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAa,EAA0B,EAAE;IACjF,gCAAgC;IAChC,MAAM,EACJ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI;IACV,6DAA6D;IAC7D,KAAK,EAAE,KAAK,EACZ,GAAG,QAAQ,EACZ,GAAG,GAAG,CAAC;IACR,8DAA8D;IAC9D,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;AAC1D,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verifica si un string, contiene un objeto serializado como json.
|
|
3
|
+
*
|
|
4
|
+
* @param candidate valor que potencialmente contiene un objeto en json
|
|
5
|
+
* @returns true si el candidate es un objeto serializado como json
|
|
6
|
+
*/
|
|
7
|
+
export declare const isObjectJSON: (candidate: string) => boolean;
|
|
8
|
+
//# sourceMappingURL=is-object-json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-object-json.d.ts","sourceRoot":"","sources":["../../src/utils/is-object-json.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,YAAY,cAAe,MAAM,KAAG,OAOhD,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verifica si un string, contiene un objeto serializado como json.
|
|
3
|
+
*
|
|
4
|
+
* @param candidate valor que potencialmente contiene un objeto en json
|
|
5
|
+
* @returns true si el candidate es un objeto serializado como json
|
|
6
|
+
*/
|
|
7
|
+
export const isObjectJSON = (candidate) => {
|
|
8
|
+
try {
|
|
9
|
+
const parsed = JSON.parse(candidate);
|
|
10
|
+
return typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed);
|
|
11
|
+
}
|
|
12
|
+
catch (e) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=is-object-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-object-json.js","sourceRoot":"","sources":["../../src/utils/is-object-json.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAW,EAAE;IACzD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACrC,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare class V8nMessageTemplate {
|
|
2
|
+
private static readonly regex;
|
|
3
|
+
/**
|
|
4
|
+
* Interpolamos el template con los valores pasados.
|
|
5
|
+
* En caso de que no se encuentre un valor para una llave, se deja el valor original.
|
|
6
|
+
* Para controlar la forma de escape del signo $, solo se considera el signo $ que aparece delante de ${}.
|
|
7
|
+
* En la cercanía de una expresión ${}, cada par de $ que aparecen delante son sustituidos por un solo $.
|
|
8
|
+
* Y si la cantidad de $ es impar, se interpola la expresión ${} y se reduce la cantidad de $ a la mitad.
|
|
9
|
+
* Si la cantidad de $ es par, se reduce la cantidad de $ a la mitad y no se interpola la expresión ${}.
|
|
10
|
+
*
|
|
11
|
+
* Si el objeto de valores contiene { abc: "xyz" }, al interpolar, se deben obtener los siguientes valores:
|
|
12
|
+
* Ejemplo: ${abc} -> xyz
|
|
13
|
+
* Ejemplo: $${abc} -> ${abc}
|
|
14
|
+
* Ejemplo: $$${abc} -> $xyz
|
|
15
|
+
* Ejemplo: $$$${abc} -> $${abc}
|
|
16
|
+
* Ejemplo: $$$$${abc} -> $$xyz
|
|
17
|
+
* Ejemplo: $$$$$${abc} -> $$${abc}
|
|
18
|
+
* Y así sucesivamente.
|
|
19
|
+
*/
|
|
20
|
+
static interpolate(template: string, values: {
|
|
21
|
+
[key: string]: unknown;
|
|
22
|
+
}): string;
|
|
23
|
+
/**
|
|
24
|
+
* Evalua si el string incluye informacion de template.
|
|
25
|
+
* @param template El string que se quiere evcaluar si incluye informacion de template.
|
|
26
|
+
* @returns Si el string incluye informacion de template.
|
|
27
|
+
*/
|
|
28
|
+
static hasVariable(template: string): boolean;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=message-template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-template.d.ts","sourceRoot":"","sources":["../../src/utils/message-template.ts"],"names":[],"mappings":"AAAA,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAC1D;;;;;;;;;;;;;;;;OAgBG;WACW,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GAAG,MAAM;IA0BvF;;;;OAIG;WACW,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAGrD"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export class V8nMessageTemplate {
|
|
2
|
+
static regex = /(\$+)(\{\s*(\w+)\s*\})/g;
|
|
3
|
+
/**
|
|
4
|
+
* Interpolamos el template con los valores pasados.
|
|
5
|
+
* En caso de que no se encuentre un valor para una llave, se deja el valor original.
|
|
6
|
+
* Para controlar la forma de escape del signo $, solo se considera el signo $ que aparece delante de ${}.
|
|
7
|
+
* En la cercanía de una expresión ${}, cada par de $ que aparecen delante son sustituidos por un solo $.
|
|
8
|
+
* Y si la cantidad de $ es impar, se interpola la expresión ${} y se reduce la cantidad de $ a la mitad.
|
|
9
|
+
* Si la cantidad de $ es par, se reduce la cantidad de $ a la mitad y no se interpola la expresión ${}.
|
|
10
|
+
*
|
|
11
|
+
* Si el objeto de valores contiene { abc: "xyz" }, al interpolar, se deben obtener los siguientes valores:
|
|
12
|
+
* Ejemplo: ${abc} -> xyz
|
|
13
|
+
* Ejemplo: $${abc} -> ${abc}
|
|
14
|
+
* Ejemplo: $$${abc} -> $xyz
|
|
15
|
+
* Ejemplo: $$$${abc} -> $${abc}
|
|
16
|
+
* Ejemplo: $$$$${abc} -> $$xyz
|
|
17
|
+
* Ejemplo: $$$$$${abc} -> $$${abc}
|
|
18
|
+
* Y así sucesivamente.
|
|
19
|
+
*/
|
|
20
|
+
static interpolate(template, values) {
|
|
21
|
+
const matches = template.matchAll(this.regex);
|
|
22
|
+
let result = '';
|
|
23
|
+
let lastIndex = 0;
|
|
24
|
+
for (const match of matches) {
|
|
25
|
+
if (match) {
|
|
26
|
+
const [fullMatch, $, brackedKey, key] = match;
|
|
27
|
+
if ($.length % 2 === 0) {
|
|
28
|
+
result += template.substring(lastIndex, match.index) + '$'.repeat($.length / 2) + brackedKey;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
const value = values[key];
|
|
32
|
+
if (value !== undefined) {
|
|
33
|
+
result += template.substring(lastIndex, match.index) + '$'.repeat(($.length - 1) / 2) + (typeof value !== 'string' ? JSON.stringify(value) : value);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
result += template.substring(lastIndex, match.index) + '$'.repeat(1 + (($.length - 1) / 2)) + brackedKey;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const matchIndex = match.index === undefined ? 0 : match.index;
|
|
40
|
+
lastIndex = matchIndex + fullMatch.length;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
result += template.substring(lastIndex);
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Evalua si el string incluye informacion de template.
|
|
48
|
+
* @param template El string que se quiere evcaluar si incluye informacion de template.
|
|
49
|
+
* @returns Si el string incluye informacion de template.
|
|
50
|
+
*/
|
|
51
|
+
static hasVariable(template) {
|
|
52
|
+
return this.regex.test(template);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=message-template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-template.js","sourceRoot":"","sources":["../../src/utils/message-template.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAU,KAAK,GAAG,yBAAyB,CAAC;IAC1D;;;;;;;;;;;;;;;;OAgBG;IACI,MAAM,CAAC,WAAW,CAAC,QAAgB,EAAE,MAAkC;QAC5E,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC9C,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;gBAC/F,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACxB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBACtJ,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;oBAC3G,CAAC;gBACH,CAAC;gBACD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;gBAC/D,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC;YAC5C,CAAC;QAEH,CAAC;QACD,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,WAAW,CAAC,QAAgB;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z, ZodType, ZodTypeAny } from 'zod';
|
|
2
|
+
export interface ZodSwitchDef<T extends ZodTypeAny, B extends ZodTypeAny = ZodType<unknown>> extends z.ZodTypeDef {
|
|
3
|
+
getSchema: (value: B['_output']) => T;
|
|
4
|
+
base: B;
|
|
5
|
+
typeName: 'ZodSwitch';
|
|
6
|
+
}
|
|
7
|
+
export declare class ZodSwitch<T extends ZodTypeAny, B extends ZodTypeAny> extends ZodType<T['_output'], ZodSwitchDef<T, B>, T['_input']> {
|
|
8
|
+
_parse(input: z.ParseInput): z.ParseReturnType<any>;
|
|
9
|
+
static create<T extends ZodTypeAny, B extends ZodTypeAny>(base: B, getSchema: (value: B['_output']) => T): ZodSwitch<T, B>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=zod-switch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-switch.d.ts","sourceRoot":"","sources":["../../src/utils/zod-switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAE7C,MAAM,WAAW,YAAY,CAC3B,CAAC,SAAS,UAAU,EACpB,CAAC,SAAS,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CACvC,SAAQ,CAAC,CAAC,UAAU;IACpB,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,WAAW,CAAC;CACvB;AACD,qBAAa,SAAS,CACpB,CAAC,SAAS,UAAU,EACpB,CAAC,SAAS,UAAU,CACpB,SAAQ,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC;IAgCnD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,UAAU,EACtD,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACpC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;CAOnB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { z, ZodType } from 'zod';
|
|
2
|
+
export class ZodSwitch extends ZodType {
|
|
3
|
+
_parse(input) {
|
|
4
|
+
const { ctx } = this._processInputParams(input);
|
|
5
|
+
if (ctx.common.async) {
|
|
6
|
+
const handleAsync = async () => {
|
|
7
|
+
const inResult = await this._def.base._parseAsync({
|
|
8
|
+
data: ctx.data,
|
|
9
|
+
path: ctx.path,
|
|
10
|
+
parent: ctx,
|
|
11
|
+
});
|
|
12
|
+
if (inResult.status !== 'valid')
|
|
13
|
+
return z.INVALID;
|
|
14
|
+
return this._def.getSchema(inResult.value)._parseAsync({
|
|
15
|
+
data: inResult.value,
|
|
16
|
+
path: ctx.path,
|
|
17
|
+
parent: ctx,
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
return handleAsync();
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
const inResult = this._def.base._parseSync({
|
|
24
|
+
data: ctx.data,
|
|
25
|
+
path: ctx.path,
|
|
26
|
+
parent: ctx,
|
|
27
|
+
});
|
|
28
|
+
if (inResult.status !== 'valid')
|
|
29
|
+
return z.INVALID;
|
|
30
|
+
return this._def.getSchema(inResult.value)._parseSync({
|
|
31
|
+
data: inResult.value,
|
|
32
|
+
path: ctx.path,
|
|
33
|
+
parent: ctx,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
static create(base, getSchema) {
|
|
38
|
+
return new ZodSwitch({
|
|
39
|
+
base,
|
|
40
|
+
getSchema,
|
|
41
|
+
typeName: 'ZodSwitch',
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=zod-switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-switch.js","sourceRoot":"","sources":["../../src/utils/zod-switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAc,MAAM,KAAK,CAAC;AAU7C,MAAM,OAAO,SAGX,SAAQ,OAAsD;IAC9D,MAAM,CAAC,KAAmB;QACxB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;gBAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;oBAChD,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAC;gBACH,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO;oBAAE,OAAO,CAAC,CAAC,OAAO,CAAC;gBAClD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;oBACrD,IAAI,EAAE,QAAQ,CAAC,KAAK;oBACpB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAC;YACL,CAAC,CAAC;YACF,OAAO,WAAW,EAAE,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;gBACzC,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO;gBAAE,OAAO,CAAC,CAAC,OAAO,CAAC;YAClD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;gBACpD,IAAI,EAAE,QAAQ,CAAC,KAAK;gBACpB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,CAAC,MAAM,CACX,IAAO,EACP,SAAqC;QAErC,OAAO,IAAI,SAAS,CAAC;YACnB,IAAI;YACJ,SAAS;YACT,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Se encarga de ejecutar una función en tryCatch
|
|
4
|
+
* y convierte el resultado en un ZodTransform.
|
|
5
|
+
*
|
|
6
|
+
* Si el resultado es exitoso devuelve el valor de la función.
|
|
7
|
+
*
|
|
8
|
+
* Si el resultado genera un error, agrega el error como
|
|
9
|
+
* error custom en el contexto de Zod.
|
|
10
|
+
*
|
|
11
|
+
* @param fn función que se quiere aplicar en el try catch
|
|
12
|
+
* @returns valor de la función o llamada al ctx.addIssue
|
|
13
|
+
*/
|
|
14
|
+
export declare const zodWrapper: <ValueType, ReturnType>(fn: (value: ValueType) => ReturnType) => (value: ValueType, ctx: z.RefinementCtx) => ReturnType;
|
|
15
|
+
//# sourceMappingURL=zod-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-wrapper.d.ts","sourceRoot":"","sources":["../../src/utils/zod-wrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsCxB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,8BAGjB,CAAC,KAAK,EAAE,SAAS,KAAK,UAAU,aAAa,SAAS,OAAO,EAAE,aAAa,KAAG,UAUpF,CAAA"}
|