refactor(manifest): convert manifests to array

if the manifests are arrays, we can speed things up by indexing separately and
depend upon the order of the dictionary.

feat(manifest): add indexer

to speed things, up we're now indexing manifest items

feat(manifest): add publishing order optimizer

since we shouldn't be trusting the order of the provided pages manifest, we've
implemented sorting, so that the ancestry of pages is reflected in the order of
publishing.
This commit is contained in:
Rodweil, Theodor 2023-08-06 04:08:03 +02:00
parent c3aa057bfc
commit 3882b1089e
No known key found for this signature in database
GPG key ID: F8BC1B0EB1F9CCF5
3 changed files with 553 additions and 23 deletions

View file

@ -6,19 +6,15 @@
"type": "object",
"properties": {
"pages": {
"type": "object",
"patternProperties": {
".*": {
"$ref": "#/definitions/page"
}
"type": "array",
"item": {
"$ref": "#/definitions/page"
}
},
"attachments": {
"type": "object",
"patternProperties": {
".*": {
"$ref": "#/definitions/attachment"
}
"type": "array",
"item": {
"$ref": "#/definitions/attachment"
}
}
},
@ -31,7 +27,11 @@
"type": "object",
"description": "Local Confluence page/container attachment metadata",
"properties": {
"PageId": {
"Title": {
"type": "string",
"description": "Title of page"
},
"Id": {
"type": "string",
"description": "Id of attachment defined by Confluence instance. The id is generated after the publishing of a page."
},
@ -52,7 +52,7 @@
}
},
"required": [
"Hash",
"Title",
"Ref"
]
},
@ -60,7 +60,11 @@
"type": "object",
"description": "Local Confluence page/container attachment metadata",
"properties": {
"AttachmentId": {
"Name": {
"type": "string",
"description": "name of attachment, which must be unique within the container page"
},
"Id": {
"type": "string",
"description": "Id of attachment defined by Confluence instance. The id is generated after the publishing of an attachment."
},
@ -83,6 +87,7 @@
}
},
"required": [
"Name",
"Hash",
"MimeType",
"ContainerPageTitle",