@deploybaseline/microsoft 0.0.0-stage → 0.14.1
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/LICENSE +202 -0
- package/NOTICE +11 -0
- package/README.md +35 -2
- package/THIRD_PARTY_NOTICES.md +622 -0
- package/api-reference.json +59783 -0
- package/dist/chunk-BEGIZZSN.js +4762 -0
- package/dist/chunk-BEGIZZSN.js.map +1 -0
- package/dist/chunk-G7326MH2.js +3837 -0
- package/dist/chunk-G7326MH2.js.map +1 -0
- package/dist/chunk-PBJS3RQA.js +41 -0
- package/dist/chunk-PBJS3RQA.js.map +1 -0
- package/dist/fonts/GeistPixel-Square.woff2 +0 -0
- package/dist/fonts/favicon.ico +0 -0
- package/dist/fonts/geist-sans.woff2 +0 -0
- package/dist/index.d.ts +355 -0
- package/dist/index.js +58927 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest.d.ts +5 -0
- package/dist/manifest.js +7 -0
- package/dist/manifest.js.map +1 -0
- package/dist/provider.d.ts +2 -0
- package/dist/provider.js +10 -0
- package/dist/provider.js.map +1 -0
- package/dist/upload-L2WXFOLU.js +11 -0
- package/dist/upload-L2WXFOLU.js.map +1 -0
- package/init.json +20 -0
- package/package.json +93 -3
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// src/manifest.ts
|
|
2
|
+
var manifest = {
|
|
3
|
+
name: "microsoft",
|
|
4
|
+
seedKey: "microsoft",
|
|
5
|
+
aliases: [],
|
|
6
|
+
// 2: Outlook moved to one Exchange store (mail, calendar, contacts, To Do), replacing the mail collections.
|
|
7
|
+
stateVersion: 2,
|
|
8
|
+
identities: true,
|
|
9
|
+
label: "Microsoft Entra ID OAuth 2.0 / OpenID Connect, Microsoft Graph (users, groups, Outlook mail, calendar, contacts, To Do) and SharePoint Online (Graph and REST) emulator",
|
|
10
|
+
endpoints: "OAuth authorize, token exchange, userinfo, OIDC discovery, logout, token revocation; Graph /me, /users, /groups, mail folders, messages, sendMail, attachments, mailboxSettings, calendars, events, calendarView, getSchedule, findMeetingTimes, contacts, To Do, places, subscriptions, $batch; SharePoint sites, lists, items, drives, files, permissions, sharing and search on Graph, SharePoint REST /_api, upload sessions and download URLs",
|
|
11
|
+
async load() {
|
|
12
|
+
const mod = await import("./index.js");
|
|
13
|
+
return { plugin: mod.microsoftPlugin, seedFromConfig: mod.seedFromConfig, mapIdentity: mod.mapIdentity };
|
|
14
|
+
},
|
|
15
|
+
defaultFallback(cfg) {
|
|
16
|
+
const firstEmail = cfg?.users?.[0]?.email ?? "testuser@outlook.com";
|
|
17
|
+
return {
|
|
18
|
+
login: firstEmail,
|
|
19
|
+
id: 1,
|
|
20
|
+
scopes: ["openid", "email", "profile", "User.Read", "User.ReadWrite.All", "Mail.ReadWrite", "Mail.Send"]
|
|
21
|
+
};
|
|
22
|
+
},
|
|
23
|
+
initConfig: {
|
|
24
|
+
microsoft: {
|
|
25
|
+
users: [{ email: "testuser@outlook.com", name: "Test User" }],
|
|
26
|
+
oauth_clients: [
|
|
27
|
+
{
|
|
28
|
+
client_id: "example-client-id",
|
|
29
|
+
client_secret: "example-client-secret",
|
|
30
|
+
name: "My Microsoft App",
|
|
31
|
+
redirect_uris: ["http://localhost:3000/api/auth/callback/microsoft-entra-id"]
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export {
|
|
39
|
+
manifest
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=chunk-PBJS3RQA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/manifest.ts"],"sourcesContent":["import type { ProviderManifest } from \"@deploybaseline/core\";\n\n// Cheap metadata for the CLI. Keep the provider behind load().\nexport const manifest: ProviderManifest<\"microsoft\"> = {\n name: \"microsoft\",\n seedKey: \"microsoft\",\n aliases: [],\n // 2: Outlook moved to one Exchange store (mail, calendar, contacts, To Do), replacing the mail collections.\n stateVersion: 2,\n identities: true,\n label:\n \"Microsoft Entra ID OAuth 2.0 / OpenID Connect, Microsoft Graph (users, groups, Outlook mail, calendar, contacts, To Do) and SharePoint Online (Graph and REST) emulator\",\n endpoints:\n \"OAuth authorize, token exchange, userinfo, OIDC discovery, logout, token revocation; Graph /me, /users, /groups, mail folders, messages, sendMail, attachments, mailboxSettings, calendars, events, calendarView, getSchedule, findMeetingTimes, contacts, To Do, places, subscriptions, $batch; SharePoint sites, lists, items, drives, files, permissions, sharing and search on Graph, SharePoint REST /_api, upload sessions and download URLs\",\n async load() {\n const mod = await import(\"./index.js\");\n return { plugin: mod.microsoftPlugin, seedFromConfig: mod.seedFromConfig, mapIdentity: mod.mapIdentity };\n },\n defaultFallback(cfg) {\n const firstEmail = (cfg?.users as Array<{ email?: string }> | undefined)?.[0]?.email ?? \"testuser@outlook.com\";\n return {\n login: firstEmail,\n id: 1,\n scopes: [\"openid\", \"email\", \"profile\", \"User.Read\", \"User.ReadWrite.All\", \"Mail.ReadWrite\", \"Mail.Send\"],\n };\n },\n initConfig: {\n microsoft: {\n users: [{ email: \"testuser@outlook.com\", name: \"Test User\" }],\n oauth_clients: [\n {\n client_id: \"example-client-id\",\n client_secret: \"example-client-secret\",\n name: \"My Microsoft App\",\n redirect_uris: [\"http://localhost:3000/api/auth/callback/microsoft-entra-id\"],\n },\n ],\n },\n },\n};\n"],"mappings":";AAGO,IAAM,WAA0C;AAAA,EACrD,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS,CAAC;AAAA;AAAA,EAEV,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,OACE;AAAA,EACF,WACE;AAAA,EACF,MAAM,OAAO;AACX,UAAM,MAAM,MAAM,OAAO,YAAY;AACrC,WAAO,EAAE,QAAQ,IAAI,iBAAiB,gBAAgB,IAAI,gBAAgB,aAAa,IAAI,YAAY;AAAA,EACzG;AAAA,EACA,gBAAgB,KAAK;AACnB,UAAM,aAAc,KAAK,QAAkD,CAAC,GAAG,SAAS;AACxF,WAAO;AAAA,MACL,OAAO;AAAA,MACP,IAAI;AAAA,MACJ,QAAQ,CAAC,UAAU,SAAS,WAAW,aAAa,sBAAsB,kBAAkB,WAAW;AAAA,IACzG;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV,WAAW;AAAA,MACT,OAAO,CAAC,EAAE,OAAO,wBAAwB,MAAM,YAAY,CAAC;AAAA,MAC5D,eAAe;AAAA,QACb;AAAA,UACE,WAAW;AAAA,UACX,eAAe;AAAA,UACf,MAAM;AAAA,UACN,eAAe,CAAC,4DAA4D;AAAA,QAC9E;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
import * as _deploybaseline_core from '@deploybaseline/core';
|
|
2
|
+
import { Entity, Collection, Store, IdentityMapping, SigningKeySeed } from '@deploybaseline/core';
|
|
3
|
+
export { manifest } from './manifest.js';
|
|
4
|
+
|
|
5
|
+
interface MicrosoftSeedMessage {
|
|
6
|
+
/** The mailbox owner: a seeded user's email or userPrincipalName, or a shared mailbox address. */
|
|
7
|
+
user: string;
|
|
8
|
+
/** A distinguished folder (`inbox`, `sentitems`, `drafts`, `archive`, ...) or a folder name to create. Default `inbox`. */
|
|
9
|
+
folder?: string;
|
|
10
|
+
from: string;
|
|
11
|
+
to?: string[];
|
|
12
|
+
cc?: string[];
|
|
13
|
+
subject?: string;
|
|
14
|
+
body?: string;
|
|
15
|
+
body_type?: "text" | "html";
|
|
16
|
+
is_read?: boolean;
|
|
17
|
+
importance?: "low" | "normal" | "high";
|
|
18
|
+
categories?: string[];
|
|
19
|
+
flagged?: boolean;
|
|
20
|
+
/** ISO 8601; defaults to now. */
|
|
21
|
+
received_at?: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Seed configuration for SharePoint (the `sharepoint:` block of the
|
|
26
|
+
* Microsoft seed config): tenant hostname, site collections and subsites,
|
|
27
|
+
* site membership, lists and libraries with columns, items, folders and
|
|
28
|
+
* files, and Selected permission grants for applications.
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
interface SharePointColumnSeed {
|
|
32
|
+
/** Internal name. */
|
|
33
|
+
name: string;
|
|
34
|
+
display_name?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Shorthand type: text, note, number, currency, choice, multichoice,
|
|
37
|
+
* dateTime, dateOnly, boolean, person, personMulti, lookup, hyperlink.
|
|
38
|
+
* Alternatively pass a Graph columnDefinition facet under `graph`.
|
|
39
|
+
*/
|
|
40
|
+
type?: string;
|
|
41
|
+
choices?: string[];
|
|
42
|
+
required?: boolean;
|
|
43
|
+
indexed?: boolean;
|
|
44
|
+
/** Lookup target list title (same web) and column. */
|
|
45
|
+
lookup_list?: string;
|
|
46
|
+
lookup_column?: string;
|
|
47
|
+
default_value?: string;
|
|
48
|
+
/** Raw Graph columnDefinition body (overrides the shorthand). */
|
|
49
|
+
graph?: Record<string, unknown>;
|
|
50
|
+
}
|
|
51
|
+
interface SharePointListSeed {
|
|
52
|
+
title: string;
|
|
53
|
+
/** genericList (default), documentLibrary, or a template number. */
|
|
54
|
+
template?: string | number;
|
|
55
|
+
/** URL segment (e.g. "Lists/Tasks" or "Contracts"). */
|
|
56
|
+
url?: string;
|
|
57
|
+
description?: string;
|
|
58
|
+
columns?: SharePointColumnSeed[];
|
|
59
|
+
/** List items: field values by internal name. Person fields take an email. */
|
|
60
|
+
items?: Record<string, unknown>[];
|
|
61
|
+
/** Folders relative to the list root, e.g. "Reports/2026". */
|
|
62
|
+
folders?: string[];
|
|
63
|
+
/** Files relative to the library root, with text or base64 content. */
|
|
64
|
+
files?: Array<{
|
|
65
|
+
path: string;
|
|
66
|
+
content?: string;
|
|
67
|
+
content_base64?: string;
|
|
68
|
+
fields?: Record<string, unknown>;
|
|
69
|
+
author?: string;
|
|
70
|
+
}>;
|
|
71
|
+
/** Break inheritance and grant these users (email to role: read, contribute, edit, full). */
|
|
72
|
+
permissions?: Record<string, "read" | "contribute" | "edit" | "design" | "full">;
|
|
73
|
+
versioning?: {
|
|
74
|
+
major?: boolean;
|
|
75
|
+
minor?: boolean;
|
|
76
|
+
require_checkout?: boolean;
|
|
77
|
+
content_approval?: boolean;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/** What a site collection and a subsite both have. */
|
|
81
|
+
interface SharePointWebSeed {
|
|
82
|
+
/** Server-relative URL: "/" for the root site, "/sites/alpha", "/teams/x". */
|
|
83
|
+
url: string;
|
|
84
|
+
title: string;
|
|
85
|
+
description?: string;
|
|
86
|
+
owners?: string[];
|
|
87
|
+
members?: string[];
|
|
88
|
+
visitors?: string[];
|
|
89
|
+
lists?: SharePointListSeed[];
|
|
90
|
+
/** Allow custom script on the site (default false, as on modern sites: AddAndCustomizePages is withheld). */
|
|
91
|
+
custom_script?: boolean;
|
|
92
|
+
/** Sites.Selected grants: app client id and roles (read, write, manage, fullcontrol). */
|
|
93
|
+
grants?: Array<{
|
|
94
|
+
app_id: string;
|
|
95
|
+
app_name?: string;
|
|
96
|
+
roles: string[];
|
|
97
|
+
list?: string;
|
|
98
|
+
item?: number;
|
|
99
|
+
}>;
|
|
100
|
+
}
|
|
101
|
+
interface SharePointSiteSeed extends SharePointWebSeed {
|
|
102
|
+
/** Email of a Microsoft 365 group from `groups:` (group-connected team site). */
|
|
103
|
+
group?: string;
|
|
104
|
+
subsites?: SharePointSubsiteSeed[];
|
|
105
|
+
}
|
|
106
|
+
/** A subsite: a site with no group of its own and no subsites. */
|
|
107
|
+
interface SharePointSubsiteSeed extends SharePointWebSeed {
|
|
108
|
+
/** Break role inheritance from the parent site. */
|
|
109
|
+
unique_permissions?: boolean;
|
|
110
|
+
}
|
|
111
|
+
interface SharePointSeedConfig {
|
|
112
|
+
/** Tenant hostname (default contoso.sharepoint.com). */
|
|
113
|
+
hostname?: string;
|
|
114
|
+
/** Origin of issued download/upload/monitor URLs (default: the emulator base URL). */
|
|
115
|
+
access_origin?: string;
|
|
116
|
+
/** Virtual delay for asynchronous copy jobs in ms (default 0: done on first poll). */
|
|
117
|
+
copy_delay_ms?: number;
|
|
118
|
+
/** Virtual delay before a write becomes visible to search in ms (default 0). */
|
|
119
|
+
search_index_delay_ms?: number;
|
|
120
|
+
/** How long an upload session stays usable after its stated expiration in ms (default 3600000, as observed; 0: strict). */
|
|
121
|
+
upload_session_grace_ms?: number;
|
|
122
|
+
/** Graph page size for list items (default 200). */
|
|
123
|
+
graph_page_size?: number;
|
|
124
|
+
/** REST page size for list items (default 100). */
|
|
125
|
+
rest_page_size?: number;
|
|
126
|
+
/** false: refuse new subsites (web/webs/add), like tenants with subsite creation turned off (default true). */
|
|
127
|
+
allow_subsite_creation?: boolean;
|
|
128
|
+
sites?: SharePointSiteSeed[];
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
interface MicrosoftUser extends Entity {
|
|
132
|
+
/** Object ID (oid): the user's Graph `id`. */
|
|
133
|
+
oid: string;
|
|
134
|
+
/** Sign-in name, the OAuth `email` claim. Kept equal to `preferred_username`. */
|
|
135
|
+
email: string;
|
|
136
|
+
name: string;
|
|
137
|
+
given_name: string;
|
|
138
|
+
family_name: string;
|
|
139
|
+
email_verified: boolean;
|
|
140
|
+
/** Microsoft tenant ID */
|
|
141
|
+
tenant_id: string;
|
|
142
|
+
/** User principal name (usually email) */
|
|
143
|
+
preferred_username: string;
|
|
144
|
+
/** Graph `mail`. Undefined reads as `email`; null means the user has no mail address. */
|
|
145
|
+
mail?: string | null;
|
|
146
|
+
account_enabled?: boolean;
|
|
147
|
+
job_title?: string | null;
|
|
148
|
+
department?: string | null;
|
|
149
|
+
office_location?: string | null;
|
|
150
|
+
mobile_phone?: string | null;
|
|
151
|
+
business_phones?: string[];
|
|
152
|
+
mail_nickname?: string;
|
|
153
|
+
user_type?: "Member" | "Guest";
|
|
154
|
+
usage_location?: string | null;
|
|
155
|
+
company_name?: string | null;
|
|
156
|
+
employee_id?: string | null;
|
|
157
|
+
city?: string | null;
|
|
158
|
+
country?: string | null;
|
|
159
|
+
preferred_language?: string | null;
|
|
160
|
+
force_change_password?: boolean;
|
|
161
|
+
/** Other Graph user properties by their Graph names (seed `profile`), e.g. `{ employeeType: "Contractor" }`. They win over the typed fields. */
|
|
162
|
+
profile?: Record<string, unknown>;
|
|
163
|
+
}
|
|
164
|
+
interface MicrosoftOAuthClient extends Entity {
|
|
165
|
+
client_id: string;
|
|
166
|
+
/** Empty for an app that signs in only with a certificate. */
|
|
167
|
+
client_secret: string;
|
|
168
|
+
name: string;
|
|
169
|
+
redirect_uris: string[];
|
|
170
|
+
/** Tenant ID this app is registered in */
|
|
171
|
+
tenant_id: string;
|
|
172
|
+
/** Graph application permissions (app roles) granted to the app; client credentials tokens carry them as `roles`. */
|
|
173
|
+
application_permissions?: string[];
|
|
174
|
+
/** Graph delegated permissions configured on the app; what a delegated `.default` request grants. */
|
|
175
|
+
delegated_permissions?: string[];
|
|
176
|
+
/** PEM certificates registered on the app; client_credentials accepts assertions signed by their keys. */
|
|
177
|
+
certificates?: string[];
|
|
178
|
+
/** App roles per non-Graph resource URI (client_credentials tokens for that resource carry these). */
|
|
179
|
+
resource_permissions?: Record<string, string[]>;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
interface MicrosoftStore {
|
|
183
|
+
users: Collection<MicrosoftUser>;
|
|
184
|
+
oauthClients: Collection<MicrosoftOAuthClient>;
|
|
185
|
+
}
|
|
186
|
+
declare function getMicrosoftStore(store: Store): MicrosoftStore;
|
|
187
|
+
|
|
188
|
+
/** How a shared identity (`identities:` in the config) becomes a user in this provider's seed. */
|
|
189
|
+
declare const mapIdentity: IdentityMapping;
|
|
190
|
+
|
|
191
|
+
interface MicrosoftSeedUser {
|
|
192
|
+
email: string;
|
|
193
|
+
name?: string;
|
|
194
|
+
given_name?: string;
|
|
195
|
+
family_name?: string;
|
|
196
|
+
tenant_id?: string;
|
|
197
|
+
/** Graph `mail`, which is also the mailbox address; defaults to `email`. `null` gives the user no mailbox. */
|
|
198
|
+
mail?: string | null;
|
|
199
|
+
account_enabled?: boolean;
|
|
200
|
+
job_title?: string;
|
|
201
|
+
department?: string;
|
|
202
|
+
office_location?: string;
|
|
203
|
+
mobile_phone?: string;
|
|
204
|
+
business_phones?: string[];
|
|
205
|
+
company_name?: string;
|
|
206
|
+
employee_id?: string;
|
|
207
|
+
city?: string;
|
|
208
|
+
country?: string;
|
|
209
|
+
usage_location?: string;
|
|
210
|
+
preferred_language?: string;
|
|
211
|
+
user_type?: "Member" | "Guest";
|
|
212
|
+
/** Other Graph user properties by their Graph names, e.g. `{ employeeType: "Contractor" }`. They win over the fields above. */
|
|
213
|
+
profile?: Record<string, unknown>;
|
|
214
|
+
/** Exchange REST id form for this mailbox: "compact" (AQMk..., default) or "standard" (AAMk...). */
|
|
215
|
+
id_format?: "compact" | "standard";
|
|
216
|
+
/**
|
|
217
|
+
* The user has opened Focused Inbox in Outlook on the web, which leaves two
|
|
218
|
+
* search folders under searchfolders: OwaFV15.1AllFocused and
|
|
219
|
+
* OwaFV15.1AllOther followed by the Inbox id (default false).
|
|
220
|
+
*/
|
|
221
|
+
outlook_web?: boolean;
|
|
222
|
+
/**
|
|
223
|
+
* Regional settings the user chose on first sign-in to Outlook. Without them
|
|
224
|
+
* the mailbox reports no timeZone, language { lCID: 0 } and workingHours {}.
|
|
225
|
+
*/
|
|
226
|
+
mailbox_settings?: {
|
|
227
|
+
/** Windows time zone name, e.g. "Pacific Standard Time". Also used for working hours. */
|
|
228
|
+
time_zone?: string;
|
|
229
|
+
/** Locale, e.g. "en-US" (default when time_zone is set). */
|
|
230
|
+
locale?: string;
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
interface MicrosoftSeedConfig {
|
|
234
|
+
/** Directory (tenant) ID placed in tokens and transport headers. Default `9188040d-6c67-4c5b-b112-36a304b66dad`. */
|
|
235
|
+
tenant_id?: string;
|
|
236
|
+
/** Primary SMTP domain. Defaults to the domain of the first user. */
|
|
237
|
+
domain?: string;
|
|
238
|
+
/** Pin the token signing key: an RSA private JWK. */
|
|
239
|
+
signing_key?: SigningKeySeed;
|
|
240
|
+
users?: MicrosoftSeedUser[];
|
|
241
|
+
/** Mailboxes without a sign-in account (Exchange shared mailboxes). */
|
|
242
|
+
shared_mailboxes?: Array<{
|
|
243
|
+
email: string;
|
|
244
|
+
name?: string;
|
|
245
|
+
id_format?: "compact" | "standard";
|
|
246
|
+
}>;
|
|
247
|
+
oauth_clients?: Array<{
|
|
248
|
+
client_id: string;
|
|
249
|
+
/** Omit for an app that signs in only with a certificate: secret authentication is then refused. */
|
|
250
|
+
client_secret?: string;
|
|
251
|
+
name: string;
|
|
252
|
+
/** Omit for an app that only uses client credentials. */
|
|
253
|
+
redirect_uris?: string[];
|
|
254
|
+
tenant_id?: string;
|
|
255
|
+
/** Graph application permissions granted to the app (client credentials `roles`). Omit for every modeled one. */
|
|
256
|
+
application_permissions?: string[];
|
|
257
|
+
/** Graph delegated permissions a delegated `.default` request grants. Omit for every modeled one. */
|
|
258
|
+
delegated_permissions?: string[];
|
|
259
|
+
/** PEM certificates (public part) registered on the app, for certificate credentials (private_key_jwt). */
|
|
260
|
+
certificates?: string[];
|
|
261
|
+
/** App roles per non-Graph resource, keyed by resource URI, e.g. `{ "https://contoso.sharepoint.com": ["Sites.Manage.All"] }`. */
|
|
262
|
+
resource_permissions?: Record<string, string[]>;
|
|
263
|
+
}>;
|
|
264
|
+
/** Domains `POST /users` accepts in a userPrincipalName, besides those of seeded users. */
|
|
265
|
+
verified_domains?: string[];
|
|
266
|
+
/** Messages placed in seeded mailboxes. */
|
|
267
|
+
messages?: MicrosoftSeedMessage[];
|
|
268
|
+
/** Room mailboxes (places API, free/busy and automatic meeting processing). */
|
|
269
|
+
rooms?: Array<{
|
|
270
|
+
email: string;
|
|
271
|
+
name?: string;
|
|
272
|
+
capacity?: number;
|
|
273
|
+
building?: string;
|
|
274
|
+
floor_number?: number;
|
|
275
|
+
floor_label?: string;
|
|
276
|
+
label?: string;
|
|
277
|
+
phone?: string;
|
|
278
|
+
nickname?: string;
|
|
279
|
+
is_wheelchair_accessible?: boolean;
|
|
280
|
+
booking_type?: "standard" | "reserved";
|
|
281
|
+
tags?: string[];
|
|
282
|
+
audio_device_name?: string;
|
|
283
|
+
video_device_name?: string;
|
|
284
|
+
display_device_name?: string;
|
|
285
|
+
address?: {
|
|
286
|
+
street?: string;
|
|
287
|
+
city?: string;
|
|
288
|
+
state?: string;
|
|
289
|
+
country_or_region?: string;
|
|
290
|
+
postal_code?: string;
|
|
291
|
+
};
|
|
292
|
+
/** Room list addresses this room belongs to. */
|
|
293
|
+
room_lists?: string[];
|
|
294
|
+
}>;
|
|
295
|
+
/** Room lists (distribution groups of rooms). */
|
|
296
|
+
room_lists?: Array<{
|
|
297
|
+
email: string;
|
|
298
|
+
name?: string;
|
|
299
|
+
phone?: string;
|
|
300
|
+
}>;
|
|
301
|
+
/** Microsoft 365 groups with a group mailbox and calendar. Members and owners are user addresses. */
|
|
302
|
+
groups?: Array<{
|
|
303
|
+
email: string;
|
|
304
|
+
name?: string;
|
|
305
|
+
description?: string;
|
|
306
|
+
members?: string[];
|
|
307
|
+
owners?: string[];
|
|
308
|
+
visibility?: "Public" | "Private";
|
|
309
|
+
/** Team-backed group: creationOptions and resource options as Teams sets them. */
|
|
310
|
+
team?: boolean;
|
|
311
|
+
}>;
|
|
312
|
+
/** Exchange mailbox delegation (Add-MailboxPermission and Add-RecipientPermission). */
|
|
313
|
+
mailbox_permissions?: Array<{
|
|
314
|
+
mailbox: string;
|
|
315
|
+
user: string;
|
|
316
|
+
rights: Array<"FullAccess" | "SendAs" | "SendOnBehalf">;
|
|
317
|
+
}>;
|
|
318
|
+
/** SharePoint Online: hostname, sites, lists, libraries, files and app grants. */
|
|
319
|
+
sharepoint?: SharePointSeedConfig;
|
|
320
|
+
graph?: {
|
|
321
|
+
/** Milliseconds between send and delivery (default 1000). 0 delivers synchronously. */
|
|
322
|
+
delivery_delay_ms?: number;
|
|
323
|
+
/** Reject unknown bearer tokens with 401 like Graph does, instead of acting as the CLI's fallback user (default false). */
|
|
324
|
+
strict_auth?: boolean;
|
|
325
|
+
/** Restrict app-only access per client ID to these mailboxes (ApplicationAccessPolicy). */
|
|
326
|
+
application_access_policies?: Record<string, string[]>;
|
|
327
|
+
/** Skip the subscription notificationUrl validation handshake. */
|
|
328
|
+
skip_subscription_validation?: boolean;
|
|
329
|
+
/** Accept http:// notification URLs (Graph requires https; default false). */
|
|
330
|
+
allow_http_notifications?: boolean;
|
|
331
|
+
/** Refuse directory ids other than the seeded tenants (AADSTS90002), as Entra ID does (default false). */
|
|
332
|
+
strict_tenants?: boolean;
|
|
333
|
+
/**
|
|
334
|
+
* Add the To Do "Flagged Emails" list, synced from message flags (default false).
|
|
335
|
+
* true turns it on for every mailbox; a list of addresses turns it on for those
|
|
336
|
+
* only (each user turns it on in To Do settings).
|
|
337
|
+
*/
|
|
338
|
+
todo_flagged_emails?: boolean | string[];
|
|
339
|
+
/** Online meeting provider of the tenant: "teamsForBusiness" or "unknown" (default, no Teams). */
|
|
340
|
+
online_meeting_provider?: "teamsForBusiness" | "unknown";
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
/** The modules in registration order: OAuth, the Graph request layer, Graph's API modules, then SharePoint. */
|
|
344
|
+
declare const microsoftModules: readonly [_deploybaseline_core.ServiceModule, _deploybaseline_core.ServiceModule, _deploybaseline_core.ServiceModule, _deploybaseline_core.ServiceModule, _deploybaseline_core.ServiceModule, _deploybaseline_core.ServiceModule, _deploybaseline_core.ServiceModule, _deploybaseline_core.ServiceModule, _deploybaseline_core.ServiceModule, _deploybaseline_core.ServiceModule, _deploybaseline_core.ServiceModule, _deploybaseline_core.ServiceModule, _deploybaseline_core.ServiceModule];
|
|
345
|
+
/** Entra ID and Microsoft Graph: one service, one store, one seed key (`microsoft:`). */
|
|
346
|
+
declare const microsoftPlugin: _deploybaseline_core.ComposedService;
|
|
347
|
+
declare function seedFromConfig(store: Store, _baseUrl: string, config: MicrosoftSeedConfig): void;
|
|
348
|
+
/**
|
|
349
|
+
* Deliver every message waiting in the emulated transport now (tests and
|
|
350
|
+
* tooling). `advanceMs` also runs background processing due within that time.
|
|
351
|
+
*/
|
|
352
|
+
declare function flushTransport(store: Store, advanceMs?: number): number;
|
|
353
|
+
|
|
354
|
+
export { microsoftPlugin as default, flushTransport, getMicrosoftStore, mapIdentity, microsoftModules, microsoftPlugin, seedFromConfig };
|
|
355
|
+
export type { MicrosoftOAuthClient, MicrosoftSeedConfig, MicrosoftSeedMessage, MicrosoftSeedUser, MicrosoftStore, MicrosoftUser, SharePointColumnSeed, SharePointListSeed, SharePointSeedConfig, SharePointSiteSeed };
|