@domain-first/types 5.1.0 → 5.1.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.
@@ -1,16 +1,16 @@
1
1
  import type { StandardSchemaV1 } from '@standard-schema/spec';
2
2
  import { type DeepReadonly } from './utils';
3
- export declare const domainType: <ModelSchema extends StandardSchemaV1>(modelSchema: ModelSchema) => abstract new (model: StandardSchemaV1.InferInput<ModelSchema>) => DeepReadonly<StandardSchemaV1.InferOutput<ModelSchema> extends object ? StandardSchemaV1.InferOutput<ModelSchema> : {
3
+ export declare const domainType: <ModelSchema extends StandardSchemaV1>(modelSchema: ModelSchema) => (abstract new (model: StandardSchemaV1.InferInput<ModelSchema>) => DeepReadonly<StandardSchemaV1.InferOutput<ModelSchema> extends object ? StandardSchemaV1.InferOutput<ModelSchema> : {
4
4
  value: StandardSchemaV1.InferOutput<ModelSchema>;
5
- }> & {
6
- schema: ModelSchema;
7
- } & (StandardSchemaV1.InferOutput<ModelSchema> extends object ? {
5
+ }> & (StandardSchemaV1.InferOutput<ModelSchema> extends object ? {
8
6
  snapshot: () => StandardSchemaV1.InferOutput<ModelSchema>;
9
- } : {});
10
- export declare const recursiveDomainType: <ModelSchema extends StandardSchemaV1>(modelSchema: (isCurrentType: (target: unknown) => boolean) => ModelSchema) => abstract new (model: StandardSchemaV1.InferInput<ModelSchema>) => DeepReadonly<StandardSchemaV1.InferOutput<ModelSchema> extends object ? StandardSchemaV1.InferOutput<ModelSchema> : {
11
- value: StandardSchemaV1.InferOutput<ModelSchema>;
12
- }> & {
7
+ } : {})) & {
13
8
  schema: ModelSchema;
14
- } & (StandardSchemaV1.InferOutput<ModelSchema> extends object ? {
9
+ };
10
+ export declare const recursiveDomainType: <ModelSchema extends StandardSchemaV1>(modelSchema: (isCurrentType: (target: unknown) => boolean) => ModelSchema) => (abstract new (model: StandardSchemaV1.InferInput<ModelSchema>) => DeepReadonly<StandardSchemaV1.InferOutput<ModelSchema> extends object ? StandardSchemaV1.InferOutput<ModelSchema> : {
11
+ value: StandardSchemaV1.InferOutput<ModelSchema>;
12
+ }> & (StandardSchemaV1.InferOutput<ModelSchema> extends object ? {
15
13
  snapshot: () => StandardSchemaV1.InferOutput<ModelSchema>;
16
- } : {});
14
+ } : {})) & {
15
+ schema: ModelSchema;
16
+ };
@@ -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/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 snapshot(): StandardSchemaV1.InferOutput<ModelSchema> {\n // @ts-expect-error hidden field\n const model: StandardSchemaV1.InferInput<ModelSchema> = this._model;\n\n return model;\n }\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 Object.defineProperty(this, '_model', {\n value: parsedModelData,\n configurable: false\n });\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 > & {\n schema: ModelSchema;\n } & (StandardSchemaV1.InferOutput<ModelSchema> extends object\n ? {\n snapshot: () => StandardSchemaV1.InferOutput<ModelSchema>;\n }\n : {});\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,WAAsD,CAIlD,OAFwD,IAAI,CAAC,MAAM,AAGvE,CAEA,YAAYG,CAA+C,CAAE,CAGzD,MAAMC,EAAkBZ,UAFR,IAAI,CAAC,WAAW,CAAuB,MAAM,CAEnBW,GAO1C,GALAjB,OAAO,cAAc,CAAC,IAAI,CAAE,SAAU,CAClC,MAAOkB,EACP,aAAc,EAClB,GAEIA,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,CAeX,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 snapshot(): StandardSchemaV1.InferOutput<ModelSchema> {\n // @ts-expect-error hidden field\n const model: StandardSchemaV1.InferInput<ModelSchema> = this._model;\n\n return model;\n }\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 Object.defineProperty(this, '_model', {\n value: parsedModelData,\n configurable: false\n });\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 > &\n (StandardSchemaV1.InferOutput<ModelSchema> extends object\n ? {\n snapshot: () => StandardSchemaV1.InferOutput<ModelSchema>;\n }\n : {})) & {\n schema: ModelSchema;\n };\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,WAAsD,CAIlD,OAFwD,IAAI,CAAC,MAAM,AAGvE,CAEA,YAAYG,CAA+C,CAAE,CAGzD,MAAMC,EAAkBZ,UAFR,IAAI,CAAC,WAAW,CAAuB,MAAM,CAEnBW,GAO1C,GALAjB,OAAO,cAAc,CAAC,IAAI,CAAE,SAAU,CAClC,MAAOkB,EACP,aAAc,EAClB,GAEIA,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,CAgBX,EAEaI,WAAa,AACtBC,GAEOV,iBAAiB,IAAMU,GAGrBC,oBAAsB,AAC/BD,GAEOV,iBAAiBU,G"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
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 snapshot(): StandardSchemaV1.InferOutput<ModelSchema> {\n // @ts-expect-error hidden field\n const model: StandardSchemaV1.InferInput<ModelSchema> = this._model;\n\n return model;\n }\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 Object.defineProperty(this, '_model', {\n value: parsedModelData,\n configurable: false\n });\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 > & {\n schema: ModelSchema;\n } & (StandardSchemaV1.InferOutput<ModelSchema> extends object\n ? {\n snapshot: () => StandardSchemaV1.InferOutput<ModelSchema>;\n }\n : {});\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","Object","key","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,WAAsD,CAIlD,OAFwD,IAAI,CAAC,MAAM,AAGvE,CAEA,YAAYG,CAA+C,CAAE,CAGzD,IAAMC,EAAkBC,ACrB7B,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,EDI4B,IAAI,CAAC,WAAW,CAAuB,MAAM,CAEnBL,GAO1C,GALAO,OAAO,cAAc,CAAC,IAAI,CAAE,SAAU,CAClC,MAAON,EACP,aAAc,EAClB,GAEIA,GAAmB,AAA2B,UAA3B,OAAOA,EAC1B,IAAK,GAAM,CAACO,EAAKJ,EAAM,GAAIG,OAAO,OAAO,CAACN,GACtCM,OAAO,cAAc,CAAC,IAAI,CAAEC,EAAK,CAC7BJ,MAAAA,EACA,SAAU,GACV,aAAc,GACd,WAAY,EAChB,QAGJG,OAAO,cAAc,CAAC,IAAI,CAAE,QAAS,CACjC,MAAON,EACP,SAAU,GACV,aAAc,GACd,WAAY,EAChB,GAGJM,OAAO,cAAc,CAAC,IAAI,CAAEZ,EAAa,CACrC,MAAO,GACP,SAAU,GACV,aAAc,EAClB,EACJ,CACJ,CAEA,OAAOI,CAeX,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 snapshot(): StandardSchemaV1.InferOutput<ModelSchema> {\n // @ts-expect-error hidden field\n const model: StandardSchemaV1.InferInput<ModelSchema> = this._model;\n\n return model;\n }\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 Object.defineProperty(this, '_model', {\n value: parsedModelData,\n configurable: false\n });\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 > &\n (StandardSchemaV1.InferOutput<ModelSchema> extends object\n ? {\n snapshot: () => StandardSchemaV1.InferOutput<ModelSchema>;\n }\n : {})) & {\n schema: ModelSchema;\n };\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","Object","key","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,WAAsD,CAIlD,OAFwD,IAAI,CAAC,MAAM,AAGvE,CAEA,YAAYG,CAA+C,CAAE,CAGzD,IAAMC,EAAkBC,ACrB7B,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,EDI4B,IAAI,CAAC,WAAW,CAAuB,MAAM,CAEnBL,GAO1C,GALAO,OAAO,cAAc,CAAC,IAAI,CAAE,SAAU,CAClC,MAAON,EACP,aAAc,EAClB,GAEIA,GAAmB,AAA2B,UAA3B,OAAOA,EAC1B,IAAK,GAAM,CAACO,EAAKJ,EAAM,GAAIG,OAAO,OAAO,CAACN,GACtCM,OAAO,cAAc,CAAC,IAAI,CAAEC,EAAK,CAC7BJ,MAAAA,EACA,SAAU,GACV,aAAc,GACd,WAAY,EAChB,QAGJG,OAAO,cAAc,CAAC,IAAI,CAAE,QAAS,CACjC,MAAON,EACP,SAAU,GACV,aAAc,GACd,WAAY,EAChB,GAGJM,OAAO,cAAc,CAAC,IAAI,CAAEZ,EAAa,CACrC,MAAO,GACP,SAAU,GACV,aAAc,EAClB,EACJ,CACJ,CAEA,OAAOI,CAgBX,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": "5.1.0",
19
+ "version": "5.1.1",
20
20
  "type": "module",
21
21
  "repository": {
22
22
  "type": "git",