-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpackage.json
More file actions
228 lines (228 loc) · 8.4 KB
/
Copy pathpackage.json
File metadata and controls
228 lines (228 loc) · 8.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
{
"name": "vscode-email-client",
"displayName": "Email Client",
"description": "Read, preview, compose, and send email inside VS Code. Unifies an IMAP extraction engine and an SMTP sending engine behind a three-pane mail UI, with a built-in mock email server for UI preview, testing, and debugging.",
"version": "0.2.0-alpha",
"author": "John Haugabook",
"publisher": "isocialPractice",
"icon": "icon.png",
"license": "ISC",
"repository": {
"type": "git",
"url": "https://github.com/isocialPractice/vscode-emailClient.git"
},
"engines": {
"vscode": "^1.90.0",
"node": ">=18.0.0"
},
"categories": [
"Other"
],
"keywords": [
"email",
"imap",
"smtp",
"mail",
"client"
],
"main": "./dist/extension.js",
"activationEvents": [],
"contributes": {
"commands": [
{
"command": "emailClient.open",
"category": "Email Client",
"title": "Open"
},
{
"command": "emailClient.compose",
"category": "Email Client",
"title": "Compose Email"
},
{
"command": "emailClient.refresh",
"category": "Email Client",
"title": "Refresh Mailboxes"
},
{
"command": "emailClient.switchBackend",
"category": "Email Client",
"title": "Switch Backend (Mock / Live)"
},
{
"command": "emailClient.selectAccount",
"category": "Email Client",
"title": "Select Account"
},
{
"command": "emailClient.createAccountFile",
"category": "Email Client",
"title": "Create Account File"
},
{
"command": "emailClient.manageAccounts",
"category": "Email Client",
"title": "Manage Accounts"
},
{
"command": "emailClient.openMockData",
"category": "Email Client",
"title": "Open Mock Server Data Folder"
},
{
"command": "emailClient.resetMockData",
"category": "Email Client",
"title": "Reset Mock Server Data"
}
],
"configuration": {
"title": "Email Client",
"properties": {
"emailClient.accountsRoot": {
"type": "string",
"default": "",
"description": "Absolute path to the folder holding the account registry (accounts/, extract-email/accounts/, send-email/config/accounts/). Leave empty to search each workspace folder and the extension's own folder."
},
"emailClient.activeAccount": {
"type": "string",
"default": "",
"description": "Id of the account profile to use. Empty uses the flat emailClient.* settings. Pick interactively with the \"Email Client: Select Account\" command."
},
"emailClient.accounts": {
"type": "array",
"default": [],
"markdownDescription": "Account profiles. Each entry bundles a backend with its configuration. Accounts can also be defined as JSON files in `settings/accounts/` inside a workspace folder (the file name is the account id); folder files override settings entries with the same id.",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Unique account id."
},
"name": {
"type": "string",
"description": "Display name."
},
"email": {
"type": "string",
"description": "Identity address; the mock backend sends from it."
},
"backend": {
"type": "string",
"enum": [
"mock",
"live"
],
"default": "mock",
"description": "Backend this account uses."
},
"mockDataPath": {
"type": "string",
"description": "Mock backend: data folder (empty uses the per-user default)."
},
"extractEmailPath": {
"type": "string",
"description": "Live backend: local extract-email installation."
},
"sendEmailPath": {
"type": "string",
"description": "Live backend: local send-email installation."
},
"toolAccount": {
"type": "string",
"description": "Account name inside the extract-email / send-email tools."
},
"folders": {
"type": "array",
"items": {
"type": "string"
},
"description": "Live backend: extra IMAP folders (besides Inbox) to list, e.g. [\"Sent\", \"Trash\"]. Folder names must exist on the server; matching is case-insensitive."
},
"messageLimit": {
"type": "number",
"description": "Messages loaded per mailbox for this account."
}
}
}
},
"emailClient.backend": {
"type": "string",
"enum": [
"mock",
"live"
],
"enumDescriptions": [
"Built-in mock email server backed by local JSON mailbox data. No network access.",
"Live mode: fetch mail through the extract-email CLI and send through the send-email engine."
],
"default": "mock",
"description": "Which email backend to use."
},
"emailClient.mockDataPath": {
"type": "string",
"default": "",
"description": "Absolute path to a mock server data folder. Leave empty to use a writable copy of the bundled sample data."
},
"emailClient.weather.location": {
"type": "string",
"default": "",
"description": "Home location for the weather card, as \"City, ST\" (for example \"Springfield, IL\"). US locations only. Leave empty to estimate the location from this network's public IP address, which contacts a third-party lookup service and is accurate to city level at best."
},
"emailClient.weather.days": {
"type": "integer",
"default": 8,
"minimum": 1,
"maximum": 8,
"description": "Length of the weather card's outlook strip. Set to 1 to show current conditions only."
},
"emailClient.sendEmailPath": {
"type": "string",
"default": "",
"description": "Absolute path to a local send-email installation (folder containing its package.json). Required for sending in live mode."
},
"emailClient.extractEmailPath": {
"type": "string",
"default": "",
"description": "Absolute path to a local extract-email installation (folder containing its package.json). Required for fetching in live mode."
},
"emailClient.account": {
"type": "string",
"default": "",
"description": "Account name to pass to the live backends (an account configured inside the send-email / extract-email tools). Leave empty to use each tool's default account."
},
"emailClient.folders": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"description": "Live mode with the flat settings: extra IMAP folders (besides Inbox) to list in the sidebar, e.g. [\"Sent\", \"Trash\"]. Account profiles and account files declare their own \"folders\" instead. Folder names must exist on the server; matching is case-insensitive."
},
"emailClient.messageLimit": {
"type": "number",
"default": 50,
"minimum": 1,
"maximum": 500,
"description": "Maximum number of messages to load per mailbox."
}
}
}
},
"scripts": {
"build": "tsc",
"watch": "tsc --watch",
"pretest": "npm run build",
"test": "node --test dist/test/address.test.js dist/test/sanitizeHtml.test.js dist/test/mockEmailServer.test.js dist/test/accountManager.test.js dist/test/liveBackend.test.js dist/test/accountConfig.test.js dist/test/accountStore.test.js dist/test/weatherCard.test.js",
"pre:publish": "vsce package",
"vscode:prepublish": "npm run build"
},
"devDependencies": {
"@types/node": "^20.12.0",
"@types/vscode": "^1.90.0",
"typescript": "^5.4.0"
}
}