UNPKG

@speckle/shared

Version:

Shared code between various Speckle JS packages

92 lines 3.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.formatResultsSchema = exports.isResultsSchema = exports.formatTriggerDefinitionSchema = exports.isTriggerDefinitionSchema = exports.isVersionCreatedTriggerDefinition = exports.resultSchema = exports.resultSchemaV2 = exports.resultSchemaV1 = exports.REDACTED_VALUE = exports.RESULTS_SCHEMA_VERSION = exports.TRIGGER_DEFINITIONS_SCHEMA_VERSION = void 0; const index_js_1 = require("../errors/index.js"); const zod_1 = require("zod"); exports.TRIGGER_DEFINITIONS_SCHEMA_VERSION = 1.0; exports.RESULTS_SCHEMA_VERSION = 1.0; exports.REDACTED_VALUE = '******'; const versionCreatedTriggerDefinition = zod_1.z.object({ type: zod_1.z.literal('VERSION_CREATED'), modelId: zod_1.z.string() }); const triggerDefinitionsSchema = zod_1.z.object({ version: zod_1.z.literal(1), definitions: zod_1.z.array(versionCreatedTriggerDefinition) }); const objectResultLevel = zod_1.z.union([ zod_1.z.literal('SUCCESS'), zod_1.z.literal('INFO'), zod_1.z.literal('WARNING'), zod_1.z.literal('ERROR') ]); const objectResultCommon = zod_1.z.object({ category: zod_1.z.string(), level: objectResultLevel, message: zod_1.z.string().nullable(), metadata: zod_1.z .intersection(zod_1.z.object({ gradient: zod_1.z.boolean().optional(), gradientValues: zod_1.z .record(zod_1.z.string(), zod_1.z.object({ gradientValue: zod_1.z.number() })) .optional() }), zod_1.z.record(zod_1.z.string(), zod_1.z.unknown())) .nullable(), visualOverrides: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).nullable() }); const objectResultV1 = objectResultCommon.merge(zod_1.z.object({ objectIds: zod_1.z.string().array() })); exports.resultSchemaV1 = zod_1.z.object({ version: zod_1.z.literal(1), values: zod_1.z.object({ objectResults: objectResultV1.array(), blobIds: zod_1.z.string().array().optional() }) }); const objectResultV2 = objectResultCommon.merge(zod_1.z.object({ objectAppIds: zod_1.z.record(zod_1.z.string(), zod_1.z.string().nullable()) })); exports.resultSchemaV2 = zod_1.z.object({ version: zod_1.z.literal(2), values: zod_1.z.object({ objectResults: objectResultV2.array(), blobIds: zod_1.z.string().array().optional() }) }); exports.resultSchema = zod_1.z.discriminatedUnion('version', [ exports.resultSchemaV1, exports.resultSchemaV2 ]); const isVersionCreatedTriggerDefinition = (val) => { const parseResult = versionCreatedTriggerDefinition.safeParse(val); return parseResult.success; }; exports.isVersionCreatedTriggerDefinition = isVersionCreatedTriggerDefinition; const isTriggerDefinitionSchema = (val) => { const parseResult = triggerDefinitionsSchema.safeParse(val); return parseResult.success; }; exports.isTriggerDefinitionSchema = isTriggerDefinitionSchema; const formatTriggerDefinitionSchema = (state) => { const parseResult = triggerDefinitionsSchema.safeParse(state); if (!parseResult.success) { throw new index_js_1.UnformattableTriggerDefinitionSchemaError(`Invalid trigger definition schema: ${parseResult.error}`); } return parseResult.data; }; exports.formatTriggerDefinitionSchema = formatTriggerDefinitionSchema; const isResultsSchema = (val) => { const parseResult = exports.resultSchema.safeParse(val); return parseResult.success; }; exports.isResultsSchema = isResultsSchema; const formatResultsSchema = (state) => { const parseResult = exports.resultSchema.safeParse(state); if (!parseResult.success) { throw new index_js_1.UnformattableResultsSchemaError(`Invalid results schema: ${parseResult.error}`); } return parseResult.data; }; exports.formatResultsSchema = formatResultsSchema; //# sourceMappingURL=types.js.map