@webiny/api-prerendering-service-so-ddb 5.27.0-beta.0 → 5.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/definitions/queueJob.js.map +1 -1
- package/definitions/render.js.map +1 -1
- package/definitions/table.js.map +1 -1
- package/definitions/tagUrlLink.js.map +1 -1
- package/index.js.map +1 -1
- package/operations/queueJob/index.js.map +1 -1
- package/operations/render/index.js.map +1 -1
- package/package.json +10 -10
- package/types.js.map +1 -1
| @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3," | 
| 1 | 
            +
            {"version":3,"names":["createQueueJobEntity","params","entityName","attributes","table","Entity","name","PK","partitionKey","SK","sortKey","TYPE","type","id","args"],"sources":["queueJob.ts"],"sourcesContent":["import { Entity, Table } from \"dynamodb-toolbox\";\nimport { Attributes } from \"~/types\";\n\nexport interface CreateQueueJobEntityParams {\n    table: Table;\n    entityName: string;\n    attributes: Attributes;\n}\n\nexport const createQueueJobEntity = (params: CreateQueueJobEntityParams): Entity<any> => {\n    const { entityName, attributes, table } = params;\n    return new Entity({\n        name: entityName,\n        table,\n        attributes: {\n            PK: {\n                partitionKey: true\n            },\n            SK: {\n                sortKey: true\n            },\n            TYPE: {\n                type: \"string\"\n            },\n            id: {\n                type: \"string\"\n            },\n            args: {\n                type: \"map\"\n            },\n            ...(attributes || {})\n        }\n    });\n};\n"],"mappings":";;;;;;;;;;;AAAA;;;;;;AASO,MAAMA,oBAAoB,GAAIC,MAAD,IAAqD;EACrF,MAAM;IAAEC,UAAF;IAAcC,UAAd;IAA0BC;EAA1B,IAAoCH,MAA1C;EACA,OAAO,IAAII,uBAAJ,CAAW;IACdC,IAAI,EAAEJ,UADQ;IAEdE,KAFc;IAGdD,UAAU;MACNI,EAAE,EAAE;QACAC,YAAY,EAAE;MADd,CADE;MAINC,EAAE,EAAE;QACAC,OAAO,EAAE;MADT,CAJE;MAONC,IAAI,EAAE;QACFC,IAAI,EAAE;MADJ,CAPA;MAUNC,EAAE,EAAE;QACAD,IAAI,EAAE;MADN,CAVE;MAaNE,IAAI,EAAE;QACFF,IAAI,EAAE;MADJ;IAbA,GAgBFT,UAAU,IAAI,EAhBZ;EAHI,CAAX,CAAP;AAsBH,CAxBM"}
         | 
| @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3," | 
| 1 | 
            +
            {"version":3,"names":["createRenderEntity","params","entityName","attributes","table","Entity","name","PK","partitionKey","SK","sortKey","TYPE","type","namespace","url","args","configuration","files"],"sources":["render.ts"],"sourcesContent":["import { Entity, Table } from \"dynamodb-toolbox\";\nimport { Attributes } from \"~/types\";\n\nexport interface CreateRenderEntityParams {\n    table: Table;\n    entityName: string;\n    attributes: Attributes;\n}\n\nexport const createRenderEntity = (params: CreateRenderEntityParams): Entity<any> => {\n    const { entityName, attributes, table } = params;\n    return new Entity({\n        name: entityName,\n        table,\n        attributes: {\n            PK: {\n                partitionKey: true\n            },\n            SK: {\n                sortKey: true\n            },\n            TYPE: {\n                type: \"string\"\n            },\n            namespace: {\n                type: \"string\"\n            },\n            url: {\n                type: \"string\"\n            },\n            args: {\n                type: \"map\"\n            },\n            configuration: {\n                type: \"map\"\n            },\n            files: {\n                type: \"list\"\n            },\n            ...(attributes || {})\n        }\n    });\n};\n"],"mappings":";;;;;;;;;;;AAAA;;;;;;AASO,MAAMA,kBAAkB,GAAIC,MAAD,IAAmD;EACjF,MAAM;IAAEC,UAAF;IAAcC,UAAd;IAA0BC;EAA1B,IAAoCH,MAA1C;EACA,OAAO,IAAII,uBAAJ,CAAW;IACdC,IAAI,EAAEJ,UADQ;IAEdE,KAFc;IAGdD,UAAU;MACNI,EAAE,EAAE;QACAC,YAAY,EAAE;MADd,CADE;MAINC,EAAE,EAAE;QACAC,OAAO,EAAE;MADT,CAJE;MAONC,IAAI,EAAE;QACFC,IAAI,EAAE;MADJ,CAPA;MAUNC,SAAS,EAAE;QACPD,IAAI,EAAE;MADC,CAVL;MAaNE,GAAG,EAAE;QACDF,IAAI,EAAE;MADL,CAbC;MAgBNG,IAAI,EAAE;QACFH,IAAI,EAAE;MADJ,CAhBA;MAmBNI,aAAa,EAAE;QACXJ,IAAI,EAAE;MADK,CAnBT;MAsBNK,KAAK,EAAE;QACHL,IAAI,EAAE;MADH;IAtBD,GAyBFT,UAAU,IAAI,EAzBZ;EAHI,CAAX,CAAP;AA+BH,CAjCM"}
         | 
    
        package/definitions/table.js.map
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3," | 
| 1 | 
            +
            {"version":3,"names":["createTable","params","table","documentClient","tableConfig","name","process","env","DB_TABLE_PRERENDERING_SERVICE","DB_TABLE","partitionKey","sortKey","DocumentClient","config","Table"],"sources":["table.ts"],"sourcesContent":["import { DocumentClient } from \"aws-sdk/clients/dynamodb\";\nimport { Table } from \"dynamodb-toolbox\";\nimport { TableModifier } from \"~/types\";\nimport { TableConstructor } from \"dynamodb-toolbox/dist/classes/Table\";\n\ninterface CreateTableParams {\n    table?: TableModifier;\n    documentClient: DocumentClient;\n}\n\nexport const createTable = (params: CreateTableParams): Table => {\n    const { table, documentClient } = params;\n\n    const tableConfig: TableConstructor = {\n        name: (process.env.DB_TABLE_PRERENDERING_SERVICE || process.env.DB_TABLE) as string,\n        partitionKey: \"PK\",\n        sortKey: \"SK\",\n        DocumentClient: documentClient\n    };\n\n    const config = typeof table === \"function\" ? table(tableConfig) : tableConfig;\n\n    return new Table(config);\n};\n"],"mappings":";;;;;;;AACA;;AASO,MAAMA,WAAW,GAAIC,MAAD,IAAsC;EAC7D,MAAM;IAAEC,KAAF;IAASC;EAAT,IAA4BF,MAAlC;EAEA,MAAMG,WAA6B,GAAG;IAClCC,IAAI,EAAGC,OAAO,CAACC,GAAR,CAAYC,6BAAZ,IAA6CF,OAAO,CAACC,GAAR,CAAYE,QAD9B;IAElCC,YAAY,EAAE,IAFoB;IAGlCC,OAAO,EAAE,IAHyB;IAIlCC,cAAc,EAAET;EAJkB,CAAtC;EAOA,MAAMU,MAAM,GAAG,OAAOX,KAAP,KAAiB,UAAjB,GAA8BA,KAAK,CAACE,WAAD,CAAnC,GAAmDA,WAAlE;EAEA,OAAO,IAAIU,sBAAJ,CAAUD,MAAV,CAAP;AACH,CAbM"}
         | 
| @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3," | 
| 1 | 
            +
            {"version":3,"names":["createTagUrlLinkEntity","params","entityName","attributes","table","Entity","name","PK","partitionKey","SK","sortKey","TYPE","type","namespace","url","value","key"],"sources":["tagUrlLink.ts"],"sourcesContent":["import { Entity, Table } from \"dynamodb-toolbox\";\nimport { Attributes } from \"~/types\";\n\ninterface CreateTagUrlLinkEntityParams {\n    table: Table;\n    entityName: string;\n    attributes: Attributes;\n}\n\nexport const createTagUrlLinkEntity = (params: CreateTagUrlLinkEntityParams) => {\n    const { entityName, attributes, table } = params;\n    return new Entity({\n        name: entityName,\n        table,\n        attributes: {\n            PK: {\n                partitionKey: true\n            },\n            SK: {\n                sortKey: true\n            },\n            TYPE: {\n                type: \"string\"\n            },\n            namespace: {\n                type: \"string\"\n            },\n            url: {\n                type: \"string\"\n            },\n            value: {\n                type: \"string\"\n            },\n            key: {\n                type: \"string\"\n            },\n            ...(attributes || {})\n        }\n    });\n};\n"],"mappings":";;;;;;;;;;;AAAA;;;;;;AASO,MAAMA,sBAAsB,GAAIC,MAAD,IAA0C;EAC5E,MAAM;IAAEC,UAAF;IAAcC,UAAd;IAA0BC;EAA1B,IAAoCH,MAA1C;EACA,OAAO,IAAII,uBAAJ,CAAW;IACdC,IAAI,EAAEJ,UADQ;IAEdE,KAFc;IAGdD,UAAU;MACNI,EAAE,EAAE;QACAC,YAAY,EAAE;MADd,CADE;MAINC,EAAE,EAAE;QACAC,OAAO,EAAE;MADT,CAJE;MAONC,IAAI,EAAE;QACFC,IAAI,EAAE;MADJ,CAPA;MAUNC,SAAS,EAAE;QACPD,IAAI,EAAE;MADC,CAVL;MAaNE,GAAG,EAAE;QACDF,IAAI,EAAE;MADL,CAbC;MAgBNG,KAAK,EAAE;QACHH,IAAI,EAAE;MADH,CAhBD;MAmBNI,GAAG,EAAE;QACDJ,IAAI,EAAE;MADL;IAnBC,GAsBFT,UAAU,IAAI,EAtBZ;EAHI,CAAX,CAAP;AA4BH,CA9BM"}
         | 
    
        package/index.js.map
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3," | 
| 1 | 
            +
            {"version":3,"names":["reservedFields","isReserved","name","includes","WebinyError","createPrerenderingServiceStorageOperations","params","attributes","table","documentClient","Object","values","forEach","attrs","keys","tableInstance","createTable","entities","render","createRenderEntity","entityName","ENTITIES","RENDER","queueJob","createQueueJobEntity","QUEUE_JOB","tagUrlLink","createTagUrlLinkEntity","TAG_URL_LINK","getTable","getEntities","createRenderStorageOperations","entity","tagUrlLinkEntity","createQueueJobStorageOperations"],"sources":["index.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ENTITIES, PrerenderingServiceFactory, PrerenderingServiceFactoryParams } from \"~/types\";\nimport { createTable } from \"~/definitions/table\";\nimport { createRenderEntity } from \"~/definitions/render\";\nimport { createQueueJobEntity } from \"~/definitions/queueJob\";\nimport { createRenderStorageOperations } from \"~/operations/render\";\nimport { createQueueJobStorageOperations } from \"~/operations/queueJob\";\nimport { createTagUrlLinkEntity } from \"~/definitions/tagUrlLink\";\n\nconst reservedFields = [\"PK\", \"SK\", \"index\", \"data\", \"TYPE\", \"__type\", \"GSI1_PK\", \"GSI1_SK\"];\n\nconst isReserved = (name: string): void => {\n    if (reservedFields.includes(name) === false) {\n        return;\n    }\n    throw new WebinyError(`Attribute name \"${name}\" is not allowed.`, \"ATTRIBUTE_NOT_ALLOWED\", {\n        name\n    });\n};\n\nexport const createPrerenderingServiceStorageOperations: PrerenderingServiceFactory = (\n    params: PrerenderingServiceFactoryParams\n) => {\n    const { attributes, table, documentClient } = params;\n\n    if (attributes) {\n        Object.values(attributes).forEach(attrs => {\n            Object.keys(attrs).forEach(isReserved);\n        });\n    }\n\n    const tableInstance = createTable({ table, documentClient });\n\n    const entities = {\n        render: createRenderEntity({\n            entityName: ENTITIES.RENDER,\n            table: tableInstance,\n            attributes: attributes ? attributes[ENTITIES.RENDER] : {}\n        }),\n        queueJob: createQueueJobEntity({\n            entityName: ENTITIES.QUEUE_JOB,\n            table: tableInstance,\n            attributes: attributes ? attributes[ENTITIES.QUEUE_JOB] : {}\n        }),\n        tagUrlLink: createTagUrlLinkEntity({\n            entityName: ENTITIES.TAG_URL_LINK,\n            table: tableInstance,\n            attributes: attributes ? attributes[ENTITIES.TAG_URL_LINK] : {}\n        })\n    };\n\n    return {\n        getTable: () => tableInstance,\n        getEntities: () => entities,\n        ...createRenderStorageOperations({\n            entity: entities.render,\n            tagUrlLinkEntity: entities.tagUrlLink\n        }),\n        ...createQueueJobStorageOperations({\n            entity: entities.queueJob\n        })\n    };\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,MAAMA,cAAc,GAAG,CAAC,IAAD,EAAO,IAAP,EAAa,OAAb,EAAsB,MAAtB,EAA8B,MAA9B,EAAsC,QAAtC,EAAgD,SAAhD,EAA2D,SAA3D,CAAvB;;AAEA,MAAMC,UAAU,GAAIC,IAAD,IAAwB;EACvC,IAAIF,cAAc,CAACG,QAAf,CAAwBD,IAAxB,MAAkC,KAAtC,EAA6C;IACzC;EACH;;EACD,MAAM,IAAIE,cAAJ,CAAiB,mBAAkBF,IAAK,mBAAxC,EAA4D,uBAA5D,EAAqF;IACvFA;EADuF,CAArF,CAAN;AAGH,CAPD;;AASO,MAAMG,0CAAsE,GAC/EC,MADkF,IAEjF;EACD,MAAM;IAAEC,UAAF;IAAcC,KAAd;IAAqBC;EAArB,IAAwCH,MAA9C;;EAEA,IAAIC,UAAJ,EAAgB;IACZG,MAAM,CAACC,MAAP,CAAcJ,UAAd,EAA0BK,OAA1B,CAAkCC,KAAK,IAAI;MACvCH,MAAM,CAACI,IAAP,CAAYD,KAAZ,EAAmBD,OAAnB,CAA2BX,UAA3B;IACH,CAFD;EAGH;;EAED,MAAMc,aAAa,GAAG,IAAAC,kBAAA,EAAY;IAAER,KAAF;IAASC;EAAT,CAAZ,CAAtB;EAEA,MAAMQ,QAAQ,GAAG;IACbC,MAAM,EAAE,IAAAC,0BAAA,EAAmB;MACvBC,UAAU,EAAEC,eAAA,CAASC,MADE;MAEvBd,KAAK,EAAEO,aAFgB;MAGvBR,UAAU,EAAEA,UAAU,GAAGA,UAAU,CAACc,eAAA,CAASC,MAAV,CAAb,GAAiC;IAHhC,CAAnB,CADK;IAMbC,QAAQ,EAAE,IAAAC,8BAAA,EAAqB;MAC3BJ,UAAU,EAAEC,eAAA,CAASI,SADM;MAE3BjB,KAAK,EAAEO,aAFoB;MAG3BR,UAAU,EAAEA,UAAU,GAAGA,UAAU,CAACc,eAAA,CAASI,SAAV,CAAb,GAAoC;IAH/B,CAArB,CANG;IAWbC,UAAU,EAAE,IAAAC,kCAAA,EAAuB;MAC/BP,UAAU,EAAEC,eAAA,CAASO,YADU;MAE/BpB,KAAK,EAAEO,aAFwB;MAG/BR,UAAU,EAAEA,UAAU,GAAGA,UAAU,CAACc,eAAA,CAASO,YAAV,CAAb,GAAuC;IAH9B,CAAvB;EAXC,CAAjB;EAkBA;IACIC,QAAQ,EAAE,MAAMd,aADpB;IAEIe,WAAW,EAAE,MAAMb;EAFvB,GAGO,IAAAc,sCAAA,EAA8B;IAC7BC,MAAM,EAAEf,QAAQ,CAACC,MADY;IAE7Be,gBAAgB,EAAEhB,QAAQ,CAACS;EAFE,CAA9B,CAHP,GAOO,IAAAQ,0CAAA,EAAgC;IAC/BF,MAAM,EAAEf,QAAQ,CAACM;EADc,CAAhC,CAPP;AAWH,CA1CM"}
         | 
| @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3," | 
| 1 | 
            +
            {"version":3,"names":["createQueueJobStorageOperations","params","entity","createQueueJobPartitionKey","createQueueJobSortKey","id","createQueueJobType","createQueueJob","queueJob","keys","PK","SK","put","TYPE","ex","WebinyError","message","code","listQueueJobs","queryAllParams","partitionKey","options","gte","results","queryAll","cleanupItems","deleteQueueJobs","queueJobs","items","map","job","deleteBatch","batchWriteAll","table"],"sources":["index.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n    PrerenderingServiceQueueJobStorageOperations,\n    PrerenderingServiceStorageOperationsCreateQueueJobParams,\n    PrerenderingServiceStorageOperationsDeleteQueueJobsParams,\n    QueueJob\n} from \"@webiny/api-prerendering-service/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { batchWriteAll } from \"@webiny/db-dynamodb/utils/batchWrite\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { cleanupItems } from \"@webiny/db-dynamodb/utils/cleanup\";\n\nexport interface CreateQueueJobStorageOperationsParams {\n    entity: Entity<any>;\n}\n\nexport const createQueueJobStorageOperations = (\n    params: CreateQueueJobStorageOperationsParams\n): PrerenderingServiceQueueJobStorageOperations => {\n    const { entity } = params;\n\n    const createQueueJobPartitionKey = (): string => {\n        return \"PS#Q#JOB\";\n    };\n    const createQueueJobSortKey = (id: string): string => {\n        return id;\n    };\n\n    const createQueueJobType = () => {\n        return \"ps.queue.job\";\n    };\n\n    const createQueueJob = async (\n        params: PrerenderingServiceStorageOperationsCreateQueueJobParams\n    ): Promise<QueueJob> => {\n        const { queueJob } = params;\n        const keys = {\n            PK: createQueueJobPartitionKey(),\n            SK: createQueueJobSortKey(queueJob.id)\n        };\n\n        try {\n            await entity.put({\n                ...queueJob,\n                ...keys,\n                TYPE: createQueueJobType()\n            });\n            return queueJob;\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not create render record.\",\n                ex.code || \"CREATE_RENDER_ERROR\",\n                {\n                    keys,\n                    queueJob\n                }\n            );\n        }\n    };\n\n    const listQueueJobs = async () => {\n        const queryAllParams: QueryAllParams = {\n            entity,\n            partitionKey: createQueueJobPartitionKey(),\n            options: {\n                gte: \" \"\n            }\n        };\n\n        try {\n            const results = await queryAll<QueueJob>(queryAllParams);\n\n            return cleanupItems(entity, results);\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not list queue jobs records.\",\n                ex.code || \"LIST_QUEUE_JOBS_ERROR\",\n                {\n                    partitionKey: queryAllParams.partitionKey,\n                    options: queryAllParams.options\n                }\n            );\n        }\n    };\n\n    const deleteQueueJobs = async (\n        params: PrerenderingServiceStorageOperationsDeleteQueueJobsParams\n    ) => {\n        const { queueJobs } = params;\n\n        const items = queueJobs.map(job => {\n            return entity.deleteBatch({\n                PK: createQueueJobPartitionKey(),\n                SK: createQueueJobSortKey(job.id)\n            });\n        });\n\n        try {\n            await batchWriteAll({\n                table: entity.table,\n                items\n            });\n            return queueJobs;\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not delete queue jobs records.\",\n                ex.code || \"DELETE_QUEUE_JOBS_ERROR\",\n                {\n                    queueJobs\n                }\n            );\n        }\n    };\n\n    return {\n        createQueueJob,\n        deleteQueueJobs,\n        listQueueJobs\n    };\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AAQA;;AACA;;AACA;;;;;;AAMO,MAAMA,+BAA+B,GACxCC,MAD2C,IAEI;EAC/C,MAAM;IAAEC;EAAF,IAAaD,MAAnB;;EAEA,MAAME,0BAA0B,GAAG,MAAc;IAC7C,OAAO,UAAP;EACH,CAFD;;EAGA,MAAMC,qBAAqB,GAAIC,EAAD,IAAwB;IAClD,OAAOA,EAAP;EACH,CAFD;;EAIA,MAAMC,kBAAkB,GAAG,MAAM;IAC7B,OAAO,cAAP;EACH,CAFD;;EAIA,MAAMC,cAAc,GAAG,MACnBN,MADmB,IAEC;IACpB,MAAM;MAAEO;IAAF,IAAeP,MAArB;IACA,MAAMQ,IAAI,GAAG;MACTC,EAAE,EAAEP,0BAA0B,EADrB;MAETQ,EAAE,EAAEP,qBAAqB,CAACI,QAAQ,CAACH,EAAV;IAFhB,CAAb;;IAKA,IAAI;MACA,MAAMH,MAAM,CAACU,GAAP,+CACCJ,QADD,GAECC,IAFD;QAGFI,IAAI,EAAEP,kBAAkB;MAHtB,GAAN;MAKA,OAAOE,QAAP;IACH,CAPD,CAOE,OAAOM,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,iCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,qBAFT,EAGF;QACIR,IADJ;QAEID;MAFJ,CAHE,CAAN;IAQH;EACJ,CA1BD;;EA4BA,MAAMU,aAAa,GAAG,YAAY;IAC9B,MAAMC,cAA8B,GAAG;MACnCjB,MADmC;MAEnCkB,YAAY,EAAEjB,0BAA0B,EAFL;MAGnCkB,OAAO,EAAE;QACLC,GAAG,EAAE;MADA;IAH0B,CAAvC;;IAQA,IAAI;MACA,MAAMC,OAAO,GAAG,MAAM,IAAAC,eAAA,EAAmBL,cAAnB,CAAtB;MAEA,OAAO,IAAAM,qBAAA,EAAavB,MAAb,EAAqBqB,OAArB,CAAP;IACH,CAJD,CAIE,OAAOT,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,oCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,uBAFT,EAGF;QACIG,YAAY,EAAED,cAAc,CAACC,YADjC;QAEIC,OAAO,EAAEF,cAAc,CAACE;MAF5B,CAHE,CAAN;IAQH;EACJ,CAvBD;;EAyBA,MAAMK,eAAe,GAAG,MACpBzB,MADoB,IAEnB;IACD,MAAM;MAAE0B;IAAF,IAAgB1B,MAAtB;IAEA,MAAM2B,KAAK,GAAGD,SAAS,CAACE,GAAV,CAAcC,GAAG,IAAI;MAC/B,OAAO5B,MAAM,CAAC6B,WAAP,CAAmB;QACtBrB,EAAE,EAAEP,0BAA0B,EADR;QAEtBQ,EAAE,EAAEP,qBAAqB,CAAC0B,GAAG,CAACzB,EAAL;MAFH,CAAnB,CAAP;IAIH,CALa,CAAd;;IAOA,IAAI;MACA,MAAM,IAAA2B,yBAAA,EAAc;QAChBC,KAAK,EAAE/B,MAAM,CAAC+B,KADE;QAEhBL;MAFgB,CAAd,CAAN;MAIA,OAAOD,SAAP;IACH,CAND,CAME,OAAOb,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,sCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,yBAFT,EAGF;QACIU;MADJ,CAHE,CAAN;IAOH;EACJ,CA3BD;;EA6BA,OAAO;IACHpB,cADG;IAEHmB,eAFG;IAGHR;EAHG,CAAP;AAKH,CAvGM"}
         | 
| @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"sources":["index.ts"],"names":["createRenderStorageOperations","params","entity","tagUrlLinkEntity","createRenderPartitionKey","namespace","startsWith","replace","createRenderSortKey","url","createRenderType","createTagUrlLinkPartitionKey","tag","key","createTagUrlLinkSortKey","values","value","push","join","createTagUrlLinkType","getRender","where","keys","PK","SK","result","ex","WebinyError","message","code","createRender","render","put","TYPE","deleteRender","delete","listRendersByTag","links","listTagUrlLinks","items","map","link","getBatch","results","table","listRenders","queryAllParams","partitionKey","options","gte","createTagUrlLinks","tagUrlLinks","item","putBatch","deleteTagUrlLinks","tags","deleteBatch","beginsWith"],"mappings":"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","sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n    PrerenderingServiceRenderStorageOperations,\n    PrerenderingServiceStorageOperationsCreateRenderParams,\n    PrerenderingServiceStorageOperationsCreateTagUrlLinksParams,\n    PrerenderingServiceStorageOperationsDeleteRenderParams,\n    PrerenderingServiceStorageOperationsDeleteTagUrlLinksParams,\n    PrerenderingServiceStorageOperationsGetRenderParams,\n    PrerenderingServiceStorageOperationsListRendersParams,\n    PrerenderingServiceStorageOperationsListTagUrlLinksParams,\n    Render,\n    TagUrlLink\n} from \"@webiny/api-prerendering-service/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { get } from \"@webiny/db-dynamodb/utils/get\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { batchReadAll } from \"@webiny/db-dynamodb/utils/batchRead\";\nimport { batchWriteAll } from \"@webiny/db-dynamodb/utils/batchWrite\";\nimport { Tag } from \"@webiny/api-prerendering-service/queue/add/types\";\nimport { cleanupItem, cleanupItems } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { queryOptions as DynamoDBToolboxQueryOptions } from \"dynamodb-toolbox/dist/classes/Table\";\n\nexport interface CreateRenderStorageOperationsParams {\n    entity: Entity<any>;\n    tagUrlLinkEntity: Entity<any>;\n}\n\nexport interface CreateTagUrlLinkPartitionKeyParams {\n    namespace: string;\n    tag: Pick<Tag, \"key\">;\n}\n\nexport interface CreateTagUrlLinkSortKeyParams {\n    tag: Tag;\n    url?: string;\n}\n\nexport const createRenderStorageOperations = (\n    params: CreateRenderStorageOperationsParams\n): PrerenderingServiceRenderStorageOperations => {\n    const { entity, tagUrlLinkEntity } = params;\n\n    const createRenderPartitionKey = (namespace: string): string => {\n        /**\n         * For backwards compatibility remove the T# if it exists.\n         */\n        if (namespace.startsWith(\"T#\")) {\n            namespace = namespace.replace(/^T#/, \"\");\n        }\n        return `T#${namespace}#PS#RENDER`;\n    };\n\n    const createRenderSortKey = (url: string): string => {\n        return url;\n    };\n\n    const createRenderType = (): string => {\n        return \"ps.render\";\n    };\n\n    const createTagUrlLinkPartitionKey = (params: CreateTagUrlLinkPartitionKeyParams): string => {\n        const { tag } = params;\n        let { namespace } = params;\n        if (namespace.startsWith(\"T#\")) {\n            namespace = namespace.replace(/^T#/, \"\");\n        }\n        return `T#${namespace}#PS#TAG#${tag.key}`;\n    };\n\n    const createTagUrlLinkSortKey = (params: CreateTagUrlLinkSortKeyParams): string => {\n        const { tag, url } = params;\n        const values = [tag.value];\n        if (url) {\n            values.push(url);\n        }\n        return values.join(\"#\");\n    };\n\n    const createTagUrlLinkType = (): string => {\n        return \"ps.tagUrlLink\";\n    };\n\n    const getRender = async (\n        params: PrerenderingServiceStorageOperationsGetRenderParams\n    ): Promise<Render | null> => {\n        const { where } = params;\n\n        const keys = {\n            PK: createRenderPartitionKey(where.namespace),\n            SK: createRenderSortKey(where.url)\n        };\n\n        try {\n            const result = await get<Render>({\n                entity,\n                keys\n            });\n            return cleanupItem(entity, result);\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not get render record by given key.\",\n                ex.code || \"GET_RENDER_ERROR\",\n                {\n                    keys,\n                    params\n                }\n            );\n        }\n    };\n    const createRender = async (params: PrerenderingServiceStorageOperationsCreateRenderParams) => {\n        const { render } = params;\n\n        const keys = {\n            PK: createRenderPartitionKey(render.namespace),\n            SK: createRenderSortKey(render.url)\n        };\n\n        try {\n            await entity.put({\n                ...render,\n                ...keys,\n                TYPE: createRenderType()\n            });\n            return render;\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not create render record.\",\n                ex.code || \"CREATE_RENDER_ERROR\",\n                {\n                    keys,\n                    render\n                }\n            );\n        }\n    };\n    const deleteRender = async (\n        params: PrerenderingServiceStorageOperationsDeleteRenderParams\n    ): Promise<void> => {\n        const { render } = params;\n\n        const keys = {\n            PK: createRenderPartitionKey(render.namespace),\n            SK: createRenderSortKey(render.url)\n        };\n\n        try {\n            await entity.delete(keys);\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not delete render record.\",\n                ex.code || \"DELETE_RENDER_ERROR\",\n                {\n                    keys,\n                    render\n                }\n            );\n        }\n    };\n\n    const listRendersByTag = async (\n        params: PrerenderingServiceStorageOperationsListRendersParams\n    ) => {\n        const { where } = params;\n        const { namespace, tag } = where;\n        /**\n         * Possibly there is no tag.key so no need to go further\n         */\n        if (!tag || !tag.key) {\n            return [];\n        }\n\n        const links = await listTagUrlLinks({\n            where: {\n                namespace,\n                tag\n            }\n        });\n\n        const items = links.map(link => {\n            return entity.getBatch({\n                PK: createRenderPartitionKey(namespace),\n                SK: createRenderSortKey(link.url)\n            });\n        });\n        try {\n            const results = await batchReadAll<Render>({\n                table: entity.table,\n                items\n            });\n            return cleanupItems(entity, results);\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not list render records after links.\",\n                ex.code || \"LIST_LINKS_RENDER_ERROR\",\n                {\n                    links\n                }\n            );\n        }\n    };\n\n    const listRenders = async (params: PrerenderingServiceStorageOperationsListRendersParams) => {\n        const { where } = params;\n        const { namespace, tag } = where;\n\n        if (tag) {\n            return listRendersByTag(params);\n        }\n\n        const queryAllParams: QueryAllParams = {\n            entity,\n            partitionKey: createRenderPartitionKey(namespace),\n            options: {\n                gte: \" \"\n            }\n        };\n\n        try {\n            const results = await queryAll<Render>(queryAllParams);\n\n            return cleanupItems(entity, results);\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not list render records.\",\n                ex.code || \"LIST_RENDER_ERROR\",\n                {\n                    partitionKey: queryAllParams.partitionKey,\n                    options: queryAllParams.options\n                }\n            );\n        }\n    };\n\n    const createTagUrlLinks = async (\n        params: PrerenderingServiceStorageOperationsCreateTagUrlLinksParams\n    ) => {\n        const { tagUrlLinks } = params;\n\n        const items = tagUrlLinks.map(item => {\n            return tagUrlLinkEntity.putBatch({\n                ...item,\n                TYPE: createTagUrlLinkType(),\n                PK: createTagUrlLinkPartitionKey({\n                    namespace: item.namespace,\n                    tag: item\n                }),\n                SK: createTagUrlLinkSortKey({\n                    tag: item,\n                    url: item.url\n                })\n            });\n        });\n\n        try {\n            await batchWriteAll({\n                table: tagUrlLinkEntity.table,\n                items\n            });\n            return tagUrlLinks;\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not create tagUrlLink records.\",\n                ex.code || \"CREATE_URL_TAG_LINKS_ERROR\",\n                {\n                    tagUrlLinks\n                }\n            );\n        }\n    };\n\n    const deleteTagUrlLinks = async (\n        params: PrerenderingServiceStorageOperationsDeleteTagUrlLinksParams\n    ): Promise<void> => {\n        const { namespace, tags, url } = params;\n        const items = tags.map(tag => {\n            return tagUrlLinkEntity.deleteBatch({\n                PK: createTagUrlLinkPartitionKey({\n                    tag,\n                    namespace\n                }),\n                SK: createTagUrlLinkSortKey({\n                    tag,\n                    url\n                })\n            });\n        });\n\n        try {\n            await batchWriteAll({\n                table: tagUrlLinkEntity.table,\n                items\n            });\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not delete tagUrlLink records.\",\n                ex.code || \"DELETE_URL_TAG_LINKS_ERROR\",\n                {\n                    tags,\n                    namespace,\n                    url\n                }\n            );\n        }\n    };\n\n    const listTagUrlLinks = async (\n        params: PrerenderingServiceStorageOperationsListTagUrlLinksParams\n    ) => {\n        const { where } = params;\n        const { namespace, tag } = where;\n\n        const partitionKey = createTagUrlLinkPartitionKey({\n            namespace,\n            tag\n        });\n\n        const options: DynamoDBToolboxQueryOptions = {};\n        if (tag.value) {\n            options.beginsWith = `${tag.value}#`;\n        } else {\n            options.gte = \" \";\n        }\n\n        const queryAllParams: QueryAllParams = {\n            entity: tagUrlLinkEntity,\n            partitionKey,\n            options\n        };\n\n        try {\n            const results = await queryAll<TagUrlLink>(queryAllParams);\n\n            return cleanupItems(tagUrlLinkEntity, results);\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not list tagUrlLink records.\",\n                ex.code || \"LIST_TAG_URL_LINK_ERROR\",\n                {\n                    partitionKey,\n                    options\n                }\n            );\n        }\n    };\n\n    return {\n        createRender,\n        deleteRender,\n        listRenders,\n        getRender,\n        createTagUrlLinks,\n        deleteTagUrlLinks,\n        listTagUrlLinks\n    };\n};\n"]}
         | 
| 1 | 
            +
            {"version":3,"names":["createRenderStorageOperations","params","entity","tagUrlLinkEntity","createRenderPartitionKey","namespace","startsWith","replace","createRenderSortKey","url","createRenderType","createTagUrlLinkPartitionKey","tag","key","createTagUrlLinkSortKey","values","value","push","join","createTagUrlLinkType","getRender","where","keys","PK","SK","result","get","cleanupItem","ex","WebinyError","message","code","createRender","render","put","TYPE","deleteRender","delete","listRendersByTag","links","listTagUrlLinks","items","map","link","getBatch","results","batchReadAll","table","cleanupItems","listRenders","queryAllParams","partitionKey","options","gte","queryAll","createTagUrlLinks","tagUrlLinks","item","putBatch","batchWriteAll","deleteTagUrlLinks","tags","deleteBatch","beginsWith"],"sources":["index.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n    PrerenderingServiceRenderStorageOperations,\n    PrerenderingServiceStorageOperationsCreateRenderParams,\n    PrerenderingServiceStorageOperationsCreateTagUrlLinksParams,\n    PrerenderingServiceStorageOperationsDeleteRenderParams,\n    PrerenderingServiceStorageOperationsDeleteTagUrlLinksParams,\n    PrerenderingServiceStorageOperationsGetRenderParams,\n    PrerenderingServiceStorageOperationsListRendersParams,\n    PrerenderingServiceStorageOperationsListTagUrlLinksParams,\n    Render,\n    TagUrlLink\n} from \"@webiny/api-prerendering-service/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { get } from \"@webiny/db-dynamodb/utils/get\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { batchReadAll } from \"@webiny/db-dynamodb/utils/batchRead\";\nimport { batchWriteAll } from \"@webiny/db-dynamodb/utils/batchWrite\";\nimport { Tag } from \"@webiny/api-prerendering-service/queue/add/types\";\nimport { cleanupItem, cleanupItems } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { queryOptions as DynamoDBToolboxQueryOptions } from \"dynamodb-toolbox/dist/classes/Table\";\n\nexport interface CreateRenderStorageOperationsParams {\n    entity: Entity<any>;\n    tagUrlLinkEntity: Entity<any>;\n}\n\nexport interface CreateTagUrlLinkPartitionKeyParams {\n    namespace: string;\n    tag: Pick<Tag, \"key\">;\n}\n\nexport interface CreateTagUrlLinkSortKeyParams {\n    tag: Tag;\n    url?: string;\n}\n\nexport const createRenderStorageOperations = (\n    params: CreateRenderStorageOperationsParams\n): PrerenderingServiceRenderStorageOperations => {\n    const { entity, tagUrlLinkEntity } = params;\n\n    const createRenderPartitionKey = (namespace: string): string => {\n        /**\n         * For backwards compatibility remove the T# if it exists.\n         */\n        if (namespace.startsWith(\"T#\")) {\n            namespace = namespace.replace(/^T#/, \"\");\n        }\n        return `T#${namespace}#PS#RENDER`;\n    };\n\n    const createRenderSortKey = (url: string): string => {\n        return url;\n    };\n\n    const createRenderType = (): string => {\n        return \"ps.render\";\n    };\n\n    const createTagUrlLinkPartitionKey = (params: CreateTagUrlLinkPartitionKeyParams): string => {\n        const { tag } = params;\n        let { namespace } = params;\n        if (namespace.startsWith(\"T#\")) {\n            namespace = namespace.replace(/^T#/, \"\");\n        }\n        return `T#${namespace}#PS#TAG#${tag.key}`;\n    };\n\n    const createTagUrlLinkSortKey = (params: CreateTagUrlLinkSortKeyParams): string => {\n        const { tag, url } = params;\n        const values = [tag.value];\n        if (url) {\n            values.push(url);\n        }\n        return values.join(\"#\");\n    };\n\n    const createTagUrlLinkType = (): string => {\n        return \"ps.tagUrlLink\";\n    };\n\n    const getRender = async (\n        params: PrerenderingServiceStorageOperationsGetRenderParams\n    ): Promise<Render | null> => {\n        const { where } = params;\n\n        const keys = {\n            PK: createRenderPartitionKey(where.namespace),\n            SK: createRenderSortKey(where.url)\n        };\n\n        try {\n            const result = await get<Render>({\n                entity,\n                keys\n            });\n            return cleanupItem(entity, result);\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not get render record by given key.\",\n                ex.code || \"GET_RENDER_ERROR\",\n                {\n                    keys,\n                    params\n                }\n            );\n        }\n    };\n    const createRender = async (params: PrerenderingServiceStorageOperationsCreateRenderParams) => {\n        const { render } = params;\n\n        const keys = {\n            PK: createRenderPartitionKey(render.namespace),\n            SK: createRenderSortKey(render.url)\n        };\n\n        try {\n            await entity.put({\n                ...render,\n                ...keys,\n                TYPE: createRenderType()\n            });\n            return render;\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not create render record.\",\n                ex.code || \"CREATE_RENDER_ERROR\",\n                {\n                    keys,\n                    render\n                }\n            );\n        }\n    };\n    const deleteRender = async (\n        params: PrerenderingServiceStorageOperationsDeleteRenderParams\n    ): Promise<void> => {\n        const { render } = params;\n\n        const keys = {\n            PK: createRenderPartitionKey(render.namespace),\n            SK: createRenderSortKey(render.url)\n        };\n\n        try {\n            await entity.delete(keys);\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not delete render record.\",\n                ex.code || \"DELETE_RENDER_ERROR\",\n                {\n                    keys,\n                    render\n                }\n            );\n        }\n    };\n\n    const listRendersByTag = async (\n        params: PrerenderingServiceStorageOperationsListRendersParams\n    ) => {\n        const { where } = params;\n        const { namespace, tag } = where;\n        /**\n         * Possibly there is no tag.key so no need to go further\n         */\n        if (!tag || !tag.key) {\n            return [];\n        }\n\n        const links = await listTagUrlLinks({\n            where: {\n                namespace,\n                tag\n            }\n        });\n\n        const items = links.map(link => {\n            return entity.getBatch({\n                PK: createRenderPartitionKey(namespace),\n                SK: createRenderSortKey(link.url)\n            });\n        });\n        try {\n            const results = await batchReadAll<Render>({\n                table: entity.table,\n                items\n            });\n            return cleanupItems(entity, results);\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not list render records after links.\",\n                ex.code || \"LIST_LINKS_RENDER_ERROR\",\n                {\n                    links\n                }\n            );\n        }\n    };\n\n    const listRenders = async (params: PrerenderingServiceStorageOperationsListRendersParams) => {\n        const { where } = params;\n        const { namespace, tag } = where;\n\n        if (tag) {\n            return listRendersByTag(params);\n        }\n\n        const queryAllParams: QueryAllParams = {\n            entity,\n            partitionKey: createRenderPartitionKey(namespace),\n            options: {\n                gte: \" \"\n            }\n        };\n\n        try {\n            const results = await queryAll<Render>(queryAllParams);\n\n            return cleanupItems(entity, results);\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not list render records.\",\n                ex.code || \"LIST_RENDER_ERROR\",\n                {\n                    partitionKey: queryAllParams.partitionKey,\n                    options: queryAllParams.options\n                }\n            );\n        }\n    };\n\n    const createTagUrlLinks = async (\n        params: PrerenderingServiceStorageOperationsCreateTagUrlLinksParams\n    ) => {\n        const { tagUrlLinks } = params;\n\n        const items = tagUrlLinks.map(item => {\n            return tagUrlLinkEntity.putBatch({\n                ...item,\n                TYPE: createTagUrlLinkType(),\n                PK: createTagUrlLinkPartitionKey({\n                    namespace: item.namespace,\n                    tag: item\n                }),\n                SK: createTagUrlLinkSortKey({\n                    tag: item,\n                    url: item.url\n                })\n            });\n        });\n\n        try {\n            await batchWriteAll({\n                table: tagUrlLinkEntity.table,\n                items\n            });\n            return tagUrlLinks;\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not create tagUrlLink records.\",\n                ex.code || \"CREATE_URL_TAG_LINKS_ERROR\",\n                {\n                    tagUrlLinks\n                }\n            );\n        }\n    };\n\n    const deleteTagUrlLinks = async (\n        params: PrerenderingServiceStorageOperationsDeleteTagUrlLinksParams\n    ): Promise<void> => {\n        const { namespace, tags, url } = params;\n        const items = tags.map(tag => {\n            return tagUrlLinkEntity.deleteBatch({\n                PK: createTagUrlLinkPartitionKey({\n                    tag,\n                    namespace\n                }),\n                SK: createTagUrlLinkSortKey({\n                    tag,\n                    url\n                })\n            });\n        });\n\n        try {\n            await batchWriteAll({\n                table: tagUrlLinkEntity.table,\n                items\n            });\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not delete tagUrlLink records.\",\n                ex.code || \"DELETE_URL_TAG_LINKS_ERROR\",\n                {\n                    tags,\n                    namespace,\n                    url\n                }\n            );\n        }\n    };\n\n    const listTagUrlLinks = async (\n        params: PrerenderingServiceStorageOperationsListTagUrlLinksParams\n    ) => {\n        const { where } = params;\n        const { namespace, tag } = where;\n\n        const partitionKey = createTagUrlLinkPartitionKey({\n            namespace,\n            tag\n        });\n\n        const options: DynamoDBToolboxQueryOptions = {};\n        if (tag.value) {\n            options.beginsWith = `${tag.value}#`;\n        } else {\n            options.gte = \" \";\n        }\n\n        const queryAllParams: QueryAllParams = {\n            entity: tagUrlLinkEntity,\n            partitionKey,\n            options\n        };\n\n        try {\n            const results = await queryAll<TagUrlLink>(queryAllParams);\n\n            return cleanupItems(tagUrlLinkEntity, results);\n        } catch (ex) {\n            throw new WebinyError(\n                ex.message || \"Could not list tagUrlLink records.\",\n                ex.code || \"LIST_TAG_URL_LINK_ERROR\",\n                {\n                    partitionKey,\n                    options\n                }\n            );\n        }\n    };\n\n    return {\n        createRender,\n        deleteRender,\n        listRenders,\n        getRender,\n        createTagUrlLinks,\n        deleteTagUrlLinks,\n        listTagUrlLinks\n    };\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AAcA;;AACA;;AACA;;AACA;;AAEA;;;;;;AAkBO,MAAMA,6BAA6B,GACtCC,MADyC,IAEI;EAC7C,MAAM;IAAEC,MAAF;IAAUC;EAAV,IAA+BF,MAArC;;EAEA,MAAMG,wBAAwB,GAAIC,SAAD,IAA+B;IAC5D;AACR;AACA;IACQ,IAAIA,SAAS,CAACC,UAAV,CAAqB,IAArB,CAAJ,EAAgC;MAC5BD,SAAS,GAAGA,SAAS,CAACE,OAAV,CAAkB,KAAlB,EAAyB,EAAzB,CAAZ;IACH;;IACD,OAAQ,KAAIF,SAAU,YAAtB;EACH,CARD;;EAUA,MAAMG,mBAAmB,GAAIC,GAAD,IAAyB;IACjD,OAAOA,GAAP;EACH,CAFD;;EAIA,MAAMC,gBAAgB,GAAG,MAAc;IACnC,OAAO,WAAP;EACH,CAFD;;EAIA,MAAMC,4BAA4B,GAAIV,MAAD,IAAwD;IACzF,MAAM;MAAEW;IAAF,IAAUX,MAAhB;IACA,IAAI;MAAEI;IAAF,IAAgBJ,MAApB;;IACA,IAAII,SAAS,CAACC,UAAV,CAAqB,IAArB,CAAJ,EAAgC;MAC5BD,SAAS,GAAGA,SAAS,CAACE,OAAV,CAAkB,KAAlB,EAAyB,EAAzB,CAAZ;IACH;;IACD,OAAQ,KAAIF,SAAU,WAAUO,GAAG,CAACC,GAAI,EAAxC;EACH,CAPD;;EASA,MAAMC,uBAAuB,GAAIb,MAAD,IAAmD;IAC/E,MAAM;MAAEW,GAAF;MAAOH;IAAP,IAAeR,MAArB;IACA,MAAMc,MAAM,GAAG,CAACH,GAAG,CAACI,KAAL,CAAf;;IACA,IAAIP,GAAJ,EAAS;MACLM,MAAM,CAACE,IAAP,CAAYR,GAAZ;IACH;;IACD,OAAOM,MAAM,CAACG,IAAP,CAAY,GAAZ,CAAP;EACH,CAPD;;EASA,MAAMC,oBAAoB,GAAG,MAAc;IACvC,OAAO,eAAP;EACH,CAFD;;EAIA,MAAMC,SAAS,GAAG,MACdnB,MADc,IAEW;IACzB,MAAM;MAAEoB;IAAF,IAAYpB,MAAlB;IAEA,MAAMqB,IAAI,GAAG;MACTC,EAAE,EAAEnB,wBAAwB,CAACiB,KAAK,CAAChB,SAAP,CADnB;MAETmB,EAAE,EAAEhB,mBAAmB,CAACa,KAAK,CAACZ,GAAP;IAFd,CAAb;;IAKA,IAAI;MACA,MAAMgB,MAAM,GAAG,MAAM,IAAAC,QAAA,EAAY;QAC7BxB,MAD6B;QAE7BoB;MAF6B,CAAZ,CAArB;MAIA,OAAO,IAAAK,oBAAA,EAAYzB,MAAZ,EAAoBuB,MAApB,CAAP;IACH,CAND,CAME,OAAOG,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,2CADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,kBAFT,EAGF;QACIT,IADJ;QAEIrB;MAFJ,CAHE,CAAN;IAQH;EACJ,CA1BD;;EA2BA,MAAM+B,YAAY,GAAG,MAAO/B,MAAP,IAA0E;IAC3F,MAAM;MAAEgC;IAAF,IAAahC,MAAnB;IAEA,MAAMqB,IAAI,GAAG;MACTC,EAAE,EAAEnB,wBAAwB,CAAC6B,MAAM,CAAC5B,SAAR,CADnB;MAETmB,EAAE,EAAEhB,mBAAmB,CAACyB,MAAM,CAACxB,GAAR;IAFd,CAAb;;IAKA,IAAI;MACA,MAAMP,MAAM,CAACgC,GAAP,+CACCD,MADD,GAECX,IAFD;QAGFa,IAAI,EAAEzB,gBAAgB;MAHpB,GAAN;MAKA,OAAOuB,MAAP;IACH,CAPD,CAOE,OAAOL,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,iCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,qBAFT,EAGF;QACIT,IADJ;QAEIW;MAFJ,CAHE,CAAN;IAQH;EACJ,CAzBD;;EA0BA,MAAMG,YAAY,GAAG,MACjBnC,MADiB,IAED;IAChB,MAAM;MAAEgC;IAAF,IAAahC,MAAnB;IAEA,MAAMqB,IAAI,GAAG;MACTC,EAAE,EAAEnB,wBAAwB,CAAC6B,MAAM,CAAC5B,SAAR,CADnB;MAETmB,EAAE,EAAEhB,mBAAmB,CAACyB,MAAM,CAACxB,GAAR;IAFd,CAAb;;IAKA,IAAI;MACA,MAAMP,MAAM,CAACmC,MAAP,CAAcf,IAAd,CAAN;IACH,CAFD,CAEE,OAAOM,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,iCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,qBAFT,EAGF;QACIT,IADJ;QAEIW;MAFJ,CAHE,CAAN;IAQH;EACJ,CAtBD;;EAwBA,MAAMK,gBAAgB,GAAG,MACrBrC,MADqB,IAEpB;IACD,MAAM;MAAEoB;IAAF,IAAYpB,MAAlB;IACA,MAAM;MAAEI,SAAF;MAAaO;IAAb,IAAqBS,KAA3B;IACA;AACR;AACA;;IACQ,IAAI,CAACT,GAAD,IAAQ,CAACA,GAAG,CAACC,GAAjB,EAAsB;MAClB,OAAO,EAAP;IACH;;IAED,MAAM0B,KAAK,GAAG,MAAMC,eAAe,CAAC;MAChCnB,KAAK,EAAE;QACHhB,SADG;QAEHO;MAFG;IADyB,CAAD,CAAnC;IAOA,MAAM6B,KAAK,GAAGF,KAAK,CAACG,GAAN,CAAUC,IAAI,IAAI;MAC5B,OAAOzC,MAAM,CAAC0C,QAAP,CAAgB;QACnBrB,EAAE,EAAEnB,wBAAwB,CAACC,SAAD,CADT;QAEnBmB,EAAE,EAAEhB,mBAAmB,CAACmC,IAAI,CAAClC,GAAN;MAFJ,CAAhB,CAAP;IAIH,CALa,CAAd;;IAMA,IAAI;MACA,MAAMoC,OAAO,GAAG,MAAM,IAAAC,uBAAA,EAAqB;QACvCC,KAAK,EAAE7C,MAAM,CAAC6C,KADyB;QAEvCN;MAFuC,CAArB,CAAtB;MAIA,OAAO,IAAAO,qBAAA,EAAa9C,MAAb,EAAqB2C,OAArB,CAAP;IACH,CAND,CAME,OAAOjB,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,4CADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,yBAFT,EAGF;QACIQ;MADJ,CAHE,CAAN;IAOH;EACJ,CAxCD;;EA0CA,MAAMU,WAAW,GAAG,MAAOhD,MAAP,IAAyE;IACzF,MAAM;MAAEoB;IAAF,IAAYpB,MAAlB;IACA,MAAM;MAAEI,SAAF;MAAaO;IAAb,IAAqBS,KAA3B;;IAEA,IAAIT,GAAJ,EAAS;MACL,OAAO0B,gBAAgB,CAACrC,MAAD,CAAvB;IACH;;IAED,MAAMiD,cAA8B,GAAG;MACnChD,MADmC;MAEnCiD,YAAY,EAAE/C,wBAAwB,CAACC,SAAD,CAFH;MAGnC+C,OAAO,EAAE;QACLC,GAAG,EAAE;MADA;IAH0B,CAAvC;;IAQA,IAAI;MACA,MAAMR,OAAO,GAAG,MAAM,IAAAS,eAAA,EAAiBJ,cAAjB,CAAtB;MAEA,OAAO,IAAAF,qBAAA,EAAa9C,MAAb,EAAqB2C,OAArB,CAAP;IACH,CAJD,CAIE,OAAOjB,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,gCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,mBAFT,EAGF;QACIoB,YAAY,EAAED,cAAc,CAACC,YADjC;QAEIC,OAAO,EAAEF,cAAc,CAACE;MAF5B,CAHE,CAAN;IAQH;EACJ,CA9BD;;EAgCA,MAAMG,iBAAiB,GAAG,MACtBtD,MADsB,IAErB;IACD,MAAM;MAAEuD;IAAF,IAAkBvD,MAAxB;IAEA,MAAMwC,KAAK,GAAGe,WAAW,CAACd,GAAZ,CAAgBe,IAAI,IAAI;MAClC,OAAOtD,gBAAgB,CAACuD,QAAjB,iCACAD,IADA;QAEHtB,IAAI,EAAEhB,oBAAoB,EAFvB;QAGHI,EAAE,EAAEZ,4BAA4B,CAAC;UAC7BN,SAAS,EAAEoD,IAAI,CAACpD,SADa;UAE7BO,GAAG,EAAE6C;QAFwB,CAAD,CAH7B;QAOHjC,EAAE,EAAEV,uBAAuB,CAAC;UACxBF,GAAG,EAAE6C,IADmB;UAExBhD,GAAG,EAAEgD,IAAI,CAAChD;QAFc,CAAD;MAPxB,GAAP;IAYH,CAba,CAAd;;IAeA,IAAI;MACA,MAAM,IAAAkD,yBAAA,EAAc;QAChBZ,KAAK,EAAE5C,gBAAgB,CAAC4C,KADR;QAEhBN;MAFgB,CAAd,CAAN;MAIA,OAAOe,WAAP;IACH,CAND,CAME,OAAO5B,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,sCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,4BAFT,EAGF;QACIyB;MADJ,CAHE,CAAN;IAOH;EACJ,CAnCD;;EAqCA,MAAMI,iBAAiB,GAAG,MACtB3D,MADsB,IAEN;IAChB,MAAM;MAAEI,SAAF;MAAawD,IAAb;MAAmBpD;IAAnB,IAA2BR,MAAjC;IACA,MAAMwC,KAAK,GAAGoB,IAAI,CAACnB,GAAL,CAAS9B,GAAG,IAAI;MAC1B,OAAOT,gBAAgB,CAAC2D,WAAjB,CAA6B;QAChCvC,EAAE,EAAEZ,4BAA4B,CAAC;UAC7BC,GAD6B;UAE7BP;QAF6B,CAAD,CADA;QAKhCmB,EAAE,EAAEV,uBAAuB,CAAC;UACxBF,GADwB;UAExBH;QAFwB,CAAD;MALK,CAA7B,CAAP;IAUH,CAXa,CAAd;;IAaA,IAAI;MACA,MAAM,IAAAkD,yBAAA,EAAc;QAChBZ,KAAK,EAAE5C,gBAAgB,CAAC4C,KADR;QAEhBN;MAFgB,CAAd,CAAN;IAIH,CALD,CAKE,OAAOb,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,sCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,4BAFT,EAGF;QACI8B,IADJ;QAEIxD,SAFJ;QAGII;MAHJ,CAHE,CAAN;IASH;EACJ,CAjCD;;EAmCA,MAAM+B,eAAe,GAAG,MACpBvC,MADoB,IAEnB;IACD,MAAM;MAAEoB;IAAF,IAAYpB,MAAlB;IACA,MAAM;MAAEI,SAAF;MAAaO;IAAb,IAAqBS,KAA3B;IAEA,MAAM8B,YAAY,GAAGxC,4BAA4B,CAAC;MAC9CN,SAD8C;MAE9CO;IAF8C,CAAD,CAAjD;IAKA,MAAMwC,OAAoC,GAAG,EAA7C;;IACA,IAAIxC,GAAG,CAACI,KAAR,EAAe;MACXoC,OAAO,CAACW,UAAR,GAAsB,GAAEnD,GAAG,CAACI,KAAM,GAAlC;IACH,CAFD,MAEO;MACHoC,OAAO,CAACC,GAAR,GAAc,GAAd;IACH;;IAED,MAAMH,cAA8B,GAAG;MACnChD,MAAM,EAAEC,gBAD2B;MAEnCgD,YAFmC;MAGnCC;IAHmC,CAAvC;;IAMA,IAAI;MACA,MAAMP,OAAO,GAAG,MAAM,IAAAS,eAAA,EAAqBJ,cAArB,CAAtB;MAEA,OAAO,IAAAF,qBAAA,EAAa7C,gBAAb,EAA+B0C,OAA/B,CAAP;IACH,CAJD,CAIE,OAAOjB,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,oCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,yBAFT,EAGF;QACIoB,YADJ;QAEIC;MAFJ,CAHE,CAAN;IAQH;EACJ,CAtCD;;EAwCA,OAAO;IACHpB,YADG;IAEHI,YAFG;IAGHa,WAHG;IAIH7B,SAJG;IAKHmC,iBALG;IAMHK,iBANG;IAOHpB;EAPG,CAAP;AASH,CA7TM"}
         | 
    
        package/package.json
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            {
         | 
| 2 2 | 
             
            	"name": "@webiny/api-prerendering-service-so-ddb",
         | 
| 3 | 
            -
            	"version": "5. | 
| 3 | 
            +
            	"version": "5.28.0",
         | 
| 4 4 | 
             
            	"main": "index.js",
         | 
| 5 5 | 
             
            	"repository": {
         | 
| 6 6 | 
             
            		"type": "git",
         | 
| @@ -17,9 +17,9 @@ | |
| 17 17 | 
             
            	"author": "Webiny Ltd",
         | 
| 18 18 | 
             
            	"license": "MIT",
         | 
| 19 19 | 
             
            	"dependencies": {
         | 
| 20 | 
            -
            		"@babel/runtime": "7. | 
| 21 | 
            -
            		"@webiny/api-prerendering-service": "5. | 
| 22 | 
            -
            		"@webiny/error": "5. | 
| 20 | 
            +
            		"@babel/runtime": "7.18.3",
         | 
| 21 | 
            +
            		"@webiny/api-prerendering-service": "5.28.0",
         | 
| 22 | 
            +
            		"@webiny/error": "5.28.0",
         | 
| 23 23 | 
             
            		"dynamodb-toolbox": "0.3.5"
         | 
| 24 24 | 
             
            	},
         | 
| 25 25 | 
             
            	"devDependencies": {
         | 
| @@ -28,11 +28,11 @@ | |
| 28 28 | 
             
            		"@babel/plugin-proposal-export-default-from": "^7.16.0",
         | 
| 29 29 | 
             
            		"@babel/preset-env": "^7.16.4",
         | 
| 30 30 | 
             
            		"@babel/preset-typescript": "^7.16.0",
         | 
| 31 | 
            -
            		"@webiny/cli": "^5. | 
| 32 | 
            -
            		"@webiny/db": "^5. | 
| 33 | 
            -
            		"@webiny/db-dynamodb": "^5. | 
| 34 | 
            -
            		"@webiny/handler-aws": "^5. | 
| 35 | 
            -
            		"@webiny/project-utils": "^5. | 
| 31 | 
            +
            		"@webiny/cli": "^5.28.0",
         | 
| 32 | 
            +
            		"@webiny/db": "^5.28.0",
         | 
| 33 | 
            +
            		"@webiny/db-dynamodb": "^5.28.0",
         | 
| 34 | 
            +
            		"@webiny/handler-aws": "^5.28.0",
         | 
| 35 | 
            +
            		"@webiny/project-utils": "^5.28.0",
         | 
| 36 36 | 
             
            		"jest-dynalite": "^3.3.1",
         | 
| 37 37 | 
             
            		"jest-environment-node": "^27.3.0",
         | 
| 38 38 | 
             
            		"prettier": "^2.3.2",
         | 
| @@ -55,5 +55,5 @@ | |
| 55 55 | 
             
            			]
         | 
| 56 56 | 
             
            		}
         | 
| 57 57 | 
             
            	},
         | 
| 58 | 
            -
            	"gitHead": " | 
| 58 | 
            +
            	"gitHead": "9fd082a2e4a0e0116ee5a07e2a9ca385e8ac0173"
         | 
| 59 59 | 
             
            }
         | 
    
        package/types.js.map
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3," | 
| 1 | 
            +
            {"version":3,"names":["ENTITIES"],"sources":["types.ts"],"sourcesContent":["import { DocumentClient } from \"aws-sdk/clients/dynamodb\";\nimport { Table, Entity } from \"dynamodb-toolbox\";\nimport { DynamoDBTypes, TableConstructor } from \"dynamodb-toolbox/dist/classes/Table\";\nimport {\n    EntityAttributeConfig,\n    EntityCompositeAttributes\n} from \"dynamodb-toolbox/dist/classes/Entity\";\nimport { PrerenderingServiceStorageOperations as BasePrerenderingServiceStorageOperations } from \"@webiny/api-prerendering-service/types\";\n\nexport type AttributeDefinition = DynamoDBTypes | EntityAttributeConfig | EntityCompositeAttributes;\n\nexport type Attributes = Record<string, AttributeDefinition>;\n\nexport enum ENTITIES {\n    RENDER = \"PrerenderingServiceRender\",\n    QUEUE_JOB = \"PrerenderingServiceQueueJob\",\n    TAG_URL_LINK = \"PrerenderingServiceTagUrlLink\"\n}\n\nexport interface PrerenderingServiceFactoryParams {\n    documentClient: DocumentClient;\n    table?: TableModifier;\n    attributes?: Record<ENTITIES, Attributes>;\n}\n\nexport type Entities = \"render\" | \"queueJob\" | \"tagUrlLink\";\n\nexport interface PrerenderingServiceStorageOperations\n    extends BasePrerenderingServiceStorageOperations {\n    getTable(): Table;\n    getEntities(): Record<Entities, Entity<any>>;\n}\n\nexport interface PrerenderingServiceFactory {\n    (params: PrerenderingServiceFactoryParams): PrerenderingServiceStorageOperations;\n}\n\nexport interface TableModifier {\n    (table: TableConstructor): TableConstructor;\n}\n"],"mappings":";;;;;;IAaYA,Q;;;WAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;GAAAA,Q,wBAAAA,Q"}
         |