UNPKG

@mod-construction/mod-dlm

Version:

mod-dlm is an open source project designed to create a domain-specific language (DSL) for describing prefab elements in the Architecture, Engineering, and Construction (AEC) industry. This project provides tools for defining entity models and automaticall

1 lines 52.7 kB
{"version":3,"sources":["../node_modules/zod-openapi/dist/extend.mjs","../node_modules/zod-openapi/dist/extendZod.chunk.mjs","../src/types/common/acousticPropertiesSchema.ts","../src/types/common/aestheticAndCustomizationOptionsSchema.ts","../src/types/common/boundingBoxSchema.ts","../src/types/common/certificationsSchema.ts","../src/types/common/dimensionalAttributesSchema.ts","../src/types/common/rangeSchema.ts","../src/types/common/documentationAndComplianceSchema.ts","../src/types/common/economicFactorsSchema.ts","../src/types/common/enums.ts","../src/types/common/fireResistanceSchema.ts","../src/types/common/installationAndConnectivitySchema.ts","../src/types/common/lifecycleAndMaintenanceSchema.ts","../src/types/common/loadBearingCapacitySchema.ts","../src/types/common/unitsOfMeasurementEnums.ts","../src/utils/utils.ts","../src/types/common/materialSchema.ts","../src/types/common/performanceAttributesSchema.ts","../src/types/common/productCategorySchema.ts","../src/types/common/productMaterialAttributesSchema.ts","../src/types/common/structuralPropertiesSchema.ts","../src/types/common/sustainabilitySchema.ts","../src/types/common/thermalPropertiesSchema.ts","../src/types/common/versionMetadataSchema.ts","../src/types/entities/prefabElementSchema.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { extendZodWithOpenApi } from \"./extendZod.chunk.mjs\";\nextendZodWithOpenApi(z);\n","function extendZodWithOpenApi(zod) {\n if (typeof zod.ZodType.prototype.openapi !== \"undefined\") {\n return;\n }\n zod.ZodType.prototype.openapi = function(openapi) {\n const result = new this.constructor({\n ...this._def,\n openapi\n });\n return result;\n };\n const zodObjectExtend = zod.ZodObject.prototype.extend;\n zod.ZodObject.prototype.extend = function(...args) {\n const extendResult = zodObjectExtend.apply(this, args);\n extendResult._def.extendMetadata = {\n extends: this\n };\n delete extendResult._def.openapi;\n return extendResult;\n };\n const zodObjectOmit = zod.ZodObject.prototype.omit;\n zod.ZodObject.prototype.omit = function(...args) {\n const omitResult = zodObjectOmit.apply(this, args);\n delete omitResult._def.extendMetadata;\n delete omitResult._def.openapi;\n return omitResult;\n };\n const zodObjectPick = zod.ZodObject.prototype.pick;\n zod.ZodObject.prototype.pick = function(...args) {\n const pickResult = zodObjectPick.apply(this, args);\n delete pickResult._def.extendMetadata;\n delete pickResult._def.openapi;\n return pickResult;\n };\n}\nexport {\n extendZodWithOpenApi\n};\n","import { z } from \"zod\";\n\nconst AcousticPropertiesSchema = z.object({\n /**\n * Weighted sound reduction index (Rw), measured in decibels (dB).\n * Represents the ability of a building element to reduce airborne sound transmission.\n * Based on ISO 717-1.\n */\n weightedSoundReductionIndex: z.number().describe(\"Rw value in dB (ISO 717-1)\"),\n\n /**\n * Spectrum adaptation term (Ctr), in decibels (dB).\n * Adjusts Rw to account for low-frequency noise typical in urban environments.\n * Optional depending on project requirements.\n */\n spectrumAdaptationTerm: z.number().optional().describe(\"Ctr value in dB (optional, ISO 717-1)\")\n});\n\ntype AcousticProperties = z.infer<typeof AcousticPropertiesSchema>;\n\nexport { AcousticPropertiesSchema, AcousticProperties };","import { z } from \"zod\";\n\nconst AestheticAndCustomizationOptionsSchema = z.object({\n colorOptions: z.string().array().optional(),\n texture: z.string().optional(),\n modularAdaptability: z.string().optional(),\n});\n\ntype AestheticAndCustomizationOptions = z.infer<typeof AestheticAndCustomizationOptionsSchema>;\n\nexport { AestheticAndCustomizationOptionsSchema, AestheticAndCustomizationOptions };","import { z } from \"zod\";\n\nconst BoundingBoxSchema = z.object({\n width: z.number().gt(0, \"Width must be greater than 0\"),\n height: z.number().gt(0, \"Height must be greater than 0\"),\n depth: z.number().gt(0, \"Depth must be greater than 0\")\n}).openapi({\n description: \"The bounding box of an element in millimeters.\",\n});\n\ntype BoundingBox = z.infer<typeof BoundingBoxSchema>;\nexport { BoundingBoxSchema, BoundingBox };","import { z } from \"zod\";\n\nconst CertificationsSchema = z.object({\n certificationTypes: z.array(z.string()),\n regulatoryApprovals: z.array(z.string())\n});\n\ntype Certifications = z.infer<typeof CertificationsSchema>;\n\nexport { CertificationsSchema, Certifications };","import { z } from \"zod\";\nimport { RangeSchema } from \"./rangeSchema\";\n\nconst DimensionalAttributesSchema = z.object({\n width: RangeSchema,\n height: RangeSchema,\n length: RangeSchema\n});\n\ntype DimensionalAttributes = z.infer<typeof DimensionalAttributesSchema>;\n\nexport { DimensionalAttributesSchema, DimensionalAttributes };","import { z } from \"zod\";\n\nconst RangeSchema = z.object({\n min: z.number().gt(0, \"Minimum value must be greater than 0\"),\n max: z.number().gt(0, \"Maximum value must be greater than 0\")\n}).openapi({\n description: \"A range of dimensions in millimeters\",\n example: {\n min: 10,\n max: 20\n }\n});\n\ntype Range = z.infer<typeof RangeSchema>;\n\nexport { RangeSchema, Range };","import { z } from \"zod\";\nimport { CertificationsSchema } from \"./certificationsSchema\";\n\nconst DocumentationAndComplianceSchema = z.object({\n technicalSpecifications: z.string(),\n certifications: CertificationsSchema\n});\n\ntype DocumentationAndCompliance = z.infer<typeof DocumentationAndComplianceSchema>;\n\nexport { DocumentationAndComplianceSchema, DocumentationAndCompliance };","import { z } from \"zod\";\nimport { CurrencyEnum } from \"./enums\";\n\nconst EconomicFactorsSchema = z.object({\n costPerUnit: z.number().optional()\n .describe(\"Estimated cost per unit of the prefab element, in selected currency.\")\n .openapi({\n description: \"Estimated cost per unit of the prefab element.\",\n example: 180.5,\n }),\n\n currency: CurrencyEnum.optional()\n .describe(\"Currency of the cost estimate, using ISO 4217 codes.\")\n .openapi({\n description: \"Currency used for the cost estimate (e.g., EUR, USD).\",\n example: \"EUR\",\n }),\n\n manufacturingLeadTime: z.number().optional()\n .describe(\"Typical time required to manufacture one unit in days.\")\n .openapi({\n description: \"Estimated manufacturing lead time in days.\",\n example: 21,\n }),\n});\n\ntype EconomicFactors = z.infer<typeof EconomicFactorsSchema>;\n\nexport { EconomicFactorsSchema, EconomicFactors };","import { z } from \"zod\";\n\nconst DisassemblyRatingEnum = z.enum([\"1\", \"2\", \"3\", \"4\", \"5\"]).openapi({\n description:\n \"Quantified ease of disassembly based on ISO 20887:2020: \" +\n \"1 = not disassemblable without destruction, \" +\n \"2 = destructive tools required, \" +\n \"3 = partial with tools, \" +\n \"4 = full with tools, \" +\n \"5 = tool-free or designed-for-disassembly.\",\n example: \"3\",\n});\nconst ReusePotentialEnum = z\n .enum([\"single-use\", \"multi-use\", \"recyclable\", \"remanufacturable\"])\n .openapi({\n description:\n \"Potential for reuse of the product: 'single-use' means one-time use, \" +\n \"'multi-use' indicates multiple uses, 'recyclable' means material can be recycled, \" +\n \"and 'remanufacturable' means product can be refurbished and remanufactured.\",\n example: \"recyclable\",\n });\nconst RefurbishmentScopeEnum = z\n .enum([\"none\", \"surface-only\", \"partial\", \"full\"])\n .openapi({\n description:\n \"Scope of refurbishment possible: 'none' means no refurbishment, 'surface-only' indicates minor surface work, \" +\n \"'partial' means moderate refurbishment, and 'full' means complete refurbishment.\",\n example: \"partial\",\n });\nconst CircularityCertificationEnum = z\n .enum([\n \"none\",\n \"C2C_basic\",\n \"C2C_bronze\",\n \"C2C_silver\",\n \"C2C_gold\",\n \"C2C_platinum\",\n ])\n .openapi({\n description:\n \"Certification levels for circularity according to Cradle to Cradle (C2C) standards, ranging from 'none' to 'C2C_platinum'.\",\n example: \"C2C_gold\",\n });\n\nconst ProductMaterialEnum = z\n .enum([\"Timber\", \"Steel\", \"Concrete\", \"Hybrid\", \"Other\"])\n .openapi({\n description: \"Primary material of the product element.\",\n example: \"Steel\",\n });\nconst BuildingSystemEnum = z\n .enum([\n \"Wall\",\n \"Balcony\",\n \"Pod\",\n \"Frame\",\n \"Facade\",\n \"Floors\",\n \"Modules\",\n \"Plants\",\n \"Roofs\",\n \"Stairs\",\n ])\n .openapi({\n description:\n \"Building system category to which the product element belongs.\",\n example: \"Facade\",\n });\nconst ProductCategoryEnum = z\n .enum([\n \"Boarding\",\n \"Solid Wall Panels\",\n \"Closed Wall Panels\",\n \"Twinwall\",\n \"Open Wall Panels\",\n \"Structural Insulated Panels (SIPs)\",\n \"Insulated Concrete Panels\",\n \"Prefabricated Balcony\",\n \"Pod\",\n \"Whole Building System\",\n \"Structural Frame\",\n \"Facade System\",\n \"Hollowcore Floor\",\n \"Concrete Lattice Floor\",\n \"Floor Cassettes\",\n \"Solid Floor Panels\",\n \"Volumetric module\",\n \"Prefabricated Plant\",\n \"Roof Panel\",\n \"Roof Truss\",\n \"Prefabricated Stairs\",\n ])\n .openapi({\n description: \"Specific product category within building systems.\",\n example: \"Structural Insulated Panels (SIPs)\",\n });\n\nconst SeismicResistance = z\n .enum([\n \"SDS ≤ 0.167g\",\n \"0.167g < SDS ≤ 0.33g\",\n \"0.33g < SDS ≤ 0.50g\",\n \"SDS > 0.50g\",\n ])\n .openapi({\n description:\n \"Seismic Design Spectral Acceleration at short period (SDS), as defined by ASCE 7 or Eurocode 8 hazard maps.\",\n example: \"0.167g < SDS ≤ 0.33g\",\n });\n\nconst WindLoadResistance = z\n .enum([\"≤ 1.0 kPa\", \"1.0–2.5 kPa\", \"2.5–4.0 kPa\", \"> 4.0 kPa\"])\n .openapi({\n description:\n \"Wind pressure resistance in kilopascals (kPa), typically calculated per EN 1991-1-4 or ASCE 7-16.\",\n example: \"2.5–4.0 kPa\",\n });\n\n/**\n * Sustainability rating category, similar to EU product energy labels.\n */\nconst SustainabilityClassification = z\n .enum([\"A+\", \"A\", \"B\", \"C\", \"D\"])\n .openapi({\n description:\n \"Simplified sustainability score, where A+ indicates highest performance. Define based on EPD or lifecycle impact benchmarks.\",\n example: \"A\",\n });\n\n/**\n * VOC emissions level, qualitative but optionally linked to certification standards.\n */\nconst VOCEmissions = z\n .enum([\n \"None (<0.01 mg/m³)\",\n \"Very Low (<0.1 mg/m³)\",\n \"Low (0.1–0.3 mg/m³)\",\n \"Moderate (0.3–1.0 mg/m³)\",\n \"High (>1.0 mg/m³)\",\n ])\n .openapi({\n description:\n \"Qualitative VOC emissions categories with indicative thresholds based on ISO 16000 or GREENGUARD standards.\",\n example: \"Low (0.1–0.3 mg/m³)\",\n });\n\n/**\n * Recyclability expressed as a percentage value (0–100).\n * Replace enum with a Zod number validator.\n */\nconst Recyclability = z\n .number()\n .min(0)\n .max(100)\n .describe(\n \"Percentage of the element's mass that is recyclable, based on EN 45555 or similar assessment.\"\n );\n\n/**\n * Energy efficiency classification including R-value categories and certifications.\n */\nconst EnergyEfficiency = z\n .enum([\n \"R-1\",\n \"R-2\",\n \"R-5\", // Abstracted R-value tiers\n \"Energy Star\",\n \"LEED Certified\",\n \"LEED Silver\",\n \"LEED Gold\",\n \"LEED Platinum\",\n \"BREEAM Good\",\n \"BREEAM Very Good\",\n \"BREEAM Excellent\",\n \"BREEAM Outstanding\",\n \"Passive House\",\n \"DGNB Gold\",\n ])\n .openapi({\n description:\n \"Energy performance classification, combining insulation tiers and certifications (LEED, BREEAM, etc.).\",\n example: \"LEED Gold\",\n });\n\nconst ConnectionType = z\n .enum([\n \"Bolt-on\",\n \"Welded\",\n \"Clip-on\",\n \"Adhesive\",\n \"Mortar\",\n \"Snap-fit\",\n \"Plug-and-Play\",\n \"Dry Joint\",\n ])\n .openapi({\n description:\n \"Type of connection used for assembly, including mechanical, chemical, and modular methods.\",\n example: \"Bolt-on\",\n });\n\nconst LoadBearingTestStandardEnum = z\n .enum([\"EN 1991-1-1\", \"ASTM E72\", \"ISO 4355\"])\n .openapi({\n description:\n \"Structural load testing standard used to determine maximum load.\",\n example: \"ASTM E72\",\n });\n\nconst CompatibilityEnum = z\n .enum([\n \"Steel Frame\",\n \"Wood Frame\",\n \"Concrete Structure\",\n \"Brickwork\",\n \"Modular Systems\",\n \"Glass Facades\",\n \"Composite Materials\",\n \"CLT\",\n \"Light Gauge Steel\",\n \"Masonry Infill\",\n ])\n .openapi({\n description:\n \"Structural systems compatible with the prefab element, supporting integration into various construction assemblies.\",\n example: \"Concrete Structure\",\n });\n\nconst LoadDistributionEnum = z\n .enum([\n \"point\", // Concentrated load at a single point\n \"uniform\", // Evenly distributed load\n \"triangular\", // Load intensity increases or decreases linearly\n \"trapezoidal\", // Load with a plateau region and tapering ends\n \"eccentric\", // Load applied off-center causing torsion\n \"custom\", // Custom or complex distribution\n ])\n .openapi({\n description: \"The type of load distribution applied to the element.\",\n example: \"point\",\n });\n\n/**\n * Enumeration of IFC Building Element types based on IFC 4.3.\n * Reference: ISO 16739-1:2024\n */\nconst IfcBuildingElementEnum = z\n .enum([\n \"IfcBeam\",\n \"IfcChimney\",\n \"IfcColumn\",\n \"IfcCovering\",\n \"IfcCurtainWall\",\n \"IfcDoor\",\n \"IfcFooting\",\n \"IfcMember\",\n \"IfcPile\",\n \"IfcPlate\",\n \"IfcRailing\",\n \"IfcRamp\",\n \"IfcRampFlight\",\n \"IfcRoof\",\n \"IfcShadingDevice\",\n \"IfcSlab\",\n \"IfcStair\",\n \"IfcStairFlight\",\n \"IfcWall\",\n \"IfcWallStandardCase\",\n \"IfcWindow\",\n \"IfcBuildingElementProxy\",\n ])\n .openapi({\n description: \"Enumeration of IFC Building Element types based on IFC 4.3.\",\n example: \"IfcWall\",\n });\n\nconst CurrencyEnum = z\n .enum([\"EUR\", \"USD\", \"GBP\", \"CHF\", \"JPY\", \"CNY\"])\n .openapi({\n description: \"Currency of the cost estimate, using ISO 4217 codes.\",\n example: \"EUR\",\n });\n\n/**\n * Classification of the material's reaction to fire, based on Euroclass standards (EN 13501-1).\n * Ranges from A1 (non-combustible) to F (easily flammable).\n */\nconst FireResistanceEnum = z\n .enum([\"A1\", \"A2\", \"B\", \"C\", \"D\", \"E\", \"F\"])\n .openapi({\n description:\n \"Fire resistance classification based on Euroclass standards (EN 13501-1).\",\n example: \"A1\",\n });\n\n/**\n * Duration for which the element resists fire under standard testing conditions.\n * Expressed in minutes, as defined by EN 1363-1 or ASTM E119.\n */\nconst FireResistanceDurationEnum = z\n .enum([\"30min\", \"60min\", \"90min\", \"120min\", \"180min\", \"240min\"])\n .openapi({\n description: \"Fire resistance duration in minutes (EN 1363-1 / ASTM E119).\",\n example: \"30min\",\n });\n\nexport {\n CurrencyEnum,\n FireResistanceEnum,\n FireResistanceDurationEnum,\n ProductMaterialEnum,\n BuildingSystemEnum,\n ProductCategoryEnum,\n SeismicResistance,\n WindLoadResistance,\n SustainabilityClassification,\n VOCEmissions,\n Recyclability,\n EnergyEfficiency,\n ConnectionType,\n CompatibilityEnum,\n LoadDistributionEnum,\n LoadBearingTestStandardEnum,\n DisassemblyRatingEnum,\n ReusePotentialEnum,\n RefurbishmentScopeEnum,\n CircularityCertificationEnum,\n IfcBuildingElementEnum,\n};\n","import { z } from \"zod\";\nimport { FireResistanceDurationEnum, FireResistanceEnum } from \"./enums\";\n\nconst FireResistanceSchema = z.object({\n /**\n * Classification of the material's reaction to fire, based on Euroclass standards (EN 13501-1).\n * Ranges from A1 (non-combustible) to F (easily flammable).\n */\n reactionToFireClassification: FireResistanceEnum,\n\n /**\n * Duration for which the element resists fire under standard testing conditions.\n * Expressed in minutes, as defined by EN 1363-1 or ASTM E119.\n */\n fireResistanceDuration: FireResistanceDurationEnum,\n}).openapi({\n description: \"Fire resistance classification of the material, based on Euroclass standards (EN 13501-1).\",\n example: {\n reactionToFireClassification: \"A1\",\n fireResistanceDuration: \"30min\",\n },\n});\n\ntype FireResistance = z.infer<typeof FireResistanceSchema>;\n\nexport { FireResistanceSchema, FireResistance };","import { z } from \"zod\";\nimport { CompatibilityEnum, ConnectionType } from \"./enums\";\n\nconst InstallationAndConnectivitySchema = z.object({\n connectionType: ConnectionType.optional(),\n installationTime: z.number()\n .min(0)\n .describe(\"Estimated installation time in minutes\"),\n compatibility: CompatibilityEnum.optional(),\n }).openapi({\n description: \"Describes how the prefab element is installed and what structural systems it is compatible with.\",\n ref: \"InstallationAndConnectivity\"\n });\n\ntype InstallationAndConnectivity = z.infer<typeof InstallationAndConnectivitySchema>;\n\nexport { InstallationAndConnectivitySchema, InstallationAndConnectivity };","import { z } from \"zod\";\n\nconst LifecycleAndMaintenanceSchema = z.object({\n expectedLifespan: z.number().optional()\n .describe(\"Expected lifespan of the prefab element in years.\")\n .openapi({\n description: \"Expected lifespan of the prefab element in years.\",\n example: 50,\n }),\n maintenanceRequirements: z.string().optional()\n .describe(\"Maintenance requirements of the prefab element.\")\n .openapi({\n description: \"Maintenance requirements of the prefab element.\",\n example: \"Regular cleaning and inspection.\",\n }),\n warranty: z.string().optional()\n .describe(\"Warranty information of the prefab element.\")\n .openapi({\n description: \"Warranty information of the prefab element.\",\n example: \"10 years warranty.\",\n }),\n});\n\ntype LifecycleAndMaintenance = z.infer<typeof LifecycleAndMaintenanceSchema>;\n\nexport { LifecycleAndMaintenanceSchema, LifecycleAndMaintenance };","import { z } from \"zod\";\nimport { ForceUnitsEnum } from \"./unitsOfMeasurementEnums\";\nimport { LoadBearingTestStandardEnum, LoadDistributionEnum } from \"./enums\";\n\nconst LoadBearingCapacitySchema = z.object({\n maximumLoad: z.number()\n .positive(\"Maximum load must be a positive number\")\n .describe(\"The maximum load the element can bear, expressed as a positive number (e.g., 5.0)\"),\n\n forceUnit: ForceUnitsEnum.describe(\"Unit of force measurement, e.g., 'kN' for kilonewtons or 'N' for newtons\"),\n\n loadDistribution: LoadDistributionEnum.describe(\"The type of load distribution applied to the element\"),\n\n testStandard: LoadBearingTestStandardEnum.optional()\n}).openapi({\n description: \"The maximum load the element can bear, expressed as a positive number (e.g., 5.0)\",\n example: {\n maximumLoad: 5.0,\n forceUnit: \"kN\",\n loadDistribution: \"point\",\n testStandard: \"EN 1991-1-1\"\n }\n});\n\ntype LoadBearingCapacity = z.infer<typeof LoadBearingCapacitySchema>;\n\nexport { LoadBearingCapacitySchema, LoadBearingCapacity };","import { z } from \"zod\";\nimport {\n AREA_UNITS,\n FORCE_UNITS,\n LENGTH_UNITS,\n MASS_UNITS,\n TEMPRATURE_UNITS,\n TORQUE_UNITS,\n VOLUME_UNITS,\n zodEnum\n} from \"../../utils/utils\";\n\n\nexport const ForceUnitsEnum = z.enum(zodEnum(FORCE_UNITS));\nexport const MassUnits = z.enum(zodEnum(MASS_UNITS));\nexport const LengthUnits = z.enum(zodEnum(LENGTH_UNITS));\nexport const AreaUnits = z.enum(zodEnum(AREA_UNITS));\nexport const VolumeUnits = z.enum(zodEnum(VOLUME_UNITS));\nexport const TorqueUnits = z.enum(zodEnum(TORQUE_UNITS));\nexport const TempratureUnits = z.enum(zodEnum(TEMPRATURE_UNITS));","import configureMeasurements from 'convert-units'\nimport allMeasures, { AllMeasures, AllMeasuresSystems, AllMeasuresUnits, } from \"convert-units/definitions/all\"\n\nconst convert = configureMeasurements<AllMeasures, AllMeasuresSystems, AllMeasuresUnits>(allMeasures);\n\nexport const FORCE_UNITS = convert().possibilities(\"force\")\nexport const MASS_UNITS = convert().possibilities(\"mass\")\nexport const LENGTH_UNITS = convert().possibilities(\"length\")\nexport const AREA_UNITS = convert().possibilities(\"area\")\nexport const VOLUME_UNITS = convert().possibilities(\"volume\")\nexport const TORQUE_UNITS = convert().possibilities(\"torque\")\nexport const TEMPRATURE_UNITS = convert().possibilities(\"temperature\")\n\n/**\n * Enabling creation of a Zod.Enum from a dynamic array\n * addressing Github Issue: https://github.com/colinhacks/zod/discussions/2125\n * @param arr\n */\nexport const zodEnum = <T>(arr: T[]): [T, ...T[]] => arr as [T, ...T[]];","import { z } from \"zod\";\nimport { ProductMaterialEnum } from \"./enums\";\n\nconst MaterialSchema = z.object({\n type: ProductMaterialEnum,\n grade: z.string()\n});\n\nconst MaterialCompositionSchema = z.object({\n materials: z.array(MaterialSchema)\n});\n\ntype Material = z.infer<typeof MaterialSchema>;\n\ntype MaterialComposition = z.infer<typeof MaterialCompositionSchema>;\n\nexport { MaterialSchema, MaterialCompositionSchema, Material, MaterialComposition };","import { z } from \"zod\";\nimport { AcousticPropertiesSchema } from \"./acousticPropertiesSchema\";\nimport { FireResistanceSchema } from \"./fireResistanceSchema\";\n\nconst PerformanceAttributesSchema = z.object({\n fireResistance: FireResistanceSchema,\n\n thermalTransmittance: z.number()\n .min(0)\n .max(2)\n .describe(\"Thermal transmittance (U-value) in W/m²K, typically between 0 and 2\"),\n\n acousticProperties: AcousticPropertiesSchema.optional(),\n\n airTightness: z.number()\n .min(0)\n .describe(\"Air permeability (e.g., n50 value in 1/h or q50 in m³/h·m²) - lower values indicate better airtightness\"),\n\n vaporPermeability: z.number()\n .min(0)\n .describe(\"Vapor permeability in µ or Sd value in meters (ISO 12572) - measures resistance to water vapor diffusion\")\n});\n\ntype PerformanceAttributes = z.infer<typeof PerformanceAttributesSchema>;\n\nexport { PerformanceAttributesSchema, PerformanceAttributes };","import { z } from \"zod\";\nimport { BuildingSystemEnum, ProductCategoryEnum } from \"./enums\";\n\n// Temporary schema for values\nconst RawProductCategorySchema = z.object({\n category: ProductCategoryEnum,\n buildingSystem: BuildingSystemEnum\n});\n\nconst productCategoryValues: z.infer<typeof RawProductCategorySchema>[] = [\n { category: \"Boarding\", buildingSystem: \"Wall\" },\n { category: \"Solid Wall Panels\", buildingSystem: \"Wall\" },\n { category: \"Closed Wall Panels\", buildingSystem: \"Wall\" },\n { category: \"Twinwall\", buildingSystem: \"Wall\" },\n { category: \"Open Wall Panels\", buildingSystem: \"Wall\" },\n { category: \"Structural Insulated Panels (SIPs)\", buildingSystem: \"Wall\" },\n { category: \"Insulated Concrete Panels\", buildingSystem: \"Wall\" },\n { category: \"Whole Building System\", buildingSystem: \"Frame\" },\n { category: \"Structural Frame\", buildingSystem: \"Frame\" },\n { category: \"Hollowcore Floor\", buildingSystem: \"Floors\" },\n { category: \"Concrete Lattice Floor\", buildingSystem: \"Floors\" },\n { category: \"Floor Cassettes\", buildingSystem: \"Floors\" },\n { category: \"Solid Floor Panels\", buildingSystem: \"Floors\" },\n { category: \"Roof Panel\", buildingSystem: \"Roofs\" },\n { category: \"Roof Truss\", buildingSystem: \"Roofs\" },\n { category: \"Prefabricated Balcony\", buildingSystem: \"Balcony\" },\n { category: \"Pod\", buildingSystem: \"Pod\" },\n { category: \"Facade System\", buildingSystem: \"Facade\" },\n { category: \"Volumetric module\", buildingSystem: \"Modules\" },\n { category: \"Prefabricated Plant\", buildingSystem: \"Plants\" },\n { category: \"Prefabricated Stairs\", buildingSystem: \"Stairs\" },\n];\n\nconst ProductCategorySchema = RawProductCategorySchema.refine(\n (data) =>\n productCategoryValues.some(\n (value) =>\n value.category === data.category &&\n value.buildingSystem === data.buildingSystem\n ),\n {\n message: \"Invalid product category or building system\",\n path: [\"productCategory\"],\n }\n).openapi({\n description: \"Product Category\",\n example: {\n category: \"Solid Wall Panels\",\n buildingSystem: \"Wall\",\n },\n ref: \"ProductCategory\",\n});\n\ntype ProductCategory = z.infer<typeof ProductCategorySchema>;\n\nexport { ProductCategorySchema, productCategoryValues, ProductCategory };\n","import { z } from \"zod\";\nimport { ProductMaterialEnum } from \"./enums\";\n\nconst ProductMaterialAttributesSchema = z.object({\n finishMaterial: ProductMaterialEnum,\n structuralMaterial: ProductMaterialEnum\n});\n\ntype ProductMaterialAttributes = z.infer<typeof ProductMaterialAttributesSchema>;\n\nexport { ProductMaterialAttributesSchema, ProductMaterialAttributes };","import { z } from \"zod\";\nimport { SeismicResistance, WindLoadResistance } from \"./enums\";\nimport { LoadBearingCapacitySchema } from \"./loadBearingCapacitySchema\";\n\nconst StructuralPropertiesSchema = z.object({\n loadBearingCapacity: LoadBearingCapacitySchema.optional(),\n\n seismicResistance: z.union([\n SeismicResistance,\n z.string().describe(\"Custom seismic classification (e.g., Eurocode 8, ASCE 7 zone)\")\n ]).optional(),\n\n windLoadResistance: z.union([\n WindLoadResistance,\n z.string().describe(\"Custom wind classification or rating (e.g., EN 1991-1-4)\")\n ]).optional(),\n\n deflectionLimit: z.union([\n z.number().describe(\"Maximum deflection under load in mm\"),\n z.string().regex(/^L\\/\\d+$/, \"Use format like 'L/250'\")\n .describe(\"Deflection limit as a span ratio (e.g., 'L/250')\")\n ]).optional()\n .describe(\"Deflection control criteria under load: either fixed displacement in mm or span ratio like L/250\"),\n\n safetyFactor: z.number().min(1).optional().describe(\"Applied safety factor for structural design, typically 1.0–2.0\")\n});\n\ntype StructuralProperties = z.infer<typeof StructuralPropertiesSchema>;\n\nexport { StructuralPropertiesSchema, StructuralProperties };","import { z } from \"zod\";\nimport {\n EnergyEfficiency,\n SustainabilityClassification,\n VOCEmissions,\n CircularityCertificationEnum,\n DisassemblyRatingEnum,\n RefurbishmentScopeEnum,\n ReusePotentialEnum,\n} from \"./enums\";\n\nconst SustainabilitySchema = z.object({\n environmentalImpact: z.object({\n classification: SustainabilityClassification\n .describe(\"Sustainability classification rating (e.g., A+, A, B...)\")\n .openapi({\n description: \"Overall sustainability score based on environmental impact (e.g., A+, A, B).\",\n example: \"A+\",\n }),\n VOCEmissions: VOCEmissions.optional()\n .describe(\"Volatile Organic Compounds emissions level.\")\n .openapi({\n description: \"VOC emissions category: None, Low, Medium, or High.\",\n example: \"Low (0.1–0.3 mg/m³)\",\n }),\n recyclability: z.number().min(0).max(100).optional()\n .describe(\"Percentage of the element that is recyclable.\")\n .openapi({\n description: \"Recyclability rate of the product from 0 to 100%.\",\n example: 85,\n }),\n energyEfficiency: EnergyEfficiency\n .describe(\"Energy performance certification, e.g., LEED or Energy Star.\")\n .openapi({\n description: \"Energy certification level or standard.\",\n example: \"LEED Certified\",\n }),\n }),\n\n circularity: z.object({\n disassemblyRating: DisassemblyRatingEnum\n .describe(\"Ease of disassembly based on ISO 20887:2020.\")\n .openapi({\n description: \"Rating from 1 (not disassemblable) to 5 (tool-free disassembly).\",\n example: \"3\",\n }),\n reusePotential: ReusePotentialEnum\n .describe(\"End-of-life reuse potential: single-use, recyclable, etc.\")\n .openapi({\n description: \"Primary reuse potential of the element after its service life.\",\n example: \"recyclable\",\n }),\n refurbishmentScope: RefurbishmentScopeEnum\n .describe(\"Extent to which the element can be refurbished.\")\n .openapi({\n description: \"Refurbishment level: none, surface-only, partial, or full.\",\n example: \"partial\",\n }),\n circularityCertification: CircularityCertificationEnum\n .describe(\"Cradle to Cradle or similar certification.\")\n .openapi({\n description: \"Level of circularity certification (e.g., C2C_gold).\",\n example: \"C2C_gold\",\n }),\n }),\n\n origin: z.object({\n countryOfManufacturing: z.string()\n .describe(\"Country where the element is manufactured.\")\n .openapi({\n description: \"Country of production for lifecycle and logistics assessment.\",\n example: \"Germany\",\n }),\n }),\n}).openapi({\n description: \"Sustainability attributes of the element.\",\n ref: \"Sustainability\",\n});\n\ntype Sustainability = z.infer<typeof SustainabilitySchema>;\n\nexport { SustainabilitySchema, Sustainability };","import { z } from \"zod\";\n\nconst ThermalPropertiesSchema = z.object({\n uValue: z.number(),\n insulationType: z.string()\n});\n\ntype ThermalProperties = z.infer<typeof ThermalPropertiesSchema>;\n\nexport { ThermalPropertiesSchema, ThermalProperties };","import { z } from \"zod\";\n\nconst VersionMetadataSchema = z.object({\n version: z\n .string()\n .regex(\n /^\\d+\\.\\d+\\.\\d+$/,\n \"Version must follow semantic versioning (e.g., 1.0.0)\"\n )\n .describe(\"Semantic version of the prefab element, e.g., '1.0.0'\"),\n\n status: z\n .enum([\"draft\", \"published\", \"deprecated\"])\n .describe(\"Publishing status of the element\"),\n\n lastUpdated: z\n .string()\n .datetime()\n .describe(\"ISO 8601 timestamp of the last update\"),\n});\n\ntype VersionMetadata = z.infer<typeof VersionMetadataSchema>;\n\nexport { VersionMetadataSchema, VersionMetadata };","import { z } from \"zod\";\nimport { AestheticAndCustomizationOptionsSchema } from \"../common/aestheticAndCustomizationOptionsSchema\";\nimport { BoundingBoxSchema } from \"../common/boundingBoxSchema\";\nimport { DimensionalAttributesSchema } from \"../common/dimensionalAttributesSchema\";\nimport { DocumentationAndComplianceSchema } from \"../common/documentationAndComplianceSchema\";\nimport { EconomicFactorsSchema } from \"../common/economicFactorsSchema\";\nimport { InstallationAndConnectivitySchema } from \"../common/installationAndConnectivitySchema\";\nimport { LifecycleAndMaintenanceSchema } from \"../common/lifecycleAndMaintenanceSchema\";\nimport { PerformanceAttributesSchema } from \"../common/performanceAttributesSchema\";\nimport { ProductMaterialAttributesSchema } from \"../common/productMaterialAttributesSchema\";\nimport { StructuralPropertiesSchema } from \"../common/structuralPropertiesSchema\";\nimport { SustainabilitySchema } from \"../common/sustainabilitySchema\";\nimport { ProductCategorySchema } from \"../common/productCategorySchema\";\nimport { VersionMetadataSchema } from \"../common/versionMetadataSchema\";\nimport { IfcBuildingElementEnum } from \"../common/enums\";\n\nconst ElementIdSchema = z.string().uuid().openapi({\n description: \"A unique identifier for an element\",\n example: \"4dd643ff-7ec7-4666-9c88-50b7d3da34e4\",\n ref: \"ElementId\",\n param: {\n in: \"path\",\n name: \"id\",\n }\n});\n\nconst PrefabElementSchema = z.object({\n id: ElementIdSchema\n .describe(\"Unique identifier for the prefab element (UUID).\")\n .openapi({\n description: \"A unique identifier for the prefab element (UUID).\",\n example: \"4dd643ff-7ec7-4666-9c88-50b7d3da34e4\"\n }),\n versionMetadata: VersionMetadataSchema\n .describe(\"Versioning and publishing status metadata of the element.\")\n .openapi({\n description: \"Versioning and publishing status metadata of the element.\"\n }),\n name: z.string().min(1, \"Name is required\")\n .describe(\"Name of the prefab element\")\n .openapi({\n description: \"Human-readable name of the prefab element.\",\n example: \"Cross-Laminated Timber Wall Panel\"\n }),\n description: z.string().min(1, \"Description is required\")\n .describe(\"Detailed description of the element\")\n .openapi({\n description: \"Detailed description of the prefab element, including its intended use or application.\",\n example: \"This CLT wall panel is suitable for multi-story residential buildings and meets fire resistance standards.\"\n }),\n boundingBox: BoundingBoxSchema\n .describe(\"3D bounding dimensions of the prefab element.\")\n .openapi({\n description: \"3D bounding dimensions of the prefab element, defining its spatial envelope.\"\n }),\n images: z.array(z.string()).min(1, \"At least one image is required\")\n .describe(\"Image URLs of the element\")\n .openapi({\n description: \"List of image URLs showing the prefab element from various angles.\",\n example: [\"https://example.com/images/clt-wall-front.png\"]\n }),\n productCategory: ProductCategorySchema\n .describe(\"Product category classification used for filtering and recommendation.\")\n .openapi({\n description: \"Product category classification (e.g., Wall Panels, Stairs, Facade Elements).\"\n }),\n material: ProductMaterialAttributesSchema\n .describe(\"Material composition and technical attributes.\")\n .openapi({\n description: \"Material and physical properties of the prefab element.\"\n }),\n dimensional: DimensionalAttributesSchema\n .describe(\"Dimensional specifications like height, width, thickness, etc.\")\n .openapi({\n description: \"Dimensional characteristics of the prefab element.\"\n }),\n structuralProperties: StructuralPropertiesSchema.optional()\n .describe(\"Load-bearing and performance data relevant to structural design.\")\n .openapi({\n description: \"Optional structural performance details like capacity, stiffness, or seismic resistance.\"\n }),\n performance: PerformanceAttributesSchema.optional()\n .describe(\"Optional mechanical, thermal, and acoustic performance data.\")\n .openapi({\n description: \"Optional performance metrics related to strength, insulation, or soundproofing.\"\n }),\n sustainability: SustainabilitySchema.optional()\n .describe(\"Optional environmental attributes including embodied carbon or certifications.\")\n .openapi({\n description: \"Environmental and sustainability performance such as EPDs or recyclability.\"\n }),\n documentationAndCompliance: DocumentationAndComplianceSchema.optional()\n .describe(\"Optional links to technical documents, certificates, and compliance data.\")\n .openapi({\n description: \"Optional metadata linking to certificates, spec sheets, or regulatory documents.\"\n }),\n installationAndConnectivity: InstallationAndConnectivitySchema.optional()\n .describe(\"Optional installation and interface information for compatibility checks.\")\n .openapi({\n description: \"Optional installation guidelines and connectivity interface descriptions.\"\n }),\n lifecycleAndMaintenance: LifecycleAndMaintenanceSchema.optional()\n .describe(\"Optional data for durability, service intervals, and maintenance needs.\")\n .openapi({\n description: \"Optional data describing maintenance schedules or expected lifecycle.\"\n }),\n aestheticAndCustomizationOptions: AestheticAndCustomizationOptionsSchema.optional()\n .describe(\"Optional fields related to colors, textures, and customization.\")\n .openapi({\n description: \"Optional aesthetic options like finishes or material variations.\"\n }),\n economicFactors: EconomicFactorsSchema.optional()\n .describe(\"Optional fields describing cost, lead time, and economic implications.\")\n .openapi({\n description: \"Optional cost estimation, lead time, and supply constraints.\"\n }),\n ifcType: IfcBuildingElementEnum.optional()\n .describe(\"Optional IFC classification type for BIM model integration.\")\n .openapi({\n description: \"IFC Building Element types based on IFC 4.3 used in BIM tools for semantic classification. (e.g., IfcWall, IfcSlab).\",\n example: \"IfcWallStandardCase\",\n }),\n bimModelUrl: z.string().url().optional()\n .describe(\"Optional URL linking to the BIM model (e.g., IFC file or 3D viewer link) for the prefab element.\")\n .openapi({\n description: \"Optional URL pointing to a downloadable BIM model or online viewer for the element.\",\n example: \"https://example.com/models/clt-wall.ifc\",\n }),\n}).openapi({\n description: \"Prefab Element\",\n ref: \"PrefabElement\"\n});\n\ntype PrefabElement = z.infer<typeof PrefabElementSchema>;\n\nexport { ElementIdSchema, PrefabElementSchema, PrefabElement };"],"mappings":"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CGM,EAAqBN,EACxB,KAAK,CACJ,OACA,UACA,MACA,QACA,SACA,SACA,UACA,SACA,QACA,QACF,CAAC,EACA,QAAQ,CACP,YACE,iEACF,QAAS,QACX,CAAC,EACGO,EAAsBP,EACzB,KAAK,CACJ,WACA,oBACA,qBACA,WACA,mBACA,qCACA,4BACA,wBACA,MACA,wBACA,mBACA,gBACA,mBACA,yBACA,kBACA,qBACA,oBACA,sBACA,aACA,aACA,sBACF,CAAC,EACA,QAAQ,CACP,YAAa,qDACb,QAAS,oCACX,CAAC,EAEGQ,EAAoBR,EACvB,KAAK,CACJ,oBACA,4BACA,2BACA,aACF,CAAC,EACA,QAAQ,CACP,YACE,8GACF,QAAS,2BACX,CAAC,EAEGS,EAAqBT,EACxB,KAAK,CAAC,iBAAa,mBAAe,mBAAe,WAAW,CAAC,EAC7D,QAAQ,CACP,YACE,oGACF,QAAS,kBACX,CAAC,EAKGU,EAA+BV,EAClC,KAAK,CAAC,KAAM,IAAK,IAAK,IAAK,GAAG,CAAC,EAC/B,QAAQ,CACP,YACE,+HACF,QAAS,GACX,CAAC,EAKGW,EAAeX,EAClB,KAAK,CACJ,wBACA,2BACA,8BACA,mCACA,sBACF,CAAC,EACA,QAAQ,CACP,YACE,8GACF,QAAS,6BACX,CAAC,EAMGY,GAAgBZ,EACnB,OAAO,EACP,IAAI,CAAC,EACL,IAAI,GAAG,EACP,SACC,+FACF,EAKIa,EAAmBb,EACtB,KAAK,CACJ,MACA,MACA,MACA,cACA,iBACA,cACA,YACA,gBACA,cACA,mBACA,mBACA,qBACA,gBACA,WACF,CAAC,EACA,QAAQ,CACP,YACE,yGACF,QAAS,WACX,CAAC,EAEGc,EAAiBd,EACpB,KAAK,CACJ,UACA,SACA,UACA,WACA,SACA,WACA,gBACA,WACF,CAAC,EACA,QAAQ,CACP,YACE,6FACF,QAAS,SACX,CAAC,EAEGe,EAA8Bf,EACjC,KAAK,CAAC,cAAe,WAAY,UAAU,CAAC,EAC5C,QAAQ,CACP,YACE,mEACF,QAAS,UACX,CAAC,EAEGgB,EAAoBhB,EACvB,KAAK,CACJ,cACA,aACA,qBACA,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","names":["z","extendZodWithOpenApi","zod","openapi","__spreadProps","__spreadValues","zodObjectExtend","args","extendResult","zodObjectOmit","omitResult","zodObjectPick","pickResult","extendZodWithOpenApi","z","z","AcousticPropertiesSchema","z","Ae