webext-schema 5.5.3 → 5.5.4

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/package.json CHANGED
@@ -26,20 +26,20 @@
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/firefox-webext-browser": "^120.0.4",
29
- "@types/node": "^22.13.1",
30
- "@types/sinon": "^17.0.3",
29
+ "@types/node": "^22.13.9",
30
+ "@types/sinon": "^17.0.4",
31
31
  "c8": "^10.1.3",
32
- "eslint": "^9.19.0",
32
+ "eslint": "^9.21.0",
33
33
  "eslint-plugin-import-x": "^4.6.1",
34
34
  "eslint-plugin-jsdoc": "^50.6.3",
35
35
  "eslint-plugin-regexp": "^2.7.0",
36
- "eslint-plugin-unicorn": "^56.0.1",
37
- "globals": "^15.14.0",
36
+ "eslint-plugin-unicorn": "^57.0.0",
37
+ "globals": "^16.0.0",
38
38
  "mocha": "^11.1.0",
39
39
  "neostandard": "^0.12.1",
40
40
  "npm-run-all2": "^7.0.2",
41
- "typescript": "^5.7.3",
42
- "undici": "^7.3.0"
41
+ "typescript": "^5.8.2",
42
+ "undici": "^7.4.0"
43
43
  },
44
44
  "scripts": {
45
45
  "build": "npm run tsc && npm run lint && npm run test",
@@ -59,5 +59,5 @@
59
59
  "update-mail": "node index update --channel=mail -i",
60
60
  "update-release": "node index update --channel=release -i"
61
61
  },
62
- "version": "5.5.3"
62
+ "version": "5.5.4"
63
63
  }
@@ -968,6 +968,13 @@
968
968
  "description": "Called to return the registered commands."
969
969
  }
970
970
  ]
971
+ },
972
+ {
973
+ "name": "openShortcutSettings",
974
+ "type": "function",
975
+ "async": true,
976
+ "description": "Open extension shortcuts configuration page.",
977
+ "parameters": []
971
978
  }
972
979
  ]
973
980
  }
@@ -13423,7 +13430,7 @@
13423
13430
  },
13424
13431
  "name": {
13425
13432
  "type": "string",
13426
- "description": "Name must be at least 2, at should be at most 75 characters",
13433
+ "description": "Name must be at least 2, and should be at most 75 characters",
13427
13434
  "optional": false,
13428
13435
  "preprocess": "localize"
13429
13436
  },
@@ -13430,7 +13430,7 @@
13430
13430
  },
13431
13431
  "name": {
13432
13432
  "type": "string",
13433
- "description": "Name must be at least 2, at should be at most 75 characters",
13433
+ "description": "Name must be at least 2, and should be at most 75 characters",
13434
13434
  "optional": false,
13435
13435
  "preprocess": "localize"
13436
13436
  },
@@ -13461,6 +13461,7 @@
13461
13461
  },
13462
13462
  "name": {
13463
13463
  "type": "string",
13464
+ "description": "Name must be at least 2, at should be at most 75 characters",
13464
13465
  "optional": false,
13465
13466
  "preprocess": "localize"
13466
13467
  },
@@ -209,6 +209,13 @@
209
209
  "description": "Called to return the registered commands."
210
210
  }
211
211
  ]
212
+ },
213
+ {
214
+ "name": "openShortcutSettings",
215
+ "type": "function",
216
+ "async": true,
217
+ "description": "Open extension shortcuts configuration page.",
218
+ "parameters": []
212
219
  }
213
220
  ]
214
221
  }
@@ -8667,7 +8674,12 @@
8667
8674
  "lastUsed": {
8668
8675
  "$ref": "extensionTypes.Date",
8669
8676
  "optional": true,
8670
- "description": "Date the folder was last used (precision: seconds)."
8677
+ "description": "Date the folder was last used. It is updated every time the folder was accessed, when the user moved or copied messages into the folder and when the folder received new messages. (precision: seconds)."
8678
+ },
8679
+ "lastUsedAsDestination": {
8680
+ "$ref": "extensionTypes.Date",
8681
+ "optional": true,
8682
+ "description": "Date the folder was last used as a destination. It is updated every time the user moved or copied messages into the folder. (precision: seconds)."
8671
8683
  },
8672
8684
  "quota": {
8673
8685
  "type": "array",
@@ -8768,10 +8780,40 @@
8768
8780
  }
8769
8781
  }
8770
8782
  },
8783
+ {
8784
+ "id": "QueryDateRange",
8785
+ "description": "An object defining a range for a date value to be used in queries.",
8786
+ "choices": [
8787
+ {
8788
+ "type": "object",
8789
+ "properties": {
8790
+ "recent": {
8791
+ "type": "boolean",
8792
+ "description": "Whether the date must be considered to be recent by Thunderbird (within the last month) or not, to match the query."
8793
+ }
8794
+ }
8795
+ },
8796
+ {
8797
+ "type": "object",
8798
+ "properties": {
8799
+ "after": {
8800
+ "$ref": "extensionTypes.Date",
8801
+ "optional": true,
8802
+ "description": "The minimum date required to match the query."
8803
+ },
8804
+ "before": {
8805
+ "$ref": "extensionTypes.Date",
8806
+ "optional": true,
8807
+ "description": "The maximum date required to match the query."
8808
+ }
8809
+ }
8810
+ }
8811
+ ]
8812
+ },
8771
8813
  {
8772
8814
  "id": "QueryRange",
8773
8815
  "type": "object",
8774
- "description": "An object defining a range.",
8816
+ "description": "An object defining a range for an integer value to be used in queries.",
8775
8817
  "properties": {
8776
8818
  "min": {
8777
8819
  "type": "integer",
@@ -8805,7 +8847,7 @@
8805
8847
  "properties": {
8806
8848
  "DEFAULT_MOST_RECENT_LIMIT": {
8807
8849
  "value": -1,
8808
- "description": "The number of most recent folders used in Thunderbird's UI. Controled by the <var>mail.folder_widget.max_recent</var> preference."
8850
+ "description": "The number of most recent folders used in Thunderbird's UI. Controlled by the <var>mail.folder_widget.max_recent</var> preference."
8809
8851
  }
8810
8852
  },
8811
8853
  "functions": [
@@ -8929,6 +8971,16 @@
8929
8971
  "optional": true,
8930
8972
  "description": "Whether the folder is a virtual search folder, or not."
8931
8973
  },
8974
+ "lastUsed": {
8975
+ "$ref": "QueryDateRange",
8976
+ "optional": true,
8977
+ "description": "Date the folder was last used (folder was accessed, user moved or copied messages into the folder or folder received new messages)."
8978
+ },
8979
+ "lastUsedAsDestination": {
8980
+ "$ref": "QueryDateRange",
8981
+ "optional": true,
8982
+ "description": "Date the folder was last used as a destination (user moved or copied messages into the folder)."
8983
+ },
8932
8984
  "limit": {
8933
8985
  "type": "integer",
8934
8986
  "optional": true,
@@ -8960,8 +9012,21 @@
8960
9012
  },
8961
9013
  "recent": {
8962
9014
  "type": "boolean",
9015
+ "deprecated": "Deprecated. Use <var>queryInfo.lastUsed</var> and <var>queryInfo.sort</var>.",
9016
+ "optional": true,
9017
+ "description": "Whether the folder (excluding subfolders) has been used within the last month, or not. The returned folders will be sorted by <var>lastUsed</var>."
9018
+ },
9019
+ "sort": {
9020
+ "type": "string",
9021
+ "enum": [
9022
+ "lastUsed",
9023
+ "lastUsedAsDestination",
9024
+ "name",
9025
+ "path"
9026
+ ],
8963
9027
  "optional": true,
8964
- "description": "Whether the folder (excluding subfolders) has been used within the last month, or not. The returned folders will be sorted by their recentness."
9028
+ "default": "path",
9029
+ "description": "The sort order of the returned folders. If not specified, folders will be sorted by <var>path</var>. Sorting by <var>name</var> is case-insensitive."
8965
9030
  },
8966
9031
  "specialUse": {
8967
9032
  "type": "array",
@@ -10976,6 +11041,7 @@
10976
11041
  "editable",
10977
11042
  "folder_pane",
10978
11043
  "frame",
11044
+ "header_pane_link",
10979
11045
  "image",
10980
11046
  "link",
10981
11047
  "message_attachments",
@@ -13190,6 +13256,10 @@
13190
13256
  {
13191
13257
  "name": "changedProperties",
13192
13258
  "$ref": "messages.MessageProperties"
13259
+ },
13260
+ {
13261
+ "name": "oldProperties",
13262
+ "$ref": "messages.MessageProperties"
13193
13263
  }
13194
13264
  ]
13195
13265
  },
@@ -13246,7 +13316,7 @@
13246
13316
  {
13247
13317
  "name": "onNewMailReceived",
13248
13318
  "type": "function",
13249
- "description": "Fired when a new message is received, and has been through junk classification and message filters.",
13319
+ "description": "Fired when a new message is received, and has been handled by message filters and junk classification. Filters running after junk classification may move the message again.",
13250
13320
  "permissions": [
13251
13321
  "accountsRead"
13252
13322
  ],
@@ -13880,6 +13950,18 @@
13880
13950
  }
13881
13951
  ],
13882
13952
  "description": "The folder to move the messages to."
13953
+ },
13954
+ {
13955
+ "name": "options",
13956
+ "type": "object",
13957
+ "optional": true,
13958
+ "properties": {
13959
+ "isUserAction": {
13960
+ "type": "boolean",
13961
+ "optional": true,
13962
+ "description": "Whether this move operation should be treated as a user action, for example allowing undo."
13963
+ }
13964
+ }
13883
13965
  }
13884
13966
  ]
13885
13967
  },
@@ -13906,6 +13988,18 @@
13906
13988
  "name": "folderId",
13907
13989
  "$ref": "folders.MailFolderId",
13908
13990
  "description": "The folder to move the messages to."
13991
+ },
13992
+ {
13993
+ "name": "options",
13994
+ "type": "object",
13995
+ "optional": true,
13996
+ "properties": {
13997
+ "isUserAction": {
13998
+ "type": "boolean",
13999
+ "optional": true,
14000
+ "description": "Whether this move operation should be treated as a user action, for example allowing undo."
14001
+ }
14002
+ }
13909
14003
  }
13910
14004
  ]
13911
14005
  },
@@ -13940,6 +14034,18 @@
13940
14034
  }
13941
14035
  ],
13942
14036
  "description": "The folder to copy the messages to."
14037
+ },
14038
+ {
14039
+ "name": "options",
14040
+ "type": "object",
14041
+ "optional": true,
14042
+ "properties": {
14043
+ "isUserAction": {
14044
+ "type": "boolean",
14045
+ "optional": true,
14046
+ "description": "Whether this copy operation should be treated as a user action, for example allowing undo."
14047
+ }
14048
+ }
13943
14049
  }
13944
14050
  ]
13945
14051
  },
@@ -13966,13 +14072,25 @@
13966
14072
  "name": "folderId",
13967
14073
  "$ref": "folders.MailFolderId",
13968
14074
  "description": "The folder to copy the messages to."
14075
+ },
14076
+ {
14077
+ "name": "options",
14078
+ "type": "object",
14079
+ "optional": true,
14080
+ "properties": {
14081
+ "isUserAction": {
14082
+ "type": "boolean",
14083
+ "optional": true,
14084
+ "description": "Whether this copy operation should be treated as a user action, for example allowing undo."
14085
+ }
14086
+ }
13969
14087
  }
13970
14088
  ]
13971
14089
  },
13972
14090
  {
13973
14091
  "name": "delete",
13974
14092
  "type": "function",
13975
- "description": "Deletes messages permanently, or moves them to the trash folder (honoring the account's deletion behavior settings). Deleting external messages will throw an <em>ExtensionError</em>. The <var>skipTrash</var> parameter allows immediate permanent deletion, bypassing the trash folder.",
14093
+ "description": "Deletes messages permanently, or moves them to the trash folder (honoring the account's deletion behavior settings). Deleting external messages will throw an <em>ExtensionError</em>. The <var>deletePermanently</var> parameter allows immediate permanent deletion, bypassing the trash folder.",
13976
14094
  "async": true,
13977
14095
  "permissions": [
13978
14096
  "messagesDelete"
@@ -13987,10 +14105,30 @@
13987
14105
  }
13988
14106
  },
13989
14107
  {
13990
- "name": "skipTrash",
13991
- "type": "boolean",
13992
- "description": "If true, the message will be deleted permanently, regardless of the account's deletion behavior settings.",
13993
- "optional": true
14108
+ "name": "options",
14109
+ "optional": true,
14110
+ "choices": [
14111
+ {
14112
+ "type": "boolean",
14113
+ "deprecated": "Specify the options object instead of a plain boolean to delete messages permanently.",
14114
+ "description": "Whether the message will be deleted permanently, regardless of the account's deletion behavior settings."
14115
+ },
14116
+ {
14117
+ "type": "object",
14118
+ "properties": {
14119
+ "deletePermanently": {
14120
+ "type": "boolean",
14121
+ "optional": true,
14122
+ "description": "Whether the message will be deleted permanently, regardless of the account's deletion behavior settings. Use this with care!"
14123
+ },
14124
+ "isUserAction": {
14125
+ "type": "boolean",
14126
+ "optional": true,
14127
+ "description": "Whether this copy operation should be treated as a user action, for example allowing undo. Note: Deleting messages permanently cannot be undone!"
14128
+ }
14129
+ }
14130
+ }
14131
+ ]
13994
14132
  }
13995
14133
  ]
13996
14134
  },
@@ -14443,47 +14581,119 @@
14443
14581
  ]
14444
14582
  }
14445
14583
  ],
14446
- "sessions.json": [
14584
+ "messenger_settings.json": [
14447
14585
  {
14448
- "namespace": "sessions",
14449
- "functions": [
14586
+ "namespace": "manifest",
14587
+ "types": [
14450
14588
  {
14451
- "name": "setTabValue",
14452
- "type": "function",
14453
- "description": "Store a key/value pair associated with a given tab.",
14454
- "async": true,
14455
- "parameters": [
14589
+ "$extend": "OptionalPermission",
14590
+ "choices": [
14456
14591
  {
14457
- "name": "tabId",
14458
- "type": "integer",
14459
- "description": "ID of the tab with which you want to associate the data. Error is thrown if ID is invalid."
14592
+ "type": "string",
14593
+ "enum": [
14594
+ "messengerSettings"
14595
+ ]
14596
+ }
14597
+ ]
14598
+ }
14599
+ ]
14600
+ },
14601
+ {
14602
+ "namespace": "messengerSettings",
14603
+ "description": "The messengerSettings API allows to access global messenger settings.",
14604
+ "permissions": [
14605
+ "messengerSettings"
14606
+ ],
14607
+ "properties": {
14608
+ "messagePlainTextFlowedOutputEnabled": {
14609
+ "$ref": "types.Setting",
14610
+ "description": "Whether long lines in outgoing plain text messages will get soft line breaks (<var> \n</var>) or hard line breaks (<var>\n</var>), to comply with requirements from RFC 2822. Soft line breaks will be ignored when displayed by the receiving client. When flowed output is enabled, add-ons should not create plain text messages with manually inserted hard or soft line breaks to achieve a certain text width, as that will most probably interfere with the default line break handling and generate ridged text. When flowed output is disabled, add-ons could add hard line breaks to have control over the final message, but any line longer than the maximum line length will still receive additional hard line breaks. See $(ref:messengerSettings.messageLineLengthLimit)."
14611
+ },
14612
+ "messageLineLengthLimit": {
14613
+ "$ref": "types.Setting",
14614
+ "description": "The line length limit for outgoing messages, to comply with requirements from RFC 2822. See description of $(ref:messengerSettings.messagePlainTextFlowedOutputEnabled)."
14615
+ }
14616
+ }
14617
+ }
14618
+ ],
14619
+ "messenger_utilities.json": [
14620
+ {
14621
+ "namespace": "messengerUtilities",
14622
+ "types": [
14623
+ {
14624
+ "id": "ParsedMailbox",
14625
+ "type": "object",
14626
+ "description": "Representation of a parsed mailbox string (see RFC 5322, section 3.4).",
14627
+ "properties": {
14628
+ "name": {
14629
+ "type": "string",
14630
+ "optional": true,
14631
+ "description": "The <var>display-name</var> associated with the provided address or group, if available."
14460
14632
  },
14461
- {
14462
- "name": "key",
14633
+ "email": {
14463
14634
  "type": "string",
14464
- "description": "Key that you can later use to retrieve this particular data value."
14635
+ "optional": true,
14636
+ "description": "The <var>addr-spec</var> associated with the provided address, if available."
14465
14637
  },
14466
- {
14467
- "name": "value",
14468
- "type": "string"
14638
+ "group": {
14639
+ "type": "array",
14640
+ "optional": true,
14641
+ "items": {
14642
+ "$ref": "messengerUtilities.ParsedMailbox"
14643
+ },
14644
+ "description": "The members of the group, if available."
14469
14645
  }
14470
- ]
14646
+ }
14471
14647
  },
14472
14648
  {
14473
- "name": "getTabValue",
14649
+ "id": "MailboxHeaders",
14650
+ "type": "string",
14651
+ "description": "MIME headers, which by default are treated as containing one or more mailbox strings.",
14652
+ "enum": [
14653
+ "bcc",
14654
+ "cc",
14655
+ "from",
14656
+ "reply-to",
14657
+ "resent-bcc",
14658
+ "resent-cc",
14659
+ "resent-from",
14660
+ "resent-reply-to",
14661
+ "resent-sender",
14662
+ "resent-to",
14663
+ "sender",
14664
+ "to",
14665
+ "approved",
14666
+ "disposition-notification-to",
14667
+ "delivered-to",
14668
+ "return-receipt-to",
14669
+ "mail-reply-to",
14670
+ "mail-followup-to"
14671
+ ]
14672
+ }
14673
+ ],
14674
+ "functions": [
14675
+ {
14676
+ "name": "convertToPlainText",
14474
14677
  "type": "function",
14475
- "description": "Retrieve a previously stored value for a given tab, given its key. Returns <var>undefined</var> if the requested <var>key</var> does not exist for the given <var>tabId</var>.",
14678
+ "description": "Converts the provided body to readable plain text, without tags and leading/trailing whitespace.",
14476
14679
  "async": "callback",
14477
14680
  "parameters": [
14478
14681
  {
14479
- "name": "tabId",
14480
- "type": "integer",
14481
- "description": "ID of the tab whose data you are trying to retrieve. Error is thrown if ID is invalid."
14682
+ "name": "body",
14683
+ "type": "string",
14684
+ "description": "The to-be-converted body."
14482
14685
  },
14483
14686
  {
14484
- "name": "key",
14485
- "type": "string",
14486
- "description": "Key identifying the particular value to retrieve."
14687
+ "name": "options",
14688
+ "type": "object",
14689
+ "optional": true,
14690
+ "properties": {
14691
+ "flowed": {
14692
+ "type": "boolean",
14693
+ "optional": true,
14694
+ "description": "The converted plain text will be wrapped to lines not longer than 72 characters and use format flowed, as defined by RFC 2646."
14695
+ }
14696
+ }
14487
14697
  },
14488
14698
  {
14489
14699
  "type": "function",
@@ -14491,46 +14701,248 @@
14491
14701
  "optional": true,
14492
14702
  "parameters": [
14493
14703
  {
14494
- "type": "string",
14495
- "optional": true
14704
+ "type": "string"
14496
14705
  }
14497
14706
  ]
14498
14707
  }
14499
14708
  ]
14500
14709
  },
14501
14710
  {
14502
- "name": "removeTabValue",
14711
+ "name": "formatFileSize",
14503
14712
  "type": "function",
14504
- "description": "Remove a key/value pair from a given tab.",
14505
- "async": true,
14713
+ "description": "Returns the provided file size in a human readable format (e.g. <var>12 bytes</var> or <var>11,4 GB</var>).",
14714
+ "async": "callback",
14506
14715
  "parameters": [
14507
14716
  {
14508
- "name": "tabId",
14509
14717
  "type": "integer",
14510
- "description": "ID of the tab whose data you are trying to remove. Error is thrown if ID is invalid."
14718
+ "name": "sizeInBytes",
14719
+ "description": "The size in bytes."
14511
14720
  },
14512
14721
  {
14513
- "name": "key",
14514
- "type": "string",
14515
- "description": "Key identifying the particular value to remove."
14722
+ "type": "function",
14723
+ "name": "callback",
14724
+ "optional": true,
14725
+ "parameters": [
14726
+ {
14727
+ "type": "string"
14728
+ }
14729
+ ]
14516
14730
  }
14517
14731
  ]
14518
- }
14519
- ]
14520
- }
14521
- ],
14522
- "spaces.json": [
14523
- {
14524
- "namespace": "spaces",
14525
- "types": [
14732
+ },
14526
14733
  {
14527
- "id": "SpaceTabProperties",
14528
- "description": "Properties for the new tab being opened by clicking on the associated button in the spaces toolbar.",
14529
- "type": "object",
14530
- "properties": {
14531
- "url": {
14532
- "type": "string",
14533
- "optional": true,
14734
+ "name": "parseMailboxString",
14735
+ "type": "function",
14736
+ "description": "Parse a mailbox string containing one or more email addresses (see RFC 5322, section 3.4).",
14737
+ "async": "callback",
14738
+ "parameters": [
14739
+ {
14740
+ "type": "string",
14741
+ "name": "mailboxString",
14742
+ "description": "The string to be parsed (e.g. <var>User <user@example.com>, other-user@example.com</var>)"
14743
+ },
14744
+ {
14745
+ "type": "boolean",
14746
+ "name": "preserveGroups",
14747
+ "optional": true,
14748
+ "description": "Keep grouped hierachies. Groups may be specified in a mailbox string as follows: <var>GroupName : user1 <user1@example.com>, user2@example,com ;</var>."
14749
+ },
14750
+ {
14751
+ "type": "function",
14752
+ "name": "callback",
14753
+ "optional": true,
14754
+ "parameters": [
14755
+ {
14756
+ "type": "array",
14757
+ "items": {
14758
+ "$ref": "messengerUtilities.ParsedMailbox"
14759
+ }
14760
+ }
14761
+ ]
14762
+ }
14763
+ ]
14764
+ },
14765
+ {
14766
+ "name": "decodeMimeHeader",
14767
+ "type": "function",
14768
+ "description": "Decode the provided header into a readable format according to RFC 2047.",
14769
+ "async": "callback",
14770
+ "parameters": [
14771
+ {
14772
+ "name": "headerName",
14773
+ "type": "string"
14774
+ },
14775
+ {
14776
+ "name": "headerValue",
14777
+ "choices": [
14778
+ {
14779
+ "type": "string"
14780
+ },
14781
+ {
14782
+ "type": "array",
14783
+ "items": {
14784
+ "type": "string"
14785
+ }
14786
+ }
14787
+ ]
14788
+ },
14789
+ {
14790
+ "name": "isMailBoxHeader",
14791
+ "type": "boolean",
14792
+ "optional": true,
14793
+ "description": "Headers containing multiple mailbox strings need special handling. For example the header <var>=?UTF-8?Q?H=C3=B6rst=2C_Kenny?= <K.Hoerst@invalid>, new@thunderbird.bug</var> will be wrongly decoded to <var>Hörst, Kenny <K.Hoerst@invalid>, new@thunderbird.bug</var>, corrupting the structure of the first mailbox string. This option overrides the default behavior of treating the headers defined in $(ref:messengerUtilities.MailboxHeaders) as mailbox headers."
14794
+ },
14795
+ {
14796
+ "type": "function",
14797
+ "name": "callback",
14798
+ "optional": true,
14799
+ "parameters": [
14800
+ {
14801
+ "type": "array",
14802
+ "items": {
14803
+ "type": "string"
14804
+ }
14805
+ }
14806
+ ]
14807
+ }
14808
+ ]
14809
+ },
14810
+ {
14811
+ "name": "encodeMimeHeader",
14812
+ "type": "function",
14813
+ "description": "Encode the provided header according to RFC 2047.",
14814
+ "async": "callback",
14815
+ "parameters": [
14816
+ {
14817
+ "name": "headerName",
14818
+ "type": "string"
14819
+ },
14820
+ {
14821
+ "name": "headerValue",
14822
+ "choices": [
14823
+ {
14824
+ "type": "string"
14825
+ },
14826
+ {
14827
+ "type": "array",
14828
+ "items": {
14829
+ "type": "string"
14830
+ }
14831
+ }
14832
+ ]
14833
+ },
14834
+ {
14835
+ "name": "isMailBoxHeader",
14836
+ "type": "boolean",
14837
+ "optional": true,
14838
+ "description": "Headers containing multiple mailbox strings need special handling. This option overrides the default behavior of treating the headers defined in $(ref:messengerUtilities.MailboxHeaders) as mailbox headers."
14839
+ },
14840
+ {
14841
+ "type": "function",
14842
+ "name": "callback",
14843
+ "optional": true,
14844
+ "parameters": [
14845
+ {
14846
+ "type": "array",
14847
+ "items": {
14848
+ "type": "string"
14849
+ }
14850
+ }
14851
+ ]
14852
+ }
14853
+ ]
14854
+ }
14855
+ ]
14856
+ }
14857
+ ],
14858
+ "sessions.json": [
14859
+ {
14860
+ "namespace": "sessions",
14861
+ "functions": [
14862
+ {
14863
+ "name": "setTabValue",
14864
+ "type": "function",
14865
+ "description": "Store a key/value pair associated with a given tab.",
14866
+ "async": true,
14867
+ "parameters": [
14868
+ {
14869
+ "name": "tabId",
14870
+ "type": "integer",
14871
+ "description": "ID of the tab with which you want to associate the data. Error is thrown if ID is invalid."
14872
+ },
14873
+ {
14874
+ "name": "key",
14875
+ "type": "string",
14876
+ "description": "Key that you can later use to retrieve this particular data value."
14877
+ },
14878
+ {
14879
+ "name": "value",
14880
+ "type": "string"
14881
+ }
14882
+ ]
14883
+ },
14884
+ {
14885
+ "name": "getTabValue",
14886
+ "type": "function",
14887
+ "description": "Retrieve a previously stored value for a given tab, given its key. Returns <var>undefined</var> if the requested <var>key</var> does not exist for the given <var>tabId</var>.",
14888
+ "async": "callback",
14889
+ "parameters": [
14890
+ {
14891
+ "name": "tabId",
14892
+ "type": "integer",
14893
+ "description": "ID of the tab whose data you are trying to retrieve. Error is thrown if ID is invalid."
14894
+ },
14895
+ {
14896
+ "name": "key",
14897
+ "type": "string",
14898
+ "description": "Key identifying the particular value to retrieve."
14899
+ },
14900
+ {
14901
+ "type": "function",
14902
+ "name": "callback",
14903
+ "optional": true,
14904
+ "parameters": [
14905
+ {
14906
+ "type": "string",
14907
+ "optional": true
14908
+ }
14909
+ ]
14910
+ }
14911
+ ]
14912
+ },
14913
+ {
14914
+ "name": "removeTabValue",
14915
+ "type": "function",
14916
+ "description": "Remove a key/value pair from a given tab.",
14917
+ "async": true,
14918
+ "parameters": [
14919
+ {
14920
+ "name": "tabId",
14921
+ "type": "integer",
14922
+ "description": "ID of the tab whose data you are trying to remove. Error is thrown if ID is invalid."
14923
+ },
14924
+ {
14925
+ "name": "key",
14926
+ "type": "string",
14927
+ "description": "Key identifying the particular value to remove."
14928
+ }
14929
+ ]
14930
+ }
14931
+ ]
14932
+ }
14933
+ ],
14934
+ "spaces.json": [
14935
+ {
14936
+ "namespace": "spaces",
14937
+ "types": [
14938
+ {
14939
+ "id": "SpaceTabProperties",
14940
+ "description": "Properties for the new tab being opened by clicking on the associated button in the spaces toolbar.",
14941
+ "type": "object",
14942
+ "properties": {
14943
+ "url": {
14944
+ "type": "string",
14945
+ "optional": true,
14534
14946
  "description": "The default URL. May point to a WebExtension page or a web page."
14535
14947
  },
14536
14948
  "cookieStoreId": {
@@ -16113,245 +16525,6 @@
16113
16525
  ]
16114
16526
  }
16115
16527
  ],
16116
- "utilities.json": [
16117
- {
16118
- "namespace": "messengerUtilities",
16119
- "types": [
16120
- {
16121
- "id": "ParsedMailbox",
16122
- "type": "object",
16123
- "description": "Representation of a parsed mailbox string (see RFC 5322, section 3.4).",
16124
- "properties": {
16125
- "name": {
16126
- "type": "string",
16127
- "optional": true,
16128
- "description": "The <var>display-name</var> associated with the provided address or group, if available."
16129
- },
16130
- "email": {
16131
- "type": "string",
16132
- "optional": true,
16133
- "description": "The <var>addr-spec</var> associated with the provided address, if available."
16134
- },
16135
- "group": {
16136
- "type": "array",
16137
- "optional": true,
16138
- "items": {
16139
- "$ref": "messengerUtilities.ParsedMailbox"
16140
- },
16141
- "description": "The members of the group, if available."
16142
- }
16143
- }
16144
- },
16145
- {
16146
- "id": "MailboxHeaders",
16147
- "type": "string",
16148
- "description": "MIME headers, which by default are treated as containing one or more mailbox strings.",
16149
- "enum": [
16150
- "bcc",
16151
- "cc",
16152
- "from",
16153
- "reply-to",
16154
- "resent-bcc",
16155
- "resent-cc",
16156
- "resent-from",
16157
- "resent-reply-to",
16158
- "resent-sender",
16159
- "resent-to",
16160
- "sender",
16161
- "to",
16162
- "approved",
16163
- "disposition-notification-to",
16164
- "delivered-to",
16165
- "return-receipt-to",
16166
- "mail-reply-to",
16167
- "mail-followup-to"
16168
- ]
16169
- }
16170
- ],
16171
- "functions": [
16172
- {
16173
- "name": "convertToPlainText",
16174
- "type": "function",
16175
- "description": "Converts the provided body to readable plain text, without tags and leading/trailing whitespace.",
16176
- "async": "callback",
16177
- "parameters": [
16178
- {
16179
- "name": "body",
16180
- "type": "string",
16181
- "description": "The to-be-converted body."
16182
- },
16183
- {
16184
- "name": "options",
16185
- "type": "object",
16186
- "optional": true,
16187
- "properties": {
16188
- "flowed": {
16189
- "type": "boolean",
16190
- "optional": true,
16191
- "description": "The converted plain text will be wrapped to lines not longer than 72 characters and use format flowed, as defined by RFC 2646."
16192
- }
16193
- }
16194
- },
16195
- {
16196
- "type": "function",
16197
- "name": "callback",
16198
- "optional": true,
16199
- "parameters": [
16200
- {
16201
- "type": "string"
16202
- }
16203
- ]
16204
- }
16205
- ]
16206
- },
16207
- {
16208
- "name": "formatFileSize",
16209
- "type": "function",
16210
- "description": "Returns the provided file size in a human readable format (e.g. <var>12 bytes</var> or <var>11,4 GB</var>).",
16211
- "async": "callback",
16212
- "parameters": [
16213
- {
16214
- "type": "integer",
16215
- "name": "sizeInBytes",
16216
- "description": "The size in bytes."
16217
- },
16218
- {
16219
- "type": "function",
16220
- "name": "callback",
16221
- "optional": true,
16222
- "parameters": [
16223
- {
16224
- "type": "string"
16225
- }
16226
- ]
16227
- }
16228
- ]
16229
- },
16230
- {
16231
- "name": "parseMailboxString",
16232
- "type": "function",
16233
- "description": "Parse a mailbox string containing one or more email addresses (see RFC 5322, section 3.4).",
16234
- "async": "callback",
16235
- "parameters": [
16236
- {
16237
- "type": "string",
16238
- "name": "mailboxString",
16239
- "description": "The string to be parsed (e.g. <var>User <user@example.com>, other-user@example.com</var>)"
16240
- },
16241
- {
16242
- "type": "boolean",
16243
- "name": "preserveGroups",
16244
- "optional": true,
16245
- "description": "Keep grouped hierachies. Groups may be specified in a mailbox string as follows: <var>GroupName : user1 <user1@example.com>, user2@example,com ;</var>."
16246
- },
16247
- {
16248
- "type": "function",
16249
- "name": "callback",
16250
- "optional": true,
16251
- "parameters": [
16252
- {
16253
- "type": "array",
16254
- "items": {
16255
- "$ref": "messengerUtilities.ParsedMailbox"
16256
- }
16257
- }
16258
- ]
16259
- }
16260
- ]
16261
- },
16262
- {
16263
- "name": "decodeMimeHeader",
16264
- "type": "function",
16265
- "description": "Decode the provided header into a readable format according to RFC 2047.",
16266
- "async": "callback",
16267
- "parameters": [
16268
- {
16269
- "name": "headerName",
16270
- "type": "string"
16271
- },
16272
- {
16273
- "name": "headerValue",
16274
- "choices": [
16275
- {
16276
- "type": "string"
16277
- },
16278
- {
16279
- "type": "array",
16280
- "items": {
16281
- "type": "string"
16282
- }
16283
- }
16284
- ]
16285
- },
16286
- {
16287
- "name": "isMailBoxHeader",
16288
- "type": "boolean",
16289
- "optional": true,
16290
- "description": "Headers containing multiple mailbox strings need special handling. For example the header <var>=?UTF-8?Q?H=C3=B6rst=2C_Kenny?= <K.Hoerst@invalid>, new@thunderbird.bug</var> will be wrongly decoded to <var>Hörst, Kenny <K.Hoerst@invalid>, new@thunderbird.bug</var>, corrupting the structure of the first mailbox string. This option overrides the default behavior of treating the headers defined in $(ref:messengerUtilities.MailboxHeaders) as mailbox headers."
16291
- },
16292
- {
16293
- "type": "function",
16294
- "name": "callback",
16295
- "optional": true,
16296
- "parameters": [
16297
- {
16298
- "type": "array",
16299
- "items": {
16300
- "type": "string"
16301
- }
16302
- }
16303
- ]
16304
- }
16305
- ]
16306
- },
16307
- {
16308
- "name": "encodeMimeHeader",
16309
- "type": "function",
16310
- "description": "Encode the provided header according to RFC 2047.",
16311
- "async": "callback",
16312
- "parameters": [
16313
- {
16314
- "name": "headerName",
16315
- "type": "string"
16316
- },
16317
- {
16318
- "name": "headerValue",
16319
- "choices": [
16320
- {
16321
- "type": "string"
16322
- },
16323
- {
16324
- "type": "array",
16325
- "items": {
16326
- "type": "string"
16327
- }
16328
- }
16329
- ]
16330
- },
16331
- {
16332
- "name": "isMailBoxHeader",
16333
- "type": "boolean",
16334
- "optional": true,
16335
- "description": "Headers containing multiple mailbox strings need special handling. This option overrides the default behavior of treating the headers defined in $(ref:messengerUtilities.MailboxHeaders) as mailbox headers."
16336
- },
16337
- {
16338
- "type": "function",
16339
- "name": "callback",
16340
- "optional": true,
16341
- "parameters": [
16342
- {
16343
- "type": "array",
16344
- "items": {
16345
- "type": "string"
16346
- }
16347
- }
16348
- ]
16349
- }
16350
- ]
16351
- }
16352
- ]
16353
- }
16354
- ],
16355
16528
  "windows.json": [
16356
16529
  {
16357
16530
  "namespace": "windows",
@@ -13423,6 +13423,7 @@
13423
13423
  },
13424
13424
  "name": {
13425
13425
  "type": "string",
13426
+ "description": "Name must be at least 2, at should be at most 75 characters",
13426
13427
  "optional": false,
13427
13428
  "preprocess": "localize"
13428
13429
  },
@@ -13521,24 +13522,16 @@
13521
13522
  {
13522
13523
  "type": "object",
13523
13524
  "properties": {
13524
- "page": {
13525
+ "service_worker": {
13526
+ "optional": true,
13525
13527
  "$ref": "ExtensionURL"
13526
13528
  },
13527
- "persistent": {
13529
+ "page": {
13528
13530
  "optional": true,
13529
- "type": "boolean",
13530
- "max_manifest_version": 2,
13531
- "default": true
13532
- }
13533
- },
13534
- "additionalProperties": {
13535
- "$ref": "UnrecognizedProperty"
13536
- }
13537
- },
13538
- {
13539
- "type": "object",
13540
- "properties": {
13531
+ "$ref": "ExtensionURL"
13532
+ },
13541
13533
  "scripts": {
13534
+ "optional": true,
13542
13535
  "type": "array",
13543
13536
  "items": {
13544
13537
  "$ref": "ExtensionURL"
@@ -13547,6 +13540,7 @@
13547
13540
  "type": {
13548
13541
  "optional": true,
13549
13542
  "type": "string",
13543
+ "description": "Only supported for page/scripts; not for service_worker yet, see bug 1775574",
13550
13544
  "enum": [
13551
13545
  "module",
13552
13546
  "classic"
@@ -13557,20 +13551,24 @@
13557
13551
  "type": "boolean",
13558
13552
  "max_manifest_version": 2,
13559
13553
  "default": true
13554
+ },
13555
+ "preferred_environment": {
13556
+ "optional": true,
13557
+ "type": "array",
13558
+ "items": {
13559
+ "type": "string",
13560
+ "enum": [
13561
+ "service_worker",
13562
+ "document"
13563
+ ],
13564
+ "onError": "warn"
13565
+ }
13560
13566
  }
13561
13567
  },
13562
13568
  "additionalProperties": {
13563
13569
  "$ref": "UnrecognizedProperty"
13564
- }
13565
- },
13566
- {
13567
- "type": "object",
13568
- "properties": {
13569
- "service_worker": {
13570
- "$ref": "ExtensionURL"
13571
- }
13572
13570
  },
13573
- "postprocess": "requireBackgroundServiceWorkerEnabled"
13571
+ "postprocess": "checkRequiredManifestBackgroundKeys"
13574
13572
  }
13575
13573
  ],
13576
13574
  "optional": true