webext-schema 5.2.5 → 5.2.6

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.
@@ -2337,7 +2337,7 @@
2337
2337
  "properties": {
2338
2338
  "stylesheet": {
2339
2339
  "optional": true,
2340
- "description": "URL to a stylesheet introducing additional CSS variables, extending the theme-able areas of Thunderbird. The `theme_experiment add-on in our example repository <https://github.com/thundernest/sample-extensions/tree/master/theme_experiment>`__ is using the stylesheet shown below, to add the <value>--chat-button-color</value> CSS color variable: <literalinclude>includes/theme/theme_experiment_style.css<lang>CSS</lang></literalinclude>The following <em>manifest.json</em> file maps the </value>--chat-button-color</value> CSS color variable to the theme color key <value>exp_chat_button</value> and uses it to set a color for the chat button: <literalinclude>includes/theme/theme_experiment_manifest.json<lang>JSON</lang></literalinclude>",
2340
+ "description": "URL to a stylesheet introducing additional CSS variables, extending the theme-able areas of Thunderbird. The `theme_experiment add-on in our example repository <https://github.com/thunderbird/sample-extensions/tree/master/theme_experiment>`__ is using the stylesheet shown below, to add the <value>--chat-button-color</value> CSS color variable: <literalinclude>includes/theme/theme_experiment_style.css<lang>CSS</lang></literalinclude>The following <em>manifest.json</em> file maps the </value>--chat-button-color</value> CSS color variable to the theme color key <value>exp_chat_button</value> and uses it to set a color for the chat button: <literalinclude>includes/theme/theme_experiment_manifest.json<lang>JSON</lang></literalinclude>",
2341
2341
  "$ref": "ExtensionURL"
2342
2342
  },
2343
2343
  "images": {
@@ -2872,7 +2872,7 @@
2872
2872
  "type": "object",
2873
2873
  "properties": {
2874
2874
  "id": {
2875
- "type": "string",
2875
+ "$ref": "MailAccountId",
2876
2876
  "description": "A unique identifier for this account."
2877
2877
  },
2878
2878
  "name": {
@@ -2884,6 +2884,7 @@
2884
2884
  "description": "What sort of account this is, e.g. <value>imap</value>, <value>nntp</value>, or <value>pop3</value>."
2885
2885
  },
2886
2886
  "folders": {
2887
+ "max_manifest_version": 2,
2887
2888
  "type": "array",
2888
2889
  "optional": true,
2889
2890
  "description": "The folders for this account are only included if requested.",
@@ -2891,6 +2892,11 @@
2891
2892
  "$ref": "folders.MailFolder"
2892
2893
  }
2893
2894
  },
2895
+ "rootFolder": {
2896
+ "$ref": "folders.MailFolder",
2897
+ "optional": true,
2898
+ "description": "The root folder associated with this account."
2899
+ },
2894
2900
  "identities": {
2895
2901
  "type": "array",
2896
2902
  "description": "The identities associated with this account. The default identity is listed first, others in no particular order.",
@@ -2899,6 +2905,11 @@
2899
2905
  }
2900
2906
  }
2901
2907
  }
2908
+ },
2909
+ {
2910
+ "id": "MailAccountId",
2911
+ "type": "string",
2912
+ "description": "A unique id representing a :ref:`accounts.MailAccount`."
2902
2913
  }
2903
2914
  ],
2904
2915
  "functions": [
@@ -2938,7 +2949,7 @@
2938
2949
  "parameters": [
2939
2950
  {
2940
2951
  "name": "accountId",
2941
- "type": "string"
2952
+ "$ref": "MailAccountId"
2942
2953
  },
2943
2954
  {
2944
2955
  "name": "includeFolders",
@@ -2991,11 +3002,12 @@
2991
3002
  "type": "function",
2992
3003
  "description": "Sets the default identity for an account.",
2993
3004
  "async": true,
2994
- "deprecated": "This will be removed. Use :ref:`identities.setDefault` instead.",
3005
+ "max_manifest_version": 2,
3006
+ "deprecated": "Deprecated since Thunderbird 91 and removed in Manifest V3: accounts.setDefaultIdentity() is now available as identities.setDefault.",
2995
3007
  "parameters": [
2996
3008
  {
2997
3009
  "name": "accountId",
2998
- "type": "string"
3010
+ "$ref": "MailAccountId"
2999
3011
  },
3000
3012
  {
3001
3013
  "name": "identityId",
@@ -3008,11 +3020,12 @@
3008
3020
  "type": "function",
3009
3021
  "description": "Returns the default identity for an account, or <value>null</value> if it is not defined.",
3010
3022
  "async": "callback",
3011
- "deprecated": "This will be removed. Use :ref:`identities.getDefault` instead.",
3023
+ "max_manifest_version": 2,
3024
+ "deprecated": "Deprecated since Thunderbird 91 and removed in Manifest V3: accounts.getDefaultIdentity() is now available as identities.getDefault.",
3012
3025
  "parameters": [
3013
3026
  {
3014
3027
  "name": "accountId",
3015
- "type": "string"
3028
+ "$ref": "MailAccountId"
3016
3029
  },
3017
3030
  {
3018
3031
  "type": "function",
@@ -3034,8 +3047,8 @@
3034
3047
  "description": "Fired when a new account has been created.",
3035
3048
  "parameters": [
3036
3049
  {
3037
- "name": "id",
3038
- "type": "string"
3050
+ "name": "accountId",
3051
+ "$ref": "MailAccountId"
3039
3052
  },
3040
3053
  {
3041
3054
  "name": "account",
@@ -3049,8 +3062,8 @@
3049
3062
  "description": "Fired when an account has been removed.",
3050
3063
  "parameters": [
3051
3064
  {
3052
- "name": "id",
3053
- "type": "string"
3065
+ "name": "accountId",
3066
+ "$ref": "MailAccountId"
3054
3067
  }
3055
3068
  ]
3056
3069
  },
@@ -3060,8 +3073,8 @@
3060
3073
  "description": "Fired when a property of an account has been modified. Folders and identities of accounts are not monitored by this event, use the dedicated folder and identity events instead. A changed ``defaultIdentity`` is reported only after a different identity has been assigned as default identity, but not after a property of the default identity has been changed.",
3061
3074
  "parameters": [
3062
3075
  {
3063
- "name": "id",
3064
- "type": "string"
3076
+ "name": "accountId",
3077
+ "$ref": "MailAccountId"
3065
3078
  },
3066
3079
  {
3067
3080
  "name": "changedValues",
@@ -5776,6 +5789,9 @@
5776
5789
  },
5777
5790
  "overrideDefaultFccFolder": {
5778
5791
  "choices": [
5792
+ {
5793
+ "$ref": "folders.MailFolderId"
5794
+ },
5779
5795
  {
5780
5796
  "$ref": "folders.MailFolder"
5781
5797
  },
@@ -5791,6 +5807,9 @@
5791
5807
  },
5792
5808
  "additionalFccFolder": {
5793
5809
  "choices": [
5810
+ {
5811
+ "$ref": "folders.MailFolderId"
5812
+ },
5794
5813
  {
5795
5814
  "$ref": "folders.MailFolder"
5796
5815
  },
@@ -5907,7 +5926,7 @@
5907
5926
  "attachVCard": {
5908
5927
  "type": "boolean",
5909
5928
  "optional": true,
5910
- "description": "Wether or not the vCard of the used identity will be attached to the message during send. Note: If the value has not been modified, selecting a different identity will load the default value of the new identity."
5929
+ "description": "Whether or not the vCard of the used identity will be attached to the message during send. **Note:** If the value has not been modified, selecting a different identity will load the default value of the new identity."
5911
5930
  },
5912
5931
  "attachments": {
5913
5932
  "type": "array",
@@ -7549,7 +7568,7 @@
7549
7568
  {
7550
7569
  "name": "register",
7551
7570
  "type": "function",
7552
- "description": "Register a message display script programmatically",
7571
+ "description": "Register a message display script programmatically. **Note:** Registered scripts will only be applied to newly opened messages. To apply the script to already open messages, manually inject your script by calling :ref:`tabs.executeScript` for each of the open <value>messageDisplay</value> tabs.",
7553
7572
  "async": true,
7554
7573
  "parameters": [
7555
7574
  {
@@ -7587,11 +7606,31 @@
7587
7606
  {
7588
7607
  "id": "MailFolder",
7589
7608
  "type": "object",
7590
- "description": "An object describing a mail folder, as returned for example by the :ref:`folders.getParentFolders` or :ref:`folders.getSubFolders` methods, or part of a :ref:`accounts.MailAccount` object, which is returned for example by the :ref:`accounts.list` and :ref:`accounts.get` methods. The ``subFolders`` property is only included if requested.",
7609
+ "description": "An object describing a folder. The ``subFolders`` property is only included if requested.",
7591
7610
  "properties": {
7592
7611
  "accountId": {
7593
- "type": "string",
7594
- "description": "The account this folder belongs to."
7612
+ "$ref": "accounts.MailAccountId",
7613
+ "description": "The id of the account this folder belongs to."
7614
+ },
7615
+ "id": {
7616
+ "$ref": "folders.MailFolderId",
7617
+ "optional": true,
7618
+ "description": "An identifier for the folder."
7619
+ },
7620
+ "isFavorite": {
7621
+ "type": "boolean",
7622
+ "optional": true,
7623
+ "description": "Whether this folder is a favorite folder."
7624
+ },
7625
+ "isRoot": {
7626
+ "type": "boolean",
7627
+ "optional": true,
7628
+ "description": "Whether this folder is a root folder."
7629
+ },
7630
+ "isVirtual": {
7631
+ "type": "boolean",
7632
+ "optional": true,
7633
+ "description": "Whether this folder is a virtual search folder."
7595
7634
  },
7596
7635
  "name": {
7597
7636
  "type": "string",
@@ -7602,42 +7641,63 @@
7602
7641
  "type": "string",
7603
7642
  "description": "Path to this folder in the account. Although paths look predictable, never guess a folder's path, as there are a number of reasons why it may not be what you think it is. Use :ref:`folders.getParentFolders` or :ref:`folders.getSubFolders` to obtain hierarchy information."
7604
7643
  },
7644
+ "specialUse": {
7645
+ "type": "array",
7646
+ "items": {
7647
+ "$ref": "folders.MailFolderSpecialUse"
7648
+ },
7649
+ "optional": true,
7650
+ "description": "The special use of this folder. A folder can have multiple special uses."
7651
+ },
7605
7652
  "subFolders": {
7606
7653
  "type": "array",
7607
7654
  "description": "Subfolders are only included if requested. They will be returned in the same order as used in Thunderbird's folder pane.",
7608
7655
  "items": {
7609
- "$ref": "MailFolder"
7656
+ "$ref": "folders.MailFolder"
7610
7657
  },
7611
7658
  "optional": true
7612
7659
  },
7613
7660
  "type": {
7614
- "choices": [
7615
- {
7616
- "max_manifest_version": 2,
7617
- "$ref": "folders.MailFolderType"
7618
- },
7619
- {
7620
- "min_manifest_version": 3,
7621
- "type": "array",
7622
- "items": {
7623
- "$ref": "folders.MailFolderType"
7624
- }
7625
- }
7626
- ],
7661
+ "max_manifest_version": 2,
7662
+ "$ref": "folders.MailFolderSpecialUse",
7627
7663
  "optional": true,
7628
- "description": "The type of folder."
7664
+ "description": "Deprecated. Was used to represent the type of this folder."
7629
7665
  }
7630
7666
  }
7631
7667
  },
7668
+ {
7669
+ "id": "MailFolderId",
7670
+ "type": "string",
7671
+ "description": "A unique id representing a :ref:`folders.MailFolder` throughout a session. Renaming or moving a folder will invalidate its id."
7672
+ },
7632
7673
  {
7633
7674
  "id": "MailFolderInfo",
7634
7675
  "type": "object",
7635
- "description": "An object containing additional information about a mail folder.",
7676
+ "description": "An object containing additional information about a folder.",
7636
7677
  "properties": {
7637
7678
  "favorite": {
7638
7679
  "type": "boolean",
7639
7680
  "optional": true,
7640
- "description": "Whether this folder is a favorite folder."
7681
+ "max_manifest_version": 2,
7682
+ "description": "Deprecated. This information is now available in :ref:`folders.MailFolder`."
7683
+ },
7684
+ "lastUsed": {
7685
+ "$ref": "extensionTypes.Date",
7686
+ "optional": true,
7687
+ "description": "Date the folder was last used (precision: seconds)."
7688
+ },
7689
+ "quota": {
7690
+ "type": "array",
7691
+ "items": {
7692
+ "$ref": "MailFolderQuota"
7693
+ },
7694
+ "optional": true,
7695
+ "description": "Quota information, if available."
7696
+ },
7697
+ "newMessageCount": {
7698
+ "type": "integer",
7699
+ "optional": true,
7700
+ "description": "Number of new messages in this folder."
7641
7701
  },
7642
7702
  "totalMessageCount": {
7643
7703
  "type": "integer",
@@ -7652,9 +7712,41 @@
7652
7712
  }
7653
7713
  },
7654
7714
  {
7655
- "id": "MailFolderType",
7715
+ "id": "MailFolderCapabilities",
7716
+ "type": "object",
7717
+ "description": "An object containing capability information about a folder.",
7718
+ "properties": {
7719
+ "canAddMessages": {
7720
+ "type": "boolean",
7721
+ "optional": true,
7722
+ "description": "Whether this folder supports adding new messages."
7723
+ },
7724
+ "canAddSubfolders": {
7725
+ "type": "boolean",
7726
+ "optional": true,
7727
+ "description": "Whether this folder supports adding new subfolders."
7728
+ },
7729
+ "canBeDeleted": {
7730
+ "type": "boolean",
7731
+ "optional": true,
7732
+ "description": "Whether this folder can be deleted."
7733
+ },
7734
+ "canBeRenamed": {
7735
+ "type": "boolean",
7736
+ "optional": true,
7737
+ "description": "Whether this folder can be renamed."
7738
+ },
7739
+ "canDeleteMessages": {
7740
+ "type": "boolean",
7741
+ "optional": true,
7742
+ "description": "Whether this folder supports deleting messages."
7743
+ }
7744
+ }
7745
+ },
7746
+ {
7747
+ "id": "MailFolderSpecialUse",
7656
7748
  "type": "string",
7657
- "description": "The type of folder",
7749
+ "description": "Supported values for the special use of a folder.",
7658
7750
  "enum": [
7659
7751
  "inbox",
7660
7752
  "drafts",
@@ -7665,32 +7757,229 @@
7665
7757
  "junk",
7666
7758
  "outbox"
7667
7759
  ]
7760
+ },
7761
+ {
7762
+ "id": "MailFolderQuota",
7763
+ "type": "object",
7764
+ "description": "An object containing quota information.",
7765
+ "properties": {
7766
+ "type": {
7767
+ "type": "string",
7768
+ "enum": [
7769
+ "STORAGE",
7770
+ "MESSAGE"
7771
+ ],
7772
+ "description": "The type of the quota as defined by RFC2087. A <value>STORAGE</value> quota is constraining the available storage in bytes, a <value>MESSAGE</value> quota is constraining the number of storable messages."
7773
+ },
7774
+ "limit": {
7775
+ "type": "integer",
7776
+ "description": "The maximum available quota."
7777
+ },
7778
+ "used": {
7779
+ "type": "integer",
7780
+ "description": "The currently used quota."
7781
+ },
7782
+ "unused": {
7783
+ "type": "integer",
7784
+ "description": "The currently unused quota."
7785
+ }
7786
+ }
7787
+ },
7788
+ {
7789
+ "id": "QueryRange",
7790
+ "type": "object",
7791
+ "description": "An object defining a range.",
7792
+ "properties": {
7793
+ "min": {
7794
+ "type": "integer",
7795
+ "optional": true,
7796
+ "description": "The minimum value required to match the query."
7797
+ },
7798
+ "max": {
7799
+ "type": "integer",
7800
+ "optional": true,
7801
+ "description": "The maximum value required to match the query."
7802
+ }
7803
+ }
7804
+ },
7805
+ {
7806
+ "id": "RegularExpression",
7807
+ "type": "object",
7808
+ "properties": {
7809
+ "regexp": {
7810
+ "type": "string",
7811
+ "description": "A regular expression, for example <value>^Projects \\d{4}$</value>."
7812
+ },
7813
+ "flags": {
7814
+ "type": "string",
7815
+ "pattern": "^(i|u|v|iu|iv|ui|vi)$",
7816
+ "description": "Supported RegExp flags: <value>i</value> = case insensitive, and/or one of <value>u</value> = unicode support or <value>v</value> = extended unicode support",
7817
+ "optional": true
7818
+ }
7819
+ }
7668
7820
  }
7669
7821
  ],
7670
7822
  "functions": [
7671
7823
  {
7672
- "name": "create",
7824
+ "name": "query",
7673
7825
  "type": "function",
7674
- "permissions": [
7675
- "accountsFolders"
7676
- ],
7677
- "description": "Creates a new subfolder in the specified folder or at the root of the specified account.",
7826
+ "description": "Gets folders that match the specified properties, or all folders if no properties are specified.",
7678
7827
  "async": "callback",
7679
7828
  "parameters": [
7680
7829
  {
7681
- "name": "parent",
7682
- "choices": [
7683
- {
7684
- "$ref": "folders.MailFolder"
7830
+ "type": "object",
7831
+ "name": "queryInfo",
7832
+ "optional": true,
7833
+ "default": {},
7834
+ "properties": {
7835
+ "accountId": {
7836
+ "$ref": "accounts.MailAccountId",
7837
+ "description": "Limits the search to folders of the account with the specified id.",
7838
+ "optional": true
7685
7839
  },
7686
- {
7687
- "$ref": "accounts.MailAccount"
7840
+ "canAddMessages": {
7841
+ "type": "boolean",
7842
+ "optional": true,
7843
+ "description": "Whether the folder supports adding new messages, or not."
7844
+ },
7845
+ "canAddSubfolders": {
7846
+ "type": "boolean",
7847
+ "optional": true,
7848
+ "description": "Whether the folder supports adding new subfolders, or not."
7849
+ },
7850
+ "canBeDeleted": {
7851
+ "type": "boolean",
7852
+ "optional": true,
7853
+ "description": "Whether the folder can be deleted, or not."
7854
+ },
7855
+ "canBeRenamed": {
7856
+ "type": "boolean",
7857
+ "optional": true,
7858
+ "description": "Whether the folder can be renamed, or not."
7859
+ },
7860
+ "canDeleteMessages": {
7861
+ "type": "boolean",
7862
+ "optional": true,
7863
+ "description": "Whether the folder supports deleting messages, or not."
7864
+ },
7865
+ "folderId": {
7866
+ "$ref": "folders.MailFolderId",
7867
+ "description": "Limits the search to the folder with the specified id.",
7868
+ "optional": true
7869
+ },
7870
+ "hasMessages": {
7871
+ "choices": [
7872
+ {
7873
+ "type": "boolean"
7874
+ },
7875
+ {
7876
+ "$ref": "QueryRange"
7877
+ }
7878
+ ],
7879
+ "optional": true,
7880
+ "description": "Whether the folder (excluding subfolders) contains messages, or not. Supports to specify a :ref:`folders.QueryRange` (min/max) instead of a simple boolean value (none/some)."
7881
+ },
7882
+ "hasUnreadMessages": {
7883
+ "choices": [
7884
+ {
7885
+ "type": "boolean"
7886
+ },
7887
+ {
7888
+ "$ref": "QueryRange"
7889
+ }
7890
+ ],
7891
+ "optional": true,
7892
+ "description": "Whether the folder (excluding subfolders) contains unread messages, or not. Supports to specify a :ref:`folders.QueryRange` (min/max) instead of a simple boolean value (none/some)."
7893
+ },
7894
+ "hasNewMessages": {
7895
+ "choices": [
7896
+ {
7897
+ "type": "boolean"
7898
+ },
7899
+ {
7900
+ "$ref": "QueryRange"
7901
+ }
7902
+ ],
7903
+ "optional": true,
7904
+ "description": "Whether the folder (excluding subfolders) contains new messages, or not. Supports to specify a :ref:`folders.QueryRange` (min/max) instead of a simple boolean value (none/some)."
7905
+ },
7906
+ "hasSubFolders": {
7907
+ "choices": [
7908
+ {
7909
+ "type": "boolean"
7910
+ },
7911
+ {
7912
+ "$ref": "QueryRange"
7913
+ }
7914
+ ],
7915
+ "optional": true,
7916
+ "description": "Whether the folder has subfolders, or not. Supports to specify a :ref:`folders.QueryRange` (min/max) instead of a simple boolean value (none/some)."
7917
+ },
7918
+ "isFavorite": {
7919
+ "type": "boolean",
7920
+ "optional": true,
7921
+ "description": "Whether the folder is a favorite folder, or not."
7922
+ },
7923
+ "isVirtual": {
7924
+ "type": "boolean",
7925
+ "optional": true,
7926
+ "description": "Whether this folder is a virtual search folder, or not."
7927
+ },
7928
+ "isRoot": {
7929
+ "type": "boolean",
7930
+ "optional": true,
7931
+ "description": "Whether the folder is a root folder, or not."
7932
+ },
7933
+ "mostRecent": {
7934
+ "type": "boolean",
7935
+ "optional": true,
7936
+ "description": "Whether the folder (excluding subfolders) has been used within the last month. The returned folders will be sorted by their recentness and limited to the most recent ones, which is controlled by the <value>mail.folder_widget.max_recent</value> preference. A value of <value>false</value> is ignored."
7937
+ },
7938
+ "name": {
7939
+ "choices": [
7940
+ {
7941
+ "$ref": "RegularExpression"
7942
+ },
7943
+ {
7944
+ "type": "string"
7945
+ }
7946
+ ],
7947
+ "optional": true,
7948
+ "description": "Return only folders whose name is matched by the provided string or regular expression."
7949
+ },
7950
+ "path": {
7951
+ "choices": [
7952
+ {
7953
+ "$ref": "RegularExpression"
7954
+ },
7955
+ {
7956
+ "type": "string"
7957
+ }
7958
+ ],
7959
+ "optional": true,
7960
+ "description": "Return only folders whose path is matched by the provided string or regular expression."
7961
+ },
7962
+ "recent": {
7963
+ "type": "boolean",
7964
+ "optional": true,
7965
+ "description": "Whether the folder (excluding subfolders) has been used within the last month, or not. The returned folders will be sorted by their recentness. Ignored if <value>mostRecent</value> is specified."
7966
+ },
7967
+ "specialUse": {
7968
+ "type": "array",
7969
+ "items": {
7970
+ "$ref": "folders.MailFolderSpecialUse"
7971
+ },
7972
+ "minItems": 1,
7973
+ "optional": true,
7974
+ "description": "Match only folders with the specified special use (folders have to match all specified uses)."
7975
+ },
7976
+ "type": {
7977
+ "max_manifest_version": 2,
7978
+ "$ref": "folders.MailFolderSpecialUse",
7979
+ "optional": true,
7980
+ "description": "Deprecated. Match only folders with the specified special use."
7688
7981
  }
7689
- ]
7690
- },
7691
- {
7692
- "name": "childName",
7693
- "type": "string"
7982
+ }
7694
7983
  },
7695
7984
  {
7696
7985
  "type": "function",
@@ -7698,14 +7987,89 @@
7698
7987
  "optional": true,
7699
7988
  "parameters": [
7700
7989
  {
7701
- "$ref": "folders.MailFolder"
7990
+ "type": "array",
7991
+ "items": {
7992
+ "$ref": "folders.MailFolder"
7993
+ }
7702
7994
  }
7703
7995
  ]
7704
7996
  }
7705
7997
  ]
7706
7998
  },
7707
7999
  {
7708
- "name": "rename",
8000
+ "name": "get",
8001
+ "type": "function",
8002
+ "description": "Returns the specified folder.",
8003
+ "async": "callback",
8004
+ "parameters": [
8005
+ {
8006
+ "name": "folder",
8007
+ "$ref": "folders.MailFolderId"
8008
+ },
8009
+ {
8010
+ "name": "includeSubFolders",
8011
+ "description": "Specifies whether the returned :ref:`folders.MailFolder` object should include all its nested subfolders . Defaults to <value>true</value>.",
8012
+ "optional": true,
8013
+ "default": true,
8014
+ "type": "boolean"
8015
+ },
8016
+ {
8017
+ "type": "function",
8018
+ "name": "callback",
8019
+ "optional": true,
8020
+ "parameters": [
8021
+ {
8022
+ "$ref": "folders.MailFolder"
8023
+ }
8024
+ ]
8025
+ }
8026
+ ]
8027
+ },
8028
+ {
8029
+ "name": "create",
8030
+ "type": "function",
8031
+ "permissions": [
8032
+ "accountsFolders"
8033
+ ],
8034
+ "description": "Creates a new subfolder in the specified folder or at the root of the specified account.",
8035
+ "async": "callback",
8036
+ "parameters": [
8037
+ {
8038
+ "name": "destination",
8039
+ "choices": [
8040
+ {
8041
+ "$ref": "folders.MailFolderId"
8042
+ },
8043
+ {
8044
+ "max_manifest_version": 2,
8045
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.create() requires to specify a MailFolderId instead of a full MailFolder object.",
8046
+ "$ref": "folders.MailFolder"
8047
+ },
8048
+ {
8049
+ "max_manifest_version": 2,
8050
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.create() requires to specify the MailFolderId of the account's rootFolder, instead of a full MailAccount object.",
8051
+ "$ref": "accounts.MailAccount"
8052
+ }
8053
+ ]
8054
+ },
8055
+ {
8056
+ "name": "childName",
8057
+ "type": "string"
8058
+ },
8059
+ {
8060
+ "type": "function",
8061
+ "name": "callback",
8062
+ "optional": true,
8063
+ "parameters": [
8064
+ {
8065
+ "$ref": "folders.MailFolder"
8066
+ }
8067
+ ]
8068
+ }
8069
+ ]
8070
+ },
8071
+ {
8072
+ "name": "rename",
7709
8073
  "type": "function",
7710
8074
  "permissions": [
7711
8075
  "accountsFolders"
@@ -7715,7 +8079,16 @@
7715
8079
  "parameters": [
7716
8080
  {
7717
8081
  "name": "folder",
7718
- "$ref": "folders.MailFolder"
8082
+ "choices": [
8083
+ {
8084
+ "$ref": "folders.MailFolderId"
8085
+ },
8086
+ {
8087
+ "max_manifest_version": 2,
8088
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.rename() requires to specify a MailFolderId instead of a full MailFolder object.",
8089
+ "$ref": "folders.MailFolder"
8090
+ }
8091
+ ]
7719
8092
  },
7720
8093
  {
7721
8094
  "name": "newName",
@@ -7739,20 +8112,36 @@
7739
8112
  "permissions": [
7740
8113
  "accountsFolders"
7741
8114
  ],
7742
- "description": "Moves the given ``sourceFolder`` into the given ``destination``. Throws if the destination already contains a folder with the name of the source folder.",
8115
+ "description": "Moves the given source folder into the given destination folder. Throws if the destination already contains a folder with the name of the source folder.",
7743
8116
  "async": "callback",
7744
8117
  "parameters": [
7745
8118
  {
7746
- "name": "sourceFolder",
7747
- "$ref": "folders.MailFolder"
8119
+ "name": "source",
8120
+ "choices": [
8121
+ {
8122
+ "$ref": "folders.MailFolderId"
8123
+ },
8124
+ {
8125
+ "max_manifest_version": 2,
8126
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.move() requires to specify a MailFolderId for its source parameter, instead of a full MailFolder object.",
8127
+ "$ref": "folders.MailFolder"
8128
+ }
8129
+ ]
7748
8130
  },
7749
8131
  {
7750
8132
  "name": "destination",
7751
8133
  "choices": [
7752
8134
  {
8135
+ "$ref": "folders.MailFolderId"
8136
+ },
8137
+ {
8138
+ "max_manifest_version": 2,
8139
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.move() requires to specify a MailFolderId for its destination parameter, instead of a full MailFolder object.",
7753
8140
  "$ref": "folders.MailFolder"
7754
8141
  },
7755
8142
  {
8143
+ "max_manifest_version": 2,
8144
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.move() requires to specify the MailFolderId of the account's rootFolder for its destination parameter, instead of a full MailAccount object.",
7756
8145
  "$ref": "accounts.MailAccount"
7757
8146
  }
7758
8147
  ]
@@ -7775,20 +8164,36 @@
7775
8164
  "permissions": [
7776
8165
  "accountsFolders"
7777
8166
  ],
7778
- "description": "Copies the given ``sourceFolder`` into the given ``destination``. Throws if the destination already contains a folder with the name of the source folder.",
8167
+ "description": "Copies the given source folder into the given destination folder. Throws if the destination already contains a folder with the name of the source folder.",
7779
8168
  "async": "callback",
7780
8169
  "parameters": [
7781
8170
  {
7782
- "name": "sourceFolder",
7783
- "$ref": "folders.MailFolder"
8171
+ "name": "source",
8172
+ "choices": [
8173
+ {
8174
+ "$ref": "folders.MailFolderId"
8175
+ },
8176
+ {
8177
+ "max_manifest_version": 2,
8178
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.copy() requires to specify a MailFolderId for its source parameter, instead of a full MailFolder object.",
8179
+ "$ref": "folders.MailFolder"
8180
+ }
8181
+ ]
7784
8182
  },
7785
8183
  {
7786
8184
  "name": "destination",
7787
8185
  "choices": [
7788
8186
  {
8187
+ "$ref": "folders.MailFolderId"
8188
+ },
8189
+ {
8190
+ "max_manifest_version": 2,
8191
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.copy() requires to specify a MailFolderId for its destination parameter, instead of a full MailFolder object.",
7789
8192
  "$ref": "folders.MailFolder"
7790
8193
  },
7791
8194
  {
8195
+ "max_manifest_version": 2,
8196
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.copy() requires to specify the MailFolderId of the account's rootFolder for its destination parameter, instead of a full MailAccount object.",
7792
8197
  "$ref": "accounts.MailAccount"
7793
8198
  }
7794
8199
  ]
@@ -7817,19 +8222,73 @@
7817
8222
  "parameters": [
7818
8223
  {
7819
8224
  "name": "folder",
7820
- "$ref": "folders.MailFolder"
8225
+ "choices": [
8226
+ {
8227
+ "$ref": "folders.MailFolderId"
8228
+ },
8229
+ {
8230
+ "max_manifest_version": 2,
8231
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.delete() requires to specify a MailFolderId instead of a full MailFolder object.",
8232
+ "$ref": "folders.MailFolder"
8233
+ }
8234
+ ]
8235
+ }
8236
+ ]
8237
+ },
8238
+ {
8239
+ "name": "update",
8240
+ "permissions": [
8241
+ "accountsFolders"
8242
+ ],
8243
+ "type": "function",
8244
+ "description": "Updates properties of a folder.",
8245
+ "async": true,
8246
+ "parameters": [
8247
+ {
8248
+ "name": "folder",
8249
+ "choices": [
8250
+ {
8251
+ "$ref": "folders.MailFolderId"
8252
+ },
8253
+ {
8254
+ "max_manifest_version": 2,
8255
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.update() requires to specify a MailFolderId instead of a full MailFolder object.",
8256
+ "$ref": "folders.MailFolder"
8257
+ }
8258
+ ]
8259
+ },
8260
+ {
8261
+ "name": "updateProperties",
8262
+ "type": "object",
8263
+ "description": "The properties to update.",
8264
+ "properties": {
8265
+ "isFavorite": {
8266
+ "type": "boolean",
8267
+ "optional": true,
8268
+ "description": "Sets or clears the favorite status."
8269
+ }
8270
+ }
7821
8271
  }
7822
8272
  ]
7823
8273
  },
7824
8274
  {
7825
8275
  "name": "getFolderInfo",
7826
8276
  "type": "function",
7827
- "description": "Get additional information about a mail folder.",
8277
+ "description": "Get additional information about a folder.",
7828
8278
  "async": "callback",
7829
8279
  "parameters": [
7830
8280
  {
7831
8281
  "name": "folder",
7832
- "$ref": "folders.MailFolder"
8282
+ "choices": [
8283
+ {
8284
+ "$ref": "folders.MailFolderId"
8285
+ },
8286
+ {
8287
+ "max_manifest_version": 2,
8288
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.getFolderInfo() requires to specify a MailFolderId instead of a full MailFolder object.",
8289
+ "$ref": "folders.MailFolder"
8290
+ }
8291
+ ]
7833
8292
  },
7834
8293
  {
7835
8294
  "type": "function",
@@ -7843,6 +8302,37 @@
7843
8302
  }
7844
8303
  ]
7845
8304
  },
8305
+ {
8306
+ "name": "getFolderCapabilities",
8307
+ "type": "function",
8308
+ "description": "Get capability information about a folder.",
8309
+ "async": "callback",
8310
+ "parameters": [
8311
+ {
8312
+ "name": "folder",
8313
+ "choices": [
8314
+ {
8315
+ "$ref": "folders.MailFolderId"
8316
+ },
8317
+ {
8318
+ "max_manifest_version": 2,
8319
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.getFolderCapabilities() requires to specify a MailFolderId instead of a full MailFolder object.",
8320
+ "$ref": "folders.MailFolder"
8321
+ }
8322
+ ]
8323
+ },
8324
+ {
8325
+ "type": "function",
8326
+ "name": "callback",
8327
+ "optional": true,
8328
+ "parameters": [
8329
+ {
8330
+ "$ref": "folders.MailFolderCapabilities"
8331
+ }
8332
+ ]
8333
+ }
8334
+ ]
8335
+ },
7846
8336
  {
7847
8337
  "name": "getParentFolders",
7848
8338
  "type": "function",
@@ -7851,7 +8341,16 @@
7851
8341
  "parameters": [
7852
8342
  {
7853
8343
  "name": "folder",
7854
- "$ref": "folders.MailFolder"
8344
+ "choices": [
8345
+ {
8346
+ "$ref": "folders.MailFolderId"
8347
+ },
8348
+ {
8349
+ "max_manifest_version": 2,
8350
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.getParentFolders() requires to specify a MailFolderId instead of a full MailFolder object.",
8351
+ "$ref": "folders.MailFolder"
8352
+ }
8353
+ ]
7855
8354
  },
7856
8355
  {
7857
8356
  "name": "includeSubFolders",
@@ -7882,12 +8381,19 @@
7882
8381
  "async": "callback",
7883
8382
  "parameters": [
7884
8383
  {
7885
- "name": "folderOrAccount",
8384
+ "name": "folder",
7886
8385
  "choices": [
7887
8386
  {
8387
+ "$ref": "folders.MailFolderId"
8388
+ },
8389
+ {
8390
+ "max_manifest_version": 2,
8391
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.getSubFolders() requires to specify a MailFolderId instead of a full MailFolder object.",
7888
8392
  "$ref": "folders.MailFolder"
7889
8393
  },
7890
8394
  {
8395
+ "max_manifest_version": 2,
8396
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.getSubFolders() requires to specify the MailFolderId of the account's rootFolder, instead of a full MailAccount object.",
7891
8397
  "$ref": "accounts.MailAccount"
7892
8398
  }
7893
8399
  ]
@@ -7913,6 +8419,30 @@
7913
8419
  ]
7914
8420
  }
7915
8421
  ]
8422
+ },
8423
+ {
8424
+ "name": "markAsRead",
8425
+ "permissions": [
8426
+ "accountsFolders"
8427
+ ],
8428
+ "type": "function",
8429
+ "description": "Marks all messages in a folder as read.",
8430
+ "async": false,
8431
+ "parameters": [
8432
+ {
8433
+ "name": "folder",
8434
+ "choices": [
8435
+ {
8436
+ "$ref": "folders.MailFolderId"
8437
+ },
8438
+ {
8439
+ "max_manifest_version": 2,
8440
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.markAsRead() requires to specify a MailFolderId instead of a full MailFolder object.",
8441
+ "$ref": "folders.MailFolder"
8442
+ }
8443
+ ]
8444
+ }
8445
+ ]
7916
8446
  }
7917
8447
  ],
7918
8448
  "events": [
@@ -7983,6 +8513,21 @@
7983
8513
  }
7984
8514
  ]
7985
8515
  },
8516
+ {
8517
+ "name": "onUpdated",
8518
+ "type": "function",
8519
+ "description": "Fired when properties of a folder have changed (<value>specialUse</value> and <value>isFavorite</value>).",
8520
+ "parameters": [
8521
+ {
8522
+ "name": "originalFolder",
8523
+ "$ref": "folders.MailFolder"
8524
+ },
8525
+ {
8526
+ "name": "updatedFolder",
8527
+ "$ref": "folders.MailFolder"
8528
+ }
8529
+ ]
8530
+ },
7986
8531
  {
7987
8532
  "name": "onFolderInfoChanged",
7988
8533
  "type": "function",
@@ -8029,7 +8574,7 @@
8029
8574
  "type": "object",
8030
8575
  "properties": {
8031
8576
  "accountId": {
8032
- "type": "string",
8577
+ "$ref": "accounts.MailAccountId",
8033
8578
  "optional": true,
8034
8579
  "description": "The id of the :ref:`accounts.MailAccount` this identity belongs to. The ``accountId`` property is read-only."
8035
8580
  },
@@ -8090,7 +8635,7 @@
8090
8635
  "parameters": [
8091
8636
  {
8092
8637
  "name": "accountId",
8093
- "type": "string",
8638
+ "$ref": "accounts.MailAccountId",
8094
8639
  "optional": true
8095
8640
  },
8096
8641
  {
@@ -8142,7 +8687,7 @@
8142
8687
  "parameters": [
8143
8688
  {
8144
8689
  "name": "accountId",
8145
- "type": "string"
8690
+ "$ref": "accounts.MailAccountId"
8146
8691
  },
8147
8692
  {
8148
8693
  "name": "details",
@@ -8212,7 +8757,7 @@
8212
8757
  "parameters": [
8213
8758
  {
8214
8759
  "name": "accountId",
8215
- "type": "string"
8760
+ "$ref": "accounts.MailAccountId"
8216
8761
  },
8217
8762
  {
8218
8763
  "type": "function",
@@ -8234,7 +8779,7 @@
8234
8779
  "parameters": [
8235
8780
  {
8236
8781
  "name": "accountId",
8237
- "type": "string"
8782
+ "$ref": "accounts.MailAccountId"
8238
8783
  },
8239
8784
  {
8240
8785
  "name": "identityId",
@@ -8374,6 +8919,92 @@
8374
8919
  }
8375
8920
  }
8376
8921
  },
8922
+ {
8923
+ "id": "MailTabProperties",
8924
+ "type": "object",
8925
+ "properties": {
8926
+ "sortType": {
8927
+ "type": "string",
8928
+ "description": "Sorts the list of messages. ``sortOrder`` must also be given.",
8929
+ "optional": true,
8930
+ "enum": [
8931
+ "none",
8932
+ "date",
8933
+ "subject",
8934
+ "author",
8935
+ "id",
8936
+ "thread",
8937
+ "priority",
8938
+ "status",
8939
+ "size",
8940
+ "flagged",
8941
+ "unread",
8942
+ "recipient",
8943
+ "location",
8944
+ "tags",
8945
+ "junkStatus",
8946
+ "attachments",
8947
+ "account",
8948
+ "custom",
8949
+ "received",
8950
+ "correspondent"
8951
+ ]
8952
+ },
8953
+ "sortOrder": {
8954
+ "type": "string",
8955
+ "description": "Sorts the list of messages. ``sortType`` must also be given.",
8956
+ "optional": true,
8957
+ "enum": [
8958
+ "none",
8959
+ "ascending",
8960
+ "descending"
8961
+ ]
8962
+ },
8963
+ "viewType": {
8964
+ "type": "string",
8965
+ "optional": true,
8966
+ "enum": [
8967
+ "ungrouped",
8968
+ "groupedByThread",
8969
+ "groupedBySortType"
8970
+ ]
8971
+ },
8972
+ "layout": {
8973
+ "type": "string",
8974
+ "description": "Sets the arrangement of the folder pane, message list pane, and message display pane. Note that setting this applies it to all mail tabs.",
8975
+ "optional": true,
8976
+ "enum": [
8977
+ "standard",
8978
+ "wide",
8979
+ "vertical"
8980
+ ]
8981
+ },
8982
+ "folderPaneVisible": {
8983
+ "type": "boolean",
8984
+ "description": "Shows or hides the folder pane.",
8985
+ "optional": true
8986
+ },
8987
+ "messagePaneVisible": {
8988
+ "type": "boolean",
8989
+ "description": "Shows or hides the message display pane.",
8990
+ "optional": true
8991
+ },
8992
+ "displayedFolder": {
8993
+ "choices": [
8994
+ {
8995
+ "$ref": "folders.MailFolderId"
8996
+ },
8997
+ {
8998
+ "max_manifest_version": 2,
8999
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: MailTabProperties.displayedFolder needs to be specified as a MailFolderId instead of as a full MailFolder object.",
9000
+ "$ref": "folders.MailFolder"
9001
+ }
9002
+ ],
9003
+ "description": "Sets the folder displayed in the mail tab. Requires the <permission>accountsRead</permission> permission. The previous message selection in the given folder will be restored, if any. This property is ignored, if <value>selectedMessages</value> is specified.",
9004
+ "optional": true
9005
+ }
9006
+ }
9007
+ },
8377
9008
  {
8378
9009
  "id": "QuickFilterTextDetail",
8379
9010
  "type": "object",
@@ -8498,11 +9129,38 @@
8498
9129
  }
8499
9130
  ]
8500
9131
  },
9132
+ {
9133
+ "name": "create",
9134
+ "type": "function",
9135
+ "description": "Creates a new mail tab. Standard tab properties can be adjusted via :ref:`tabs.update` after the mail tab has been created. **Note:** A new mail window can be created via :ref:`windows.create`.",
9136
+ "async": "callback",
9137
+ "parameters": [
9138
+ {
9139
+ "name": "createProperties",
9140
+ "$ref": "MailTabProperties",
9141
+ "optional": true,
9142
+ "default": {}
9143
+ },
9144
+ {
9145
+ "type": "function",
9146
+ "name": "callback",
9147
+ "optional": true,
9148
+ "parameters": [
9149
+ {
9150
+ "name": "mailTab",
9151
+ "$ref": "MailTab",
9152
+ "optional": true,
9153
+ "description": "Details about the created mail tab. Will contain the ID of the new tab."
9154
+ }
9155
+ ]
9156
+ }
9157
+ ]
9158
+ },
8501
9159
  {
8502
9160
  "name": "update",
8503
9161
  "type": "function",
8504
9162
  "description": "Modifies the properties of a mail tab. Properties that are not specified in ``updateProperties`` are not modified.",
8505
- "async": true,
9163
+ "async": "callback",
8506
9164
  "parameters": [
8507
9165
  {
8508
9166
  "name": "tabId",
@@ -8513,80 +9171,48 @@
8513
9171
  },
8514
9172
  {
8515
9173
  "name": "updateProperties",
8516
- "type": "object",
8517
- "properties": {
8518
- "displayedFolder": {
8519
- "$ref": "folders.MailFolder",
8520
- "description": "Sets the folder displayed in the tab. The extension must have the <permission>accountsRead</permission> permission to do this. The previous message selection in the given folder will be restored.",
8521
- "optional": true
8522
- },
8523
- "sortType": {
8524
- "type": "string",
8525
- "description": "Sorts the list of messages. ``sortOrder`` must also be given.",
8526
- "optional": true,
8527
- "enum": [
8528
- "none",
8529
- "date",
8530
- "subject",
8531
- "author",
8532
- "id",
8533
- "thread",
8534
- "priority",
8535
- "status",
8536
- "size",
8537
- "flagged",
8538
- "unread",
8539
- "recipient",
8540
- "location",
8541
- "tags",
8542
- "junkStatus",
8543
- "attachments",
8544
- "account",
8545
- "custom",
8546
- "received",
8547
- "correspondent"
8548
- ]
8549
- },
8550
- "sortOrder": {
8551
- "type": "string",
8552
- "description": "Sorts the list of messages. ``sortType`` must also be given.",
8553
- "optional": true,
8554
- "enum": [
8555
- "none",
8556
- "ascending",
8557
- "descending"
8558
- ]
8559
- },
8560
- "viewType": {
8561
- "type": "string",
8562
- "optional": true,
8563
- "enum": [
8564
- "ungrouped",
8565
- "groupedByThread",
8566
- "groupedBySortType"
8567
- ]
8568
- },
8569
- "layout": {
8570
- "type": "string",
8571
- "description": "Sets the arrangement of the folder pane, message list pane, and message display pane. Note that setting this applies it to all mail tabs.",
9174
+ "$ref": "MailTabProperties"
9175
+ },
9176
+ {
9177
+ "type": "function",
9178
+ "name": "callback",
9179
+ "optional": true,
9180
+ "parameters": [
9181
+ {
9182
+ "name": "mailTab",
9183
+ "$ref": "MailTab",
8572
9184
  "optional": true,
8573
- "enum": [
8574
- "standard",
8575
- "wide",
8576
- "vertical"
8577
- ]
8578
- },
8579
- "folderPaneVisible": {
8580
- "type": "boolean",
8581
- "description": "Shows or hides the folder pane.",
8582
- "optional": true
8583
- },
8584
- "messagePaneVisible": {
8585
- "type": "boolean",
8586
- "description": "Shows or hides the message display pane.",
8587
- "optional": true
9185
+ "description": "Details about the updated mail tab."
8588
9186
  }
8589
- }
9187
+ ]
9188
+ }
9189
+ ]
9190
+ },
9191
+ {
9192
+ "name": "getListedMessages",
9193
+ "type": "function",
9194
+ "description": "Lists the messages in the current view, honoring sort order and filters.",
9195
+ "permissions": [
9196
+ "messagesRead"
9197
+ ],
9198
+ "async": "callback",
9199
+ "parameters": [
9200
+ {
9201
+ "name": "tabId",
9202
+ "type": "integer",
9203
+ "description": "Defaults to the active tab of the current window.",
9204
+ "optional": true,
9205
+ "minimum": 1
9206
+ },
9207
+ {
9208
+ "type": "function",
9209
+ "name": "callback",
9210
+ "optional": true,
9211
+ "parameters": [
9212
+ {
9213
+ "$ref": "messages.MessageList"
9214
+ }
9215
+ ]
8590
9216
  }
8591
9217
  ]
8592
9218
  },
@@ -8638,7 +9264,7 @@
8638
9264
  {
8639
9265
  "name": "messageIds",
8640
9266
  "type": "array",
8641
- "description": "The IDs of the messages, which should be selected. The mailTab will switch to the folder of the selected messages. Throws if they belong to different folders. Array can be empty to deselect any currently selected message.",
9267
+ "description": "The IDs of the messages, which should be selected. The mail tab will switch to the folder of the selected messages. Throws if they belong to different folders. Array can be empty to deselect any currently selected message.",
8642
9268
  "items": {
8643
9269
  "type": "integer"
8644
9270
  }
@@ -8689,7 +9315,7 @@
8689
9315
  "type": "boolean"
8690
9316
  },
8691
9317
  {
8692
- "$ref": "messages.TagsDetail"
9318
+ "$ref": "messages.tags.TagsDetail"
8693
9319
  }
8694
9320
  ],
8695
9321
  "description": "Shows only messages with tags on them."
@@ -10582,7 +11208,7 @@
10582
11208
  "items": {
10583
11209
  "type": "string"
10584
11210
  },
10585
- "description": "Tags associated with this message. For a list of available tags, call the listTags method."
11211
+ "description": "Tags associated with this message. For a list of available tags, use :ref:`messages.tags.list`."
10586
11212
  }
10587
11213
  }
10588
11214
  },
@@ -10688,52 +11314,6 @@
10688
11314
  }
10689
11315
  }
10690
11316
  },
10691
- {
10692
- "id": "MessageTag",
10693
- "type": "object",
10694
- "properties": {
10695
- "key": {
10696
- "type": "string",
10697
- "description": "Unique tag identifier."
10698
- },
10699
- "tag": {
10700
- "type": "string",
10701
- "description": "Human-readable tag name."
10702
- },
10703
- "color": {
10704
- "type": "string",
10705
- "description": "Tag color."
10706
- },
10707
- "ordinal": {
10708
- "type": "string",
10709
- "description": "Custom sort string (usually empty)."
10710
- }
10711
- }
10712
- },
10713
- {
10714
- "id": "TagsDetail",
10715
- "type": "object",
10716
- "description": "Used for filtering messages by tag in various methods. Note that functions using this type may have a partial implementation.",
10717
- "properties": {
10718
- "tags": {
10719
- "type": "object",
10720
- "description": "A <em>dictionary object</em> with one or more filter condition as <em>key-value</em> pairs, the <em>key</em> being the tag to filter on, and the <em>value</em> being a boolean expression, requesting whether a message must include (<value>true</value>) or exclude (<value>false</value>) the tag. For a list of available tags, call the :ref:`messages.listTags` method.",
10721
- "patternProperties": {
10722
- ".*": {
10723
- "type": "boolean"
10724
- }
10725
- }
10726
- },
10727
- "mode": {
10728
- "type": "string",
10729
- "description": "Whether all of the tag filters must apply, or any of them.",
10730
- "enum": [
10731
- "all",
10732
- "any"
10733
- ]
10734
- }
10735
- }
10736
- },
10737
11317
  {
10738
11318
  "id": "MessageAttachment",
10739
11319
  "type": "object",
@@ -10753,12 +11333,29 @@
10753
11333
  },
10754
11334
  "size": {
10755
11335
  "type": "integer",
10756
- "description": "The size in bytes of this attachment."
11336
+ "description": "The size in bytes of this attachment."
11337
+ },
11338
+ "message": {
11339
+ "$ref": "messages.MessageHeader",
11340
+ "optional": true,
11341
+ "description": "A MessageHeader, if this attachment is a message."
11342
+ }
11343
+ }
11344
+ },
11345
+ {
11346
+ "id": "QueryRange",
11347
+ "type": "object",
11348
+ "description": "An object defining a range.",
11349
+ "properties": {
11350
+ "min": {
11351
+ "type": "integer",
11352
+ "optional": true,
11353
+ "description": "The minimum value required to match the query."
10757
11354
  },
10758
- "message": {
10759
- "$ref": "messages.MessageHeader",
11355
+ "max": {
11356
+ "type": "integer",
10760
11357
  "optional": true,
10761
- "description": "A MessageHeader, if this attachment is a message."
11358
+ "description": "The maximum value required to match the query."
10762
11359
  }
10763
11360
  }
10764
11361
  }
@@ -10845,6 +11442,14 @@
10845
11442
  "name": "messages",
10846
11443
  "$ref": "messages.MessageList"
10847
11444
  }
11445
+ ],
11446
+ "extraParameters": [
11447
+ {
11448
+ "name": "monitorAllFolders",
11449
+ "description": "Monitor all folders (including all special use folders as defined by :ref:`folders.MailFolderSpecialUse`) instead of just inbox folders and normal folders.",
11450
+ "type": "boolean",
11451
+ "optional": true
11452
+ }
10848
11453
  ]
10849
11454
  }
10850
11455
  ],
@@ -10860,7 +11465,16 @@
10860
11465
  "parameters": [
10861
11466
  {
10862
11467
  "name": "folder",
10863
- "$ref": "folders.MailFolder"
11468
+ "choices": [
11469
+ {
11470
+ "$ref": "folders.MailFolderId"
11471
+ },
11472
+ {
11473
+ "max_manifest_version": 2,
11474
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: messages.list() requires to specify a MailFolderId instead of a full MailFolder object.",
11475
+ "$ref": "folders.MailFolder"
11476
+ }
11477
+ ]
10864
11478
  },
10865
11479
  {
10866
11480
  "type": "function",
@@ -10911,7 +11525,7 @@
10911
11525
  {
10912
11526
  "name": "get",
10913
11527
  "type": "function",
10914
- "description": "Returns a specified message.",
11528
+ "description": "Returns the specified message.",
10915
11529
  "async": "callback",
10916
11530
  "parameters": [
10917
11531
  {
@@ -10933,7 +11547,7 @@
10933
11547
  {
10934
11548
  "name": "getFull",
10935
11549
  "type": "function",
10936
- "description": "Returns a specified message, including all headers and MIME parts. Throws if the message could not be read, for example due to network issues.",
11550
+ "description": "Returns the specified message, including all headers and MIME parts. Throws if the message could not be read, for example due to network issues.",
10937
11551
  "async": "callback",
10938
11552
  "parameters": [
10939
11553
  {
@@ -11100,10 +11714,22 @@
11100
11714
  "optional": true,
11101
11715
  "default": {},
11102
11716
  "properties": {
11717
+ "accountId": {
11718
+ "$ref": "accounts.MailAccountId",
11719
+ "description": "Limits the search to folders of the account with the specified id.",
11720
+ "optional": true
11721
+ },
11103
11722
  "attachment": {
11104
- "type": "boolean",
11723
+ "choices": [
11724
+ {
11725
+ "type": "boolean"
11726
+ },
11727
+ {
11728
+ "$ref": "QueryRange"
11729
+ }
11730
+ ],
11105
11731
  "optional": true,
11106
- "description": "If specified, returns only messages with or without attachments."
11732
+ "description": "Whether the message has attachments, or not. Supports to specify a :ref:`messages.QueryRange` (min/max) instead of a simple boolean value (none/some)."
11107
11733
  },
11108
11734
  "author": {
11109
11735
  "type": "string",
@@ -11120,8 +11746,15 @@
11120
11746
  "optional": true,
11121
11747
  "description": "Returns only flagged (or unflagged if false) messages."
11122
11748
  },
11749
+ "folderId": {
11750
+ "$ref": "folders.MailFolderId",
11751
+ "optional": true,
11752
+ "description": "Returns only messages from the folder with the specified id. The <permission>accountsRead</permission> permission is required."
11753
+ },
11123
11754
  "folder": {
11124
11755
  "$ref": "folders.MailFolder",
11756
+ "max_manifest_version": 2,
11757
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: messages.queryInfo.folder has been replaced by messages.queryInfo.folderId.",
11125
11758
  "optional": true,
11126
11759
  "description": "Returns only messages from the specified folder. The <permission>accountsRead</permission> permission is required."
11127
11760
  },
@@ -11148,20 +11781,25 @@
11148
11781
  "includeSubFolders": {
11149
11782
  "type": "boolean",
11150
11783
  "optional": true,
11151
- "description": "Search the folder specified by ``queryInfo.folder`` recursively."
11784
+ "description": "Search the specified folder recursively."
11152
11785
  },
11153
11786
  "recipients": {
11154
11787
  "type": "string",
11155
11788
  "optional": true,
11156
11789
  "description": "Returns only messages whose recipients match all specified addresses. The search value is a semicolon separated list of email addresses, names or combinations (e.g.: <value>Name <user@domain.org></value>). For a match, all specified addresses must equal a recipient's address completely and all specified names must match a recipient's name partially. All matches are done case-insensitive."
11157
11790
  },
11791
+ "size": {
11792
+ "$ref": "QueryRange",
11793
+ "optional": true,
11794
+ "description": "Returns only messages with a size in the specified byte range."
11795
+ },
11158
11796
  "subject": {
11159
11797
  "type": "string",
11160
11798
  "optional": true,
11161
- "description": "Returns only messages with this value matching the subject."
11799
+ "description": "Returns only messages whose subject contains the provided string."
11162
11800
  },
11163
11801
  "tags": {
11164
- "$ref": "TagsDetail",
11802
+ "$ref": "messages.tags.TagsDetail",
11165
11803
  "optional": true,
11166
11804
  "description": "Returns only messages with the specified tags. For a list of available tags, call the :ref:`messages.listTags` method."
11167
11805
  },
@@ -11175,11 +11813,33 @@
11175
11813
  "optional": true,
11176
11814
  "description": "Returns only messages with at least one recipient address matching any configured identity."
11177
11815
  },
11816
+ "junk": {
11817
+ "type": "boolean",
11818
+ "optional": true,
11819
+ "description": "Returns only messages whith the specified junk state."
11820
+ },
11821
+ "junkScore": {
11822
+ "$ref": "QueryRange",
11823
+ "optional": true,
11824
+ "description": "Returns only messages with a junk score in the specified range."
11825
+ },
11826
+ "new": {
11827
+ "type": "boolean",
11828
+ "optional": true,
11829
+ "description": "Returns only messages with the specified new state."
11830
+ },
11178
11831
  "unread": {
11179
11832
  "type": "boolean",
11180
11833
  "optional": true,
11834
+ "max_manifest_version": 2,
11181
11835
  "description": "Returns only unread (or read if false) messages."
11182
11836
  },
11837
+ "read": {
11838
+ "type": "boolean",
11839
+ "optional": true,
11840
+ "description": "Returns only messages with the specified read state.",
11841
+ "min_manifest_version": 3
11842
+ },
11183
11843
  "autoPaginationTimeout": {
11184
11844
  "type": "integer",
11185
11845
  "optional": true,
@@ -11254,7 +11914,16 @@
11254
11914
  },
11255
11915
  {
11256
11916
  "name": "destination",
11257
- "$ref": "folders.MailFolder",
11917
+ "choices": [
11918
+ {
11919
+ "$ref": "folders.MailFolderId"
11920
+ },
11921
+ {
11922
+ "max_manifest_version": 2,
11923
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: messages.move() requires to specify a MailFolderId instead of a full MailFolder object.",
11924
+ "$ref": "folders.MailFolder"
11925
+ }
11926
+ ],
11258
11927
  "description": "The folder to move the messages to."
11259
11928
  }
11260
11929
  ]
@@ -11280,7 +11949,16 @@
11280
11949
  },
11281
11950
  {
11282
11951
  "name": "destination",
11283
- "$ref": "folders.MailFolder",
11952
+ "choices": [
11953
+ {
11954
+ "$ref": "folders.MailFolderId"
11955
+ },
11956
+ {
11957
+ "max_manifest_version": 2,
11958
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: messages.copy() requires to specify a MailFolderId instead of a full MailFolder object.",
11959
+ "$ref": "folders.MailFolder"
11960
+ }
11961
+ ],
11284
11962
  "description": "The folder to copy the messages to."
11285
11963
  }
11286
11964
  ]
@@ -11329,7 +12007,16 @@
11329
12007
  },
11330
12008
  {
11331
12009
  "name": "destination",
11332
- "$ref": "folders.MailFolder",
12010
+ "choices": [
12011
+ {
12012
+ "$ref": "folders.MailFolderId"
12013
+ },
12014
+ {
12015
+ "max_manifest_version": 2,
12016
+ "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: messages.import() requires to specify a MailFolderId instead of a full MailFolder object.",
12017
+ "$ref": "folders.MailFolder"
12018
+ }
12019
+ ],
11333
12020
  "description": "The folder to import the messages into."
11334
12021
  },
11335
12022
  {
@@ -11374,6 +12061,8 @@
11374
12061
  "type": "function",
11375
12062
  "description": "Returns a list of tags that can be set on messages, and their human-friendly name, colour, and sort order.",
11376
12063
  "async": "callback",
12064
+ "max_manifest_version": 2,
12065
+ "deprecated": "Deprecated since Thunderbird 121 and removed in Manifest V3: messages.listTags() is now available as messages.tags.list().",
11377
12066
  "parameters": [
11378
12067
  {
11379
12068
  "type": "function",
@@ -11383,7 +12072,7 @@
11383
12072
  {
11384
12073
  "type": "array",
11385
12074
  "items": {
11386
- "$ref": "MessageTag"
12075
+ "$ref": "messages.tags.MessageTag"
11387
12076
  }
11388
12077
  }
11389
12078
  ]
@@ -11398,6 +12087,8 @@
11398
12087
  "permissions": [
11399
12088
  "messagesTags"
11400
12089
  ],
12090
+ "max_manifest_version": 2,
12091
+ "deprecated": "Deprecated since Thunderbird 121 and removed in Manifest V3: messages.createTag() is now available as messages.tags.create().",
11401
12092
  "parameters": [
11402
12093
  {
11403
12094
  "type": "string",
@@ -11413,7 +12104,7 @@
11413
12104
  {
11414
12105
  "type": "string",
11415
12106
  "name": "color",
11416
- "description": "Tag color in hex format (i.e.: #000080 for navy blue)",
12107
+ "description": "Tag color in hex format (i.e.: <value>#000080</value> for navy blue)",
11417
12108
  "pattern": "^#[0-9a-f]{6}"
11418
12109
  }
11419
12110
  ]
@@ -11426,6 +12117,8 @@
11426
12117
  "permissions": [
11427
12118
  "messagesTags"
11428
12119
  ],
12120
+ "max_manifest_version": 2,
12121
+ "deprecated": "Deprecated since Thunderbird 121 and removed in Manifest V3: messages.updateTag() is now available as messages.tags.update().",
11429
12122
  "parameters": [
11430
12123
  {
11431
12124
  "type": "string",
@@ -11460,6 +12153,164 @@
11460
12153
  "permissions": [
11461
12154
  "messagesTags"
11462
12155
  ],
12156
+ "max_manifest_version": 2,
12157
+ "deprecated": "Deprecated since Thunderbird 121 and removed in Manifest V3: messages.deleteTag() is now available as messages.tags.delete().",
12158
+ "parameters": [
12159
+ {
12160
+ "type": "string",
12161
+ "name": "key",
12162
+ "description": "Unique tag identifier (will be converted to lower case). Must not include <value>()<>{/%*\"</value> or spaces.",
12163
+ "pattern": "^[^ ()/{%*<>\"]+$"
12164
+ }
12165
+ ]
12166
+ }
12167
+ ]
12168
+ },
12169
+ {
12170
+ "namespace": "messages.tags",
12171
+ "permissions": [
12172
+ "messagesRead"
12173
+ ],
12174
+ "types": [
12175
+ {
12176
+ "id": "MessageTag",
12177
+ "type": "object",
12178
+ "properties": {
12179
+ "key": {
12180
+ "type": "string",
12181
+ "description": "Unique tag identifier."
12182
+ },
12183
+ "tag": {
12184
+ "type": "string",
12185
+ "description": "Human-readable tag name."
12186
+ },
12187
+ "color": {
12188
+ "type": "string",
12189
+ "description": "Tag color."
12190
+ },
12191
+ "ordinal": {
12192
+ "type": "string",
12193
+ "description": "Custom sort string (usually empty)."
12194
+ }
12195
+ }
12196
+ },
12197
+ {
12198
+ "id": "TagsDetail",
12199
+ "type": "object",
12200
+ "description": "Used for filtering messages by tag in various methods. Note that functions using this type may have a partial implementation.",
12201
+ "properties": {
12202
+ "tags": {
12203
+ "type": "object",
12204
+ "description": "A <em>dictionary object</em> with one or more filter condition as <em>key-value</em> pairs, the <em>key</em> being the tag to filter on, and the <em>value</em> being a boolean expression, requesting whether a message must include (<value>true</value>) or exclude (<value>false</value>) the tag. For a list of available tags, call the :ref:`messages.listTags` method.",
12205
+ "patternProperties": {
12206
+ ".*": {
12207
+ "type": "boolean"
12208
+ }
12209
+ }
12210
+ },
12211
+ "mode": {
12212
+ "type": "string",
12213
+ "description": "Whether all of the tag filters must apply, or any of them.",
12214
+ "enum": [
12215
+ "all",
12216
+ "any"
12217
+ ]
12218
+ }
12219
+ }
12220
+ }
12221
+ ],
12222
+ "functions": [
12223
+ {
12224
+ "name": "list",
12225
+ "type": "function",
12226
+ "description": "Returns a list of tags that can be set on messages, and their human-friendly name, colour, and sort order.",
12227
+ "async": "callback",
12228
+ "parameters": [
12229
+ {
12230
+ "type": "function",
12231
+ "name": "callback",
12232
+ "optional": true,
12233
+ "parameters": [
12234
+ {
12235
+ "type": "array",
12236
+ "items": {
12237
+ "$ref": "messages.tags.MessageTag"
12238
+ }
12239
+ }
12240
+ ]
12241
+ }
12242
+ ]
12243
+ },
12244
+ {
12245
+ "name": "create",
12246
+ "type": "function",
12247
+ "description": "Creates a new message tag. Tagging a message will store the tag's key in the user's message. Throws if the specified tag key is used already.",
12248
+ "async": true,
12249
+ "permissions": [
12250
+ "messagesTags"
12251
+ ],
12252
+ "parameters": [
12253
+ {
12254
+ "type": "string",
12255
+ "name": "key",
12256
+ "description": "Unique tag identifier (will be converted to lower case). Must not include <value>()<>{/%*\"</value> or spaces.",
12257
+ "pattern": "^[^ ()/{%*<>\"]+$"
12258
+ },
12259
+ {
12260
+ "type": "string",
12261
+ "name": "tag",
12262
+ "description": "Human-readable tag name."
12263
+ },
12264
+ {
12265
+ "type": "string",
12266
+ "name": "color",
12267
+ "description": "Tag color in hex format (i.e.: #000080 for navy blue)",
12268
+ "pattern": "^#[0-9a-f]{6}"
12269
+ }
12270
+ ]
12271
+ },
12272
+ {
12273
+ "name": "update",
12274
+ "type": "function",
12275
+ "description": "Updates a message tag.",
12276
+ "async": true,
12277
+ "permissions": [
12278
+ "messagesTags"
12279
+ ],
12280
+ "parameters": [
12281
+ {
12282
+ "type": "string",
12283
+ "name": "key",
12284
+ "description": "Unique tag identifier (will be converted to lower case). Must not include <value>()<>{/%*\"</value> or spaces.",
12285
+ "pattern": "^[^ ()/{%*<>\"]+$"
12286
+ },
12287
+ {
12288
+ "type": "object",
12289
+ "name": "updateProperties",
12290
+ "properties": {
12291
+ "tag": {
12292
+ "type": "string",
12293
+ "optional": "true",
12294
+ "description": "Human-readable tag name."
12295
+ },
12296
+ "color": {
12297
+ "type": "string",
12298
+ "pattern": "^#[0-9a-f]{6}",
12299
+ "description": "Tag color in hex format (i.e.: #000080 for navy blue).",
12300
+ "optional": "true"
12301
+ }
12302
+ }
12303
+ }
12304
+ ]
12305
+ },
12306
+ {
12307
+ "name": "delete",
12308
+ "type": "function",
12309
+ "description": "Deletes a message tag, removing it from the list of known tags. Its key will not be removed from tagged messages, but they will appear untagged. Recreating a deleted tag, will make all former tagged messages appear tagged again.",
12310
+ "async": true,
12311
+ "permissions": [
12312
+ "messagesTags"
12313
+ ],
11463
12314
  "parameters": [
11464
12315
  {
11465
12316
  "type": "string",
@@ -12126,20 +12977,7 @@
12126
12977
  "description": "The `CookieStore <|link-cookieStore|>`__ id used by the tab. Either a custom id created using the `contextualIdentities API <|link-contextualIdentity|>`__, or a built-in one: <value>firefox-default</value>, <value>firefox-container-1</value>, <value>firefox-container-2</value>, <value>firefox-container-3</value>, <value>firefox-container-4</value>, <value>firefox-container-5</value>. **Note:** The naming pattern was deliberately not changed for Thunderbird, but kept for compatibility reasons."
12127
12978
  },
12128
12979
  "type": {
12129
- "type": "string",
12130
- "enum": [
12131
- "addressBook",
12132
- "calendar",
12133
- "calendarEvent",
12134
- "calendarTask",
12135
- "chat",
12136
- "content",
12137
- "mail",
12138
- "messageCompose",
12139
- "messageDisplay",
12140
- "special",
12141
- "tasks"
12142
- ],
12980
+ "$ref": "TabType",
12143
12981
  "optional": true
12144
12982
  },
12145
12983
  "mailTab": {
@@ -12164,6 +13002,24 @@
12164
13002
  ],
12165
13003
  "description": "Whether the tabs have completed loading."
12166
13004
  },
13005
+ {
13006
+ "id": "TabType",
13007
+ "type": "string",
13008
+ "enum": [
13009
+ "addressBook",
13010
+ "calendar",
13011
+ "calendarEvent",
13012
+ "calendarTask",
13013
+ "chat",
13014
+ "content",
13015
+ "mail",
13016
+ "messageCompose",
13017
+ "messageDisplay",
13018
+ "special",
13019
+ "tasks"
13020
+ ],
13021
+ "description": "Tab types supported by the tabs API."
13022
+ },
12167
13023
  {
12168
13024
  "id": "WindowType",
12169
13025
  "type": "string",
@@ -12460,9 +13316,19 @@
12460
13316
  "optional": true
12461
13317
  },
12462
13318
  "type": {
12463
- "type": "string",
13319
+ "choices": [
13320
+ {
13321
+ "$ref": "TabType"
13322
+ },
13323
+ {
13324
+ "type": "array",
13325
+ "items": {
13326
+ "$ref": "TabType"
13327
+ }
13328
+ }
13329
+ ],
12464
13330
  "optional": true,
12465
- "description": "Match tabs against the given Tab.type (see :ref:`tabs.Tab`). Ignored if ``queryInfo.mailTab`` is specified."
13331
+ "description": "Match tabs against the given tab type or types. Ignored if ``queryInfo.mailTab`` is specified."
12466
13332
  },
12467
13333
  "active": {
12468
13334
  "type": "boolean",
@@ -12579,7 +13445,7 @@
12579
13445
  "url": {
12580
13446
  "type": "string",
12581
13447
  "optional": true,
12582
- "description": "A URL of a page to load. If the URL points to a content page (a web page, an extension page or a registered WebExtension protocol handler page), the tab will navigate to the requested page. All other URLs will be opened externally without changing the tab. Note: This function will throw an error, if a content page is loaded into a non-content tab (its type must be either <value>content</value> or <value>mail</value>)."
13448
+ "description": "A URL of a page to load. If the URL points to a content page (a web page, an extension page or a registered WebExtension protocol handler page), the tab will navigate to the requested page. All other URLs will be opened externally without changing the tab. **Note:** This function will throw an error, if a content page is loaded into a non-content tab (its type must be either <value>content</value> or <value>mail</value>)."
12583
13449
  },
12584
13450
  "active": {
12585
13451
  "type": "boolean",