@speckle/shared
Version:
Shared code between various Speckle JS packages
92 lines • 3.86 kB
JavaScript
"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