{"version":3,"sources":["../src/common/argument-error.ts","../src/model/wfl/basic-metadata.ts","../src/model/wfl/category.ts","../src/model/wfl/metadata.ts","../src/model/wfl/publication.ts","../src/model/wfl/state.ts","../src/model/wfl/wflobject.ts","../src/model/wfl/workflow-metadata.ts","../src/client/helpers/wfl-helpers.ts","../src/client/client-error.ts","../src/client/client.ts","../src/http-client/http-error.ts","../src/http-client/http-response-error.ts","../src/http-client/http-client.ts","../src/model/wfl/relation.ts","../src/client/client-option-error.ts","../src/client/client-options.ts","../src/model/wfl/attachment.ts","../src/model/wfl/content-metadata.ts","../src/model/wfl/edition-renditions-info.ts","../src/model/wfl/edition.ts","../src/model/wfl/element.ts","../src/model/wfl/extra-metadata.ts","../src/model/wfl/indesign-article.ts","../src/model/wfl/issue.ts","../src/model/wfl/message-list.ts","../src/model/wfl/message.ts","../src/model/wfl/metadata-value.ts","../src/model/wfl/object-info.ts","../src/model/wfl/object-label.ts","../src/model/wfl/object-operations.ts","../src/model/wfl/page.ts","../src/model/wfl/param.ts","../src/model/wfl/placement.ts","../src/model/wfl/property-value.ts","../src/model/wfl/pub-channel.ts","../src/model/wfl/rendition-type-info.ts","../src/model/wfl/rights-metadata.ts","../src/model/wfl/source-metadata.ts","../src/model/wfl/sticky-info.ts","../src/model/wfl/target.ts"],"sourcesContent":["export class ArgumentError extends Error {\n    constructor(message: string, public paramName: string, error?: Error) {\n        super(ArgumentError.buildMessage(message, paramName, error));\n        this.name = 'ArgumentError';\n    }\n\n    private static buildMessage(message: string, paramName: string, error?: Error) {\n        return `${message} (Parameter '${paramName}')`;\n    }\n}","import { Category } from \"./category\";\nimport { Publication } from \"./publication\";\n\nexport class BasicMetaData {\n    public __classname__: string = 'BasicMetaData';\n\n    public ID : string | null = null;\n\n    public DocumentID : string | null = null;\n\n    public Name : string | null = null;\n\n    public Type : string | null = null;\n\n    public Publication : Publication | null = null;\n\n    public Category : Category | null = null;\n\n    public ContentSource : string | null = null;\n\n    public MasterId : string | null = null;\n\n    public StoryId : string | null = null;\n\n    constructor(\n        params : BasicMetaDataNamedParameters\n    ) {\n        this.ID = params.ID ?? null;\n        this.DocumentID = params.DocumentID ?? null;\n        this.Name = params.Name ?? null;\n        this.Type = params.Type ?? null;\n        this.Publication = params.Publication ?? null;\n        this.Category = params.Category ?? null;\n        this.ContentSource = params.ContentSource ?? null;\n        this.MasterId = params.MasterId ?? null;\n        this.StoryId = params.StoryId ?? null;\n    }\n}\n\nexport interface BasicMetaDataNamedParameters {\n    ID? : string \n    DocumentID? : string\n    Name? : string \n    Type? : string  \n    Publication? : Publication \n    Category? : Category \n    ContentSource? : string \n    MasterId? : string \n    StoryId? : string \n}","export class Category {\n    public __classname__: string = 'Category';\n\n    public Id : string | null = null;\n\n    public Name : string | null = null;   \n    \n    constructor(params : CategoryNamedParameters ) {\n        this.Id = params.Id ?? null;\n        this.Name = params.Name ?? null;\n    }\n}\n\nexport interface CategoryNamedParameters {\n    Id? : string \n    Name? : string\n}","import { BasicMetaData } from \"./basic-metadata\";\nimport { ContentMetaData } from \"./content-metadata\";\nimport { ExtraMetaData } from \"./extra-metadata\";\nimport { RightsMetaData } from \"./rights-metadata\";\nimport { SourceMetaData } from \"./source-metadata\";\nimport { WorkflowMetaData } from \"./workflow-metadata\";\n\nexport class MetaData {\n    public __classname__: string = 'MetaData';\n\n\n    public BasicMetaData: BasicMetaData | null = null;\n\n    public RightsMetaData: RightsMetaData | null = null;\n\n    public SourceMetaData: SourceMetaData | null = null;\n\n    public ContentMetaData: ContentMetaData | null = null;\n\n    public WorkflowMetaData: WorkflowMetaData | null = null;\n\n    public ExtraMetaData: ExtraMetaData | null = null;\n\n    constructor(\n        params : MetaDataNamedParameters\n    ) {\n        this.BasicMetaData = params.BasicMetaData ?? null;\n        this.RightsMetaData = params.RightsMetaData ?? null;\n        this.SourceMetaData = params.SourceMetaData ?? null;\n        this.ContentMetaData = params.ContentMetaData ?? null;\n        this.WorkflowMetaData = params.WorkflowMetaData ?? null;\n        this.ExtraMetaData = params.ExtraMetaData ?? null;\n    }\n\n}\n\nexport interface MetaDataNamedParameters {\n    BasicMetaData?: BasicMetaData,\n    RightsMetaData?: RightsMetaData,\n    SourceMetaData?: SourceMetaData,\n    ContentMetaData?: ContentMetaData,\n    WorkflowMetaData?: WorkflowMetaData,\n    ExtraMetaData?: ExtraMetaData\n}","export class Publication {\n    public __classname__: string = 'Publication';\n\n    public Id : string | null = null;\n\n    public Name : string | null = null;   \n    \n    constructor(params : PublicationNamedParameters) {\n        this.Id = params.Id ?? null;\n        this.Name = params.Name ?? null;\n    }\n}\n\nexport interface PublicationNamedParameters {\n    Id? : string \n    Name? : string\n}","export class State {\n    public __classname__: string = 'State';\n\n    public Id: string | null = null;\n    public Name: string | null = null;\n    public Type: string | null = null;\n    public Produce: boolean | null = null;\n    public Color: string | null = null;\n    public DefaultRouteTo: string | null = null;\n\n    constructor(\n        Id: string | null = null,\n        Name: string | null = null,\n        Type: string | null = null,\n        Produce: boolean | null = null,\n        Color: string | null = null,\n        DefaultRouteTo: string | null = null\n    ) {\n        this.Id = Id;\n        this.Name = Name;\n        this.Type = Type;\n        this.Produce = Produce;\n        this.Color = Color;\n        this.DefaultRouteTo = DefaultRouteTo;\n    }\n}","import { Attachment } from \"./attachment\";\nimport { EditionRenditionsInfo } from \"./edition-renditions-info\";\nimport { Element } from \"./element\";\nimport { InDesignArticle } from \"./indesign-article\";\nimport { Message } from \"./message\";\nimport { MessageList } from \"./message-list\";\nimport { MetaData } from \"./metadata\";\nimport { ObjectLabel } from \"./object-label\";\nimport { ObjectOperation } from \"./object-operations\";\nimport { Page } from \"./page\";\nimport { Placement } from \"./placement\";\nimport { Relation } from \"./relation\";\nimport { Target } from \"./target\";\n\nexport class WflObject {\n    public __classname__: string = 'Object';\n\n    public MetaData: MetaData | null = null;\n\n    public Relations: Relation[] | null = null;\n\n    public Pages: Page[] | null = null;\n\n    public Files: Attachment[] | null = null;\n\n    public Messages: Message[] | null = null;\n\n    public Elements: Element[] | null = null;\n\n    public Targets: Target[] | null = null;\n\n    public Renditions: EditionRenditionsInfo[] | null = null;\n\n    public MessageList: MessageList | null = null;\n\n    public ObjectLabels: ObjectLabel[] | null = null;\n\n    public InDesignArticles: InDesignArticle[] | null = null;\n\n    public Placements: Placement[] | null = null;\n\n    public Operations: ObjectOperation[] | null = null;\n\n    constructor(\n        params : WflObjectNamedParameters\n    ) {\n        this.MetaData = params.Metadata ?? null;\n        this.Relations = params.Relations ?? null;;\n        this.Pages = params.Pages ?? null;;\n        this.Files = params.Files ?? null;;\n        this.Messages = params.Messages ?? null;;\n        this.Elements = params.Elements ?? null;;\n        this.Targets = params.Targets ?? null;;\n        this.Renditions = params.Renditions ?? null;;\n        this.MessageList = params.MessageList ?? null;;\n        this.ObjectLabels = params.ObjectLabels ?? null;;\n        this.InDesignArticles = params.InDesignArticles ?? null;;\n        this.Placements = params.Placements ?? null;;\n        this.Operations = params.Operations ?? null;;\n    }\n\n}\n\nexport interface WflObjectNamedParameters {\n    Metadata?: MetaData\n    Relations?: Relation[]\n    Pages?: Page[]\n    Files?: Attachment[]\n    Messages?: Message[]\n    Elements?: Element[]\n    Targets?: Target[]\n    Renditions?: EditionRenditionsInfo[]\n    MessageList?: MessageList\n    ObjectLabels?: ObjectLabel[]\n    InDesignArticles?: InDesignArticle[]\n    Placements?: Placement[]\n    Operations?: ObjectOperation[]\n}","import { State } from \"./state\";\n\nexport class WorkflowMetaData {\n    public __classname__: string = 'WorkflowMetaData';\n\n    public Deadline : string | null = null;\n\tpublic Urgency : string | null = null;\n\tpublic Modifier : string | null = null;\n\tpublic Modified : string | null = null;\n\tpublic Creator : string | null = null;\n\tpublic Created : string | null = null;\n\tpublic Comment : string | null = null;\n\tpublic State : State | null = null;\n\tpublic RouteTo : string | null = null;\n\tpublic LockedBy : string | null = null;\n\tpublic Version : string | null = null;\n\tpublic DeadlineSoft : string | null = null;\n\tpublic Rating : number | null = null;\n\tpublic Deletor : string | null = null;\n\tpublic Deleted : string | null = null;\n\n    constructor(\n        params : WorkflowMetaDataNamedParameters\n    ) {\n        this.Deadline = params.Deadline ?? null;\n        this.Urgency = params.Urgency ?? null;\n        this.Modifier = params.Modifier ?? null;\n        this.Modified = params.Modified ?? null;\n        this.Creator = params.Creator ?? null;\n        this.Created = params.Created ?? null;\n        this.Comment = params.Comment ?? null;\n        this.State = params.State ?? null;\n        this.RouteTo = params.RouteTo ?? null;\n        this.LockedBy = params.LockedBy ?? null;\n        this.Version = params.Version ?? null;\n        this.DeadlineSoft = params.DeadlineSoft ?? null;\n        this.Rating = params.Rating ?? null;\n        this.Deletor = params.Deletor ?? null;\n        this.Deleted = params.Deleted ?? null;\n    }\n}\n\nexport interface WorkflowMetaDataNamedParameters {\n    Deadline? : string \n    Urgency? : string \n    Modifier? : string \n    Modified? : string \n    Creator? : string \n    Created? : string \n    Comment? : string \n    State? : State \n    RouteTo? : string \n    LockedBy? : string \n    Version? : string \n    DeadlineSoft? : string \n    Rating? : number \n    Deletor? : string \n    Deleted? : string\n}","import { BasicMetaData } from \"../../model/wfl/basic-metadata\";\nimport { Category } from \"../../model/wfl/category\";\nimport { ContentMetaData } from \"../../model/wfl/content-metadata\";\nimport { MetaData } from \"../../model/wfl/metadata\";\nimport { Publication } from \"../../model/wfl/publication\";\nimport { SourceMetaData } from \"../../model/wfl/source-metadata\";\nimport { State } from \"../../model/wfl/state\";\nimport { WflObject } from \"../../model/wfl/wflobject\";\nimport { WorkflowMetaData } from \"../../model/wfl/workflow-metadata\";\n\nexport class WflHelpers {    \n    /**\n     *\n     * @param name\n     * @param type The object type like 'Article'\n     * @param categoryId\n     * @param publicationId\n     * @param stateId\n     *\n     * @returns The Workflow object\n     */\n    static createWflObject(name: string, type : string | undefined, categoryId: string, publicationId: string, stateId: string) : WflObject {\n\n        return new WflObject({\n            Metadata: new MetaData({\n                BasicMetaData: new BasicMetaData({\n                    Name: name,\n                    Type: type,\n                    Publication: new Publication({\n                        Id : publicationId\n                    }),\n                    Category: new Category({ \n                        Id: categoryId\n                    })\n                }),\n                WorkflowMetaData: new WorkflowMetaData({\n                    State: new State(stateId)\n                }),\n            }),\n            Files: [],\n            Relations: []\n        });\n    }\n}","export class ClientError extends Error {\n    constructor(msg: string) {\n        super(msg);\n        this.name = 'ClientError';\n    }\n}\n","import { v4 as uuidv4 } from 'uuid';\nimport { IClient } from './client-interface';\nimport { ClientOptions } from './client-options';\n\nimport { LoggerInterface,  } from '@aws-lambda-powertools/logger/types';\nimport { HttpClient } from '../http-client/http-client';\nimport { IHttpClient } from '../http-client/http-client-interface';\nimport { ClientError } from './client-error';\nimport { WflObject } from '../model/wfl/wflobject';\nimport { Relation, RelationType } from '../model/wfl/relation';\nimport { MetaDataValue } from '../model/wfl/metadata-value';\nimport { PropertyValue } from '../model/wfl/property-value';\nimport { Target } from '../model/wfl/target';\n\nimport { BodyInit } from \"undici-types/fetch\";\n\ninterface RegisterRequest {\n    Appname: string,\n    Url: string,\n    Username: string,\n    Password: string,\n    RequestId: string,\n    /**\n     * Optional\n     */\n    ConfigurationId?: string\n}\n\ninterface Responsebase {\n    ConfigurationId: string,\n    RequestId: string,\n    EventSource: string,\n    EventDetail: string,\n    Status: string,\n    StatusMessage?: string,\n    Result: any\n}\n\n\n\nexport class Client implements IClient{\n\n    private _options: ClientOptions;\n    private _logger : LoggerInterface;\n    private _httpClient : IHttpClient;\n\n    private _studioBaseUrl : string = \"\";\n\n    private _publicationsCache : Record<string,any> = {};\n\n    get options() {\n        return this._options;\n    }\n\n    /**\n     * The configurationId\n     */\n    private _configurationId: string | null = null;\n\n    /**\n     * @returns The configurationid\n     * @throws QqAwsServiceStudioClientClientError when not logged on\n     */\n    get configurationId(): string {\n        if (this._configurationId === null) {\n             throw new ClientError(\"Not logged on\")\n        };\n\n        return this._configurationId;\n    }\n\n    /**\n     * \n     * @param logger The logger instance\n     * @param options The Client options\n     * @param httpClient The Http client. When not defined an instance will be created automatically.\n     */\n    constructor(logger : LoggerInterface, options: ClientOptions, httpClient? : IHttpClient) {\n\n        console.log(\"Client::constructor\", options);\n        \n        if (httpClient === undefined) {\n            httpClient = new HttpClient(logger);\n        }\n\n        this._logger = logger;\n        this._options = options;\n        this._httpClient = httpClient;\n\n        this._httpClient.setCommonHeaders( {\n            'User-Agent': 'StudioClient Client',\n            'x-api-key' : this.options.apiKey\n        });\n\n        this._httpClient.setBaseUrl(options.baseUrl);\n    }\n\n    private validateOptions(options: ClientOptions) {\n        if (options.baseUrl == \"\") {\n            throw new ClientError(\"baseUrl is required\");\n        }\n    }\n\n    /**\n     * \n     * @returns true when logged in\n     */\n    isLoggedOn(): boolean {\n        return this._configurationId !== null;\n    }\n\n    setStudioBaseUrl(url : string) {\n        this._studioBaseUrl = this._sanitizeUrl(url);\n    }\n\n    /**\n     * \n     * @param configurationId \n     * @returns true when logged in\n     */\n    async logon(configurationId: string) : Promise<boolean> {\n        console.log(`QqAwsServiceStudioClientClient::logon: configurationId=[${configurationId}]`);\n        //TODO: Maybe some additional validation here \n\n        this._configurationId = configurationId;\n\n        return this.isLoggedOn();\n    }\n\n\n    /**\n     * \n     * @returns The Woodwing Studio base URL\n     */\n    getBaseUrl(): string {\n        return <string>this._options.baseUrl;\n    }\n\n    /**\n     * @param studioUrl The \n     * @param appname The application name\n     * @param username The WoodWing Studio username\n     * @param password The WoodWing Studio password\n     * @param requestId Optional: The requestID \n     * @param configurationId Optional: The configurationID\n     * @returns The new or given ConfigurationId\n     * @throws QqAwsServiceStudioClientClientError when the registration fails.\n     */\n    async register(studioUrl: string, appname: string, username: string, password: string, requestId: string|undefined, configurationId: string|undefined): Promise<string> {\n        if (requestId === undefined) {\n            requestId = this._generateRequestId();\n        }\n        console.log(`QqAwsServiceStudioClientClient::register: studioUrl=[${studioUrl}], appname=[${appname}], username=[${username}], requestId=[${requestId}]`);\n\n        const request: RegisterRequest = {\n            \"Appname\": appname,\n            \"Url\": this._sanitizeUrl(studioUrl),\n            \"Username\": username,\n            \"Password\": password,\n            \"RequestId\": requestId,\n        };\n\n        if (configurationId !== undefined) {\n            if (this._configurationId !== null) {\n                request.ConfigurationId = this._configurationId\n            }\n            request.ConfigurationId = configurationId\n        }\n\n        const result = await this._httpClient.request('POST', 'studioapplication', undefined, request);\n        if ('ConfigurationId' in result) {\n            this._configurationId = result.ConfigurationId;\n            return result.ConfigurationId;\n        }\n\n        throw new ClientError(\"No 'ConfigurationId' in response\");\n    }\n\n    async unRegister(configurationId?: string) : Promise<void> {\n        if (configurationId === undefined) {\n            configurationId = this.configurationId;\n        }\n    }\n\n    /**\n     * \n     * @param ids The publication ids to resolve\n     * @param requestInfo What elements to retrieve. \"PubChannels\",\"States\", \"Categories\"\n     * @param forceNew When true, ignore local cache.\n     * @returns All resolved publications \n     */\n    public async getPublications(ids : string[], requestInfo? : string[], forceNew? : boolean, requestId?: string, configurationId?: string) : Promise<Record<string, any>[]> {\n        if(forceNew === undefined) {\n            forceNew = false;\n        }\n        \n        console.log(`SqCreatePdf2Client::getPublications: ids=[${ids.join(', ')}], forceNew=[${forceNew}]`);\n        let idsToRequest : string[] = [];\n        for (const id of ids) {\n            if (forceNew === true || !(id in this._publicationsCache)) {\n                idsToRequest.push(id);\n            } else {\n                // Brand already cached\n                this._logger.debug(`Brand ${id} already loaded. Check the request info`);\n                if (requestInfo !== undefined) {\n                    for (const requestInfoElement of requestInfo) {\n                        if (!(requestInfoElement in this._publicationsCache[id])) {\n                            // The request info element is not cached for this brand\n                            this._logger.debug(`Brand ${id} already loaded. But ${requestInfoElement} was not requested before.`);\n                            idsToRequest.push(id);\n                            break;\n                        }\n                    }\n                }\n\n            }\n        }\n\n        if(idsToRequest.length > 0) {\n            const publications = await this.getPublicationsInt(\n                idsToRequest, requestInfo);\n\n            for (const publication of publications) {\n                const brandId = <string> publication.Id;\n                this._publicationsCache[brandId] = publication;\n            }\n        }\n\n        let result : Record<string, any>[] = [];\n        for (const id of ids) {\n            if (id in this._publicationsCache) {\n                result.push(this._publicationsCache[id]);\n            }\n        }\n\n        return result;\n    }\n\n    /**\n     *\n     * @param {string} publicationId\n     * @returns {Promise<null|object>}\n     */\n    async getPublication(publicationId : string, requestInfo? : string[] ) {\n\n        const publications = await this.getPublications([publicationId], requestInfo);\n        \n\n        for (let pubIdx in publications) {\n\n            const publication = publications[pubIdx];\n\n            console.log(\"processing publication: \", publication);\n\n            if (publication.Id === publicationId.toString()) {\n                return publication;\n            }\n        }\n\n        return null;\n    }\n\n    /**\n     * \n     * @param forceNew When true create a new ticket instead of the cached ticket\n     * @param requestId \n     * @param configurationId \n     * @returns \n     */\n    async getTicket(forceNew? : boolean, requestId?: string, configurationId?: string): Promise<string> {\n        if (forceNew === undefined) {\n            forceNew = false;\n        }\n        \n        if (requestId === undefined) {\n            requestId = this._generateRequestId();\n        }\n\n        if (configurationId === undefined) {\n            configurationId = this.configurationId;\n        }\n        console.log(`QqAwsServiceStudioClientClient::getTicket: forceNew=[${forceNew}], requestId=[${requestId}], configurationId=[${configurationId}]`);\n\n        const path = 'ticket';\n\n        const query = new URLSearchParams({\n            ConfigurationId: configurationId,\n            RequestId: requestId,\n            Forcenew: forceNew ? 'true' : 'false'\n        })\n\n        const result = await this._httpClient.request('GET', path, query);\n\n        return result;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    async getStateByName(publicationId : string, type : string, name : string ) : Promise<null|any> {\n\n        const publication = await this.getPublication(publicationId, ['States']);\n\n        if (publication === null) {\n            return null;\n        }\n\n        for (const state of publication.States) {\n            //const state = publication.States[stateIdx];\n\n            if (state.Type.toLowerCase() === type.toLowerCase() && state.Name.toLowerCase() === name.toLowerCase()) {\n                return state;\n            }\n        }\n        \n        return null;\n    }\n\n\n\n\n    /**\n     *\n     * @param wflObject\n     * @param childId\n     * @param type\n     * @param parentType\n     * @returns \n     */\n    async getWflRelations(wflObject : any, childId : string, type : string = 'Contained', parentType : string = 'Dossier') : Promise<object[]> {\n\n        let result = [];\n\n        for (let relIdx in wflObject.Relations) {\n            const relation = wflObject.Relations[relIdx];\n\n            if (\n                relation.Child === childId &&\n                relation.Type.toLowerCase() === type.toLowerCase() &&\n                relation.ParentInfo.Type.toLowerCase() === parentType.toLowerCase()\n            ) {\n                result.push(relation)\n            }\n\n        }\n\n        return result;\n    }\n\n    // /**\n    //  *\n    //  * @param {string} bucket\n    //  * @param {string} key\n    //  *\n    //  * @returns {Promise<object>}\n    //  */\n    // async getDigitalArticle = async(bucket : string, key : string) : Promise<object> => {\n    //     const s3client = new S3Client({});\n    //     const response = await s3client.send(new GetObjectCommand(\n    //         {\n    //             Bucket: bucket,\n    //             Key: key\n    //         }\n    //     ));\n\n    //     if (!response.ETag) {\n    //         throw new Error('Error getting digital article from bucket.');\n    //     }\n\n    //     return response;\n    // }\n    \n    /**\n     *\n     * @param url\n     * @returns \n     */\n    async downloadFile(url : string, query? : URLSearchParams ) : Promise<ArrayBuffer>{\n        if (query === undefined) {\n            query = new URLSearchParams();\n        }\n\n        query.append('ticket', await this.getTicket());\n\n        const buffer = await this._httpClient.downloadFile(url, query);\n \n        return buffer;\n    }\n    \n    \n    /**\n     * @inheritdoc\n     */\n    async uploadFile(body : BodyInit, contentType : string, size : number){\n\n        if(this._studioBaseUrl === '') {\n            throw new ClientError(\"No studio base url set\");\n        }\n\n        const url = await this._httpClient.uploadFile(body, size, contentType, await this.getTicket(), this._studioBaseUrl )\n\n        return url;\n    }\n\n    /**\n     *\n     * @param objectIds\n     * @param rendition\n     * @param requestInfo\n     * @param lock\n     * @param areas\n     * @returns \n     */\n    async getObjects(\n        objectIds : string[], \n        rendition : string = 'native', \n        requestInfo : string[] = ['MetaData'],\n        lock : boolean = false, \n        areas : string[] = ['Workflow']\n    ) : Promise<WflObject[]> {\n\n        const query = this._getCommonQueryParameters();\n        query.append('ObjectIds', objectIds.join(','));\n        query.append('RequestInfo', requestInfo.join(','));\n        query.append('Rendition', rendition);\n\n        const response = await this._httpClient.request('get', 'objects', query);\n        //TODO: How to convert te result in a WflObject instance.\n        return response;\n\n    }\n\n    async createObjects(wflObjects : WflObject[], lock : boolean = false) : Promise<WflObject[]> {\n\n        const body = {\n            WflObjects: wflObjects,\n            RequestId: this._generateRequestId(),\n            ConfigurationId: this.configurationId,\n            Lock: lock\n        }\n\n        const response = await this._httpClient.request('post', 'objects', undefined, body);\n\n        return response;\n    }\n\n    /**\n     *\n     * @param parentIdOrInstance\n     * @param childIdsOrInstances\n     * @param type\n     * @returns \n     */\n    async createObjectRelations(\n        parentIdOrInstance : string | WflObject, \n        childIdsOrInstances : string[]|WflObject[], \n        type : RelationType = RelationType.Contained \n    ) : Promise<Relation[]> {\n        const parentId = this._getObjectId(parentIdOrInstance);\n        const childIds : string[] = [];\n\n        for(const childIdOrInstance of childIdsOrInstances) {\n            const childId = this._getObjectId(childIdOrInstance);\n            childIds.push(childId);\n        }\n\n        let relations = [];\n\n        for (const childId of childIds) {\n            relations.push(new Relation({\n                Parent: parentId,\n                Child: childId,\n                Type: type\n            }));\n        }\n\n        const body = {\n            RequestId : this._generateRequestId(),\n            Relations : relations,\n            ConfigurationId: this.configurationId\n        }\n\n        const response = await this._httpClient.request('post','objectrelations', undefined, body);\n        return response;\n    }\n\n    /**\n     * \n     * @param childIdsOrInstances \n     * @param permanent \n     * @param areas \n     * @returns \n     */\n    async deleteObjects(childIdsOrInstances : string[] | WflObject[], permanent : boolean = false, areas : string = 'Workflow') : Promise<object> {\n        const ids : string[] = [];\n        for(const childIdOrInstance of childIdsOrInstances) {\n            const childId = this._getObjectId(childIdOrInstance);\n            ids.push(childId);\n        }\n\n        const query = this._getCommonQueryParameters();\n        query.append('ObjectIds', ids.join(','));\n        query.append('Permanent', '');\n        query.append('Areas', areas);\n        query.append('RequestId', this._generateRequestId());\n        query.append('ConfigurationId', this.configurationId);\n\n        const response = await this._httpClient.request('delete', 'objects', query);\n\n        return response;\n    }\n\n    /**\n     * \n     * @param action Workflow Action type.\n     * @param context v10.40 Can be used to provide relevant information based on the dialog circumstances.\n     * @param metaData v8.0: MetaData value allows client app to round trip the data.\n     * @param targets v8.0: Object's targets. Data contained in Targets allow client app to round trip the data.\n     * @param defaultDossier v7.0: Dossier ID: Request to populate the Dossier property. \n     *                       The given Publication and Issue are used to get dossiers (to choose from). If no Issue specified, \n     *                       first one is taken. The dossier ID will be used to set the default value at Dossier property. \n     *                       If DefaultDossier is nil (or left out) no dossier property nor dossiers will be returned.\n     * @param parent v7.0: Parent ID: When creating objects that are placed (such as creating articles form layout) the client \n     *               knows that the object will be placed, but the server does not know yet. For placed objects, \n     *               the dialog has some fields disabled (greyed) like Publication/Brand, Issue and Category. Nil (or left out) \n     *               means object is not placed.\n     * @param template v7.0: Template ID : When creating objects, some properties should be taken from a template. \n     *                 Those should be pre-filled in for the new object at the Create workflow dialog. Provide the object ID of \n     *                 the template (that was picked by user) to let server pre-fill properties. Nil (or left out) means object \n     *                 is not created from template.\n     * @param areas v8.0: Area to search for the object. Nil means 'workflow' area only (for backwards compatibility reasons).\n     * @param multipleObjects v9.2: Indicate if the dialog is for multiple objects or single object. \n     *                        Nil means 'false' (for backwards compatibility reasons).\n     * @returns \n     */\n    async getDialog2(\n        action : string, \n        context? : string, \n        metaData? : MetaDataValue[], \n        targets? : Target[], \n        defaultDossier? : string,\n        parent? : string,\n        template? : string,\n        areas? : string[],\n        multipleObjects? : boolean\n    ) {\n        const body : Record<string, any> = {\n            RequestId : this._generateRequestId(),\n            ConfigurationId: this.configurationId,\n            Action : action\n        }\n\n        if(context) {\n            body['Context'] = context;\n        }\n\n        if(metaData) {\n            //TODO: Must be 'MetaData' (bug in Service)\n            body['Metadata'] = metaData;\n        }\n\n        if(targets) {\n            body['Targets'] = targets;\n        }\n\n        if(defaultDossier) {\n            body['DefaultDossier'] = defaultDossier;\n        }\n\n        if(parent) {\n            body['Parent'] = parent;\n        }\n\n        if(template) {\n            body['Template'] = template;\n        }\n\n        if(areas) {\n            body['Areas'] = areas;\n        }\n\n        if(multipleObjects) {\n            body['MultipleObjects'] = multipleObjects;\n        }\n\n        const response = await this._httpClient.request('post', 'dialog', undefined, body);\n        return response;\n    }\n\n    /**\n     * \n     * @param ids The brand id(s)\n     * @param requestInfo What elements to retrieve. \"PubChannels\",\"States\", \"Categories\"\n     * @param requestId \n     * @param configurationId \n     * @returns \n     */\n    private async getPublicationsInt(ids: string[], requestInfo? : string[], requestId?: string, configurationId?: string): Promise<Record<string, any>[]> {\n        if(requestInfo === undefined) {\n            requestInfo = [];\n        }\n        \n        if (requestId === undefined) {\n            requestId = this._generateRequestId();\n        }\n        console.log(`QqAwsServiceStudioClientClient::getPublications: ids=[${ids.join(',')}], requestInfo=[${requestInfo.join(', ')}], requestId=[${requestId}]`);\n\n        if (configurationId === undefined) {\n            configurationId = this.configurationId;\n        }\n        \n        const query =  this._getCommonQueryParameters(configurationId);\n        query.append('Ids', ids.join(','));\n        query.append('RequestInfo', requestInfo.join(', '));\n\n        const result = await this._httpClient.request('GET', 'publications', query);\n        return result;\n    }\n\n    /**\n     * Add the ConfigurationId and RequestId to the query\n     * \n     * \n     * @param configurationId Overrule the configurationId when required.\n     * @returns \n     */\n    private _getCommonQueryParameters(configurationId? : string) : URLSearchParams {\n        if (configurationId === undefined) {\n            configurationId = this.configurationId;\n        }\n        const query = new URLSearchParams({\n            ConfigurationId: configurationId,\n            RequestId: this._generateRequestId()\n        });\n\n        return query;\n    }\n\n    /**\n     * Get the parentId from the iddOrInstance\n     *\n     * @param iddOrInstance\n     * @returns The object id\n     * @throws ClientError when the id cannot be determined\n     */\n    private _getObjectId(idOrInstance : string | WflObject, ) : string {\n        if(idOrInstance instanceof WflObject || (\n            typeof idOrInstance === 'object' &&\n            '__classname__' in idOrInstance &&\n             idOrInstance['__classname__'] === 'Object')) {\n            const id = idOrInstance.MetaData?.BasicMetaData?.ID;\n            if(id === undefined || id === null) {\n                throw new ClientError(`childId is undefined`);\n            }\n            return id;\n        } else {\n            return idOrInstance;\n        }\n    }\n\n    _sanitizeUrl(url: string): string {\n        return url.replace(/\\/$/, \"\");\n    }\n\n    _generateRequestId() {\n        return uuidv4();\n    }\n\n\n}","export class HttpError extends Error {\n\n\n\n    /**\n     *\n     * @param {string} message\n     */\n    constructor(message: string) {\n        super(message);\n        this.name = \"HttpError\";\n    }\n}","import { HttpError } from \"./http-error\";\n\nexport class HttpResponseError extends HttpError {\n\n    readonly code: number;\n    readonly name: string;\n\n    /**\n     *\n     * @param {Response} response\n     */\n    constructor(message: string, response: Response) {\n        super(HttpResponseError.buildMessage(message, response));\n        this.code = response.status;\n        this.name = \"HttpResponseError\";\n    }\n\n    static buildMessage(message : string, response: Response) : string {\n        if(message) {\n            return `HTTP Error: ${message}: ${response.status} ${response.statusText}`;\n        } else {\n            return `HTTP Error: ${response.status} ${response.statusText}`;\n        }\n    }\n}","import { ClientError } from \"../client/client-error\";\nimport { IHttpClient } from \"./http-client-interface\";\nimport { HttpError } from \"./http-error\";\nimport { HttpResponseError } from \"./http-response-error\";\nimport {ResponseBase} from \"./response-base\";\nimport {v4 as uuidv4} from 'uuid';\nimport { LoggerInterface,  } from '@aws-lambda-powertools/logger/types';\nimport { BodyInit, HeadersInit } from \"undici-types/fetch\";\n\nexport class HttpClient implements IHttpClient {\n\n    \n    private headers : Record<string,string> = {}\n\n    private baseUrl: string = \".\";\n    \n    private logger : LoggerInterface;\n\n    constructor(logger : LoggerInterface) {\n        this.logger = logger;\n    }\n\n    /**\n     * \n     * @returns The configuration service base URL\n     */\n    getBaseUrl(): string {\n        return <string>this.baseUrl;\n    }\n\n    setBaseUrl(baseUrl : string) : void {\n        this.baseUrl = baseUrl;\n    }\n\n    setCommonHeaders(headers : Record<string,string>) : void{\n        this.headers = headers;\n    }\n\n\n    async request(httpMethod: string, path: string, query?: URLSearchParams, body?: any): Promise<any> {\n        httpMethod = httpMethod.toUpperCase();\n\n        if (query === undefined) {\n            query = new URLSearchParams();\n        }\n\n        const url = this.getBaseUrl() + '/' + path + (query.size > 0 ? '?' + query.toString() : '');\n\n        const request: RequestInit = {\n            method: httpMethod.toUpperCase(),\n            headers: { ...this.headers} // Clone headers\n        }\n\n        console.log(`HttpClient::_request: httpMethod=[${httpMethod}], url=[${url}]`);\n        if (httpMethod === 'POST') {\n            this.logger.debug(`HttpClient::_request: body=[${JSON.stringify(body)}]`);\n            console.log(\"HttpClient::_request: body:\", body);\n            request.body = JSON.stringify(body);\n            // @ts-ignore request.Headers is always set.\n            request.headers['Content-Type'] = 'application/json';\n        }\n\n        const response = await fetch(url, request);\n\n        let data: ResponseBase | null = null;\n\n        const contentType: string = <string>response.headers.get(\"Content-Type\");\n        switch (contentType) {\n            case \"application/json\":\n                data = (await response.json()) as ResponseBase;\n                break;\n            default:\n                throw new HttpResponseError(`Unsupported content type: ${contentType}`, response);\n        }\n\n        data = this._checkResponse(data);\n\n        return data.Result;\n    }\n\n\n    /**\n     *\n     * @param url\n     * @returns \n     */\n    async downloadFile(url : string, query?: URLSearchParams) : Promise<ArrayBuffer>{\n        if (query === undefined) {\n            query = new URLSearchParams();\n        } \n\n        const parsedUrl = new URL(url)\n\n        query.forEach((value, key) => {\n            parsedUrl.searchParams.set(key, value);\n        });\n\n\n        //url = url + (query.size > 0 ? '?' + query.toString() : '');\n        url = parsedUrl.toString();\n\n        \n        const response = await fetch(url);\n\n        if (!response.ok) {\n            throw new HttpResponseError(\"Object cannot be downloaded from Studio.\", response);\n        }\n\n        const buffer = await response.arrayBuffer();\n\n        console.log(`Downloaded ${buffer.byteLength} bytes`);\n\n        return buffer;\n    }\n\n    /**\n     * Upload a file to the Studio transfer server.\n     * \n     * \n     * @param body \n     * @param size\n     * @param contentType \n     * @param ticket \n     * @param studiobaseUrl The Studio base url\n     *\n     * @returns The url to the uploaded file\n     */\n    async uploadFile(body : BodyInit, size : number | null, contentType : string, ticket : string, studiobaseUrl : string) : Promise<string> {\n        this.logger.debug(`HttpClient::uploadFile: ticket=[${ticket}], studiobaseUrl=[${studiobaseUrl}]`)\n\n        const url = `${studiobaseUrl}/transferindex.php?ticket=${ticket}&fileguid=${uuidv4()}`;\n\n        const headers : HeadersInit = {\n            'Content-Type' : contentType,\n        }\n\n        if(size !== null) {\n            headers['Content-Length'] = String(size);\n        }\n\n        const response = await fetch(url, {\n            method: 'PUT',\n            // To prevent the error: RequestInit: duplex option is required when sending a body\n            // Note: The order is important!!!! The 'duplex' setting must be set before the body otherwise it will be ignored.\n            duplex: 'half',\n            body: body,\n            headers: headers\n        });\n\n        if (!response.ok) {\n            throw new HttpResponseError('Unable to upload file.',response);\n        }\n\n        return url;\n    }\n\n    /**\n     * @param {object} data\n     * @private\n     */\n    _checkResponse(data: ResponseBase | null) : ResponseBase {\n        console.log(\"HttpClient::_checkResponse: \", data);\n\n        if (data === null) {\n            throw new HttpError(\"No JSON data received\");\n        }\n\n        if (data.hasOwnProperty('Status')) {\n            if (data.Status !== 'ok') {\n                if (data.StatusMessage !== undefined) {\n                    throw new ClientError(`The status is not 'ok': ${data.Status}: ${data.StatusMessage}`);\n                } else {\n                    throw new ClientError(`The status is not 'ok': ${data.Status}`);\n                }\n            }\n        } else {\n            throw new HttpError(\"No 'Status' property found in response\");\n        }\n\n        if (!data.hasOwnProperty('Result')) {\n            throw new HttpError(\"No 'Result' property found in response\");\n        }\n\n        return data;\n    }\n\n    _sanitizeUrl(url: string): string {\n        return url.replace(/\\/$/, \"\");\n    }\n}","import { ObjectInfo } from \"./object-info\";\nimport { ObjectLabel } from \"./object-label\";\nimport { Placement } from \"./placement\";\nimport { Target } from \"./target\";\n\nexport enum RelationType {\n    Contained = \"Contained\",\n    Placed = \"Placed\",\n    DeletedContained = \"DeletedContained\"\n}\n\nexport class Relation {\n    public __classname__: string = 'Relation';\n\n    public Parent: string | null = null;\n    public Child: string | null = null;\n    public Type: RelationType | null = null;\n    public Placements: Placement[] | null = null;\n    public ParentVersion: string | null = null;\n    public ChildVersion: string | null = null;\n    public Rating: number | null = null;\n    public Targets: Target[] | null = null;\n    public ParentInfo: ObjectInfo | null = null;\n    public ChildInfo: ObjectInfo | null = null;\n    public ObjectLabels: ObjectLabel[] | null = null;\n\n    constructor(params: RelationNamedParameters) {\n        this.Parent = params.Parent ?? null;\n        this.Child = params.Child ?? null;\n        this.Type = params.Type ?? null;\n        this.Placements = params.Placements ?? null;\n        this.ParentVersion = params.ParentVersion ?? null;\n        this.ChildVersion = params.ChildVersion ?? null;\n        this.Rating = params.Rating ?? null;\n        this.Targets = params.Targets ?? null;\n        this.ParentInfo = params.ParentInfo ?? null;\n        this.ChildInfo = params.ChildInfo ?? null;\n        this.ObjectLabels = params.ObjectLabels ?? null;\n    }\n}\n\nexport interface RelationNamedParameters {\n    Parent: string\n    Child: string\n    Type: RelationType\n    Placements?: Placement[]\n    ParentVersion?: string\n    ChildVersion?: string\n    Rating?: number\n    Targets?: Target[]\n    ParentInfo?: ObjectInfo\n    ChildInfo?: ObjectInfo\n    ObjectLabels?: ObjectLabel[]\n}","\nexport class ClientOptionError extends Error {\n    constructor(message: string, public optionName: string, error?: Error) {\n        super(ClientOptionError.buildMessage(message, optionName, error));\n        this.name = 'ClientOptionError';\n    }\n\n    private static buildMessage(message: string, optionName: string, error?: Error) {\n        return `${message} (Option '${optionName}')`;\n    }\n}","import { ClientOptionError } from \"./client-option-error\";\n\nexport class ClientOptions {\n    \n\n    constructor() {\n\n    }\n\n    // -------------------- baseUrl --------------------\n\n    private _baseUrl: string | null = null;\n\n    /**\n     * \n     * @throws QqAwsServiceStudioClientClientError  When the baseurl is not set\n     */\n    get baseUrl(): string {\n        if (this._baseUrl === null) {\n            throw new ClientOptionError(\"Option not set\", 'baseUrl');\n        };\n        return this._baseUrl;\n    }\n\n    setBaseUrl(value: string) : ClientOptions {\n        // Normalize URL (trailing slash)\n        this._baseUrl = value.replace(/\\/$/, \"\");\n        return this;\n    }\n\n    // -------------------- apiKey --------------------\n\n    private _apiKey : string | null = null;\n\n    /**\n     * @returns The apiKey\n     * @throws QqAwsServiceStudioClientClientError  When the apiKey is not set\n     */\n    get apiKey(): string {\n        if (this._apiKey === null) {\n            throw new ClientOptionError(\"Option not set\", 'apiKey');\n       };\n        return this._apiKey;\n    }\n\n    /**\n     * \n     * @param value The API key\n     * @returns \n     */\n    setApiKey(value: string) : ClientOptions {\n        this._apiKey = value;\n        return this;\n    }\n\n}","\nexport class Attachment {\n    public __classname__: string = 'Attachment';\n\t\n    public Rendition : string | null = null;\n\tpublic Type: string | null = null;\n\tpublic Content: string | null = null;\n\tpublic FilePath: string | null = null;\n\tpublic FileUrl: string | null = null;\n\tpublic EditionId: string | null = null;\n\tpublic ContentSourceFileLink: string | null = null;\n\tpublic ContentSourceProxyLink: string | null = null;\n    \n    constructor(params : AttachmentNamedParameters) {\n        this.Rendition = params.Rendition ?? null;\n        this.Type = params.Type ?? null;\n        this.Content = params.Content ?? null;\n        this.FilePath = params.FilePath ?? null;\n        this.FileUrl = params.FileUrl ?? null;\n        this.EditionId = params.EditionId ?? null;\n        this.ContentSourceFileLink = params.ContentSourceFileLink ?? null;\n        this.ContentSourceProxyLink = params.ContentSourceProxyLink ?? null;\n    }\n\n}\n\nexport interface AttachmentNamedParameters {\n    Rendition?: string,\n    Type?: string,\n    Content?: string,\n    FilePath?: string,\n    FileUrl?: string,\n    EditionId?: string,\n    ContentSourceFileLink?: string,\n    ContentSourceProxyLink?: string\n}","\nexport class ContentMetaData {\n    public __classname__: string = 'ContentMetaData';\n\n    public Description : string | null = null;\n\tpublic DescriptionAuthor: string | null = null;\n\tpublic Keywords: string[] | null = null;\n\tpublic Slugline: string | null = null;\n\tpublic Format: string | null = null;\n\tpublic Columns: number | null = null;\n\tpublic Width: number | null = null;\n\tpublic Height: number | null = null;\n\tpublic Dpi: number | null = null;\n\tpublic LengthWords: number | null = null;\n\tpublic LengthChars: number | null = null;\n\tpublic LengthParas: number | null = null;\n\tpublic LengthLines: number | null = null;\n\tpublic PlainContent: string | null = null;\n\tpublic FileSize: number | null = null;\n\tpublic ColorSpace: string | null = null;\n\tpublic HighResFile: string | null = null;\n\tpublic Encoding: string | null = null;\n\tpublic Compression: string | null = null;\n\tpublic KeyFrameEveryFrames: number | null = null;\n\tpublic Channels: string | null = null;\n\tpublic AspectRatio: string | null = null;\n\tpublic Orientation: number | null = null;\n\tpublic Dimensions: string | null = null;\n\n    constructor(params : ContentMetaDataNamedParameters) {\n        this.Description = params.Description ?? null;\n        this.DescriptionAuthor = params.DescriptionAuthor ?? null;\n        this.Keywords = params.Keywords ?? null;\n        this.Slugline = params.Slugline ?? null;\n        this.Format = params.Format ?? null;\n        this.Columns = params.Columns ?? null;\n        this.Width = params.Width ?? null;\n        this.Height = params.Height ?? null;\n        this.Dpi = params.Dpi ?? null;\n        this.LengthWords = params.LengthWords ?? null;\n        this.LengthChars = params.LengthChars ?? null;\n        this.LengthParas = params.LengthParas ?? null;\n        this.LengthLines = params.LengthLines ?? null;\n        this.PlainContent = params.PlainContent ?? null;\n        this.FileSize = params.FileSize ?? null;\n        this.ColorSpace = params.ColorSpace ?? null;\n        this.HighResFile = params.HighResFile ?? null;\n        this.Encoding = params.Encoding ?? null;\n        this.Compression = params.Compression ?? null;\n        this.KeyFrameEveryFrames = params.KeyFrameEveryFrames ?? null;\n        this.Channels = params.Channels ?? null;\n        this.AspectRatio = params.AspectRatio ?? null;\n        this.Orientation = params.Orientation ?? null;\n        this.Dimensions = params.Dimensions ?? null;\n    }\n}\n\nexport interface ContentMetaDataNamedParameters{\n    Description? : string \n    DescriptionAuthor? : string \n    Keywords? : string[] \n    Slugline? : string \n    Format? : string \n    Columns? : number \n    Width? : number \n    Height? : number \n    Dpi? : number\n    LengthWords? : number \n    LengthChars? : number \n    LengthParas? : number \n    LengthLines? : number \n    PlainContent? : string \n    FileSize? : number \n    ColorSpace? : string \n    HighResFile? : string \n    Encoding? : string \n    Compression? : string \n    KeyFrameEveryFrames? : number \n    Channels? : string \n    AspectRatio? : string \n    Orientation? : number \n    Dimensions? : string \n}","import { Edition } from \"./edition\";\nimport { RenditionTypeInfo } from \"./rendition-type-info\";\n\nexport class EditionRenditionsInfo {\n    public __classname__: string = 'EditionRenditionsInfo';\n\n\tpublic $Edition : Edition | null = null;\n\tpublic $Renditions : RenditionTypeInfo | null = null;\n\n    constructor(\n        $Edition: Edition | null = null,\n        $Renditions: RenditionTypeInfo | null = null\n    ) {\n        this.$Edition = $Edition;\n        this.$Renditions = $Renditions;\n    }\n}","export class Edition {\n    public __classname__: string = 'Edition';\n    \n    public Id : string | null = null;\n\tpublic Name: string | null = null;\n\n    constructor(\n        Id : string | null = null, \n        Name: string | null = null\n    ) {\n        this.Id = Id;\n        this.Name = Name;\n    }\n}","export class Element {\n    public __classname__: string = 'Element';\n\n\tpublic ID : string | null = null;\n\tpublic Name : string | null = null;\n\tpublic LengthWords : number | null = null;\n\tpublic LengthChars : number | null = null;\n\tpublic LengthParas: number | null = null;\n\tpublic LengthLines: number | null = null;\n\tpublic Snippet: string | null = null;\n\tpublic Version: string | null = null;\n\tpublic Content: string | null = null;\n\n    constructor(\n        ID: string | null = null,\n        Name: string | null = null,\n        LengthWords: number | null = null,\n        LengthChars: number | null = null,\n        LengthParas: number | null = null,\n        LengthLines: number | null = null,\n        Snippet: string | null = null,\n        Version: string | null = null,\n        Content: string | null = null\n    ) {\n        this.ID = ID;\n        this.Name = Name;\n        this.LengthWords = LengthWords;\n        this.LengthChars = LengthChars;\n        this.LengthParas = LengthParas;\n        this.LengthLines = LengthLines;\n        this.Snippet = Snippet;\n        this.Version = Version;\n        this.Content = Content;\n    }\n}       ","export class ExtraMetaData {\n    public __classname__: string = 'ExtraMetaData';\n\n    public Property : string | null = null;\n\tpublic Values: string[] | null = null;\n\n    constructor(params : ExtraMetaDataNamedParameters) {\n        this.Property = params.Property ?? null;\n        this.Values = params.Values ?? null;\n    }\n}\n\nexport interface ExtraMetaDataNamedParameters {\n    Property?: string,\n    Values?: string[]\n}","export class InDesignArticle {\n    public __classname__: string = 'InDesignArticle';\n    \n    public Id : string | null = null;\n\tpublic Name : string | null = null;\n\tpublic SplineIDs : string[] | null = null;\n\n    constructor(\n        Id : string | null = null, \n        Name : string | null = null, \n        SplineIDs : string[] | null = null\n    ) {\n        this.Id = Id;\n        this.Name = Name;\n        this.SplineIDs = SplineIDs;\n    }\n}\n","export class Issue {\n    public __classname__: string = 'Issue';\n\n    public Id : string | null = null;\n\tpublic NameId : string | null = null;\n\tpublic OverrulePublicationId : boolean | null = null;\n\n    constructor(\n        Id: string | null = null,\n        NameId: string | null = null,\n        OverrulePublicationId: boolean | null = null\n    ) {\n        this.Id = Id;\n        this.NameId = NameId;\n        this.OverrulePublicationId = OverrulePublicationId;\n    }\n}","import { Message } from \"./message\";\n\nexport class MessageList {\n    public __classname__: string = 'MessageList';\n\n    public Messages : Message[] | null = null;\n\tpublic ReadMessageIDs : string[] | null = null;\n\tpublic DeleteMessageIDs : string[] | null = null;\n\n    constructor(\n        Messages : Message[] | null = null, \n        ReadMessageIDs : string[] | null = null, \n        DeleteMessageIDs : string[] | null = null\n    ) {\n        this.Messages = Messages;\n        this.ReadMessageIDs = ReadMessageIDs;\n        this.DeleteMessageIDs = DeleteMessageIDs;\n    }\n}","import { StickyInfo } from \"./sticky-info\";\n\nexport class Message {\n    public __classname__: string = 'Message';\n\n    public ObjectID : string | null = null;\n\tpublic UserID : string | null = null;\n\tpublic MessageID : string | null = null;\n\tpublic MessageType : string | null = null;\n\tpublic MessageTypeDetail : string | null = null;\n\tpublic Message : string | null = null;\n\tpublic TimeStamp : string | null = null;\n\tpublic Expiration : string | null = null;\n\tpublic MessageLevel : string | null = null;\n\tpublic FromUser : string | null = null;\n\tpublic StickyInfo : StickyInfo | null = null;\n\tpublic ThreadMessageID : string | null = null;\n\tpublic ReplyToMessageID : string | null = null;\n\tpublic MessageStatus : string | null = null;\n\tpublic ObjectVersion : string | null = null;\n\n    constructor(\n        ObjectID : string | null = null, \n        UserID : string | null = null, \n        MessageID : string | null = null, \n        MessageType : string | null = null, \n        MessageTypeDetail : string | null = null, \n        Message : string | null = null, \n        TimeStamp : string | null = null, \n        Expiration : string | null = null, \n        MessageLevel : string | null = null, \n        FromUser : string | null = null, \n        StickyInfo : StickyInfo | null = null, \n        ThreadMessageID : string | null = null, \n        ReplyToMessageID : string | null = null, \n        MessageStatus : string | null = null, \n        ObjectVersion : string | null = null\n    ) {\n        this.ObjectID = ObjectID;\n        this.UserID = UserID;\n        this.MessageID = MessageID;\n        this.MessageType = MessageType;\n        this.MessageTypeDetail = MessageTypeDetail;\n        this.Message = Message;\n        this.TimeStamp = TimeStamp;\n        this.Expiration = Expiration;\n        this.MessageLevel = MessageLevel;\n        this.FromUser = FromUser;\n        this.StickyInfo = StickyInfo;\n        this.ThreadMessageID = ThreadMessageID;\n        this.ReplyToMessageID = ReplyToMessageID;\n        this.MessageStatus = MessageStatus;\n        this.ObjectVersion = ObjectVersion;\n    }\n}","import { PropertyValue } from \"./property-value\";\n\nexport class MetaDataValue {\n    public __classname__: string = 'MetaDataValue';\n    \n    public Property : string;\n\tpublic Values : string[] | null;\n\tpublic PropertyValues : PropertyValue[] | null;\n\n    constructor(params : MetaDataValueNamedParameters) {\n        this.Property = params.Property;\n        this.Values = params.Values ?? null;\n        this.PropertyValues = params.PropertyValues ?? null;\n    }\n}\n\nexport interface MetaDataValueNamedParameters {\n    Property: string,\n    Values?: string[],\n    PropertyValues?: PropertyValue[]\n}","export class ObjectInfo {\n    public __classname__: string = 'ObjectInfo';\n\n    public ID : string | null = null;\n\tpublic Name : string | null = null;\n\tpublic Type: string | null = null;\n\tpublic Format: string | null = null;\n\n    constructor(\n        ID : string | null = null, \n        Name : string | null = null, \n        Type: string | null = null, \n        Format: string | null = null\n    ) {\n        this.ID = ID;\n        this.Name = Name;\n        this.Type = Type;\n        this.Format = Format;\n    }\n}","export class ObjectLabel {\n    public __classname__: string = 'ObjectLabel';\n\n    public Id : number | null = null;\n\tpublic Name : string | null = null;\n\n    constructor(\n        Id : number | null = null, \n        Name: string | null = null\n    ) {\n        this.Id = Id;\n        this.Name = Name;\n    }\n}","import { Param } from \"./param\";\n\nexport class ObjectOperation {\n    public __classname__: string = 'ObjectOperation';\n\n    public Id : string | null = null;\n\tpublic Name : string | null = null;\n\tpublic Type : string | null = null;\n\tpublic Params : Param[] | null = null;\n\n    constructor(\n        Id : string | null = null, \n        Name : string | null = null, \n        Type : string | null = null, \n        Params : Param[] | null = null\n    ) {\n        this.Id = Id;\n        this.Name = Name;\n        this.Type = Type;\n        this.Params = Params;\n    }\n}","import { Attachment } from \"./attachment\";\nimport { Edition } from \"./edition\";\n\nexport class Page {\n    public __classname__: string = 'Page';\n\n    public Width : number | null = null;\n\tpublic Height : number | null = null;\n\tpublic PageNumber : string | null = null;\n\tpublic PageOrder : number | null = null;\n\tpublic Files : Attachment[] | null = null;\n\tpublic Edition : Edition | null = null;\n\tpublic Master : string | null = null;\n\tpublic Instance : string | null = null;\n\tpublic PageSequence : number | null = null;\n\tpublic Renditions : string[] | null = null;\n\tpublic Orientation : string | null = null;\n\n    constructor(\n        Width: number | null = null,\n        Height: number | null = null,\n        PageNumber: string | null = null,\n        PageOrder: number | null = null,\n        Files: Attachment[] | null = null,\n        Edition: Edition | null = null,\n        Master: string | null = null,\n        Instance: string | null = null,\n        PageSequence: number | null = null,\n        Renditions: string[] | null = null,\n        Orientation: string | null = null\n    ) {\n        this.Width = Width;\n        this.Height = Height;\n        this.PageNumber = PageNumber;\n        this.PageOrder = PageOrder;\n        this.Files = Files;\n        this.Edition = Edition;\n        this.Master = Master;\n        this.Instance = Instance;\n        this.PageSequence = PageSequence;\n        this.Renditions = Renditions;\n        this.Orientation = Orientation;\n    }\n\n}","export class Param {\n    public __classname__: string = 'Param';\n\n    public Name : string | null = null;\n\tpublic Value: string | null = null;\n\n    constructor(\n        Name : string | null = null, \n        Value: string | null = null\n    ) {\n        this.Name = Name;\n        this.Value = Value;\n    }\n}","export class Placement {\n    public __classname__: string = 'Placement';\n\n\tpublic Id : string | null = null;\n\tpublic Left : number | null = null;\n\tpublic Top : number | null = null;\n\tpublic Width : number | null = null;\n\tpublic Height : number | null = null;\n\n    constructor(\n        Id: string | null = null,\n        Left: number | null = null,\n        Top: number | null = null,\n        Width: number | null = null,\n        Height: number | null = null\n    ) {\n        this.Id = Id;\n        this.Left = Left;\n        this.Top = Top;\n        this.Width = Width;\n        this.Height = Height;\n    }\n}","export class PropertyValue {\n    public __classname__: string = 'PropertyValue';\n\n    public Value : string;\n\tpublic Display : string | null;\n\tpublic Entity : string | null;\n    constructor(params : PropertyValueNamedParameters) {\n        this.Value = params.Value;\n        this.Display = params.Display ?? null;\n        this.Entity = params.Entity ?? null;\n    }  \n}\nexport interface PropertyValueNamedParameters {\n    Value: string,\n    Display?: string,\n    Entity?: string\n}","export class PubChannel {\n    public __classname__: string = 'PubChannel';\n\n\tpublic Id : string | null = null;\n\tpublic Name: string | null = null;\n\n    constructor(\n        Id : string | null = null, \n        Name: string | null = null\n    ) {\n        this.Id = Id;\n        this.Name = Name;\n    }\n}","export class RenditionTypeInfo {\n    public __classname__: string = 'RenditionTypeInfo';\n\n    public Rendition : string | null = null;\n\tpublic Type: string | null = null;\n\n    constructor(\n        Rendition : string | null = null, \n        Type: string | null = null\n    ) {\n        this.Rendition = Rendition;\n        this.Type = Type;\n    }\n}","export class RightsMetaData {\n    public __classname__: string = 'RightsMetaData';\n    \n    public CopyrightMarked : boolean | null = null;\n\n\tpublic Copyright: string | null = null;\n\n\tpublic CopyrightURL: string | null = null;\n\n    constructor(\n        params : RightsMetaDataNamedParameters\n    ) {\n        this.CopyrightMarked = params.CopyrightMarked ?? null;\n        this.Copyright = params.Copyright ?? null;\n        this.CopyrightURL = params.CopyrightURL ?? null;\n    }\n}\n\nexport interface RightsMetaDataNamedParameters{\n    CopyrightMarked? : boolean, \n    Copyright?: string, \n    CopyrightURL?: string  \n}","export class SourceMetaData {\n    public __classname__: string = 'SourceMetaData';\n\n    public Credit : string | null = null;\n\n\tpublic Source: string | null = null;\n\n\tpublic Author: string | null = null;\n\n    constructor(params : SourceMetaDataNamedParameters) {\n        this.Credit = params.Credit ?? null;\n        this.Source = params.Source ?? null;\n        this.Author = params.Author ?? null;\n    }    \n}\n\nexport interface SourceMetaDataNamedParameters{\n    Credit? : string | null,\n    Source? : string | null,\n    Author? : string | null\n}","export class StickyInfo {\n    public __classname__: string = 'StickyInfo';\n\n    public AnchorX : number | null = null;\n\tpublic AnchorY : number | null = null;\n\tpublic Left : number | null = null;\n\tpublic Top : number | null = null;\n\tpublic Width : number | null = null;\n\tpublic Height : number | null = null;\n\tpublic Page : number | null = null;\n\tpublic Version : string | null = null;\n\tpublic Color : string | null = null;\n\tpublic PageSequence : number | null = null;\n\n    constructor(\n        AnchorX: number | null = null,\n        AnchorY: number | null = null,\n        Left: number | null = null,\n        Top: number | null = null,\n        Width: number | null = null,\n        Height: number | null = null,\n        Page: number | null = null,\n        Version: string | null = null,\n        Color: string | null = null,\n        PageSequence: number | null = null\n    ) {\n        this.AnchorX = AnchorX;\n        this.AnchorY = AnchorY;\n        this.Left = Left;\n        this.Top = Top;\n        this.Width = Width;\n        this.Height = Height;\n        this.Page = Page;\n        this.Version = Version;\n        this.Color = Color;\n        this.PageSequence = PageSequence;\n    }\n}","import { Edition } from \"./edition\";\nimport { Issue } from \"./issue\";\nimport { PubChannel } from \"./pub-channel\";\n\nexport class Target {\n    public __classname__: string = 'Target';\n\n    public PubChannel : PubChannel | null = null;\n\tpublic Issue : Issue | null = null;\n\tpublic Editions : Edition | null = null;\n\n    /**\n     * @deprecated DISCONTINUED since 10.12\n     */\n\tpublic PublishedDate : string | null = null;\n    /**\n     * @deprecated DISCONTINUED since 10.12\n     */\n\tpublic PublishedVersion : string | null = null;\n\n    constructor(params : TargetNamedProperties) {\n        this.PubChannel = params.PubChannel;\n        this.Issue = params.Issue ?? null;\n        this.Editions = params.Editions ?? null;\n    }\n}\n\nexport interface TargetNamedProperties {\n    PubChannel: PubChannel,\n    Issue?: Issue,\n    Editions?: Edition,\n}"],"mappings":"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","names":["uuidv4","RelationType","uuidv4","Message","StickyInfo","Edition","Page"]}