psobot / keynote-parser

A packer/unpacker for Apple Keynote presentation files.
156 stars 17 forks source link

Please add support for Keynote 12.0 (7033.0.134, 1A143) #34

Closed SheetJSDev closed 2 years ago

SheetJSDev commented 2 years ago

Unfortunately one of the required fields became optional. For keynote-parser there should be no practical difference.

Diffs

Registry:

6382 .TST.GroupByArchive.AggregatorArchive
6383 .TST.GroupByArchive.GroupNodeArchive

In 11.2, .TST.GroupByArchive message included the .TST.GroupByArchive.GroupNodeArchive and .TST.GroupByArchive.AggregatorArchive. In 12.0, the message parts have been pulled out and the parent .TST.GroupByArchive can reference those parts.

Protos:

diff proto112/TSKArchives.proto proto120/TSKArchives.proto
367a368
>   optional bool can_coalesce_group = 2;
diff proto112/TSPArchiveMessages.proto proto120/TSPArchiveMessages.proto
240a241
>     optional int32 revision_sequence_for_acknowledged_by_server = 7 [default = 0];
diff proto112/TSSArchives.proto proto120/TSSArchives.proto
57a58
>   optional .TSS.StylesheetArchive.VersionedStyles styles_for_12_0 = 13;
diff proto112/TSTArchives.proto proto120/TSTArchives.proto
939a940
>     optional bool pivot_hidden = 4;
946c947
<   repeated .TST.HiddenStateExtentArchive.RowOrColumnState hidden_states = 2;
---
>   repeated .TST.HiddenStateExtentArchive.RowOrColumnState base_hidden_states = 2;
952,953c953,954
<   optional .TSCE.IndexSetArchive view_pivot_hidden_indexes = 9;
<   optional .TSCE.IndexSetArchive view_only_filtered_indexes = 10;
---
>   optional .TSCE.IndexSetArchive summary_pivot_hidden_indexes = 9;
>   optional .TSCE.IndexSetArchive summary_filtered_indexes = 10;
954a956
>   repeated .TST.HiddenStateExtentArchive.RowOrColumnState summary_hidden_states = 12;
1205a1208,1211
>   message AggregatorArchive {
>     required .TSP.UUID column_uid = 1;
>     optional .TST.GroupByArchive.AggNodeArchive agg_node = 2;
>   }
1224,1227c1230
<   }
<   message AggregatorArchive {
<     required .TSP.UUID column_uid = 1;
<     optional .TST.GroupByArchive.AggNodeArchive agg_node = 2;
---
>     repeated .TSP.Reference child_ref = 10;
1231c1234
<   required .TST.GroupByArchive.GroupNodeArchive group_node_root = 3;
---
>   optional .TST.GroupByArchive.GroupNodeArchive group_node_root = 3;
1244a1248,1249
>   repeated .TSP.Reference aggregator_ref = 17;
>   optional .TSP.Reference group_node_root_ref = 18;
diff proto112/TSTCommandArchives.proto proto120/TSTCommandArchives.proto
175a176
>   optional .TST.TableGroupSortOrderUIDArchive group_sort_order = 14;
202a204
>   optional .TST.TableGroupSortOrderUIDArchive undo_group_sort_order = 10;
887a890,891
>   optional .TSP.Reference new_filter_set = 39;
>   optional .TSP.Reference old_filter_set = 40;
diff proto112/TSWPArchives.proto proto120/TSWPArchives.proto
17a18
>   SelectionType_Logical = 8;
38,39c39,40
<   required .TSWP.SelectionType type = 1;
<   required .TSP.Range range = 2;
---
>   required .TSWP.SelectionType deprecated_type = 1 [deprecated = true];
>   required .TSP.Range deprecated_range = 2 [deprecated = true];
42a44,47
>   optional bool leading_edge = 6;
>   optional uint32 leading_char_index = 7;
>   optional .TSWP.SelectionType type = 8;
>   repeated .TSP.Range ranges = 9;
87a93
>     UNDEFINED = 8;
diff proto112/TSWPCommandArchives.proto proto120/TSWPCommandArchives.proto
113a114
>   optional .TSWP.StorageArchive.KindType wp_kind = 13;