@domain-first/types 4.0.0 → 5.0.1

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 CHANGED
@@ -102,7 +102,7 @@ console.log(nodeWithLink.linkedNode?.id); // 1
102
102
  ## Error handling
103
103
 
104
104
  ```ts
105
- import { domainType, InvalidDataParsingError } from "@domain-first/types";
105
+ import { domainType, TypeParsingError } from "@domain-first/types";
106
106
  import z from "zod";
107
107
 
108
108
  class NonEmptyString extends domainType(z.string().nonempty()) {}
@@ -110,7 +110,7 @@ class NonEmptyString extends domainType(z.string().nonempty()) {}
110
110
  try {
111
111
  const _string = new NonEmptyString("");
112
112
  } catch (e: unknown) {
113
- if (e instanceof InvalidDataParsingError) {
113
+ if (e instanceof TypeParsingError) {
114
114
  console.error(e.details.parsingIssues);
115
115
  console.error(e.details.value);
116
116
  }
@@ -1,2 +1,2 @@
1
1
  export * from './async-schema-in-sync-parsing-error';
2
- export * from './invalid-data-parsing-error';
2
+ export * from './type-parsing-error';
@@ -0,0 +1,133 @@
1
+ export declare const DomainFirstTypesError: {
2
+ subnamespace: (subnamespace: string) => {
3
+ subnamespace: any;
4
+ error: <Details extends Record<string, unknown> = Record<string, unknown>>(code: string, errorProps?: Partial<import("@domain-first/errors").ErrorProps<{}, Details>>) => {
5
+ new (details: Details, options?: ErrorOptions): {
6
+ readonly code: string;
7
+ readonly metadata: {};
8
+ readonly details: Details;
9
+ get formattedDetails(): import("@domain-first/errors").PlainPrimitivesObject;
10
+ get serialized(): import("@domain-first/errors").TransportedError<{}>;
11
+ get serializedWithNativeData(): import("@domain-first/errors").TransportedErrorWithNativeData<{}>;
12
+ get serializedFull(): import("@domain-first/errors").FullTransportedError<Details, {}>;
13
+ name: string;
14
+ message: string;
15
+ stack?: string;
16
+ cause?: unknown;
17
+ };
18
+ matches: (target: unknown) => boolean | null;
19
+ is: (target: unknown) => target is {
20
+ readonly code: string;
21
+ readonly metadata: Metadata;
22
+ readonly details: Details_1;
23
+ get formattedDetails(): import("@domain-first/errors").PlainPrimitivesObject;
24
+ get serialized(): import("@domain-first/errors").TransportedError<Metadata>;
25
+ get serializedWithNativeData(): import("@domain-first/errors").TransportedErrorWithNativeData<Metadata>;
26
+ get serializedFull(): import("@domain-first/errors").FullTransportedError<Details_1, Metadata>;
27
+ name: string;
28
+ message: string;
29
+ stack?: string;
30
+ cause?: unknown;
31
+ };
32
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
33
+ prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
34
+ stackTraceLimit: number;
35
+ };
36
+ errorWithMetadata: <Details extends Record<string, unknown> = Record<string, unknown>, Metadata extends import("@domain-first/errors").PlainPrimitivesObject = import("@domain-first/errors").PlainPrimitivesObject>(code: string, metadata: Metadata, errorProps?: Partial<import("@domain-first/errors").ErrorProps<Metadata, Details>>) => {
37
+ new (details: Details, options?: ErrorOptions): {
38
+ readonly code: string;
39
+ readonly metadata: Metadata;
40
+ readonly details: Details;
41
+ get formattedDetails(): import("@domain-first/errors").PlainPrimitivesObject;
42
+ get serialized(): import("@domain-first/errors").TransportedError<Metadata>;
43
+ get serializedWithNativeData(): import("@domain-first/errors").TransportedErrorWithNativeData<Metadata>;
44
+ get serializedFull(): import("@domain-first/errors").FullTransportedError<Details, Metadata>;
45
+ name: string;
46
+ message: string;
47
+ stack?: string;
48
+ cause?: unknown;
49
+ };
50
+ matches: (target: unknown) => boolean | null;
51
+ is: (target: unknown) => target is {
52
+ readonly code: string;
53
+ readonly metadata: Metadata_1;
54
+ readonly details: Details_1;
55
+ get formattedDetails(): import("@domain-first/errors").PlainPrimitivesObject;
56
+ get serialized(): import("@domain-first/errors").TransportedError<Metadata_1>;
57
+ get serializedWithNativeData(): import("@domain-first/errors").TransportedErrorWithNativeData<Metadata_1>;
58
+ get serializedFull(): import("@domain-first/errors").FullTransportedError<Details_1, Metadata_1>;
59
+ name: string;
60
+ message: string;
61
+ stack?: string;
62
+ cause?: unknown;
63
+ };
64
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
65
+ prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
66
+ stackTraceLimit: number;
67
+ };
68
+ };
69
+ error: <Details extends Record<string, unknown> = Record<string, unknown>>(code: string, errorProps?: Partial<import("@domain-first/errors").ErrorProps<{}, Details>>) => {
70
+ new (details: Details, options?: ErrorOptions): {
71
+ readonly code: string;
72
+ readonly metadata: {};
73
+ readonly details: Details;
74
+ get formattedDetails(): import("@domain-first/errors").PlainPrimitivesObject;
75
+ get serialized(): import("@domain-first/errors").TransportedError<{}>;
76
+ get serializedWithNativeData(): import("@domain-first/errors").TransportedErrorWithNativeData<{}>;
77
+ get serializedFull(): import("@domain-first/errors").FullTransportedError<Details, {}>;
78
+ name: string;
79
+ message: string;
80
+ stack?: string;
81
+ cause?: unknown;
82
+ };
83
+ matches: (target: unknown) => boolean | null;
84
+ is: (target: unknown) => target is {
85
+ readonly code: string;
86
+ readonly metadata: Metadata;
87
+ readonly details: Details_1;
88
+ get formattedDetails(): import("@domain-first/errors").PlainPrimitivesObject;
89
+ get serialized(): import("@domain-first/errors").TransportedError<Metadata>;
90
+ get serializedWithNativeData(): import("@domain-first/errors").TransportedErrorWithNativeData<Metadata>;
91
+ get serializedFull(): import("@domain-first/errors").FullTransportedError<Details_1, Metadata>;
92
+ name: string;
93
+ message: string;
94
+ stack?: string;
95
+ cause?: unknown;
96
+ };
97
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
98
+ prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
99
+ stackTraceLimit: number;
100
+ };
101
+ errorWithMetadata: <Details extends Record<string, unknown> = Record<string, unknown>, Metadata extends import("@domain-first/errors").PlainPrimitivesObject = import("@domain-first/errors").PlainPrimitivesObject>(code: string, metadata: Metadata, errorProps?: Partial<import("@domain-first/errors").ErrorProps<Metadata, Details>>) => {
102
+ new (details: Details, options?: ErrorOptions): {
103
+ readonly code: string;
104
+ readonly metadata: Metadata;
105
+ readonly details: Details;
106
+ get formattedDetails(): import("@domain-first/errors").PlainPrimitivesObject;
107
+ get serialized(): import("@domain-first/errors").TransportedError<Metadata>;
108
+ get serializedWithNativeData(): import("@domain-first/errors").TransportedErrorWithNativeData<Metadata>;
109
+ get serializedFull(): import("@domain-first/errors").FullTransportedError<Details, Metadata>;
110
+ name: string;
111
+ message: string;
112
+ stack?: string;
113
+ cause?: unknown;
114
+ };
115
+ matches: (target: unknown) => boolean | null;
116
+ is: (target: unknown) => target is {
117
+ readonly code: string;
118
+ readonly metadata: Metadata_1;
119
+ readonly details: Details_1;
120
+ get formattedDetails(): import("@domain-first/errors").PlainPrimitivesObject;
121
+ get serialized(): import("@domain-first/errors").TransportedError<Metadata_1>;
122
+ get serializedWithNativeData(): import("@domain-first/errors").TransportedErrorWithNativeData<Metadata_1>;
123
+ get serializedFull(): import("@domain-first/errors").FullTransportedError<Details_1, Metadata_1>;
124
+ name: string;
125
+ message: string;
126
+ stack?: string;
127
+ cause?: unknown;
128
+ };
129
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
130
+ prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
131
+ stackTraceLimit: number;
132
+ };
133
+ };
@@ -1,5 +1,5 @@
1
1
  import type { StandardSchemaV1 } from '@standard-schema/spec';
2
- export declare const InvalidDataParsingError: {
2
+ export declare const TypeParsingError: {
3
3
  new (details: {
4
4
  parsingIssues: readonly StandardSchemaV1.Issue[];
5
5
  value: unknown;
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";const __rslib_import_meta_url__="u"<typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,r,a)=>{var _=(r,a)=>{for(var _ in r)__webpack_require__.o(r,_)&&!__webpack_require__.o(e,_)&&Object.defineProperty(e,_,{enumerable:!0,[a]:r[_]})};_(r,"get"),_(a,"value")},__webpack_require__.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),__webpack_require__.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{AsyncSchemaInSyncParsingError:()=>AsyncSchemaInSyncParsingError,InvalidDataParsingError:()=>InvalidDataParsingError,domainType:()=>domainType,recursiveDomainType:()=>recursiveDomainType});const errors_namespaceObject=require("@domain-first/errors"),SchemaErrors=(0,errors_namespaceObject.errorNamespace)("SCHEMA"),AsyncSchemaInSyncParsingError=SchemaErrors.error("ASYNC_LOGIC"),ParsingErrors=(0,errors_namespaceObject.errorNamespace)("PARSING"),InvalidDataParsingError=ParsingErrors.error("INVALID_DATA");function parseSync(e,r){let a=e["~standard"].validate(r);if(a instanceof Promise)throw new AsyncSchemaInSyncParsingError({schema:e,value:r});if("issues"in a&&a.issues)throw new InvalidDataParsingError({parsingIssues:a.issues,value:r});return a.value}const createDomainType=e=>{let r=Symbol(),a=e=>!!e&&"object"==typeof e&&r in e;class _{static schema=e(a);constructor(e){const a=parseSync(this.constructor.schema,e);if(a&&"object"==typeof a)for(const[e,r]of Object.entries(a))Object.defineProperty(this,e,{value:r,writable:!1,configurable:!1,enumerable:!0});else Object.defineProperty(this,"value",{value:a,writable:!1,configurable:!1,enumerable:!0});Object.defineProperty(this,r,{value:!0,writable:!1,configurable:!1})}}return _},domainType=e=>createDomainType(()=>e),recursiveDomainType=e=>createDomainType(e);for(var __rspack_i in exports.AsyncSchemaInSyncParsingError=__webpack_exports__.AsyncSchemaInSyncParsingError,exports.InvalidDataParsingError=__webpack_exports__.InvalidDataParsingError,exports.domainType=__webpack_exports__.domainType,exports.recursiveDomainType=__webpack_exports__.recursiveDomainType,__webpack_exports__)-1===["AsyncSchemaInSyncParsingError","InvalidDataParsingError","domainType","recursiveDomainType"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
1
+ "use strict";const __rslib_import_meta_url__="u"<typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,r,_)=>{var a=(r,_)=>{for(var a in r)__webpack_require__.o(r,a)&&!__webpack_require__.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,[_]:r[a]})};a(r,"get"),a(_,"value")},__webpack_require__.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),__webpack_require__.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{AsyncSchemaInSyncParsingError:()=>AsyncSchemaInSyncParsingError,TypeParsingError:()=>TypeParsingError,domainType:()=>domainType,recursiveDomainType:()=>recursiveDomainType});const errors_namespaceObject=require("@domain-first/errors"),DomainFirstTypesError=(0,errors_namespaceObject.errorNamespace)("@DOMAIN-FIRST/TYPES"),AsyncSchemaInSyncParsingError=DomainFirstTypesError.error("ASYNC_LOGIC"),TypeParsingError=DomainFirstTypesError.error("INVALID_DATA");function parseSync(e,r){let _=e["~standard"].validate(r);if(_ instanceof Promise)throw new AsyncSchemaInSyncParsingError({schema:e,value:r});if("issues"in _&&_.issues)throw new TypeParsingError({parsingIssues:_.issues,value:r});return _.value}const createDomainType=e=>{let r=Symbol(),_=e=>!!e&&"object"==typeof e&&r in e;class a{static schema=e(_);constructor(e){const _=parseSync(this.constructor.schema,e);if(_&&"object"==typeof _)for(const[e,r]of Object.entries(_))Object.defineProperty(this,e,{value:r,writable:!1,configurable:!1,enumerable:!0});else Object.defineProperty(this,"value",{value:_,writable:!1,configurable:!1,enumerable:!0});Object.defineProperty(this,r,{value:!0,writable:!1,configurable:!1})}}return a},domainType=e=>createDomainType(()=>e),recursiveDomainType=e=>createDomainType(e);for(var __rspack_i in exports.AsyncSchemaInSyncParsingError=__webpack_exports__.AsyncSchemaInSyncParsingError,exports.TypeParsingError=__webpack_exports__.TypeParsingError,exports.domainType=__webpack_exports__.domainType,exports.recursiveDomainType=__webpack_exports__.recursiveDomainType,__webpack_exports__)-1===["AsyncSchemaInSyncParsingError","TypeParsingError","domainType","recursiveDomainType"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../src/errors/async-schema-in-sync-parsing-error.ts","../src/errors/invalid-data-parsing-error.ts","../src/utils/parse-sync.ts","../src/domain-type.ts"],"sourcesContent":["__webpack_require__.d = (exports, getters, values) => {\n\tvar define = (defs, kind) => {\n\t\tfor(var key in defs) {\n\t\t\tif(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });\n\t\t\t}\n\t\t}\n\t};\n\tdefine(getters, \"get\");\n\tdefine(values, \"value\");\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { errorNamespace } from '@domain-first/errors';\n\nconst SchemaErrors = errorNamespace('SCHEMA')\n\nexport const AsyncSchemaInSyncParsingError = SchemaErrors.error('ASYNC_LOGIC');\n","import { errorNamespace } from '@domain-first/errors';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\n\nconst ParsingErrors = errorNamespace(\"PARSING\")\n\nexport const InvalidDataParsingError = ParsingErrors.error<{\n parsingIssues: readonly StandardSchemaV1.Issue[];\n value: unknown;\n}>('INVALID_DATA');\n","import type { StandardSchemaV1 } from '@standard-schema/spec';\nimport {\n AsyncSchemaInSyncParsingError,\n InvalidDataParsingError\n} from '../errors';\n\nexport function parseSync<S extends StandardSchemaV1>(\n schema: S,\n value: StandardSchemaV1.InferInput<S>\n): StandardSchemaV1.InferOutput<S> {\n const result = schema['~standard'].validate(value);\n\n if (result instanceof Promise) {\n throw new AsyncSchemaInSyncParsingError({ schema, value });\n }\n\n if ('issues' in result && result.issues) {\n throw new InvalidDataParsingError({ parsingIssues: result.issues, value });\n }\n\n return result.value;\n}\n","import type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { type DeepReadonly, parseSync } from './utils';\n\nconst createDomainType = <ModelSchema extends StandardSchemaV1>(\n getModelSchema: (\n isCurrentEntity: (target: unknown) => boolean\n ) => ModelSchema\n) => {\n const classSymbol = Symbol();\n\n const isInstanceOfThisType = (target: unknown): boolean => {\n return !!target && typeof target === 'object' && classSymbol in target;\n };\n\n class DomainType {\n public static readonly schema = getModelSchema(isInstanceOfThisType);\n\n constructor(model: StandardSchemaV1.InferInput<ModelSchema>) {\n const schema = (this.constructor as typeof DomainType).schema;\n\n const parsedModelData = parseSync(schema, model);\n\n if (parsedModelData && typeof parsedModelData === 'object') {\n for (const [key, value] of Object.entries(parsedModelData)) {\n Object.defineProperty(this, key, {\n value,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n } else {\n Object.defineProperty(this, 'value', {\n value: parsedModelData,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n\n Object.defineProperty(this, classSymbol, {\n value: true,\n writable: false,\n configurable: false\n });\n }\n }\n\n return DomainType as unknown as (abstract new (\n model: StandardSchemaV1.InferInput<ModelSchema>\n ) => DeepReadonly<\n StandardSchemaV1.InferOutput<ModelSchema> extends object\n ? StandardSchemaV1.InferOutput<ModelSchema>\n : {\n value: StandardSchemaV1.InferOutput<ModelSchema>;\n }\n >) & { schema: ModelSchema };\n};\n\nexport const domainType = <ModelSchema extends StandardSchemaV1>(\n modelSchema: ModelSchema\n) => {\n return createDomainType(() => modelSchema);\n};\n\nexport const recursiveDomainType = <ModelSchema extends StandardSchemaV1>(\n modelSchema: (isCurrentType: (target: unknown) => boolean) => ModelSchema\n) => {\n return createDomainType(modelSchema);\n};\n"],"names":["__webpack_require__","e","Object","Symbol","SchemaErrors","errorNamespace","AsyncSchemaInSyncParsingError","ParsingErrors","InvalidDataParsingError","parseSync","schema","value","result","Promise","createDomainType","getModelSchema","classSymbol","isInstanceOfThisType","target","DomainType","model","parsedModelData","key","domainType","modelSchema","recursiveDomainType"],"mappings":"wPAAAA,CAAAA,oBAAoB,CAAC,CAAG,CAACC,EAAS,EAAS,KAC1C,IAAI,EAAS,CAAC,EAAM,KACnB,IAAI,IAAI,KAAO,EACXD,oBAAoB,CAAC,CAAC,EAAM,IAAQ,CAACA,oBAAoB,CAAC,CAACC,EAAS,IACtEC,OAAO,cAAc,CAACD,EAAS,EAAK,CAAE,WAAY,GAAM,CAAC,EAAK,CAAE,CAAI,CAAC,EAAI,AAAC,EAG7E,EACA,EAAO,EAAS,OAChB,EAAO,EAAQ,QAChB,ECVAD,oBAAoB,CAAC,CAAG,CAAC,EAAK,IAAUE,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAK,GCClFF,oBAAoB,CAAC,CAAG,AAACC,IACrB,AAAkB,IAAlB,OAAOE,QAA0BA,OAAO,WAAW,EACrDD,OAAO,cAAc,CAACD,EAASE,OAAO,WAAW,CAAE,CAAE,MAAO,QAAS,GAEtED,OAAO,cAAc,CAACD,EAAS,aAAc,CAAE,MAAO,EAAK,EAC5D,E,0WCJMG,aAAeC,AAAAA,GAAAA,uBAAAA,cAAAA,AAAAA,EAAe,UAEvBC,8BAAgCF,aAAa,KAAK,CAAC,eCD1DG,cAAgBF,AAAAA,GAAAA,uBAAAA,cAAAA,AAAAA,EAAe,WAExBG,wBAA0BD,cAAc,KAAK,CAGvD,gBCFI,SAASE,UACZC,CAAS,CACTC,CAAqC,EAErC,IAAMC,EAASF,CAAM,CAAC,YAAY,CAAC,QAAQ,CAACC,GAE5C,GAAIC,aAAkBC,QAClB,MAAM,IAAIP,8BAA8B,CAAEI,OAAAA,EAAQC,MAAAA,CAAM,GAG5D,GAAI,WAAYC,GAAUA,EAAO,MAAM,CACnC,MAAM,IAAIJ,wBAAwB,CAAE,cAAeI,EAAO,MAAM,CAAED,MAAAA,CAAM,GAG5E,OAAOC,EAAO,KAAK,AACvB,CClBA,MAAME,iBAAmB,AACrBC,IAIA,IAAMC,EAAcb,SAEdc,EAAuB,AAACC,GACnB,CAAC,CAACA,GAAU,AAAkB,UAAlB,OAAOA,GAAuBF,KAAeE,CAGpE,OAAMC,EACF,OAAuB,OAASJ,EAAeE,EAAsB,AAErE,aAAYG,CAA+C,CAAE,CAGzD,MAAMC,EAAkBZ,UAFR,IAAI,CAAC,WAAW,CAAuB,MAAM,CAEnBW,GAE1C,GAAIC,GAAmB,AAA2B,UAA3B,OAAOA,EAC1B,IAAK,KAAM,CAACC,EAAKX,EAAM,GAAIT,OAAO,OAAO,CAACmB,GACtCnB,OAAO,cAAc,CAAC,IAAI,CAAEoB,EAAK,CAC7BX,MAAAA,EACA,SAAU,GACV,aAAc,GACd,WAAY,EAChB,QAGJT,OAAO,cAAc,CAAC,IAAI,CAAE,QAAS,CACjC,MAAOmB,EACP,SAAU,GACV,aAAc,GACd,WAAY,EAChB,GAGJnB,OAAO,cAAc,CAAC,IAAI,CAAEc,EAAa,CACrC,MAAO,GACP,SAAU,GACV,aAAc,EAClB,EACJ,CACJ,CAEA,OAAOG,CASX,EAEaI,WAAa,AACtBC,GAEOV,iBAAiB,IAAMU,GAGrBC,oBAAsB,AAC/BD,GAEOV,iBAAiBU,G"}
1
+ {"version":3,"file":"index.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../src/errors/namespace.ts","../src/errors/async-schema-in-sync-parsing-error.ts","../src/errors/type-parsing-error.ts","../src/utils/parse-sync.ts","../src/domain-type.ts"],"sourcesContent":["__webpack_require__.d = (exports, getters, values) => {\n\tvar define = (defs, kind) => {\n\t\tfor(var key in defs) {\n\t\t\tif(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });\n\t\t\t}\n\t\t}\n\t};\n\tdefine(getters, \"get\");\n\tdefine(values, \"value\");\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { errorNamespace } from \"@domain-first/errors\";\n\nexport const DomainFirstTypesError = errorNamespace(\"@DOMAIN-FIRST/TYPES\")\n","import { DomainFirstTypesError } from './namespace';\n\nexport const AsyncSchemaInSyncParsingError = DomainFirstTypesError.error('ASYNC_LOGIC');\n","import type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { DomainFirstTypesError } from './namespace';\n\nexport const TypeParsingError = DomainFirstTypesError.error<{\n parsingIssues: readonly StandardSchemaV1.Issue[];\n value: unknown;\n}>('INVALID_DATA');\n","import type { StandardSchemaV1 } from '@standard-schema/spec';\nimport {\n AsyncSchemaInSyncParsingError,\n TypeParsingError\n} from '../errors';\n\nexport function parseSync<S extends StandardSchemaV1>(\n schema: S,\n value: StandardSchemaV1.InferInput<S>\n): StandardSchemaV1.InferOutput<S> {\n const result = schema['~standard'].validate(value);\n\n if (result instanceof Promise) {\n throw new AsyncSchemaInSyncParsingError({ schema, value });\n }\n\n if ('issues' in result && result.issues) {\n throw new TypeParsingError({ parsingIssues: result.issues, value });\n }\n\n return result.value;\n}\n","import type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { type DeepReadonly, parseSync } from './utils';\n\nconst createDomainType = <ModelSchema extends StandardSchemaV1>(\n getModelSchema: (\n isCurrentEntity: (target: unknown) => boolean\n ) => ModelSchema\n) => {\n const classSymbol = Symbol();\n\n const isInstanceOfThisType = (target: unknown): boolean => {\n return !!target && typeof target === 'object' && classSymbol in target;\n };\n\n class DomainType {\n public static readonly schema = getModelSchema(isInstanceOfThisType);\n\n constructor(model: StandardSchemaV1.InferInput<ModelSchema>) {\n const schema = (this.constructor as typeof DomainType).schema;\n\n const parsedModelData = parseSync(schema, model);\n\n if (parsedModelData && typeof parsedModelData === 'object') {\n for (const [key, value] of Object.entries(parsedModelData)) {\n Object.defineProperty(this, key, {\n value,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n } else {\n Object.defineProperty(this, 'value', {\n value: parsedModelData,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n\n Object.defineProperty(this, classSymbol, {\n value: true,\n writable: false,\n configurable: false\n });\n }\n }\n\n return DomainType as unknown as (abstract new (\n model: StandardSchemaV1.InferInput<ModelSchema>\n ) => DeepReadonly<\n StandardSchemaV1.InferOutput<ModelSchema> extends object\n ? StandardSchemaV1.InferOutput<ModelSchema>\n : {\n value: StandardSchemaV1.InferOutput<ModelSchema>;\n }\n >) & { schema: ModelSchema };\n};\n\nexport const domainType = <ModelSchema extends StandardSchemaV1>(\n modelSchema: ModelSchema\n) => {\n return createDomainType(() => modelSchema);\n};\n\nexport const recursiveDomainType = <ModelSchema extends StandardSchemaV1>(\n modelSchema: (isCurrentType: (target: unknown) => boolean) => ModelSchema\n) => {\n return createDomainType(modelSchema);\n};\n"],"names":["__webpack_require__","e","Object","Symbol","DomainFirstTypesError","errorNamespace","AsyncSchemaInSyncParsingError","TypeParsingError","parseSync","schema","value","result","Promise","createDomainType","getModelSchema","classSymbol","isInstanceOfThisType","target","DomainType","model","parsedModelData","key","domainType","modelSchema","recursiveDomainType"],"mappings":"wPAAAA,CAAAA,oBAAoB,CAAC,CAAG,CAACC,EAAS,EAAS,KAC1C,IAAI,EAAS,CAAC,EAAM,KACnB,IAAI,IAAI,KAAO,EACXD,oBAAoB,CAAC,CAAC,EAAM,IAAQ,CAACA,oBAAoB,CAAC,CAACC,EAAS,IACtEC,OAAO,cAAc,CAACD,EAAS,EAAK,CAAE,WAAY,GAAM,CAAC,EAAK,CAAE,CAAI,CAAC,EAAI,AAAC,EAG7E,EACA,EAAO,EAAS,OAChB,EAAO,EAAQ,QAChB,ECVAD,oBAAoB,CAAC,CAAG,CAAC,EAAK,IAAUE,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAK,GCClFF,oBAAoB,CAAC,CAAG,AAACC,IACrB,AAAkB,IAAlB,OAAOE,QAA0BA,OAAO,WAAW,EACrDD,OAAO,cAAc,CAACD,EAASE,OAAO,WAAW,CAAE,CAAE,MAAO,QAAS,GAEtED,OAAO,cAAc,CAACD,EAAS,aAAc,CAAE,MAAO,EAAK,EAC5D,E,4VCJaG,sBAAwBC,AAAAA,GAAAA,uBAAAA,cAAAA,AAAAA,EAAe,uBCAvCC,8BAAgCF,sBAAsB,KAAK,CAAC,eCC5DG,iBAAmBH,sBAAsB,KAAK,CAGxD,gBCAI,SAASI,UACZC,CAAS,CACTC,CAAqC,EAErC,IAAMC,EAASF,CAAM,CAAC,YAAY,CAAC,QAAQ,CAACC,GAE5C,GAAIC,aAAkBC,QAClB,MAAM,IAAIN,8BAA8B,CAAEG,OAAAA,EAAQC,MAAAA,CAAM,GAG5D,GAAI,WAAYC,GAAUA,EAAO,MAAM,CACnC,MAAM,IAAIJ,iBAAiB,CAAE,cAAeI,EAAO,MAAM,CAAED,MAAAA,CAAM,GAGrE,OAAOC,EAAO,KAAK,AACvB,CClBA,MAAME,iBAAmB,AACrBC,IAIA,IAAMC,EAAcZ,SAEda,EAAuB,AAACC,GACnB,CAAC,CAACA,GAAU,AAAkB,UAAlB,OAAOA,GAAuBF,KAAeE,CAGpE,OAAMC,EACF,OAAuB,OAASJ,EAAeE,EAAsB,AAErE,aAAYG,CAA+C,CAAE,CAGzD,MAAMC,EAAkBZ,UAFR,IAAI,CAAC,WAAW,CAAuB,MAAM,CAEnBW,GAE1C,GAAIC,GAAmB,AAA2B,UAA3B,OAAOA,EAC1B,IAAK,KAAM,CAACC,EAAKX,EAAM,GAAIR,OAAO,OAAO,CAACkB,GACtClB,OAAO,cAAc,CAAC,IAAI,CAAEmB,EAAK,CAC7BX,MAAAA,EACA,SAAU,GACV,aAAc,GACd,WAAY,EAChB,QAGJR,OAAO,cAAc,CAAC,IAAI,CAAE,QAAS,CACjC,MAAOkB,EACP,SAAU,GACV,aAAc,GACd,WAAY,EAChB,GAGJlB,OAAO,cAAc,CAAC,IAAI,CAAEa,EAAa,CACrC,MAAO,GACP,SAAU,GACV,aAAc,EAClB,EACJ,CACJ,CAEA,OAAOG,CASX,EAEaI,WAAa,AACtBC,GAEOV,iBAAiB,IAAMU,GAGrBC,oBAAsB,AAC/BD,GAEOV,iBAAiBU,G"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{errorNamespace as e}from"@domain-first/errors";let r=e("SCHEMA").error("ASYNC_LOGIC"),t=e("PARSING").error("INVALID_DATA"),i=e=>{let i=Symbol(),s=e=>!!e&&"object"==typeof e&&i in e;class o{static schema=e(s);constructor(e){let s=function(e,i){let s=e["~standard"].validate(i);if(s instanceof Promise)throw new r({schema:e,value:i});if("issues"in s&&s.issues)throw new t({parsingIssues:s.issues,value:i});return s.value}(this.constructor.schema,e);if(s&&"object"==typeof s)for(let[e,r]of Object.entries(s))Object.defineProperty(this,e,{value:r,writable:!1,configurable:!1,enumerable:!0});else Object.defineProperty(this,"value",{value:s,writable:!1,configurable:!1,enumerable:!0});Object.defineProperty(this,i,{value:!0,writable:!1,configurable:!1})}}return o},s=e=>i(()=>e),o=e=>i(e);export{r as AsyncSchemaInSyncParsingError,t as InvalidDataParsingError,s as domainType,o as recursiveDomainType};
1
+ import{errorNamespace as e}from"@domain-first/errors";let r=e("@DOMAIN-FIRST/TYPES"),t=r.error("ASYNC_LOGIC"),i=r.error("INVALID_DATA"),s=e=>{let r=Symbol(),s=e=>!!e&&"object"==typeof e&&r in e;class o{static schema=e(s);constructor(e){let s=function(e,r){let s=e["~standard"].validate(r);if(s instanceof Promise)throw new t({schema:e,value:r});if("issues"in s&&s.issues)throw new i({parsingIssues:s.issues,value:r});return s.value}(this.constructor.schema,e);if(s&&"object"==typeof s)for(let[e,r]of Object.entries(s))Object.defineProperty(this,e,{value:r,writable:!1,configurable:!1,enumerable:!0});else Object.defineProperty(this,"value",{value:s,writable:!1,configurable:!1,enumerable:!0});Object.defineProperty(this,r,{value:!0,writable:!1,configurable:!1})}}return o},o=e=>s(()=>e),n=e=>s(e);export{t as AsyncSchemaInSyncParsingError,i as TypeParsingError,o as domainType,n as recursiveDomainType};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/errors/async-schema-in-sync-parsing-error.ts","../src/errors/invalid-data-parsing-error.ts","../src/domain-type.ts","../src/utils/parse-sync.ts"],"sourcesContent":["import { errorNamespace } from '@domain-first/errors';\n\nconst SchemaErrors = errorNamespace('SCHEMA')\n\nexport const AsyncSchemaInSyncParsingError = SchemaErrors.error('ASYNC_LOGIC');\n","import { errorNamespace } from '@domain-first/errors';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\n\nconst ParsingErrors = errorNamespace(\"PARSING\")\n\nexport const InvalidDataParsingError = ParsingErrors.error<{\n parsingIssues: readonly StandardSchemaV1.Issue[];\n value: unknown;\n}>('INVALID_DATA');\n","import type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { type DeepReadonly, parseSync } from './utils';\n\nconst createDomainType = <ModelSchema extends StandardSchemaV1>(\n getModelSchema: (\n isCurrentEntity: (target: unknown) => boolean\n ) => ModelSchema\n) => {\n const classSymbol = Symbol();\n\n const isInstanceOfThisType = (target: unknown): boolean => {\n return !!target && typeof target === 'object' && classSymbol in target;\n };\n\n class DomainType {\n public static readonly schema = getModelSchema(isInstanceOfThisType);\n\n constructor(model: StandardSchemaV1.InferInput<ModelSchema>) {\n const schema = (this.constructor as typeof DomainType).schema;\n\n const parsedModelData = parseSync(schema, model);\n\n if (parsedModelData && typeof parsedModelData === 'object') {\n for (const [key, value] of Object.entries(parsedModelData)) {\n Object.defineProperty(this, key, {\n value,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n } else {\n Object.defineProperty(this, 'value', {\n value: parsedModelData,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n\n Object.defineProperty(this, classSymbol, {\n value: true,\n writable: false,\n configurable: false\n });\n }\n }\n\n return DomainType as unknown as (abstract new (\n model: StandardSchemaV1.InferInput<ModelSchema>\n ) => DeepReadonly<\n StandardSchemaV1.InferOutput<ModelSchema> extends object\n ? StandardSchemaV1.InferOutput<ModelSchema>\n : {\n value: StandardSchemaV1.InferOutput<ModelSchema>;\n }\n >) & { schema: ModelSchema };\n};\n\nexport const domainType = <ModelSchema extends StandardSchemaV1>(\n modelSchema: ModelSchema\n) => {\n return createDomainType(() => modelSchema);\n};\n\nexport const recursiveDomainType = <ModelSchema extends StandardSchemaV1>(\n modelSchema: (isCurrentType: (target: unknown) => boolean) => ModelSchema\n) => {\n return createDomainType(modelSchema);\n};\n","import type { StandardSchemaV1 } from '@standard-schema/spec';\nimport {\n AsyncSchemaInSyncParsingError,\n InvalidDataParsingError\n} from '../errors';\n\nexport function parseSync<S extends StandardSchemaV1>(\n schema: S,\n value: StandardSchemaV1.InferInput<S>\n): StandardSchemaV1.InferOutput<S> {\n const result = schema['~standard'].validate(value);\n\n if (result instanceof Promise) {\n throw new AsyncSchemaInSyncParsingError({ schema, value });\n }\n\n if ('issues' in result && result.issues) {\n throw new InvalidDataParsingError({ parsingIssues: result.issues, value });\n }\n\n return result.value;\n}\n"],"names":["AsyncSchemaInSyncParsingError","SchemaErrors","errorNamespace","InvalidDataParsingError","ParsingErrors","createDomainType","getModelSchema","classSymbol","Symbol","isInstanceOfThisType","target","DomainType","model","parsedModelData","parseSync","schema","value","result","Promise","key","Object","domainType","modelSchema","recursiveDomainType"],"mappings":"sDAIO,IAAMA,EAAgCC,AAFxBC,EAAe,UAEsB,KAAK,CAAC,eCCnDC,EAA0BC,AAFjBF,EAAe,WAEgB,KAAK,CAGvD,gBCLGG,EAAmB,AACrBC,IAIA,IAAMC,EAAcC,SAEdC,EAAuB,AAACC,GACnB,CAAC,CAACA,GAAU,AAAkB,UAAlB,OAAOA,GAAuBH,KAAeG,CAGpE,OAAMC,EACF,OAAuB,OAASL,EAAeG,EAAsB,AAErE,aAAYG,CAA+C,CAAE,CAGzD,IAAMC,EAAkBC,ACd7B,SACHC,CAAS,CACTC,CAAqC,EAErC,IAAMC,EAASF,CAAM,CAAC,YAAY,CAAC,QAAQ,CAACC,GAE5C,GAAIC,aAAkBC,QAClB,MAAM,IAAIlB,EAA8B,CAAEe,OAAAA,EAAQC,MAAAA,CAAM,GAG5D,GAAI,WAAYC,GAAUA,EAAO,MAAM,CACnC,MAAM,IAAId,EAAwB,CAAE,cAAec,EAAO,MAAM,CAAED,MAAAA,CAAM,GAG5E,OAAOC,EAAO,KAAK,AACvB,EDH4B,IAAI,CAAC,WAAW,CAAuB,MAAM,CAEnBL,GAE1C,GAAIC,GAAmB,AAA2B,UAA3B,OAAOA,EAC1B,IAAK,GAAM,CAACM,EAAKH,EAAM,GAAII,OAAO,OAAO,CAACP,GACtCO,OAAO,cAAc,CAAC,IAAI,CAAED,EAAK,CAC7BH,MAAAA,EACA,SAAU,GACV,aAAc,GACd,WAAY,EAChB,QAGJI,OAAO,cAAc,CAAC,IAAI,CAAE,QAAS,CACjC,MAAOP,EACP,SAAU,GACV,aAAc,GACd,WAAY,EAChB,GAGJO,OAAO,cAAc,CAAC,IAAI,CAAEb,EAAa,CACrC,MAAO,GACP,SAAU,GACV,aAAc,EAClB,EACJ,CACJ,CAEA,OAAOI,CASX,EAEaU,EAAa,AACtBC,GAEOjB,EAAiB,IAAMiB,GAGrBC,EAAsB,AAC/BD,GAEOjB,EAAiBiB,U"}
1
+ {"version":3,"file":"index.js","sources":["../src/errors/namespace.ts","../src/errors/async-schema-in-sync-parsing-error.ts","../src/errors/type-parsing-error.ts","../src/domain-type.ts","../src/utils/parse-sync.ts"],"sourcesContent":["import { errorNamespace } from \"@domain-first/errors\";\n\nexport const DomainFirstTypesError = errorNamespace(\"@DOMAIN-FIRST/TYPES\")\n","import { DomainFirstTypesError } from './namespace';\n\nexport const AsyncSchemaInSyncParsingError = DomainFirstTypesError.error('ASYNC_LOGIC');\n","import type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { DomainFirstTypesError } from './namespace';\n\nexport const TypeParsingError = DomainFirstTypesError.error<{\n parsingIssues: readonly StandardSchemaV1.Issue[];\n value: unknown;\n}>('INVALID_DATA');\n","import type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { type DeepReadonly, parseSync } from './utils';\n\nconst createDomainType = <ModelSchema extends StandardSchemaV1>(\n getModelSchema: (\n isCurrentEntity: (target: unknown) => boolean\n ) => ModelSchema\n) => {\n const classSymbol = Symbol();\n\n const isInstanceOfThisType = (target: unknown): boolean => {\n return !!target && typeof target === 'object' && classSymbol in target;\n };\n\n class DomainType {\n public static readonly schema = getModelSchema(isInstanceOfThisType);\n\n constructor(model: StandardSchemaV1.InferInput<ModelSchema>) {\n const schema = (this.constructor as typeof DomainType).schema;\n\n const parsedModelData = parseSync(schema, model);\n\n if (parsedModelData && typeof parsedModelData === 'object') {\n for (const [key, value] of Object.entries(parsedModelData)) {\n Object.defineProperty(this, key, {\n value,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n } else {\n Object.defineProperty(this, 'value', {\n value: parsedModelData,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n\n Object.defineProperty(this, classSymbol, {\n value: true,\n writable: false,\n configurable: false\n });\n }\n }\n\n return DomainType as unknown as (abstract new (\n model: StandardSchemaV1.InferInput<ModelSchema>\n ) => DeepReadonly<\n StandardSchemaV1.InferOutput<ModelSchema> extends object\n ? StandardSchemaV1.InferOutput<ModelSchema>\n : {\n value: StandardSchemaV1.InferOutput<ModelSchema>;\n }\n >) & { schema: ModelSchema };\n};\n\nexport const domainType = <ModelSchema extends StandardSchemaV1>(\n modelSchema: ModelSchema\n) => {\n return createDomainType(() => modelSchema);\n};\n\nexport const recursiveDomainType = <ModelSchema extends StandardSchemaV1>(\n modelSchema: (isCurrentType: (target: unknown) => boolean) => ModelSchema\n) => {\n return createDomainType(modelSchema);\n};\n","import type { StandardSchemaV1 } from '@standard-schema/spec';\nimport {\n AsyncSchemaInSyncParsingError,\n TypeParsingError\n} from '../errors';\n\nexport function parseSync<S extends StandardSchemaV1>(\n schema: S,\n value: StandardSchemaV1.InferInput<S>\n): StandardSchemaV1.InferOutput<S> {\n const result = schema['~standard'].validate(value);\n\n if (result instanceof Promise) {\n throw new AsyncSchemaInSyncParsingError({ schema, value });\n }\n\n if ('issues' in result && result.issues) {\n throw new TypeParsingError({ parsingIssues: result.issues, value });\n }\n\n return result.value;\n}\n"],"names":["DomainFirstTypesError","errorNamespace","AsyncSchemaInSyncParsingError","TypeParsingError","createDomainType","getModelSchema","classSymbol","Symbol","isInstanceOfThisType","target","DomainType","model","parsedModelData","parseSync","schema","value","result","Promise","key","Object","domainType","modelSchema","recursiveDomainType"],"mappings":"sDAEO,IAAMA,EAAwBC,EAAe,uBCAvCC,EAAgCF,EAAsB,KAAK,CAAC,eCC5DG,EAAmBH,EAAsB,KAAK,CAGxD,gBCHGI,EAAmB,AACrBC,IAIA,IAAMC,EAAcC,SAEdC,EAAuB,AAACC,GACnB,CAAC,CAACA,GAAU,AAAkB,UAAlB,OAAOA,GAAuBH,KAAeG,CAGpE,OAAMC,EACF,OAAuB,OAASL,EAAeG,EAAsB,AAErE,aAAYG,CAA+C,CAAE,CAGzD,IAAMC,EAAkBC,ACd7B,SACHC,CAAS,CACTC,CAAqC,EAErC,IAAMC,EAASF,CAAM,CAAC,YAAY,CAAC,QAAQ,CAACC,GAE5C,GAAIC,aAAkBC,QAClB,MAAM,IAAIf,EAA8B,CAAEY,OAAAA,EAAQC,MAAAA,CAAM,GAG5D,GAAI,WAAYC,GAAUA,EAAO,MAAM,CACnC,MAAM,IAAIb,EAAiB,CAAE,cAAea,EAAO,MAAM,CAAED,MAAAA,CAAM,GAGrE,OAAOC,EAAO,KAAK,AACvB,EDH4B,IAAI,CAAC,WAAW,CAAuB,MAAM,CAEnBL,GAE1C,GAAIC,GAAmB,AAA2B,UAA3B,OAAOA,EAC1B,IAAK,GAAM,CAACM,EAAKH,EAAM,GAAII,OAAO,OAAO,CAACP,GACtCO,OAAO,cAAc,CAAC,IAAI,CAAED,EAAK,CAC7BH,MAAAA,EACA,SAAU,GACV,aAAc,GACd,WAAY,EAChB,QAGJI,OAAO,cAAc,CAAC,IAAI,CAAE,QAAS,CACjC,MAAOP,EACP,SAAU,GACV,aAAc,GACd,WAAY,EAChB,GAGJO,OAAO,cAAc,CAAC,IAAI,CAAEb,EAAa,CACrC,MAAO,GACP,SAAU,GACV,aAAc,EAClB,EACJ,CACJ,CAEA,OAAOI,CASX,EAEaU,EAAa,AACtBC,GAEOjB,EAAiB,IAAMiB,GAGrBC,EAAsB,AAC/BD,GAEOjB,EAAiBiB,U"}
package/package.json CHANGED
@@ -16,7 +16,7 @@
16
16
  "valibot"
17
17
  ],
18
18
  "homepage": "https://codesandbox.io/p/devbox/async-cache-d8crnx?file=%2Findex.js%3A8%2C65",
19
- "version": "4.0.0",
19
+ "version": "5.0.1",
20
20
  "type": "module",
21
21
  "repository": {
22
22
  "type": "git",