UNPKG

@unito/integration-api

Version:

The Unito Integration API

397 lines (396 loc) 16.9 kB
import * as Api from './types.js'; const referenceToStringLikeConfiguration = { field: { type: 'sourceField', defaults: [{ value: 'semantic:displayName' }], description: 'The field of the referenced entry to use for the string value.', required: true, }, }; const stringLikeToReferenceConfiguration = { field: { type: 'targetField', defaults: [{ value: 'semantic:displayName' }], description: 'The field against which to match the string value.', required: true, }, }; const dateToStringlikeConfiguration = { locale: { type: 'enum', defaults: [{ value: 'en-CA' }], values: ['en-CA'], description: 'The locale to use for formatting the date.', }, timezone: { type: 'enum', defaults: [{ value: 'UTC' }], values: ['UTC'], description: 'The timezone to use for formatting the date.', }, }; const htmlToRichTextConfiguration = { decoratorTemplate: { type: 'stringWithSourceItemFields', description: 'Template for the decorator. Use {author} and {date} placeholders.', defaults: [ { sourceRelationSemantic: Api.RelationSemantics.COMMENTS, sourceFieldSemantic: Api.Semantics.DESCRIPTION, targetRelationSemantic: Api.RelationSemantics.COMMENTS, targetFieldSemantic: Api.Semantics.DESCRIPTION, value: 'On <strong>{semantic:createdAt}</strong>, <em>{semantic:user.fields.semantic:displayName}</em> commented:', }, ], hidden: true, }, decoratorPrefix: { type: 'string', description: `Prefix for the decorator. Defaults to "➤".`, defaults: [ { sourceRelationSemantic: Api.RelationSemantics.COMMENTS, sourceFieldSemantic: Api.Semantics.DESCRIPTION, targetRelationSemantic: Api.RelationSemantics.COMMENTS, targetFieldSemantic: Api.Semantics.DESCRIPTION, value: '➤', }, ], hidden: true, }, }; const markdownToRichTextConfiguration = { decoratorTemplate: { type: 'stringWithSourceItemFields', description: 'Template for the decorator. Use {author} and {date} placeholders.', defaults: [ { sourceRelationSemantic: Api.RelationSemantics.COMMENTS, sourceFieldSemantic: Api.Semantics.DESCRIPTION, targetRelationSemantic: Api.RelationSemantics.COMMENTS, targetFieldSemantic: Api.Semantics.DESCRIPTION, value: 'On **{semantic:createdAt}**, __{semantic:user.fields.semantic:displayName}__ commented:', }, ], hidden: true, }, decoratorPrefix: { type: 'string', description: `Prefix for the decorator. Defaults to "➤".`, defaults: [ { sourceRelationSemantic: Api.RelationSemantics.COMMENTS, sourceFieldSemantic: Api.Semantics.DESCRIPTION, targetRelationSemantic: Api.RelationSemantics.COMMENTS, targetFieldSemantic: Api.Semantics.DESCRIPTION, value: '➤', }, ], hidden: true, }, }; export const fieldTypeCompatibilityMatrix = { [Api.FieldValueTypes.BLOB]: { [Api.FieldValueTypes.BLOB]: {}, [Api.FieldValueTypes.BOOLEAN]: null, [Api.FieldValueTypes.DATE]: null, [Api.FieldValueTypes.DATE_RANGE]: null, [Api.FieldValueTypes.DATETIME]: null, [Api.FieldValueTypes.DATETIME_RANGE]: null, [Api.FieldValueTypes.DURATION]: null, [Api.FieldValueTypes.EMAIL]: null, [Api.FieldValueTypes.INTEGER]: null, [Api.FieldValueTypes.NUMBER]: null, [Api.FieldValueTypes.OBJECT]: null, [Api.FieldValueTypes.REFERENCE]: null, [Api.FieldValueTypes.RICH_TEXT_HTML]: null, [Api.FieldValueTypes.RICH_TEXT_MARKDOWN]: null, [Api.FieldValueTypes.STRING]: null, [Api.FieldValueTypes.URL]: null, }, [Api.FieldValueTypes.BOOLEAN]: { [Api.FieldValueTypes.BLOB]: null, [Api.FieldValueTypes.BOOLEAN]: {}, [Api.FieldValueTypes.DATE]: null, [Api.FieldValueTypes.DATE_RANGE]: null, [Api.FieldValueTypes.DATETIME]: null, [Api.FieldValueTypes.DATETIME_RANGE]: null, [Api.FieldValueTypes.DURATION]: null, [Api.FieldValueTypes.EMAIL]: null, [Api.FieldValueTypes.INTEGER]: {}, [Api.FieldValueTypes.NUMBER]: {}, [Api.FieldValueTypes.OBJECT]: null, [Api.FieldValueTypes.REFERENCE]: null, [Api.FieldValueTypes.RICH_TEXT_HTML]: {}, [Api.FieldValueTypes.RICH_TEXT_MARKDOWN]: {}, [Api.FieldValueTypes.STRING]: {}, [Api.FieldValueTypes.URL]: null, }, [Api.FieldValueTypes.DATE]: { [Api.FieldValueTypes.BLOB]: null, [Api.FieldValueTypes.BOOLEAN]: null, [Api.FieldValueTypes.DATE]: {}, [Api.FieldValueTypes.DATE_RANGE]: null, [Api.FieldValueTypes.DATETIME]: {}, [Api.FieldValueTypes.DATETIME_RANGE]: null, [Api.FieldValueTypes.DURATION]: null, [Api.FieldValueTypes.EMAIL]: null, [Api.FieldValueTypes.INTEGER]: {}, [Api.FieldValueTypes.NUMBER]: {}, [Api.FieldValueTypes.OBJECT]: null, [Api.FieldValueTypes.REFERENCE]: null, [Api.FieldValueTypes.RICH_TEXT_HTML]: dateToStringlikeConfiguration, [Api.FieldValueTypes.RICH_TEXT_MARKDOWN]: dateToStringlikeConfiguration, [Api.FieldValueTypes.STRING]: dateToStringlikeConfiguration, [Api.FieldValueTypes.URL]: null, }, [Api.FieldValueTypes.DATE_RANGE]: { [Api.FieldValueTypes.BLOB]: null, [Api.FieldValueTypes.BOOLEAN]: null, [Api.FieldValueTypes.DATE]: null, [Api.FieldValueTypes.DATE_RANGE]: null, [Api.FieldValueTypes.DATETIME]: null, [Api.FieldValueTypes.DATETIME_RANGE]: null, [Api.FieldValueTypes.DURATION]: null, [Api.FieldValueTypes.EMAIL]: null, [Api.FieldValueTypes.INTEGER]: null, [Api.FieldValueTypes.NUMBER]: null, [Api.FieldValueTypes.OBJECT]: null, [Api.FieldValueTypes.REFERENCE]: null, [Api.FieldValueTypes.RICH_TEXT_HTML]: null, [Api.FieldValueTypes.RICH_TEXT_MARKDOWN]: null, [Api.FieldValueTypes.STRING]: null, [Api.FieldValueTypes.URL]: null, }, [Api.FieldValueTypes.DATETIME]: { [Api.FieldValueTypes.BLOB]: null, [Api.FieldValueTypes.BOOLEAN]: null, [Api.FieldValueTypes.DATE]: {}, [Api.FieldValueTypes.DATE_RANGE]: null, [Api.FieldValueTypes.DATETIME]: {}, [Api.FieldValueTypes.DATETIME_RANGE]: null, [Api.FieldValueTypes.DURATION]: null, [Api.FieldValueTypes.EMAIL]: null, [Api.FieldValueTypes.INTEGER]: {}, [Api.FieldValueTypes.NUMBER]: {}, [Api.FieldValueTypes.OBJECT]: null, [Api.FieldValueTypes.REFERENCE]: null, [Api.FieldValueTypes.RICH_TEXT_HTML]: dateToStringlikeConfiguration, [Api.FieldValueTypes.RICH_TEXT_MARKDOWN]: dateToStringlikeConfiguration, [Api.FieldValueTypes.STRING]: dateToStringlikeConfiguration, [Api.FieldValueTypes.URL]: null, }, [Api.FieldValueTypes.DATETIME_RANGE]: { [Api.FieldValueTypes.BLOB]: null, [Api.FieldValueTypes.BOOLEAN]: null, [Api.FieldValueTypes.DATE]: null, [Api.FieldValueTypes.DATE_RANGE]: null, [Api.FieldValueTypes.DATETIME]: null, [Api.FieldValueTypes.DATETIME_RANGE]: null, [Api.FieldValueTypes.DURATION]: null, [Api.FieldValueTypes.EMAIL]: null, [Api.FieldValueTypes.INTEGER]: null, [Api.FieldValueTypes.NUMBER]: null, [Api.FieldValueTypes.OBJECT]: null, [Api.FieldValueTypes.REFERENCE]: null, [Api.FieldValueTypes.RICH_TEXT_HTML]: null, [Api.FieldValueTypes.RICH_TEXT_MARKDOWN]: null, [Api.FieldValueTypes.STRING]: null, [Api.FieldValueTypes.URL]: null, }, [Api.FieldValueTypes.DURATION]: { [Api.FieldValueTypes.BLOB]: null, [Api.FieldValueTypes.BOOLEAN]: null, [Api.FieldValueTypes.DATE]: null, [Api.FieldValueTypes.DATE_RANGE]: null, [Api.FieldValueTypes.DATETIME]: null, [Api.FieldValueTypes.DATETIME_RANGE]: null, [Api.FieldValueTypes.DURATION]: {}, [Api.FieldValueTypes.EMAIL]: null, [Api.FieldValueTypes.INTEGER]: {}, [Api.FieldValueTypes.NUMBER]: {}, [Api.FieldValueTypes.OBJECT]: null, [Api.FieldValueTypes.REFERENCE]: null, [Api.FieldValueTypes.RICH_TEXT_HTML]: {}, [Api.FieldValueTypes.RICH_TEXT_MARKDOWN]: {}, [Api.FieldValueTypes.STRING]: {}, [Api.FieldValueTypes.URL]: null, }, [Api.FieldValueTypes.EMAIL]: { [Api.FieldValueTypes.BLOB]: null, [Api.FieldValueTypes.BOOLEAN]: null, [Api.FieldValueTypes.DATE]: null, [Api.FieldValueTypes.DATE_RANGE]: null, [Api.FieldValueTypes.DATETIME]: null, [Api.FieldValueTypes.DATETIME_RANGE]: null, [Api.FieldValueTypes.DURATION]: null, [Api.FieldValueTypes.EMAIL]: {}, [Api.FieldValueTypes.INTEGER]: null, [Api.FieldValueTypes.NUMBER]: null, [Api.FieldValueTypes.OBJECT]: null, [Api.FieldValueTypes.REFERENCE]: stringLikeToReferenceConfiguration, [Api.FieldValueTypes.RICH_TEXT_HTML]: {}, [Api.FieldValueTypes.RICH_TEXT_MARKDOWN]: {}, [Api.FieldValueTypes.STRING]: {}, [Api.FieldValueTypes.URL]: null, }, [Api.FieldValueTypes.INTEGER]: { [Api.FieldValueTypes.BLOB]: null, [Api.FieldValueTypes.BOOLEAN]: {}, [Api.FieldValueTypes.DATE]: {}, [Api.FieldValueTypes.DATE_RANGE]: null, [Api.FieldValueTypes.DATETIME]: {}, [Api.FieldValueTypes.DATETIME_RANGE]: null, [Api.FieldValueTypes.DURATION]: null, [Api.FieldValueTypes.EMAIL]: null, [Api.FieldValueTypes.INTEGER]: {}, [Api.FieldValueTypes.NUMBER]: {}, [Api.FieldValueTypes.OBJECT]: null, [Api.FieldValueTypes.REFERENCE]: null, [Api.FieldValueTypes.RICH_TEXT_HTML]: {}, [Api.FieldValueTypes.RICH_TEXT_MARKDOWN]: {}, [Api.FieldValueTypes.STRING]: {}, [Api.FieldValueTypes.URL]: null, }, [Api.FieldValueTypes.NUMBER]: { [Api.FieldValueTypes.BLOB]: null, [Api.FieldValueTypes.BOOLEAN]: {}, [Api.FieldValueTypes.DATE]: {}, [Api.FieldValueTypes.DATE_RANGE]: null, [Api.FieldValueTypes.DATETIME]: {}, [Api.FieldValueTypes.DATETIME_RANGE]: null, [Api.FieldValueTypes.DURATION]: null, [Api.FieldValueTypes.EMAIL]: null, [Api.FieldValueTypes.INTEGER]: {}, [Api.FieldValueTypes.NUMBER]: {}, [Api.FieldValueTypes.OBJECT]: null, [Api.FieldValueTypes.REFERENCE]: null, [Api.FieldValueTypes.RICH_TEXT_HTML]: {}, [Api.FieldValueTypes.RICH_TEXT_MARKDOWN]: {}, [Api.FieldValueTypes.STRING]: {}, [Api.FieldValueTypes.URL]: null, }, [Api.FieldValueTypes.OBJECT]: { [Api.FieldValueTypes.BLOB]: null, [Api.FieldValueTypes.BOOLEAN]: null, [Api.FieldValueTypes.DATE]: null, [Api.FieldValueTypes.DATE_RANGE]: null, [Api.FieldValueTypes.DATETIME]: null, [Api.FieldValueTypes.DATETIME_RANGE]: null, [Api.FieldValueTypes.DURATION]: null, [Api.FieldValueTypes.EMAIL]: null, [Api.FieldValueTypes.INTEGER]: null, [Api.FieldValueTypes.NUMBER]: null, [Api.FieldValueTypes.OBJECT]: null, [Api.FieldValueTypes.REFERENCE]: null, [Api.FieldValueTypes.RICH_TEXT_HTML]: null, [Api.FieldValueTypes.RICH_TEXT_MARKDOWN]: null, [Api.FieldValueTypes.STRING]: null, [Api.FieldValueTypes.URL]: null, }, [Api.FieldValueTypes.REFERENCE]: { [Api.FieldValueTypes.BLOB]: null, [Api.FieldValueTypes.BOOLEAN]: null, [Api.FieldValueTypes.DATE]: null, [Api.FieldValueTypes.DATE_RANGE]: null, [Api.FieldValueTypes.DATETIME]: null, [Api.FieldValueTypes.DATETIME_RANGE]: null, [Api.FieldValueTypes.DURATION]: null, [Api.FieldValueTypes.EMAIL]: referenceToStringLikeConfiguration, [Api.FieldValueTypes.INTEGER]: null, [Api.FieldValueTypes.NUMBER]: null, [Api.FieldValueTypes.OBJECT]: null, [Api.FieldValueTypes.REFERENCE]: { sideIds: { type: 'sideIdOfSameCollection', description: 'If specified, only the references kept in sync in the specified link sides will be evaluated. An empty array means no side will be evaluated.', isArray: true, defaults: [{ value: [] }], }, type: { type: 'enum', description: 'The type of mapping, as selected by the customer.', hidden: true, isArray: false, values: ['manualOnly', 'referenceOnly'], required: true, }, }, [Api.FieldValueTypes.RICH_TEXT_HTML]: referenceToStringLikeConfiguration, [Api.FieldValueTypes.RICH_TEXT_MARKDOWN]: referenceToStringLikeConfiguration, [Api.FieldValueTypes.STRING]: referenceToStringLikeConfiguration, [Api.FieldValueTypes.URL]: null, }, [Api.FieldValueTypes.RICH_TEXT_HTML]: { [Api.FieldValueTypes.BLOB]: null, [Api.FieldValueTypes.BOOLEAN]: null, [Api.FieldValueTypes.DATE]: null, [Api.FieldValueTypes.DATE_RANGE]: null, [Api.FieldValueTypes.DATETIME]: null, [Api.FieldValueTypes.DATETIME_RANGE]: null, [Api.FieldValueTypes.DURATION]: null, [Api.FieldValueTypes.EMAIL]: null, [Api.FieldValueTypes.INTEGER]: null, [Api.FieldValueTypes.NUMBER]: null, [Api.FieldValueTypes.OBJECT]: null, [Api.FieldValueTypes.REFERENCE]: null, [Api.FieldValueTypes.RICH_TEXT_HTML]: htmlToRichTextConfiguration, [Api.FieldValueTypes.RICH_TEXT_MARKDOWN]: htmlToRichTextConfiguration, [Api.FieldValueTypes.STRING]: {}, [Api.FieldValueTypes.URL]: null, }, [Api.FieldValueTypes.RICH_TEXT_MARKDOWN]: { [Api.FieldValueTypes.BLOB]: null, [Api.FieldValueTypes.BOOLEAN]: null, [Api.FieldValueTypes.DATE]: null, [Api.FieldValueTypes.DATE_RANGE]: null, [Api.FieldValueTypes.DATETIME]: null, [Api.FieldValueTypes.DATETIME_RANGE]: null, [Api.FieldValueTypes.DURATION]: null, [Api.FieldValueTypes.EMAIL]: null, [Api.FieldValueTypes.INTEGER]: null, [Api.FieldValueTypes.NUMBER]: null, [Api.FieldValueTypes.OBJECT]: null, [Api.FieldValueTypes.REFERENCE]: null, [Api.FieldValueTypes.RICH_TEXT_HTML]: markdownToRichTextConfiguration, [Api.FieldValueTypes.RICH_TEXT_MARKDOWN]: markdownToRichTextConfiguration, [Api.FieldValueTypes.STRING]: {}, [Api.FieldValueTypes.URL]: null, }, [Api.FieldValueTypes.STRING]: { [Api.FieldValueTypes.BLOB]: null, [Api.FieldValueTypes.BOOLEAN]: {}, [Api.FieldValueTypes.DATE]: {}, [Api.FieldValueTypes.DATE_RANGE]: null, [Api.FieldValueTypes.DATETIME]: {}, [Api.FieldValueTypes.DATETIME_RANGE]: null, [Api.FieldValueTypes.DURATION]: null, [Api.FieldValueTypes.EMAIL]: null, [Api.FieldValueTypes.INTEGER]: {}, [Api.FieldValueTypes.NUMBER]: {}, [Api.FieldValueTypes.OBJECT]: null, [Api.FieldValueTypes.REFERENCE]: stringLikeToReferenceConfiguration, [Api.FieldValueTypes.RICH_TEXT_HTML]: {}, [Api.FieldValueTypes.RICH_TEXT_MARKDOWN]: {}, [Api.FieldValueTypes.STRING]: {}, [Api.FieldValueTypes.URL]: null, }, [Api.FieldValueTypes.URL]: { [Api.FieldValueTypes.BLOB]: null, [Api.FieldValueTypes.BOOLEAN]: null, [Api.FieldValueTypes.DATE]: null, [Api.FieldValueTypes.DATE_RANGE]: null, [Api.FieldValueTypes.DATETIME]: null, [Api.FieldValueTypes.DATETIME_RANGE]: null, [Api.FieldValueTypes.DURATION]: null, [Api.FieldValueTypes.EMAIL]: null, [Api.FieldValueTypes.INTEGER]: null, [Api.FieldValueTypes.NUMBER]: null, [Api.FieldValueTypes.OBJECT]: null, [Api.FieldValueTypes.REFERENCE]: null, [Api.FieldValueTypes.RICH_TEXT_HTML]: {}, [Api.FieldValueTypes.RICH_TEXT_MARKDOWN]: {}, [Api.FieldValueTypes.STRING]: {}, [Api.FieldValueTypes.URL]: {}, }, };