@powerportalspro/core 5.0.0-beta.3 → 5.0.0
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/dist/index.cjs +334 -39
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +943 -182
- package/dist/index.d.ts +943 -182
- package/dist/index.js +333 -40
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* URL builders for the framework's `/api/*` and UI endpoints.
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* The C# version uses Pascal-cased property names (`Routes.Api.Auth.Login`); this
|
|
7
|
-
* port uses camelCase per JS convention (`Routes.api.auth.login`). Path-segment
|
|
8
|
-
* encoding matches the C# `Uri.EscapeDataString` calls verbatim — segments that the
|
|
9
|
-
* C# leaves unencoded (table logical names, culture codes) are also unencoded here.
|
|
2
|
+
* URL builders for the framework's `/api/*` and UI endpoints. Path segments
|
|
3
|
+
* use `encodeURIComponent` where they're parameterised (record ids, view ids,
|
|
4
|
+
* table logical names that may contain user-supplied characters); known-safe
|
|
5
|
+
* segments (culture codes, fixed enum values) are unencoded.
|
|
10
6
|
*/
|
|
11
7
|
/**
|
|
12
8
|
* Static accessors for the framework's API and UI route groups. Mirrors the C#
|
|
@@ -28,14 +24,39 @@ declare const Routes: {
|
|
|
28
24
|
readonly retrieveLocalizedStrings: "/api/localizedStrings/{culture}";
|
|
29
25
|
/** Template — POST a batch of OrganizationRequest payloads. */
|
|
30
26
|
readonly executeMultiple: "/api/executeMultiple";
|
|
31
|
-
/**
|
|
32
|
-
|
|
27
|
+
/**
|
|
28
|
+
* GET — organization-wide settings sourced from the Dataverse `organization` record:
|
|
29
|
+
* default currency plus file-upload constraints (blocked extensions, max upload size).
|
|
30
|
+
* Replaces the legacy `/api/environmentFileSettings` endpoint.
|
|
31
|
+
*/
|
|
32
|
+
readonly organizationSettings: "/api/organizationSettings";
|
|
33
33
|
/** POST — clear all server-side caches. SystemAdmin-only. */
|
|
34
34
|
readonly clearAllCaches: "/api/caches/clear";
|
|
35
35
|
/** GET — every server-side cache name. SystemAdmin-only. */
|
|
36
36
|
readonly cacheNames: "/api/caches";
|
|
37
37
|
/** Template — POST to clear a single named cache. SystemAdmin-only. */
|
|
38
38
|
readonly clearCache: "/api/caches/{cacheName}/clear";
|
|
39
|
+
/**
|
|
40
|
+
* GET — admin localization overview: configured sources plus the per-source
|
|
41
|
+
* load records produced by the most recent warmup. SystemAdmin-only. Backs
|
|
42
|
+
* the LocalizationAdmin component (Blazor-only today; React mirror TBD).
|
|
43
|
+
*/
|
|
44
|
+
readonly localizationOverview: "/api/localizations/overview";
|
|
45
|
+
/**
|
|
46
|
+
* GET — JSON of the keys one source contributed to one culture during the most
|
|
47
|
+
* recent warmup. `sourceId` + `culture` are query-string parameters (a sourceId
|
|
48
|
+
* can contain colons/slashes, so they're not path segments). SystemAdmin-only.
|
|
49
|
+
*/
|
|
50
|
+
readonly localizationSourceDownload: "/api/localizations/sources/download";
|
|
51
|
+
/**
|
|
52
|
+
* GET — JSON of every key the cache will serve for a culture (post-merge winning
|
|
53
|
+
* values across all sources). `culture` is a query-string parameter. SystemAdmin-only.
|
|
54
|
+
*/
|
|
55
|
+
readonly localizationMergedDownload: "/api/localizations/merged/download";
|
|
56
|
+
/** GET — whether translation is configured, the managed solution is installed, and the candidate target languages. SystemAdmin-only. */
|
|
57
|
+
readonly localizationTranslationAvailability: "/api/localizations/translation/availability";
|
|
58
|
+
/** POST — translate an uploaded localization file into one or more target languages. SystemAdmin-only. */
|
|
59
|
+
readonly localizationTranslate: "/api/localizations/translation";
|
|
39
60
|
/** Template — GET file metadata + (optionally) content for one record/column. */
|
|
40
61
|
readonly retrieveFileInfo: "/api/files/{tableLogicalName}/{recordId}/{columnName}";
|
|
41
62
|
/** Template — POST record ids; returns file info + content for many records of one column. */
|
|
@@ -71,10 +92,10 @@ declare const Routes: {
|
|
|
71
92
|
readonly getRetrieveTableMetadataRoute: (tableLogicalName: string) => string;
|
|
72
93
|
/**
|
|
73
94
|
* Resolved URL for retrieving the current user's combined
|
|
74
|
-
* `TableSecurityPermission` mask for a single table.
|
|
75
|
-
* server-side `ITablePermissionCache.GetPermissionForUserAsync`
|
|
76
|
-
*
|
|
77
|
-
*
|
|
95
|
+
* `TableSecurityPermission` mask for a single table. Routes through
|
|
96
|
+
* the server-side `ITablePermissionCache.GetPermissionForUserAsync`
|
|
97
|
+
* lookup so the client can read the table-level answer without firing
|
|
98
|
+
* a grid query.
|
|
78
99
|
* `GridDataResponse.tablePermissions` carries the same value when a
|
|
79
100
|
* grid query happens to be in flight; this endpoint covers the other
|
|
80
101
|
* cases (custom toolbars, conditional UI elsewhere on the page).
|
|
@@ -158,8 +179,8 @@ declare const Routes: {
|
|
|
158
179
|
readonly confirmEmail: "/api/auth/confirm-email";
|
|
159
180
|
/** POST — send a fresh confirmation email. */
|
|
160
181
|
readonly resendEmailConfirmation: "/api/auth/resend-email-confirmation";
|
|
161
|
-
/** GET —
|
|
162
|
-
readonly
|
|
182
|
+
/** GET — anonymous auth options for the sign-in UI: the local-accounts flag plus the configured external (OAuth) providers. */
|
|
183
|
+
readonly options: "/api/auth/options";
|
|
163
184
|
/** GET — kicks off the OAuth flow for the named external provider. Full-page navigate, do not fetch. */
|
|
164
185
|
readonly externalLogin: "/api/auth/external-login";
|
|
165
186
|
/** GET — snapshot the in-flight external-login cookie set by the OAuth callback. */
|
|
@@ -265,8 +286,8 @@ interface PowerPortalsProErrorInit {
|
|
|
265
286
|
/**
|
|
266
287
|
* Base error thrown by `Transport` for every non-2xx response. Subclasses
|
|
267
288
|
* (`UnauthorizedAccessError`, `ArgumentError`, `ArgumentNullError`,
|
|
268
|
-
* `InvalidOperationError`) are constructed when the server's
|
|
269
|
-
* extension matches a known CLR type
|
|
289
|
+
* `InvalidOperationError`) are constructed when the server's
|
|
290
|
+
* `exceptionType` extension matches a known CLR type.
|
|
270
291
|
*/
|
|
271
292
|
declare class PowerPortalsProError extends Error {
|
|
272
293
|
readonly status: number;
|
|
@@ -326,19 +347,19 @@ interface RequestOptions {
|
|
|
326
347
|
headers?: Record<string, string>;
|
|
327
348
|
}
|
|
328
349
|
/**
|
|
329
|
-
* Thin `fetch` wrapper that owns the cross-cutting concerns the
|
|
330
|
-
*
|
|
350
|
+
* Thin `fetch` wrapper that owns the cross-cutting concerns of the typed
|
|
351
|
+
* client:
|
|
331
352
|
*
|
|
332
|
-
* 1. **Cookie auth.** Always sends `credentials: 'include'` so the ASP.NET
|
|
333
|
-
*
|
|
353
|
+
* 1. **Cookie auth.** Always sends `credentials: 'include'` so the ASP.NET
|
|
354
|
+
* Identity cookie reaches `/api/*`.
|
|
334
355
|
* 2. **JSON in / out.** Serializes the body as JSON (when present) and parses the
|
|
335
|
-
*
|
|
356
|
+
* response as JSON. Sets the `Content-Type` and `Accept` headers accordingly.
|
|
336
357
|
* 3. **Typed-error rehydration.** On non-2xx responses with `application/problem+json`,
|
|
337
|
-
*
|
|
338
|
-
*
|
|
339
|
-
*
|
|
340
|
-
*
|
|
341
|
-
*
|
|
358
|
+
* maps the body's `exceptionType` extension to the matching
|
|
359
|
+
* {@link PowerPortalsProError} subclass — `UnauthorizedAccessError`,
|
|
360
|
+
* `ArgumentError`, `ArgumentNullError`, `InvalidOperationError`, or the base type
|
|
361
|
+
* for unrecognized CLR exceptions. Non-problem-json failures throw the base type
|
|
362
|
+
* with the raw response text as the detail.
|
|
342
363
|
*
|
|
343
364
|
* `Transport` is an implementation detail of the higher-level clients
|
|
344
365
|
* (`AuthClient`, etc.) and is rarely consumed directly. It's exported so advanced
|
|
@@ -822,7 +843,7 @@ interface paths {
|
|
|
822
843
|
patch?: never;
|
|
823
844
|
trace?: never;
|
|
824
845
|
};
|
|
825
|
-
"/api/
|
|
846
|
+
"/api/organizationSettings": {
|
|
826
847
|
parameters: {
|
|
827
848
|
query?: never;
|
|
828
849
|
header?: never;
|
|
@@ -844,7 +865,7 @@ interface paths {
|
|
|
844
865
|
[name: string]: unknown;
|
|
845
866
|
};
|
|
846
867
|
content: {
|
|
847
|
-
"application/json": components["schemas"]["
|
|
868
|
+
"application/json": components["schemas"]["OrganizationSettings"];
|
|
848
869
|
};
|
|
849
870
|
};
|
|
850
871
|
};
|
|
@@ -1175,6 +1196,186 @@ interface paths {
|
|
|
1175
1196
|
patch?: never;
|
|
1176
1197
|
trace?: never;
|
|
1177
1198
|
};
|
|
1199
|
+
"/api/localizations/overview": {
|
|
1200
|
+
parameters: {
|
|
1201
|
+
query?: never;
|
|
1202
|
+
header?: never;
|
|
1203
|
+
path?: never;
|
|
1204
|
+
cookie?: never;
|
|
1205
|
+
};
|
|
1206
|
+
get: {
|
|
1207
|
+
parameters: {
|
|
1208
|
+
query?: never;
|
|
1209
|
+
header?: never;
|
|
1210
|
+
path?: never;
|
|
1211
|
+
cookie?: never;
|
|
1212
|
+
};
|
|
1213
|
+
requestBody?: never;
|
|
1214
|
+
responses: {
|
|
1215
|
+
/** @description OK */
|
|
1216
|
+
200: {
|
|
1217
|
+
headers: {
|
|
1218
|
+
[name: string]: unknown;
|
|
1219
|
+
};
|
|
1220
|
+
content: {
|
|
1221
|
+
"application/json": components["schemas"]["LocalizationOverview"];
|
|
1222
|
+
};
|
|
1223
|
+
};
|
|
1224
|
+
};
|
|
1225
|
+
};
|
|
1226
|
+
put?: never;
|
|
1227
|
+
post?: never;
|
|
1228
|
+
delete?: never;
|
|
1229
|
+
options?: never;
|
|
1230
|
+
head?: never;
|
|
1231
|
+
patch?: never;
|
|
1232
|
+
trace?: never;
|
|
1233
|
+
};
|
|
1234
|
+
"/api/localizations/sources/download": {
|
|
1235
|
+
parameters: {
|
|
1236
|
+
query?: never;
|
|
1237
|
+
header?: never;
|
|
1238
|
+
path?: never;
|
|
1239
|
+
cookie?: never;
|
|
1240
|
+
};
|
|
1241
|
+
get: {
|
|
1242
|
+
parameters: {
|
|
1243
|
+
query: {
|
|
1244
|
+
sourceId: string;
|
|
1245
|
+
culture: string;
|
|
1246
|
+
};
|
|
1247
|
+
header?: never;
|
|
1248
|
+
path?: never;
|
|
1249
|
+
cookie?: never;
|
|
1250
|
+
};
|
|
1251
|
+
requestBody?: never;
|
|
1252
|
+
responses: {
|
|
1253
|
+
/** @description OK */
|
|
1254
|
+
200: {
|
|
1255
|
+
headers: {
|
|
1256
|
+
[name: string]: unknown;
|
|
1257
|
+
};
|
|
1258
|
+
content?: never;
|
|
1259
|
+
};
|
|
1260
|
+
};
|
|
1261
|
+
};
|
|
1262
|
+
put?: never;
|
|
1263
|
+
post?: never;
|
|
1264
|
+
delete?: never;
|
|
1265
|
+
options?: never;
|
|
1266
|
+
head?: never;
|
|
1267
|
+
patch?: never;
|
|
1268
|
+
trace?: never;
|
|
1269
|
+
};
|
|
1270
|
+
"/api/localizations/merged/download": {
|
|
1271
|
+
parameters: {
|
|
1272
|
+
query?: never;
|
|
1273
|
+
header?: never;
|
|
1274
|
+
path?: never;
|
|
1275
|
+
cookie?: never;
|
|
1276
|
+
};
|
|
1277
|
+
get: {
|
|
1278
|
+
parameters: {
|
|
1279
|
+
query: {
|
|
1280
|
+
culture: string;
|
|
1281
|
+
};
|
|
1282
|
+
header?: never;
|
|
1283
|
+
path?: never;
|
|
1284
|
+
cookie?: never;
|
|
1285
|
+
};
|
|
1286
|
+
requestBody?: never;
|
|
1287
|
+
responses: {
|
|
1288
|
+
/** @description OK */
|
|
1289
|
+
200: {
|
|
1290
|
+
headers: {
|
|
1291
|
+
[name: string]: unknown;
|
|
1292
|
+
};
|
|
1293
|
+
content?: never;
|
|
1294
|
+
};
|
|
1295
|
+
};
|
|
1296
|
+
};
|
|
1297
|
+
put?: never;
|
|
1298
|
+
post?: never;
|
|
1299
|
+
delete?: never;
|
|
1300
|
+
options?: never;
|
|
1301
|
+
head?: never;
|
|
1302
|
+
patch?: never;
|
|
1303
|
+
trace?: never;
|
|
1304
|
+
};
|
|
1305
|
+
"/api/localizations/translation/availability": {
|
|
1306
|
+
parameters: {
|
|
1307
|
+
query?: never;
|
|
1308
|
+
header?: never;
|
|
1309
|
+
path?: never;
|
|
1310
|
+
cookie?: never;
|
|
1311
|
+
};
|
|
1312
|
+
get: {
|
|
1313
|
+
parameters: {
|
|
1314
|
+
query?: never;
|
|
1315
|
+
header?: never;
|
|
1316
|
+
path?: never;
|
|
1317
|
+
cookie?: never;
|
|
1318
|
+
};
|
|
1319
|
+
requestBody?: never;
|
|
1320
|
+
responses: {
|
|
1321
|
+
/** @description OK */
|
|
1322
|
+
200: {
|
|
1323
|
+
headers: {
|
|
1324
|
+
[name: string]: unknown;
|
|
1325
|
+
};
|
|
1326
|
+
content: {
|
|
1327
|
+
"application/json": components["schemas"]["TranslationAvailability"];
|
|
1328
|
+
};
|
|
1329
|
+
};
|
|
1330
|
+
};
|
|
1331
|
+
};
|
|
1332
|
+
put?: never;
|
|
1333
|
+
post?: never;
|
|
1334
|
+
delete?: never;
|
|
1335
|
+
options?: never;
|
|
1336
|
+
head?: never;
|
|
1337
|
+
patch?: never;
|
|
1338
|
+
trace?: never;
|
|
1339
|
+
};
|
|
1340
|
+
"/api/localizations/translation": {
|
|
1341
|
+
parameters: {
|
|
1342
|
+
query?: never;
|
|
1343
|
+
header?: never;
|
|
1344
|
+
path?: never;
|
|
1345
|
+
cookie?: never;
|
|
1346
|
+
};
|
|
1347
|
+
get?: never;
|
|
1348
|
+
put?: never;
|
|
1349
|
+
post: {
|
|
1350
|
+
parameters: {
|
|
1351
|
+
query?: never;
|
|
1352
|
+
header?: never;
|
|
1353
|
+
path?: never;
|
|
1354
|
+
cookie?: never;
|
|
1355
|
+
};
|
|
1356
|
+
requestBody: {
|
|
1357
|
+
content: {
|
|
1358
|
+
"application/json": components["schemas"]["TranslationRequest"];
|
|
1359
|
+
};
|
|
1360
|
+
};
|
|
1361
|
+
responses: {
|
|
1362
|
+
/** @description OK */
|
|
1363
|
+
200: {
|
|
1364
|
+
headers: {
|
|
1365
|
+
[name: string]: unknown;
|
|
1366
|
+
};
|
|
1367
|
+
content: {
|
|
1368
|
+
"application/json": components["schemas"]["TranslationResult"];
|
|
1369
|
+
};
|
|
1370
|
+
};
|
|
1371
|
+
};
|
|
1372
|
+
};
|
|
1373
|
+
delete?: never;
|
|
1374
|
+
options?: never;
|
|
1375
|
+
head?: never;
|
|
1376
|
+
patch?: never;
|
|
1377
|
+
trace?: never;
|
|
1378
|
+
};
|
|
1178
1379
|
"/api/auth/external-login/remember-choice": {
|
|
1179
1380
|
parameters: {
|
|
1180
1381
|
query?: never;
|
|
@@ -1185,20 +1386,19 @@ interface paths {
|
|
|
1185
1386
|
/**
|
|
1186
1387
|
* Writes the chooser's "remember my choice" cookie for providerKey
|
|
1187
1388
|
* and redirects to returnUrl. A trampoline used by server-rendered
|
|
1188
|
-
* ExternalLogin pages —
|
|
1189
|
-
* has already flushed
|
|
1190
|
-
*
|
|
1191
|
-
*
|
|
1192
|
-
*
|
|
1193
|
-
* in `/external-login/select`.
|
|
1389
|
+
* ExternalLogin pages — by the time the user clicks the chooser button the page's
|
|
1390
|
+
* HTTP response has already flushed, so a direct cookie write throws "Headers are
|
|
1391
|
+
* read-only, response has already started." Hitting this endpoint via a top-level
|
|
1392
|
+
* navigation creates a fresh response where headers are still writable. SPA flows
|
|
1393
|
+
* skip this entirely — they write the cookie inline in `/external-login/select`.
|
|
1194
1394
|
*
|
|
1195
1395
|
* Anonymous on purpose: the cookie value is just a UI preference (per-provider-key
|
|
1196
1396
|
* pick), nothing security-sensitive. returnUrl is validated as a
|
|
1197
1397
|
* local URL to avoid open-redirect.
|
|
1198
1398
|
* `internal` so PowerPortalsProWebServer.UsePowerPortalsProWebServer
|
|
1199
1399
|
* can also wire it up — server-rendered hosts that don't call
|
|
1200
|
-
*
|
|
1201
|
-
* since their ExternalLogin
|
|
1400
|
+
* IEndpointRouteBuilder AuthEndpoints.MapAuthEndpoints<TUser>(WebApplication app) still need this trampoline,
|
|
1401
|
+
* since their server-rendered ExternalLogin page is the consumer of the redirect.
|
|
1202
1402
|
*/
|
|
1203
1403
|
get: {
|
|
1204
1404
|
parameters: {
|
|
@@ -1774,7 +1974,7 @@ interface paths {
|
|
|
1774
1974
|
patch?: never;
|
|
1775
1975
|
trace?: never;
|
|
1776
1976
|
};
|
|
1777
|
-
"/api/auth/
|
|
1977
|
+
"/api/auth/options": {
|
|
1778
1978
|
parameters: {
|
|
1779
1979
|
query?: never;
|
|
1780
1980
|
header?: never;
|
|
@@ -1796,7 +1996,7 @@ interface paths {
|
|
|
1796
1996
|
[name: string]: unknown;
|
|
1797
1997
|
};
|
|
1798
1998
|
content: {
|
|
1799
|
-
"application/json": components["schemas"]["
|
|
1999
|
+
"application/json": components["schemas"]["AuthOptionsResponse"];
|
|
1800
2000
|
};
|
|
1801
2001
|
};
|
|
1802
2002
|
};
|
|
@@ -2763,7 +2963,7 @@ interface components {
|
|
|
2763
2963
|
AggregateType: 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
2764
2964
|
/**
|
|
2765
2965
|
* @description Compression format for the archive produced by
|
|
2766
|
-
*
|
|
2966
|
+
* `IPowerPortalsProService.CreateFileArchiveAsync`.
|
|
2767
2967
|
* Currently only ArchiveFormat.Zip is supported; the enum is open-ended so
|
|
2768
2968
|
* future formats can land without breaking the wire schema.
|
|
2769
2969
|
* @enum {integer}
|
|
@@ -2791,6 +2991,29 @@ interface components {
|
|
|
2791
2991
|
*/
|
|
2792
2992
|
authenticatorUri?: string;
|
|
2793
2993
|
};
|
|
2994
|
+
/**
|
|
2995
|
+
* @description Auth configuration the SPA needs before rendering the sign-in experience, returned by
|
|
2996
|
+
* `GET /api/auth/options`. Anonymous-safe — the login page calls it on first paint to
|
|
2997
|
+
* decide whether to show the local email/password form (plus the register / password-reset
|
|
2998
|
+
* links) and which external-provider buttons to render.
|
|
2999
|
+
*/
|
|
3000
|
+
AuthOptionsResponse: {
|
|
3001
|
+
/**
|
|
3002
|
+
* @description `true` when the portal accepts local username/password accounts (registration,
|
|
3003
|
+
* password sign-in, and password reset). `false` for internal-only portals where
|
|
3004
|
+
* users authenticate exclusively through an external provider (Microsoft/Entra) — the
|
|
3005
|
+
* SPA hides the local form and the register / forgot-password affordances. Defaults to
|
|
3006
|
+
* `true` so hosts that don't configure it keep the full local-account experience.
|
|
3007
|
+
*/
|
|
3008
|
+
localAccountsEnabled?: boolean;
|
|
3009
|
+
/**
|
|
3010
|
+
* @description The configured external (OAuth) login providers — the auth schemes the host registered
|
|
3011
|
+
* via `AddAuthentication().AddMicrosoftAccount()` / `.AddGoogle()` / etc., minus
|
|
3012
|
+
* the cookie / 2FA / Identity-internal schemes. Drives the login page's provider buttons
|
|
3013
|
+
* and the manage-external-logins "add a provider" list.
|
|
3014
|
+
*/
|
|
3015
|
+
externalProviders?: components["schemas"]["ExternalLoginProviderInfo"][];
|
|
3016
|
+
};
|
|
2794
3017
|
/** @description One row of Task<IReadOnlyList<CacheClearResult>> ICacheManager.ClearAllAsync(CancellationToken cancellationToken = default(CancellationToken))'s report. */
|
|
2795
3018
|
CacheClearResult: {
|
|
2796
3019
|
/** @description Cache name (matches string IClearableCache.Name). */
|
|
@@ -2825,8 +3048,8 @@ interface components {
|
|
|
2825
3048
|
};
|
|
2826
3049
|
/**
|
|
2827
3050
|
* @description Outcome of `POST /api/auth/manage/email/change`. Members carry explicit
|
|
2828
|
-
* integer values so
|
|
2829
|
-
*
|
|
3051
|
+
* integer values so the JSON wire form is a stable contract across
|
|
3052
|
+
* reorderings.
|
|
2830
3053
|
* @enum {integer}
|
|
2831
3054
|
*/
|
|
2832
3055
|
ChangeEmailResult: 0 | 1;
|
|
@@ -2854,8 +3077,8 @@ interface components {
|
|
|
2854
3077
|
};
|
|
2855
3078
|
/**
|
|
2856
3079
|
* @description Outcome of `POST /api/auth/manage/password/change`. Members carry
|
|
2857
|
-
* explicit integer values so
|
|
2858
|
-
*
|
|
3080
|
+
* explicit integer values so the JSON wire form is a stable contract
|
|
3081
|
+
* across reorderings.
|
|
2859
3082
|
* @enum {integer}
|
|
2860
3083
|
*/
|
|
2861
3084
|
ChangePasswordResult: 0 | 1 | 2;
|
|
@@ -2892,7 +3115,7 @@ interface components {
|
|
|
2892
3115
|
* @description Fully-shaped chart input: category labels plus one or more datasets.
|
|
2893
3116
|
* Returned by `POST /api/charts/data` and consumed by the
|
|
2894
3117
|
* `<Chart>` / `<FluentUIChart>` / `<DataverseChart>`
|
|
2895
|
-
* components
|
|
3118
|
+
* components.
|
|
2896
3119
|
*/
|
|
2897
3120
|
ChartData: {
|
|
2898
3121
|
/** @description Category labels rendered along the primary axis. */
|
|
@@ -2929,7 +3152,7 @@ interface components {
|
|
|
2929
3152
|
/**
|
|
2930
3153
|
* @description Result column name to read chart labels (X axis) from. Required
|
|
2931
3154
|
* for Guid? ChartDataRequest.ViewId and string? ChartDataRequest.FetchXml modes;
|
|
2932
|
-
* derived from
|
|
3155
|
+
* derived from ChartGrouping AggregateChartConfig.GroupBy
|
|
2933
3156
|
* when AggregateChartConfig? ChartDataRequest.Aggregate is set.
|
|
2934
3157
|
*/
|
|
2935
3158
|
labelColumn?: null | string;
|
|
@@ -2944,8 +3167,8 @@ interface components {
|
|
|
2944
3167
|
* @description Optional result column name used to split rows into multiple
|
|
2945
3168
|
* datasets. When set, rows sharing the same series value form one
|
|
2946
3169
|
* dataset. For AggregateChartConfig? ChartDataRequest.Aggregate mode, derived from
|
|
2947
|
-
*
|
|
2948
|
-
*
|
|
3170
|
+
* ChartGrouping? AggregateChartConfig.Series or implied by its
|
|
3171
|
+
* ChartDateGrouping ChartGrouping.DateGrouping.
|
|
2949
3172
|
*/
|
|
2950
3173
|
seriesColumn?: null | string;
|
|
2951
3174
|
/**
|
|
@@ -3473,7 +3696,7 @@ interface components {
|
|
|
3473
3696
|
};
|
|
3474
3697
|
/**
|
|
3475
3698
|
* @description A sort specification — a column to sort by and the direction. Shared
|
|
3476
|
-
* across the framework:
|
|
3699
|
+
* across the framework: grid UIs use it for sort state,
|
|
3477
3700
|
* `IFetchXmlQueryComposer` uses it for FetchXML composition, and
|
|
3478
3701
|
* the `POST /api/grids/data` endpoint receives it as part of the
|
|
3479
3702
|
* GridDataRequest body. string ColumnSort.ColumnName may
|
|
@@ -3713,8 +3936,8 @@ interface components {
|
|
|
3713
3936
|
};
|
|
3714
3937
|
/**
|
|
3715
3938
|
* @description Outcome of `POST /api/auth/external-login/confirm`. Members carry
|
|
3716
|
-
* explicit integer values so
|
|
3717
|
-
*
|
|
3939
|
+
* explicit integer values so the JSON wire form is a stable contract
|
|
3940
|
+
* across reorderings.
|
|
3718
3941
|
* @enum {integer}
|
|
3719
3942
|
*/
|
|
3720
3943
|
ConfirmExternalLoginResult: 0 | 1 | 2 | 3;
|
|
@@ -3760,6 +3983,52 @@ interface components {
|
|
|
3760
3983
|
[key: string]: components["schemas"]["ColumnValueBase"];
|
|
3761
3984
|
};
|
|
3762
3985
|
};
|
|
3986
|
+
/**
|
|
3987
|
+
* @description A Dataverse `transactioncurrency` record, denormalized for client consumption.
|
|
3988
|
+
* Populated server-side onto Currency? TableRecord.Currency whenever a record carries
|
|
3989
|
+
* at least one money column, so currency-aware editors (`MoneyEdit` et al.) can
|
|
3990
|
+
* render the correct symbol without a separate round-trip.
|
|
3991
|
+
*/
|
|
3992
|
+
Currency: {
|
|
3993
|
+
/**
|
|
3994
|
+
* Format: uuid
|
|
3995
|
+
* @description The `transactioncurrencyid` primary key. Matches the object? ColumnValueBase.Value
|
|
3996
|
+
* stored against the record's `transactioncurrencyid` column when present.
|
|
3997
|
+
*/
|
|
3998
|
+
id: string;
|
|
3999
|
+
/**
|
|
4000
|
+
* @description The ISO 4217 three-letter code (e.g. `USD`, `EUR`, `JPY`). Read from
|
|
4001
|
+
* `isocurrencycode`. Useful for ARIA labels and culture-aware formatting fallbacks.
|
|
4002
|
+
*/
|
|
4003
|
+
isoCode: string;
|
|
4004
|
+
/**
|
|
4005
|
+
* @description The display symbol Dataverse stores in `currencysymbol` — up to 5 characters,
|
|
4006
|
+
* typically a single Unicode glyph (`$`, `€`, `£`, `¥`) but
|
|
4007
|
+
* occasionally a short string for currencies that lack a single-glyph form
|
|
4008
|
+
* (`Fr`, `kr`, `R$`) or org-specific custom values. Rendered verbatim
|
|
4009
|
+
* in the editor — Unicode + font fallback covers every glyph; no SVG sidecar.
|
|
4010
|
+
*/
|
|
4011
|
+
symbol: string;
|
|
4012
|
+
/**
|
|
4013
|
+
* @description The localized currency name from `currencyname` (e.g. `US Dollar`). Used
|
|
4014
|
+
* in pickers, tooltips, and accessibility text.
|
|
4015
|
+
*/
|
|
4016
|
+
name: string;
|
|
4017
|
+
/**
|
|
4018
|
+
* Format: int32
|
|
4019
|
+
* @description Decimal places to display, sourced from `currencyprecision`. Falls back to 2
|
|
4020
|
+
* when Dataverse leaves the field null. Independent of int MoneyMetadata.Precision,
|
|
4021
|
+
* which is the column-level precision; this is the currency-level default.
|
|
4022
|
+
*/
|
|
4023
|
+
precision?: number | string;
|
|
4024
|
+
/**
|
|
4025
|
+
* Format: double
|
|
4026
|
+
* @description Exchange rate against the org's base currency, from `exchangerate`. `1.0`
|
|
4027
|
+
* for the base currency itself. Surfaced primarily for diagnostic / advanced display
|
|
4028
|
+
* scenarios — editors don't perform conversion locally.
|
|
4029
|
+
*/
|
|
4030
|
+
exchangeRate?: number | string;
|
|
4031
|
+
};
|
|
3763
4032
|
/**
|
|
3764
4033
|
* @description Snapshot of the signed-in user's available sign-in paths, returned by
|
|
3765
4034
|
* `GET /api/auth/manage/login-info`. Combines the linked external logins
|
|
@@ -3903,7 +4172,7 @@ interface components {
|
|
|
3903
4172
|
/**
|
|
3904
4173
|
* @description The user's current password — required when the account has a local
|
|
3905
4174
|
* password set, ignored otherwise (external-login-only accounts). Surfacing
|
|
3906
|
-
* the requirement up-front via
|
|
4175
|
+
* the requirement up-front via DeletePersonalDataResult.RequireLocalPassword
|
|
3907
4176
|
* keeps the form UX correct without a separate "is password set" probe.
|
|
3908
4177
|
*/
|
|
3909
4178
|
password?: null | string;
|
|
@@ -3920,8 +4189,8 @@ interface components {
|
|
|
3920
4189
|
};
|
|
3921
4190
|
/**
|
|
3922
4191
|
* @description Outcome of `POST /api/auth/manage/personal-data/delete`. Members carry
|
|
3923
|
-
* explicit integer values so
|
|
3924
|
-
*
|
|
4192
|
+
* explicit integer values so the JSON wire form is a stable contract
|
|
4193
|
+
* across reorderings.
|
|
3925
4194
|
* @enum {integer}
|
|
3926
4195
|
*/
|
|
3927
4196
|
DeletePersonalDataResult: 0 | 1 | 2;
|
|
@@ -3944,28 +4213,6 @@ interface components {
|
|
|
3944
4213
|
success?: boolean;
|
|
3945
4214
|
};
|
|
3946
4215
|
EntityRole: number;
|
|
3947
|
-
/**
|
|
3948
|
-
* @description Environment-wide file upload constraints pulled from the Dataverse `organization`
|
|
3949
|
-
* record. Clients use these to mirror server-side enforcement (blocked extensions,
|
|
3950
|
-
* upload size ceiling) so users get a friendly client-side rejection instead of a
|
|
3951
|
-
* round-trip failure.
|
|
3952
|
-
*/
|
|
3953
|
-
EnvironmentFileSettings: {
|
|
3954
|
-
/**
|
|
3955
|
-
* @description Lowercase file extensions (without the leading dot) that Dataverse refuses to
|
|
3956
|
-
* accept as uploads — for example `"svg"`, `"exe"`, `"bat"`. Sourced
|
|
3957
|
-
* from the organization's `blockedattachments` setting (a semicolon-delimited
|
|
3958
|
-
* string in Dataverse, parsed and normalised here).
|
|
3959
|
-
*/
|
|
3960
|
-
blockedExtensions: string[];
|
|
3961
|
-
/**
|
|
3962
|
-
* Format: int64
|
|
3963
|
-
* @description Maximum upload size for file attachments and file-column payloads, in bytes.
|
|
3964
|
-
* Sourced from the organization's `maxuploadfilesize` setting. Dataverse stores
|
|
3965
|
-
* it as bytes; callers should compare directly against file byte length.
|
|
3966
|
-
*/
|
|
3967
|
-
maxUploadFileSizeInBytes: number | string;
|
|
3968
|
-
};
|
|
3969
4216
|
/**
|
|
3970
4217
|
* @description One option presented to the user when a single external sign-in matches
|
|
3971
4218
|
* both a Dataverse `systemuser` and a `contact`. Used by
|
|
@@ -3987,8 +4234,8 @@ interface components {
|
|
|
3987
4234
|
};
|
|
3988
4235
|
/**
|
|
3989
4236
|
* @description Which Dataverse table backs an external-login candidate. Members carry
|
|
3990
|
-
* explicit integer values so
|
|
3991
|
-
*
|
|
4237
|
+
* explicit integer values so the JSON wire form is a stable contract
|
|
4238
|
+
* across reorderings.
|
|
3992
4239
|
* @enum {integer}
|
|
3993
4240
|
*/
|
|
3994
4241
|
ExternalLoginCandidateKind: 0 | 1;
|
|
@@ -4015,9 +4262,9 @@ interface components {
|
|
|
4015
4262
|
providerDisplayName?: string;
|
|
4016
4263
|
};
|
|
4017
4264
|
/**
|
|
4018
|
-
* @description Describes one configured external (OAuth) login provider, surfaced
|
|
4019
|
-
* `GET /api/auth/
|
|
4020
|
-
* without hardcoding the list.
|
|
4265
|
+
* @description Describes one configured external (OAuth) login provider, surfaced via
|
|
4266
|
+
* `GET /api/auth/options` (IReadOnlyList<ExternalLoginProviderInfo> AuthOptionsResponse.ExternalProviders) so SPAs
|
|
4267
|
+
* can render provider buttons without hardcoding the list.
|
|
4021
4268
|
*/
|
|
4022
4269
|
ExternalLoginProviderInfo: {
|
|
4023
4270
|
/**
|
|
@@ -4038,8 +4285,9 @@ interface components {
|
|
|
4038
4285
|
* @description Returned by `GET /api/auth/manage/external-logins`. Lists the external
|
|
4039
4286
|
* logins currently linked to the signed-in user.
|
|
4040
4287
|
*
|
|
4041
|
-
* To render an "add a new external login" picker, the client should
|
|
4042
|
-
* `GET /api/auth/
|
|
4288
|
+
* To render an "add a new external login" picker, the client should read the providers
|
|
4289
|
+
* from `GET /api/auth/options` (IReadOnlyList<ExternalLoginProviderInfo> AuthOptionsResponse.ExternalProviders) and
|
|
4290
|
+
* subtract anything already in
|
|
4043
4291
|
* IReadOnlyList<ExternalLoginInfo> ExternalLoginsResponse.CurrentLogins. To decide whether unlinking a given external
|
|
4044
4292
|
* login would lock the user out (no local password AND only one external
|
|
4045
4293
|
* login linked), call `GET /api/auth/manage/login-info` for the
|
|
@@ -4101,26 +4349,34 @@ interface components {
|
|
|
4101
4349
|
};
|
|
4102
4350
|
/**
|
|
4103
4351
|
* @description Body of `POST /api/grids/data`. Lets clients run a paged,
|
|
4104
|
-
* searchable, sortable query against
|
|
4105
|
-
* (Guid? GridDataRequest.ViewId)
|
|
4106
|
-
* (string? GridDataRequest.FetchXml)
|
|
4352
|
+
* searchable, sortable query against a stored Dataverse view
|
|
4353
|
+
* (Guid? GridDataRequest.ViewId), a caller-supplied FetchXML
|
|
4354
|
+
* (string? GridDataRequest.FetchXml), or both — in which case the FetchXML is the
|
|
4355
|
+
* query and the Guid? GridDataRequest.ViewId supplies the view-definition identity
|
|
4356
|
+
* used to resolve view-specific localized column titles. At least one of
|
|
4357
|
+
* the two must be supplied. Server composes the final FetchXML via the
|
|
4107
4358
|
* shared `IFetchXmlQueryComposer` so the search / sort / paging
|
|
4108
|
-
* semantics
|
|
4359
|
+
* semantics are consistent across every client of the endpoint.
|
|
4109
4360
|
*/
|
|
4110
4361
|
GridDataRequest: {
|
|
4111
4362
|
/**
|
|
4112
4363
|
* Format: uuid
|
|
4113
|
-
* @description Stored Dataverse view to use as the base query.
|
|
4114
|
-
* view's FetchXML and column list from
|
|
4115
|
-
*
|
|
4116
|
-
*
|
|
4364
|
+
* @description Stored Dataverse view to use as the base query. When supplied alone,
|
|
4365
|
+
* the server loads the view's FetchXML and column list from
|
|
4366
|
+
* `IViewMetadataCache`. When supplied alongside string? GridDataRequest.FetchXml,
|
|
4367
|
+
* the FetchXML drives the query and this id is used only as the
|
|
4368
|
+
* view-definition identity for view-specific localized column-title
|
|
4369
|
+
* resolution (`tables.{table}.views.{id}.columns.*`) — no savedquery
|
|
4370
|
+
* is loaded. At least one of Guid? GridDataRequest.ViewId / string? GridDataRequest.FetchXml
|
|
4371
|
+
* must be supplied.
|
|
4117
4372
|
*/
|
|
4118
4373
|
viewId?: null | string;
|
|
4119
4374
|
/**
|
|
4120
4375
|
* @description Caller-supplied FetchXML used as the base query. Useful for
|
|
4121
4376
|
* custom (in-memory) views, dynamic queries assembled by consumer
|
|
4122
|
-
* code, or lookup-style minimal-fetch shapes.
|
|
4123
|
-
*
|
|
4377
|
+
* code, or lookup-style minimal-fetch shapes. May be combined with
|
|
4378
|
+
* Guid? GridDataRequest.ViewId (see its docs) to give an in-memory view a
|
|
4379
|
+
* stable identity for localization.
|
|
4124
4380
|
*/
|
|
4125
4381
|
fetchXml?: null | string;
|
|
4126
4382
|
/**
|
|
@@ -4167,7 +4423,7 @@ interface components {
|
|
|
4167
4423
|
* `<link-entity>`). Filters, sorts, and link-entity
|
|
4168
4424
|
* definitions on the base query are preserved.
|
|
4169
4425
|
* Use case: consumer-declared <GridColumn> children on
|
|
4170
|
-
* the
|
|
4426
|
+
* the grid component express the displayed column set
|
|
4171
4427
|
* authoritatively — this field forwards that intent down to the
|
|
4172
4428
|
* server so the resolved column list + fetched data line up with
|
|
4173
4429
|
* what the consumer asked to see, regardless of what the underlying
|
|
@@ -4233,9 +4489,9 @@ interface components {
|
|
|
4233
4489
|
* table scope (Create especially is table-scoped — it doesn't make sense
|
|
4234
4490
|
* per-row), so toolbar buttons can gate "New" / "Delete" off this one
|
|
4235
4491
|
* authoritative value instead of sampling the first row's mask as a
|
|
4236
|
-
* proxy. Computed via the
|
|
4237
|
-
* `ITablePermissionCache.GetPermissionForUserAsync`
|
|
4238
|
-
*
|
|
4492
|
+
* proxy. Computed via the cached
|
|
4493
|
+
* `ITablePermissionCache.GetPermissionForUserAsync` so every
|
|
4494
|
+
* caller reads the same answer.
|
|
4239
4495
|
*/
|
|
4240
4496
|
tablePermissions: components["schemas"]["TableSecurityPermission"];
|
|
4241
4497
|
/** @description Paging metadata describing the current page and how to request the next one. */
|
|
@@ -4265,9 +4521,9 @@ interface components {
|
|
|
4265
4521
|
* to predict it (or fetch the parent metadata just to pick a filter shape).
|
|
4266
4522
|
* The wire payload is identical for both directionalities.
|
|
4267
4523
|
*
|
|
4268
|
-
* Powers the
|
|
4269
|
-
* and
|
|
4270
|
-
*
|
|
4524
|
+
* Powers the `SubGrid` component ("rows related to this parent")
|
|
4525
|
+
* and `ManyToManyLookupEdit`'s initial-selection load. For the
|
|
4526
|
+
* lookup edit's autocomplete pool ("records not currently related to
|
|
4271
4527
|
* this parent"), set RelationshipFilterMode RelationshipFilter.Mode to
|
|
4272
4528
|
* RelationshipFilterMode.ExcludeExistingRecords — that path
|
|
4273
4529
|
* is many-to-many only and the server rejects it for one-to-many
|
|
@@ -4305,9 +4561,9 @@ interface components {
|
|
|
4305
4561
|
JoinOperator: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
|
|
4306
4562
|
/**
|
|
4307
4563
|
* @description Top-level manifest for the localization-bundle endpoints. Returned by
|
|
4308
|
-
*
|
|
4564
|
+
* string Localizations.Manifest; clients fetch this on
|
|
4309
4565
|
* startup to discover supported locales, then issue a follow-up call to
|
|
4310
|
-
*
|
|
4566
|
+
* string Localizations.Thumbprints for the resolved locale's
|
|
4311
4567
|
* thumbprints.
|
|
4312
4568
|
* Splitting "what locales exist" from "what thumbprints does locale X have"
|
|
4313
4569
|
* keeps the version response tiny (a handful of locale codes) regardless
|
|
@@ -4324,10 +4580,18 @@ interface components {
|
|
|
4324
4580
|
* culture first).
|
|
4325
4581
|
*/
|
|
4326
4582
|
supportedLocales: string[];
|
|
4583
|
+
/**
|
|
4584
|
+
* @description The configured UrlCultureStrategy as a
|
|
4585
|
+
* string (`PathPrefix` / `PathPrefixAll` / `CookieOnly`). Lets a SPA
|
|
4586
|
+
* client match the server's URL convention: prefix-based strategies drive locale from
|
|
4587
|
+
* the URL and navigate on switch, while `CookieOnly` switches in place via the
|
|
4588
|
+
* culture cookie without touching the URL.
|
|
4589
|
+
*/
|
|
4590
|
+
urlCultureStrategy: string;
|
|
4327
4591
|
};
|
|
4328
4592
|
/**
|
|
4329
4593
|
* @description Per-locale thumbprint manifest. Returned by
|
|
4330
|
-
*
|
|
4594
|
+
* string Localizations.Thumbprints for a single resolved
|
|
4331
4595
|
* locale; carries the content-derived thumbprint for every downloadable
|
|
4332
4596
|
* bundle a client could need at that locale.
|
|
4333
4597
|
* Per-resource thumbprints mean unchanged tables/views keep the same URL
|
|
@@ -4338,12 +4602,12 @@ interface components {
|
|
|
4338
4602
|
/**
|
|
4339
4603
|
* @description Thumbprint for the cross-cutting "default" bundle (everything outside
|
|
4340
4604
|
* `tables.*` / `choices.*`). Compose into the URL produced by
|
|
4341
|
-
*
|
|
4605
|
+
* string Localizations.GetDefaultBundleRoute(string locale, string thumbprint).
|
|
4342
4606
|
*/
|
|
4343
4607
|
bundle: string;
|
|
4344
4608
|
/**
|
|
4345
4609
|
* @description Thumbprint per table logical name. The matching URL —
|
|
4346
|
-
*
|
|
4610
|
+
* string Localizations.GetTableBundleRoute(string tableName, string locale, string thumbprint) — returns every
|
|
4347
4611
|
* `tables.{name}.*` string PLUS the global `choices.{set}.*`
|
|
4348
4612
|
* strings the table's columns reference.
|
|
4349
4613
|
*/
|
|
@@ -4352,7 +4616,7 @@ interface components {
|
|
|
4352
4616
|
};
|
|
4353
4617
|
/**
|
|
4354
4618
|
* @description Thumbprint per view id (lowercased GUID, no braces). The matching URL —
|
|
4355
|
-
*
|
|
4619
|
+
* string Localizations.GetViewBundleRoute(string viewId, string locale, string thumbprint) — returns every
|
|
4356
4620
|
* `tables.{owningTable}.views.{viewId}.*` string for that view. The
|
|
4357
4621
|
* owning table is resolved server-side, so the client only needs the view id.
|
|
4358
4622
|
*/
|
|
@@ -4360,6 +4624,144 @@ interface components {
|
|
|
4360
4624
|
[key: string]: string;
|
|
4361
4625
|
};
|
|
4362
4626
|
};
|
|
4627
|
+
/**
|
|
4628
|
+
* @description Admin-facing snapshot of the string-localization pipeline: the static configuration
|
|
4629
|
+
* that drives the warmup loaders plus the runtime per-source load records produced by
|
|
4630
|
+
* the most recent warmup. Surfaced via Task<LocalizationOverview> IPowerPortalsProService.GetLocalizationOverviewAsync().
|
|
4631
|
+
*/
|
|
4632
|
+
LocalizationOverview: {
|
|
4633
|
+
/**
|
|
4634
|
+
* @description The static configuration: registered directories, files, table-localization mode,
|
|
4635
|
+
* and supported cultures. Reflects the options at the time the overview was captured.
|
|
4636
|
+
*/
|
|
4637
|
+
configuration: components["schemas"]["LocalizationPipelineConfiguration"];
|
|
4638
|
+
/**
|
|
4639
|
+
* @description Per-source records from the most recent warmup, in the order they were loaded.
|
|
4640
|
+
* Empty when the cache hasn't been warmed yet (rare — startup runs the warmup
|
|
4641
|
+
* hook synchronously). Later entries override earlier ones on a per-key basis;
|
|
4642
|
+
* the int LocalizationSourceLoad.KeysOverriding column on each row shows
|
|
4643
|
+
* how many of its keys replaced a non-empty value already in the cache.
|
|
4644
|
+
*/
|
|
4645
|
+
sourceLoads: components["schemas"]["LocalizationSourceLoad"][];
|
|
4646
|
+
/**
|
|
4647
|
+
* Format: date-time
|
|
4648
|
+
* @description When the most recent warmup completed (UTC). `null` if no warmup has run.
|
|
4649
|
+
*/
|
|
4650
|
+
lastReloadedOn?: null | string;
|
|
4651
|
+
};
|
|
4652
|
+
/**
|
|
4653
|
+
* @description Static view of the configuration that drives the localization warmup, suitable for
|
|
4654
|
+
* rendering in an admin "what's wired up" panel alongside the runtime source list.
|
|
4655
|
+
*/
|
|
4656
|
+
LocalizationPipelineConfiguration: {
|
|
4657
|
+
/**
|
|
4658
|
+
* @description When `true`, every table's metadata is loaded; IReadOnlyList<string> LocalizationPipelineConfiguration.TablesToLocalize
|
|
4659
|
+
* is ignored. Defaults to `true` on a fresh `LocalizationOptions`.
|
|
4660
|
+
*/
|
|
4661
|
+
localizeAllAvailableTables: boolean;
|
|
4662
|
+
/**
|
|
4663
|
+
* @description The table logical names configured via `options.AddTableToLocalize(...)`.
|
|
4664
|
+
* Only honored when bool LocalizationPipelineConfiguration.LocalizeAllAvailableTables is `false`.
|
|
4665
|
+
*/
|
|
4666
|
+
tablesToLocalize: string[];
|
|
4667
|
+
/**
|
|
4668
|
+
* @description The relative directory paths registered via `options.AddLocalizationDirectory(...)`.
|
|
4669
|
+
* JSON files in these directories load LAST in the warmup, so they override anything
|
|
4670
|
+
* supplied by Dataverse metadata or web resources.
|
|
4671
|
+
*/
|
|
4672
|
+
localizationDirectories: string[];
|
|
4673
|
+
/** @description Individual file paths registered via `options.AddLocalizationFile(...)`. */
|
|
4674
|
+
localizationFiles: string[];
|
|
4675
|
+
/**
|
|
4676
|
+
* @description The web-resource name pattern the cache uses to discover Dataverse-hosted JSON
|
|
4677
|
+
* localization files. Hard-coded today; surfaced here so the admin UI doesn't have
|
|
4678
|
+
* to reinvent the literal.
|
|
4679
|
+
*/
|
|
4680
|
+
webResourcePathPattern: string;
|
|
4681
|
+
/** @description The default culture configured on CultureInfo LocalizationOptions.DefaultCulture. */
|
|
4682
|
+
defaultCulture: string;
|
|
4683
|
+
};
|
|
4684
|
+
/**
|
|
4685
|
+
* @description Discriminates the three localization source kinds the cache pulls from at warmup.
|
|
4686
|
+
* Underlying integer values are pinned so JSON / numeric serialization is stable
|
|
4687
|
+
* across releases — append new members with the next unused number and never
|
|
4688
|
+
* renumber existing entries.
|
|
4689
|
+
* @enum {integer}
|
|
4690
|
+
*/
|
|
4691
|
+
LocalizationSourceKind: 0 | 1 | 2;
|
|
4692
|
+
/**
|
|
4693
|
+
* @description One row in the runtime load-events grid: a single loader invocation against a single
|
|
4694
|
+
* source (one Dataverse table's metadata, one web resource, one disk file).
|
|
4695
|
+
*/
|
|
4696
|
+
LocalizationSourceLoad: {
|
|
4697
|
+
/**
|
|
4698
|
+
* Format: int32
|
|
4699
|
+
* @description 1-based load order. Combined with DateTimeOffset LocalizationSourceLoad.LoadedAt, gives the precedence
|
|
4700
|
+
* chain: lower-order loads' values can be overridden by higher-order loads.
|
|
4701
|
+
*/
|
|
4702
|
+
loadOrder: number | string;
|
|
4703
|
+
/**
|
|
4704
|
+
* @description Stable identifier for this source, suitable for keying download endpoints
|
|
4705
|
+
* (e.g. `"folder:Resources/app.fr.json"`, `"webresource:/PowerPortalsPro/Localization/tables.fr.json"`,
|
|
4706
|
+
* `"metadata:account"`). Stable across reloads of the same configuration.
|
|
4707
|
+
*/
|
|
4708
|
+
sourceId: string;
|
|
4709
|
+
/** @description The kind of source this row represents — drives the icon / grouping in the UI. */
|
|
4710
|
+
kind: components["schemas"]["LocalizationSourceKind"];
|
|
4711
|
+
/**
|
|
4712
|
+
* @description Human-readable name for the source — the table logical name, the web resource
|
|
4713
|
+
* name, or the file path (absolute, as resolved by the loader).
|
|
4714
|
+
*/
|
|
4715
|
+
displayName: string;
|
|
4716
|
+
/**
|
|
4717
|
+
* @description The cultures (two-letter ISO codes for metadata, filename-derived for JSON) this
|
|
4718
|
+
* source contributed strings to. A Dataverse table contributes to every culture
|
|
4719
|
+
* with an installed language pack; a JSON file contributes to exactly one.
|
|
4720
|
+
*/
|
|
4721
|
+
cultures: string[];
|
|
4722
|
+
/**
|
|
4723
|
+
* Format: int32
|
|
4724
|
+
* @description Total number of distinct keys this source contributed across all cultures
|
|
4725
|
+
* (sum of per-culture key counts).
|
|
4726
|
+
*/
|
|
4727
|
+
keysContributed: number | string;
|
|
4728
|
+
/**
|
|
4729
|
+
* Format: int32
|
|
4730
|
+
* @description Of int LocalizationSourceLoad.KeysContributed, how many replaced a non-empty value an earlier
|
|
4731
|
+
* source had already stored. Useful for spotting which JSON file is actually
|
|
4732
|
+
* overriding Dataverse-supplied translations.
|
|
4733
|
+
*/
|
|
4734
|
+
keysOverriding: number | string;
|
|
4735
|
+
/**
|
|
4736
|
+
* Format: int64
|
|
4737
|
+
* @description Wall-clock duration of the load in milliseconds.
|
|
4738
|
+
*/
|
|
4739
|
+
durationMs: number | string;
|
|
4740
|
+
/**
|
|
4741
|
+
* @description Terminal status — LocalizationSourceStatus.Loaded for success,
|
|
4742
|
+
* LocalizationSourceStatus.Failed when the loader threw (with
|
|
4743
|
+
* string? LocalizationSourceLoad.Error populated), or LocalizationSourceStatus.Skipped
|
|
4744
|
+
* when the source was discovered but ineligible (e.g. an empty file).
|
|
4745
|
+
*/
|
|
4746
|
+
status: components["schemas"]["LocalizationSourceStatus"];
|
|
4747
|
+
/**
|
|
4748
|
+
* @description Exception message when LocalizationSourceStatus LocalizationSourceLoad.Status is LocalizationSourceStatus.Failed,
|
|
4749
|
+
* otherwise `null`.
|
|
4750
|
+
*/
|
|
4751
|
+
error?: null | string;
|
|
4752
|
+
/**
|
|
4753
|
+
* Format: date-time
|
|
4754
|
+
* @description When this individual source finished loading (UTC).
|
|
4755
|
+
*/
|
|
4756
|
+
loadedAt: string;
|
|
4757
|
+
};
|
|
4758
|
+
/**
|
|
4759
|
+
* @description Terminal status of a single source's load. Underlying integer values are pinned
|
|
4760
|
+
* so JSON / numeric serialization is stable across releases — append new members
|
|
4761
|
+
* with the next unused number and never renumber existing entries.
|
|
4762
|
+
* @enum {integer}
|
|
4763
|
+
*/
|
|
4764
|
+
LocalizationSourceStatus: 0 | 1 | 2;
|
|
4363
4765
|
/**
|
|
4364
4766
|
* @description Credentials submitted to `POST /api/auth/login`. Same-origin SPAs only need to
|
|
4365
4767
|
* post this body; the server sets the auth cookie on success and returns a
|
|
@@ -4392,9 +4794,9 @@ interface components {
|
|
|
4392
4794
|
* so the client can branch UI behavior without inspecting HTTP status codes.
|
|
4393
4795
|
*
|
|
4394
4796
|
* Members carry explicit integer values: this enum ships in JSON wire payloads, so
|
|
4395
|
-
*
|
|
4396
|
-
*
|
|
4397
|
-
*
|
|
4797
|
+
* the JSON numeric representation is a stable contract. Pinning the
|
|
4798
|
+
* values prevents accidental drift if a future refactor reorders or
|
|
4799
|
+
* inserts members.
|
|
4398
4800
|
* @enum {integer}
|
|
4399
4801
|
*/
|
|
4400
4802
|
LoginResult: 0 | 1 | 2 | 3 | 4;
|
|
@@ -4581,6 +4983,43 @@ interface components {
|
|
|
4581
4983
|
[key: string]: components["schemas"]["ColumnValueBase"];
|
|
4582
4984
|
};
|
|
4583
4985
|
};
|
|
4986
|
+
/**
|
|
4987
|
+
* @description Stable, environment-wide settings sourced from the Dataverse `organization`
|
|
4988
|
+
* record. Cached server-side (they change very rarely — only when an admin updates
|
|
4989
|
+
* the org record) and re-served to clients via `/api/organizationSettings` so
|
|
4990
|
+
* the front end can prime defaults without firing its own Dataverse trip.
|
|
4991
|
+
* Two categories of fields live here today:
|
|
4992
|
+
* * Currency OrganizationSettings.DefaultCurrency — used by create-mode editors to render the
|
|
4993
|
+
* correct currency symbol on new records before they're saved.
|
|
4994
|
+
* * IReadOnlyList<string> OrganizationSettings.BlockedFileExtensions + long OrganizationSettings.MaxUploadFileSizeInBytes
|
|
4995
|
+
* — file-upload constraints clients mirror so users get a friendly client-side
|
|
4996
|
+
* rejection instead of a round-trip failure.
|
|
4997
|
+
* New properties are appended as additional organization-level defaults become
|
|
4998
|
+
* useful client-side (locale, base language, formatting policies, etc.).
|
|
4999
|
+
*/
|
|
5000
|
+
OrganizationSettings: {
|
|
5001
|
+
/**
|
|
5002
|
+
* @description The org's base currency, resolved from the `organization.basecurrencyid`
|
|
5003
|
+
* lookup. `MoneyEdit` consumes this in create mode so a brand-new record
|
|
5004
|
+
* displays the right currency symbol before the user picks one or saves.
|
|
5005
|
+
*/
|
|
5006
|
+
defaultCurrency: components["schemas"]["Currency"];
|
|
5007
|
+
/**
|
|
5008
|
+
* @description Lowercase file extensions (without the leading dot) that Dataverse refuses to
|
|
5009
|
+
* accept as uploads — for example `"svg"`, `"exe"`, `"bat"`. Sourced
|
|
5010
|
+
* from the organization's `blockedattachments` setting (a semicolon-delimited
|
|
5011
|
+
* string in Dataverse, parsed and normalised here). Clients reject these client-side
|
|
5012
|
+
* before the upload round-trips.
|
|
5013
|
+
*/
|
|
5014
|
+
blockedFileExtensions: string[];
|
|
5015
|
+
/**
|
|
5016
|
+
* Format: int64
|
|
5017
|
+
* @description Maximum upload size for file attachments and file-column payloads, in bytes.
|
|
5018
|
+
* Sourced from the organization's `maxuploadfilesize` setting. Clients
|
|
5019
|
+
* compare file byte length directly against this for a pre-upload check.
|
|
5020
|
+
*/
|
|
5021
|
+
maxUploadFileSizeInBytes: number | string;
|
|
5022
|
+
};
|
|
4584
5023
|
/** @description Paging metadata for a Dataverse query response. */
|
|
4585
5024
|
PagingInfo: {
|
|
4586
5025
|
/**
|
|
@@ -4755,8 +5194,7 @@ interface components {
|
|
|
4755
5194
|
};
|
|
4756
5195
|
/**
|
|
4757
5196
|
* @description Outcome of a RegisterRequest. Members carry explicit integer
|
|
4758
|
-
* values so
|
|
4759
|
-
* stable contract across reorderings.
|
|
5197
|
+
* values so the JSON wire form is a stable contract across reorderings.
|
|
4760
5198
|
* @enum {integer}
|
|
4761
5199
|
*/
|
|
4762
5200
|
RegisterResult: 0 | 1 | 2;
|
|
@@ -4863,8 +5301,8 @@ interface components {
|
|
|
4863
5301
|
};
|
|
4864
5302
|
/**
|
|
4865
5303
|
* @description Outcome of `POST /api/auth/reset-password`. Members carry explicit
|
|
4866
|
-
* integer values so
|
|
4867
|
-
*
|
|
5304
|
+
* integer values so the JSON wire form is a stable contract across
|
|
5305
|
+
* reorderings.
|
|
4868
5306
|
* @enum {integer}
|
|
4869
5307
|
*/
|
|
4870
5308
|
ResetPasswordResult: 0 | 1 | 2;
|
|
@@ -4921,7 +5359,7 @@ interface components {
|
|
|
4921
5359
|
* the column matching `TableMetadata.PrimaryNameColumn` AND
|
|
4922
5360
|
* belonging to the view's main table (not a linked-entity column).
|
|
4923
5361
|
* Clients use this to optionally render the cell as a clickable link
|
|
4924
|
-
* that triggers the grid's edit action (
|
|
5362
|
+
* that triggers the grid's edit action (gated by
|
|
4925
5363
|
* `AllowNavigateOnPrimaryNameClick`). At most one column per
|
|
4926
5364
|
* view will have this set; consumers can safely use it to decorate
|
|
4927
5365
|
* "open this record"-style links without per-row metadata lookups.
|
|
@@ -4995,8 +5433,8 @@ interface components {
|
|
|
4995
5433
|
};
|
|
4996
5434
|
/**
|
|
4997
5435
|
* @description Outcome of `POST /api/auth/switch-identity`. Members carry explicit
|
|
4998
|
-
* integer values so
|
|
4999
|
-
*
|
|
5436
|
+
* integer values so the JSON wire form is a stable contract across
|
|
5437
|
+
* reorderings.
|
|
5000
5438
|
* @enum {integer}
|
|
5001
5439
|
*/
|
|
5002
5440
|
SwitchIdentityResult: 0 | 1 | 2 | 3;
|
|
@@ -5045,6 +5483,7 @@ interface components {
|
|
|
5045
5483
|
formattedValues?: {
|
|
5046
5484
|
[key: string]: string;
|
|
5047
5485
|
};
|
|
5486
|
+
currency?: null | components["schemas"]["Currency"];
|
|
5048
5487
|
/** @description True when at least one column value has been changed since the record was loaded or void TableRecord.ResetState() was called. */
|
|
5049
5488
|
isDirty?: boolean;
|
|
5050
5489
|
/** Format: uuid */
|
|
@@ -5067,6 +5506,121 @@ interface components {
|
|
|
5067
5506
|
* @enum {integer}
|
|
5068
5507
|
*/
|
|
5069
5508
|
TableSecurityPermission: 0 | 1 | 2 | 4 | 8 | 16 | 32 | 63;
|
|
5509
|
+
/**
|
|
5510
|
+
* @description One target language's translated output plus how many strings were freshly translated
|
|
5511
|
+
* versus reused from the Dataverse translation memory.
|
|
5512
|
+
*/
|
|
5513
|
+
TranslatedFile: {
|
|
5514
|
+
/** @description The portal culture this file was translated into (e.g. `"fr-FR"`). */
|
|
5515
|
+
targetCultureCode: string;
|
|
5516
|
+
/** @description Suggested filename for this language's download (e.g. `"app.fr-FR.json"`). */
|
|
5517
|
+
fileName: string;
|
|
5518
|
+
/**
|
|
5519
|
+
* Format: int32
|
|
5520
|
+
* @description Number of strings sent to the translation provider for this language this run.
|
|
5521
|
+
*/
|
|
5522
|
+
translatedCount: number | string;
|
|
5523
|
+
/**
|
|
5524
|
+
* Format: int32
|
|
5525
|
+
* @description Number of strings that came from the Dataverse translation memory (not re-sent to the provider).
|
|
5526
|
+
*/
|
|
5527
|
+
reusedCount: number | string;
|
|
5528
|
+
/**
|
|
5529
|
+
* Format: byte
|
|
5530
|
+
* @description UTF-8-encoded translated JSON body, in the same nested-object shape as the source.
|
|
5531
|
+
*/
|
|
5532
|
+
content: string;
|
|
5533
|
+
};
|
|
5534
|
+
/**
|
|
5535
|
+
* @description Admin-facing description of whether the localization-translation feature is usable in
|
|
5536
|
+
* the current environment, returned by Task<TranslationAvailability> IPowerPortalsProService.GetTranslationAvailabilityAsync().
|
|
5537
|
+
* Drives whether the `LocalizationTranslator` UI shows its upload/translate panel, an
|
|
5538
|
+
* "install the managed solution" prompt, or nothing at all.
|
|
5539
|
+
*/
|
|
5540
|
+
TranslationAvailability: {
|
|
5541
|
+
/**
|
|
5542
|
+
* @description `true` when a translation provider is registered and its credentials are configured
|
|
5543
|
+
* (the consumer called one of the `AddPowerPortalsPro<Provider>TranslationService()`
|
|
5544
|
+
* methods — Azure, DeepL, Google, … — and supplied the provider's key). When `false` the UI
|
|
5545
|
+
* renders nothing — translation is a host-wiring concern the admin can't self-serve.
|
|
5546
|
+
*/
|
|
5547
|
+
isConfigured: boolean;
|
|
5548
|
+
/**
|
|
5549
|
+
* @description `true` when the translation managed solution (default unique name
|
|
5550
|
+
* `PowerPortalsProLocalization`) is installed in the connected environment, so the
|
|
5551
|
+
* translation-memory tables exist. When bool TranslationAvailability.IsConfigured is `true` but this
|
|
5552
|
+
* is `false`, the UI shows a prompt to install the solution.
|
|
5553
|
+
*/
|
|
5554
|
+
isSolutionInstalled: boolean;
|
|
5555
|
+
/**
|
|
5556
|
+
* @description The candidate target languages — the portal's supported cultures, each annotated with
|
|
5557
|
+
* whether the configured translation provider can translate to it. Cultures the provider
|
|
5558
|
+
* doesn't support are still returned (so the admin sees them) but flagged via
|
|
5559
|
+
* bool TranslationLanguageOption.IsSupportedByProvider so the UI can disable them.
|
|
5560
|
+
* Empty when bool TranslationAvailability.IsConfigured is `false`.
|
|
5561
|
+
*/
|
|
5562
|
+
targetLanguages: components["schemas"]["TranslationLanguageOption"][];
|
|
5563
|
+
};
|
|
5564
|
+
/**
|
|
5565
|
+
* @description One selectable target language in the translation UI: a portal-supported culture paired
|
|
5566
|
+
* with the translation-provider language code it maps to (when the provider supports it).
|
|
5567
|
+
*/
|
|
5568
|
+
TranslationLanguageOption: {
|
|
5569
|
+
/** @description The portal culture code (e.g. `"fr-FR"`) — what the UI shows and the output file is named for. */
|
|
5570
|
+
cultureCode: string;
|
|
5571
|
+
/** @description Human-readable language/culture display name (e.g. `"French (France)"`). */
|
|
5572
|
+
displayName: string;
|
|
5573
|
+
/**
|
|
5574
|
+
* @description The translation-provider language code this culture maps to (e.g. `"fr"`), or `null`
|
|
5575
|
+
* when the configured provider doesn't support the culture's language.
|
|
5576
|
+
*/
|
|
5577
|
+
providerLanguageCode?: null | string;
|
|
5578
|
+
/** @description `true` when the configured provider can translate to this culture (string? TranslationLanguageOption.ProviderLanguageCode is non-null). */
|
|
5579
|
+
isSupportedByProvider?: boolean;
|
|
5580
|
+
};
|
|
5581
|
+
/**
|
|
5582
|
+
* @description Request to translate one uploaded localization file into one or more target languages,
|
|
5583
|
+
* passed to Task<TranslationResult> IPowerPortalsProService.TranslateLocalizationFileAsync(TranslationRequest request).
|
|
5584
|
+
*/
|
|
5585
|
+
TranslationRequest: {
|
|
5586
|
+
/** @description BCP-47 source language code (e.g. `"en"`), auto-detected from the filename but admin-editable. */
|
|
5587
|
+
sourceLanguage: string;
|
|
5588
|
+
/** @description The portal culture codes to translate into (the string TranslationLanguageOption.CultureCode values the admin selected). */
|
|
5589
|
+
targetCultureCodes: string[];
|
|
5590
|
+
/** @description The original uploaded filename (e.g. `"app.en.json"`) — used to name the per-language output files. */
|
|
5591
|
+
fileName: string;
|
|
5592
|
+
/**
|
|
5593
|
+
* Format: byte
|
|
5594
|
+
* @description The raw uploaded file bytes (UTF-8 JSON, optionally wrapped in a `var x = {...}` assignment, which the translator tolerates).
|
|
5595
|
+
*/
|
|
5596
|
+
sourceContent: string;
|
|
5597
|
+
};
|
|
5598
|
+
/**
|
|
5599
|
+
* @description Result of a translate operation: one TranslatedFile per requested target
|
|
5600
|
+
* language plus a single zip of all of them, returned by
|
|
5601
|
+
* Task<TranslationResult> IPowerPortalsProService.TranslateLocalizationFileAsync(TranslationRequest request).
|
|
5602
|
+
*/
|
|
5603
|
+
TranslationResult: {
|
|
5604
|
+
/** @description One entry per requested target language, each with its own counts and downloadable content. */
|
|
5605
|
+
files: components["schemas"]["TranslatedFile"][];
|
|
5606
|
+
/**
|
|
5607
|
+
* Format: byte
|
|
5608
|
+
* @description All IReadOnlyList<TranslatedFile> TranslationResult.Files packaged into a single zip — backs the "Download all" button.
|
|
5609
|
+
*/
|
|
5610
|
+
zipContent: string;
|
|
5611
|
+
/** @description Suggested filename for the byte[] TranslationResult.ZipContent download. */
|
|
5612
|
+
zipFileName: string;
|
|
5613
|
+
/**
|
|
5614
|
+
* Format: int32
|
|
5615
|
+
* @description Total strings translated via the provider across all languages this run (sum of int TranslatedFile.TranslatedCount).
|
|
5616
|
+
*/
|
|
5617
|
+
totalTranslated: number | string;
|
|
5618
|
+
/**
|
|
5619
|
+
* Format: int32
|
|
5620
|
+
* @description Total strings satisfied from the Dataverse translation memory across all languages (sum of int TranslatedFile.ReusedCount).
|
|
5621
|
+
*/
|
|
5622
|
+
totalReused: number | string;
|
|
5623
|
+
};
|
|
5070
5624
|
/**
|
|
5071
5625
|
* @description Snapshot of the user's two-factor configuration, returned by
|
|
5072
5626
|
* `GET /api/auth/manage/2fa`. Drives the Manage/TwoFactorAuthentication
|
|
@@ -5240,6 +5794,7 @@ type ConfirmEmailResponse = Schemas$1['ConfirmEmailResponse'];
|
|
|
5240
5794
|
type ResendEmailConfirmationRequest = Schemas$1['ResendEmailConfirmationRequest'];
|
|
5241
5795
|
type CurrentUserInfo = Schemas$1['CurrentUserInfo'];
|
|
5242
5796
|
type ExternalLoginProviderInfo = Schemas$1['ExternalLoginProviderInfo'];
|
|
5797
|
+
type AuthOptionsResponse = Schemas$1['AuthOptionsResponse'];
|
|
5243
5798
|
type PendingExternalLoginResponse = Schemas$1['PendingExternalLoginResponse'];
|
|
5244
5799
|
type ConfirmExternalLoginRequest = Schemas$1['ConfirmExternalLoginRequest'];
|
|
5245
5800
|
type ConfirmExternalLoginResponse = Schemas$1['ConfirmExternalLoginResponse'];
|
|
@@ -5270,16 +5825,16 @@ type PersonalDataResponse = Schemas$1['PersonalDataResponse'];
|
|
|
5270
5825
|
type DeletePersonalDataRequest = Schemas$1['DeletePersonalDataRequest'];
|
|
5271
5826
|
type DeletePersonalDataResponse = Schemas$1['DeletePersonalDataResponse'];
|
|
5272
5827
|
/**
|
|
5273
|
-
* SPA-facing wrapper over the framework's `/api/auth/*` endpoints —
|
|
5274
|
-
*
|
|
5275
|
-
*
|
|
5828
|
+
* SPA-facing wrapper over the framework's `/api/auth/*` endpoints — sign-
|
|
5829
|
+
* in, profile, 2FA, external login, forgot-password, registration, and
|
|
5830
|
+
* confirmation flows.
|
|
5276
5831
|
*
|
|
5277
5832
|
* Cookie auth flows automatically (the underlying {@link Transport} sends
|
|
5278
5833
|
* `credentials: 'include'`), so a successful `loginAsync` leaves subsequent calls
|
|
5279
5834
|
* authenticated without any token wiring on the React side.
|
|
5280
5835
|
*
|
|
5281
5836
|
* Mid-flow steps (`login → 2FA`, `register → confirm email`, `forgot → reset`) each
|
|
5282
|
-
* surface as their own method so the consuming SPA owns its routing/UX between steps
|
|
5837
|
+
* surface as their own method so the consuming SPA owns its routing/UX between steps
|
|
5283
5838
|
* same design as the C# interface.
|
|
5284
5839
|
*/
|
|
5285
5840
|
declare class AuthClient {
|
|
@@ -5321,8 +5876,13 @@ declare class AuthClient {
|
|
|
5321
5876
|
* startup to decide whether to render signed-in UI vs. the login flow.
|
|
5322
5877
|
*/
|
|
5323
5878
|
getCurrentUserAsync(signal?: AbortSignal): Promise<CurrentUserInfo>;
|
|
5324
|
-
/**
|
|
5325
|
-
|
|
5879
|
+
/**
|
|
5880
|
+
* Anonymous auth options for the sign-in UI: whether the portal accepts local
|
|
5881
|
+
* username/password accounts (`localAccountsEnabled`) plus the configured external
|
|
5882
|
+
* providers — one round-trip the login page uses to decide whether to render the
|
|
5883
|
+
* local form / register + reset links and which provider buttons to show.
|
|
5884
|
+
*/
|
|
5885
|
+
getAuthOptionsAsync(signal?: AbortSignal): Promise<AuthOptionsResponse>;
|
|
5326
5886
|
/**
|
|
5327
5887
|
* Reads the in-flight external-login cookie set by an OAuth callback. Returns
|
|
5328
5888
|
* `null` when no callback is in flight (the endpoint replies 204) — the client
|
|
@@ -5405,43 +5965,56 @@ declare class AuthClient {
|
|
|
5405
5965
|
* Aggregate function applied to a column in an aggregate FetchXML query.
|
|
5406
5966
|
*/
|
|
5407
5967
|
declare const AggregateType: {
|
|
5968
|
+
/** No aggregation. */
|
|
5408
5969
|
readonly None: 0;
|
|
5970
|
+
/** Count of rows (including nulls). */
|
|
5409
5971
|
readonly Count: 1;
|
|
5972
|
+
/** Count of rows where the column is not null. */
|
|
5410
5973
|
readonly CountColumn: 2;
|
|
5974
|
+
/** Sum of values. */
|
|
5411
5975
|
readonly Sum: 3;
|
|
5976
|
+
/** Arithmetic mean of values. */
|
|
5412
5977
|
readonly Avg: 4;
|
|
5978
|
+
/** Minimum value. */
|
|
5413
5979
|
readonly Min: 5;
|
|
5980
|
+
/** Maximum value. */
|
|
5414
5981
|
readonly Max: 6;
|
|
5415
5982
|
};
|
|
5416
5983
|
type AggregateType = (typeof AggregateType)[keyof typeof AggregateType];
|
|
5417
5984
|
/**
|
|
5418
5985
|
* Compression format for the archive produced by
|
|
5419
|
-
*
|
|
5986
|
+
* `IPowerPortalsProService.CreateFileArchiveAsync`.
|
|
5420
5987
|
* Currently only ArchiveFormat.Zip is supported; the enum is open-ended so
|
|
5421
5988
|
* future formats can land without breaking the wire schema.
|
|
5422
5989
|
*/
|
|
5423
5990
|
declare const ArchiveFormat: {
|
|
5991
|
+
/** Standard ZIP archive (application/zip, .zip extension). Built via ZipArchive with Optimal. */
|
|
5424
5992
|
readonly Zip: 0;
|
|
5425
5993
|
};
|
|
5426
5994
|
type ArchiveFormat = (typeof ArchiveFormat)[keyof typeof ArchiveFormat];
|
|
5427
5995
|
/**
|
|
5428
5996
|
* Outcome of `POST /api/auth/manage/email/change`. Members carry explicit
|
|
5429
|
-
* integer values so
|
|
5430
|
-
*
|
|
5997
|
+
* integer values so the JSON wire form is a stable contract across
|
|
5998
|
+
* reorderings.
|
|
5431
5999
|
*/
|
|
5432
6000
|
declare const ChangeEmailResult: {
|
|
6001
|
+
/** A confirmation email was sent to the new address. The change does not take effect until the user clicks the link. */
|
|
5433
6002
|
readonly ConfirmationEmailSent: 0;
|
|
6003
|
+
/** The submitted email matches the user's current email. Nothing was sent. The client should show a "this is already your email" message. */
|
|
5434
6004
|
readonly SameAsCurrentEmail: 1;
|
|
5435
6005
|
};
|
|
5436
6006
|
type ChangeEmailResult = (typeof ChangeEmailResult)[keyof typeof ChangeEmailResult];
|
|
5437
6007
|
/**
|
|
5438
6008
|
* Outcome of `POST /api/auth/manage/password/change`. Members carry
|
|
5439
|
-
* explicit integer values so
|
|
5440
|
-
*
|
|
6009
|
+
* explicit integer values so the JSON wire form is a stable contract
|
|
6010
|
+
* across reorderings.
|
|
5441
6011
|
*/
|
|
5442
6012
|
declare const ChangePasswordResult: {
|
|
6013
|
+
/** The password was changed. The auth cookie has been refreshed to pick up the new security stamp so other sessions are invalidated. */
|
|
5443
6014
|
readonly Success: 0;
|
|
6015
|
+
/** The supplied old password did not match the current password. The client should show an "incorrect current password" error and allow retry. */
|
|
5444
6016
|
readonly IncorrectOldPassword: 1;
|
|
6017
|
+
/** The new password did not satisfy the host's IdentityOptions.Password rules. Errors carries the per-rule messages so the client can show actionable feedback. */
|
|
5445
6018
|
readonly InvalidPassword: 2;
|
|
5446
6019
|
};
|
|
5447
6020
|
type ChangePasswordResult = (typeof ChangePasswordResult)[keyof typeof ChangePasswordResult];
|
|
@@ -5455,16 +6028,27 @@ type ChangePasswordResult = (typeof ChangePasswordResult)[keyof typeof ChangePas
|
|
|
5455
6028
|
* current culture.
|
|
5456
6029
|
*/
|
|
5457
6030
|
declare const ChartDateGrouping: {
|
|
6031
|
+
/** No date grouping — the column is grouped by its raw value. */
|
|
5458
6032
|
readonly None: 0;
|
|
6033
|
+
/** Group by day (dategrouping="day"). Label: day number. */
|
|
5459
6034
|
readonly Day: 1;
|
|
6035
|
+
/** Group by ISO week (dategrouping="week"). Label: week number. */
|
|
5460
6036
|
readonly Week: 2;
|
|
6037
|
+
/** Group by calendar month (dategrouping="month"). Label: abbreviated month name (Jan, Feb, …) in the current culture. */
|
|
5461
6038
|
readonly Month: 3;
|
|
6039
|
+
/** Group by calendar quarter (dategrouping="quarter"). Label: quarter number. */
|
|
5462
6040
|
readonly Quarter: 4;
|
|
6041
|
+
/** Group by calendar year (dategrouping="year"). Label: year. */
|
|
5463
6042
|
readonly Year: 5;
|
|
6043
|
+
/** Group by month + year. Label: "Jan 2024". */
|
|
5464
6044
|
readonly MonthAndYear: 6;
|
|
6045
|
+
/** Group by day + month. Label: "15 Jan". */
|
|
5465
6046
|
readonly DayAndMonth: 7;
|
|
6047
|
+
/** Group by day + month + year. Label: "15 Jan 2024". */
|
|
5466
6048
|
readonly DayAndMonthAndYear: 8;
|
|
6049
|
+
/** Group by ISO week + year. Label: "W15 2024". */
|
|
5467
6050
|
readonly WeekAndYear: 9;
|
|
6051
|
+
/** Group by quarter + year. Label: "Q1 2024". */
|
|
5468
6052
|
readonly QuarterAndYear: 10;
|
|
5469
6053
|
};
|
|
5470
6054
|
type ChartDateGrouping = (typeof ChartDateGrouping)[keyof typeof ChartDateGrouping];
|
|
@@ -5472,41 +6056,69 @@ type ChartDateGrouping = (typeof ChartDateGrouping)[keyof typeof ChartDateGroupi
|
|
|
5472
6056
|
* Identifies the data type of a Dataverse column. Values 0–20 mirror the Dataverse SDK's `AttributeTypeCode`; values 40+ are PowerPortalsPro-specific column types not present in Dataverse.
|
|
5473
6057
|
*/
|
|
5474
6058
|
declare const ColumnType: {
|
|
6059
|
+
/** A Boolean attribute. Value = 0. */
|
|
5475
6060
|
readonly Boolean: 0;
|
|
6061
|
+
/** An attribute that represents a customer. Value = 1. */
|
|
5476
6062
|
readonly Customer: 1;
|
|
6063
|
+
/** A date/time attribute. Value = 2. */
|
|
5477
6064
|
readonly DateTime: 2;
|
|
6065
|
+
/** A decimal attribute. Value = 3. */
|
|
5478
6066
|
readonly Decimal: 3;
|
|
6067
|
+
/** A double attribute. Value = 4. */
|
|
5479
6068
|
readonly Double: 4;
|
|
6069
|
+
/** An integer attribute. Value = 5. */
|
|
5480
6070
|
readonly Integer: 5;
|
|
6071
|
+
/** A lookup attribute. Value = 6. */
|
|
5481
6072
|
readonly Lookup: 6;
|
|
6073
|
+
/** A memo attribute. Value = 7. */
|
|
5482
6074
|
readonly Memo: 7;
|
|
6075
|
+
/** A money attribute. Value = 8. */
|
|
5483
6076
|
readonly Money: 8;
|
|
6077
|
+
/** An owner attribute. Value = 9. */
|
|
5484
6078
|
readonly Owner: 9;
|
|
6079
|
+
/** A partylist attribute. Value = 10. */
|
|
5485
6080
|
readonly PartyList: 10;
|
|
6081
|
+
/** A picklist (single-select choice) attribute. Value = 11. */
|
|
5486
6082
|
readonly Choice: 11;
|
|
6083
|
+
/** A state attribute. Value = 12. */
|
|
5487
6084
|
readonly State: 12;
|
|
6085
|
+
/** A status attribute. Value = 13. */
|
|
5488
6086
|
readonly Status: 13;
|
|
6087
|
+
/** A string attribute. Value = 14. */
|
|
5489
6088
|
readonly String: 14;
|
|
6089
|
+
/** A unique identifier (GUID) attribute. Value = 15. */
|
|
5490
6090
|
readonly Uniqueidentifier: 15;
|
|
6091
|
+
/** An attribute that contains calendar rules. Value = 16. */
|
|
5491
6092
|
readonly CalendarRules: 16;
|
|
6093
|
+
/** An attribute that is created by the system at run time. Value = 17. */
|
|
5492
6094
|
readonly Virtual: 17;
|
|
6095
|
+
/** A big integer (long) attribute. Value = 18. */
|
|
5493
6096
|
readonly BigInt: 18;
|
|
6097
|
+
/** A managed property attribute. Value = 19. */
|
|
5494
6098
|
readonly ManagedProperty: 19;
|
|
6099
|
+
/** An entity name attribute. Value = 20. */
|
|
5495
6100
|
readonly EntityName: 20;
|
|
6101
|
+
/** A multi-select choice attribute. Value = 40. PowerPortalsPro-specific (not present in Dataverse AttributeTypeCode). */
|
|
5496
6102
|
readonly MultiSelectChoice: 40;
|
|
6103
|
+
/** A file attachment attribute. Value = 41. PowerPortalsPro-specific (not present in Dataverse AttributeTypeCode). */
|
|
5497
6104
|
readonly File: 41;
|
|
6105
|
+
/** An image attribute. Value = 42. PowerPortalsPro-specific (not present in Dataverse AttributeTypeCode). */
|
|
5498
6106
|
readonly Image: 42;
|
|
5499
6107
|
};
|
|
5500
6108
|
type ColumnType = (typeof ColumnType)[keyof typeof ColumnType];
|
|
5501
6109
|
/**
|
|
5502
6110
|
* Outcome of `POST /api/auth/external-login/confirm`. Members carry
|
|
5503
|
-
* explicit integer values so
|
|
5504
|
-
*
|
|
6111
|
+
* explicit integer values so the JSON wire form is a stable contract
|
|
6112
|
+
* across reorderings.
|
|
5505
6113
|
*/
|
|
5506
6114
|
declare const ConfirmExternalLoginResult: {
|
|
6115
|
+
/** The external login was linked (creating a new local account if needed) and the user has been signed in. The auth cookie is set on the response. */
|
|
5507
6116
|
readonly SignedIn: 0;
|
|
6117
|
+
/** The account was created but the host requires email confirmation. A confirmation link has been sent; the user is NOT signed in yet. */
|
|
5508
6118
|
readonly ConfirmationEmailSent: 1;
|
|
6119
|
+
/** No external-login cookie was found — the user landed on the confirm endpoint without a fresh OAuth callback. The client should redirect back to the login page. */
|
|
5509
6120
|
readonly NoPendingExternalLogin: 2;
|
|
6121
|
+
/** Identity rejected the create / add-login operation (e.g. duplicate email already linked to a different account). Errors carries the per-rule messages. */
|
|
5510
6122
|
readonly Failure: 3;
|
|
5511
6123
|
};
|
|
5512
6124
|
type ConfirmExternalLoginResult = (typeof ConfirmExternalLoginResult)[keyof typeof ConfirmExternalLoginResult];
|
|
@@ -5514,29 +6126,37 @@ type ConfirmExternalLoginResult = (typeof ConfirmExternalLoginResult)[keyof type
|
|
|
5514
6126
|
* Specifies the date/time behavior of a DateTime column.
|
|
5515
6127
|
*/
|
|
5516
6128
|
declare const DateTimeBehavior: {
|
|
6129
|
+
/** Only the date portion is stored; no time component. */
|
|
5517
6130
|
readonly DateOnly: 1;
|
|
6131
|
+
/** The value is stored in UTC and converted to the user's local time zone for display. */
|
|
5518
6132
|
readonly UserLocal: 2;
|
|
6133
|
+
/** The value is stored and displayed exactly as entered, without time zone conversion. */
|
|
5519
6134
|
readonly TimeZoneIndependent: 3;
|
|
5520
6135
|
};
|
|
5521
6136
|
type DateTimeBehavior = (typeof DateTimeBehavior)[keyof typeof DateTimeBehavior];
|
|
5522
6137
|
/**
|
|
5523
6138
|
* Outcome of `POST /api/auth/manage/personal-data/delete`. Members carry
|
|
5524
|
-
* explicit integer values so
|
|
5525
|
-
*
|
|
6139
|
+
* explicit integer values so the JSON wire form is a stable contract
|
|
6140
|
+
* across reorderings.
|
|
5526
6141
|
*/
|
|
5527
6142
|
declare const DeletePersonalDataResult: {
|
|
6143
|
+
/** The account was deleted and the auth cookie has been cleared. */
|
|
5528
6144
|
readonly Success: 0;
|
|
6145
|
+
/** The user has a local password set, and one was supplied, but it did not match. The client should show an "incorrect password" error and allow retry. */
|
|
5529
6146
|
readonly IncorrectPassword: 1;
|
|
6147
|
+
/** The user has a local password set but the request body's password field was empty. The client should prompt for the password and resubmit. Distinct from IncorrectPassword so the UI can choose between "please enter your password" and "that password is wrong." */
|
|
5530
6148
|
readonly RequireLocalPassword: 2;
|
|
5531
6149
|
};
|
|
5532
6150
|
type DeletePersonalDataResult = (typeof DeletePersonalDataResult)[keyof typeof DeletePersonalDataResult];
|
|
5533
6151
|
/**
|
|
5534
6152
|
* Which Dataverse table backs an external-login candidate. Members carry
|
|
5535
|
-
* explicit integer values so
|
|
5536
|
-
*
|
|
6153
|
+
* explicit integer values so the JSON wire form is a stable contract
|
|
6154
|
+
* across reorderings.
|
|
5537
6155
|
*/
|
|
5538
6156
|
declare const ExternalLoginCandidateKind: {
|
|
6157
|
+
/** The candidate is a Dataverse contact record. */
|
|
5539
6158
|
readonly Contact: 0;
|
|
6159
|
+
/** The candidate is a Dataverse systemuser record. */
|
|
5540
6160
|
readonly SystemUser: 1;
|
|
5541
6161
|
};
|
|
5542
6162
|
type ExternalLoginCandidateKind = (typeof ExternalLoginCandidateKind)[keyof typeof ExternalLoginCandidateKind];
|
|
@@ -5544,7 +6164,9 @@ type ExternalLoginCandidateKind = (typeof ExternalLoginCandidateKind)[keyof type
|
|
|
5544
6164
|
* Determines how the server returns the archive bytes to the caller.
|
|
5545
6165
|
*/
|
|
5546
6166
|
declare const FileArchiveResponseFormat: {
|
|
6167
|
+
/** Returns the raw archive bytes as the response body, with Content-Type: application/zip (or the matching MIME for the chosen ArchiveFormat) and a Content-Disposition: attachment; filename=… header. The caller hands the response directly to the browser's download path — no base64 round-trip. Default mode. */
|
|
5547
6168
|
readonly BinaryStream: 0;
|
|
6169
|
+
/** Returns a JSON envelope (FileArchiveJsonResponse) that wraps the archive's bytes as base64. Useful when the consumer wants to inspect headers / filename / size programmatically before triggering a download, or when the host environment can't stream binary responses (some test harnesses, some service workers). Trades ~33% wire-size overhead for the JSON wrapper. */
|
|
5548
6170
|
readonly Json: 1;
|
|
5549
6171
|
};
|
|
5550
6172
|
type FileArchiveResponseFormat = (typeof FileArchiveResponseFormat)[keyof typeof FileArchiveResponseFormat];
|
|
@@ -5552,15 +6174,25 @@ type FileArchiveResponseFormat = (typeof FileArchiveResponseFormat)[keyof typeof
|
|
|
5552
6174
|
* Join type used on a FetchXML link-entity.
|
|
5553
6175
|
*/
|
|
5554
6176
|
declare const JoinOperator: {
|
|
6177
|
+
/** Inner join — only matching rows are returned. */
|
|
5555
6178
|
readonly Inner: 0;
|
|
6179
|
+
/** Left outer join — unmatched parent rows are returned with null link columns. */
|
|
5556
6180
|
readonly LeftOuter: 1;
|
|
6181
|
+
/** Natural join. */
|
|
5557
6182
|
readonly Natural: 2;
|
|
6183
|
+
/** Match first row using cross apply. */
|
|
5558
6184
|
readonly MatchFirstRowUsingCrossApply: 3;
|
|
6185
|
+
/** In join — semi-join used for subqueries. */
|
|
5559
6186
|
readonly In: 4;
|
|
6187
|
+
/** Exists join — semi-join evaluating existence. */
|
|
5560
6188
|
readonly Exists: 5;
|
|
6189
|
+
/** Any-match semi-join. */
|
|
5561
6190
|
readonly Any: 6;
|
|
6191
|
+
/** Inverse of Any. */
|
|
5562
6192
|
readonly NotAny: 7;
|
|
6193
|
+
/** All-match semi-join. */
|
|
5563
6194
|
readonly All: 8;
|
|
6195
|
+
/** Inverse of All. */
|
|
5564
6196
|
readonly NotAll: 9;
|
|
5565
6197
|
};
|
|
5566
6198
|
type JoinOperator = (typeof JoinOperator)[keyof typeof JoinOperator];
|
|
@@ -5569,26 +6201,33 @@ type JoinOperator = (typeof JoinOperator)[keyof typeof JoinOperator];
|
|
|
5569
6201
|
* so the client can branch UI behavior without inspecting HTTP status codes.
|
|
5570
6202
|
*
|
|
5571
6203
|
* Members carry explicit integer values: this enum ships in JSON wire payloads, so
|
|
5572
|
-
*
|
|
5573
|
-
*
|
|
5574
|
-
*
|
|
6204
|
+
* the JSON numeric representation is a stable contract. Pinning the
|
|
6205
|
+
* values prevents accidental drift if a future refactor reorders or
|
|
6206
|
+
* inserts members.
|
|
5575
6207
|
*/
|
|
5576
6208
|
declare const LoginResult: {
|
|
6209
|
+
/** Credentials were accepted and the auth cookie has been set. The client should navigate to the post-login destination (typically ReturnUrl). */
|
|
5577
6210
|
readonly Success: 0;
|
|
6211
|
+
/** Credentials were accepted but the account requires a second factor. The server has sent the 2FA code (e.g., via email) and is waiting for a follow-up call to POST /api/auth/login/2fa. No auth cookie is set yet. */
|
|
5578
6212
|
readonly RequiresTwoFactor: 1;
|
|
6213
|
+
/** The email/password pair did not match any account, or the password was wrong. The client should show a generic "invalid credentials" message — the server deliberately does not distinguish between "no such email" and "wrong password" to avoid account-enumeration attacks. */
|
|
5579
6214
|
readonly InvalidCredentials: 2;
|
|
6215
|
+
/** The account exists and the password matched, but the email address has not been confirmed and the host configured SignIn.RequireConfirmedAccount. The client should redirect to the registration-confirmation flow. */
|
|
5580
6216
|
readonly EmailNotConfirmed: 3;
|
|
6217
|
+
/** The account is locked out (too many failed attempts, manual lockout, etc.). The client should show the lockout page. */
|
|
5581
6218
|
readonly LockedOut: 4;
|
|
5582
6219
|
};
|
|
5583
6220
|
type LoginResult = (typeof LoginResult)[keyof typeof LoginResult];
|
|
5584
6221
|
/**
|
|
5585
6222
|
* Outcome of a RegisterRequest. Members carry explicit integer
|
|
5586
|
-
* values so
|
|
5587
|
-
* stable contract across reorderings.
|
|
6223
|
+
* values so the JSON wire form is a stable contract across reorderings.
|
|
5588
6224
|
*/
|
|
5589
6225
|
declare const RegisterResult: {
|
|
6226
|
+
/** The account was created and a confirmation email has been sent. The user is NOT signed in yet — they must click the confirmation link first. */
|
|
5590
6227
|
readonly ConfirmationEmailSent: 0;
|
|
6228
|
+
/** The account was created and the user has been signed in directly (the host did not configure SignIn.RequireConfirmedAccount). */
|
|
5591
6229
|
readonly SignedIn: 1;
|
|
6230
|
+
/** An account with the same email already exists. The server returns this rather than silently succeeding to give the client an opportunity to surface a clear error, at the cost of allowing email enumeration. Hosts that prefer the enumeration- resistant path should treat this as success client-side. */
|
|
5592
6231
|
readonly EmailAlreadyInUse: 2;
|
|
5593
6232
|
};
|
|
5594
6233
|
type RegisterResult = (typeof RegisterResult)[keyof typeof RegisterResult];
|
|
@@ -5605,7 +6244,9 @@ type RegisterResult = (typeof RegisterResult)[keyof typeof RegisterResult];
|
|
|
5605
6244
|
* relationship is rejected by the server at filter-apply time.
|
|
5606
6245
|
*/
|
|
5607
6246
|
declare const RelationshipFilterMode: {
|
|
6247
|
+
/** Return records currently associated with ParentRecord via the named relationship. For one-to-many, AND-merges a referencingColumn == parentRecord.Id condition. For many-to-many, AND-merges an intersect link-entity plus a condition on the parent-side intersect column. */
|
|
5608
6248
|
readonly IncludeExistingRecords: 0;
|
|
6249
|
+
/** Return records that are NOT currently associated with ParentRecord. Many-to-many only — AND-merges a LEFT OUTER intersect link-entity (filtered to the parent's intersect rows) and an outer null-check on the parent-side intersect column, so unrelated records survive but related records get filtered out. */
|
|
5609
6250
|
readonly ExcludeExistingRecords: 1;
|
|
5610
6251
|
};
|
|
5611
6252
|
type RelationshipFilterMode = (typeof RelationshipFilterMode)[keyof typeof RelationshipFilterMode];
|
|
@@ -5613,32 +6254,43 @@ type RelationshipFilterMode = (typeof RelationshipFilterMode)[keyof typeof Relat
|
|
|
5613
6254
|
* Specifies whether a column value is required.
|
|
5614
6255
|
*/
|
|
5615
6256
|
declare const RequiredLevel: {
|
|
6257
|
+
/** No requirements are specified. */
|
|
5616
6258
|
readonly None: 0;
|
|
6259
|
+
/** The column is required by the system and cannot be null. */
|
|
5617
6260
|
readonly SystemRequired: 1;
|
|
6261
|
+
/** The column is required by the application and should have a value. */
|
|
5618
6262
|
readonly ApplicationRequired: 2;
|
|
6263
|
+
/** It is recommended that the column has a value, but it is not enforced. */
|
|
5619
6264
|
readonly Recommended: 3;
|
|
5620
6265
|
};
|
|
5621
6266
|
type RequiredLevel = (typeof RequiredLevel)[keyof typeof RequiredLevel];
|
|
5622
6267
|
/**
|
|
5623
6268
|
* Outcome of `POST /api/auth/reset-password`. Members carry explicit
|
|
5624
|
-
* integer values so
|
|
5625
|
-
*
|
|
6269
|
+
* integer values so the JSON wire form is a stable contract across
|
|
6270
|
+
* reorderings.
|
|
5626
6271
|
*/
|
|
5627
6272
|
declare const ResetPasswordResult: {
|
|
6273
|
+
/** The password was reset and the user can now sign in with the new password. */
|
|
5628
6274
|
readonly Success: 0;
|
|
6275
|
+
/** The token was missing, malformed, expired, or already used. The client should redirect the user to the "request a new reset link" flow. */
|
|
5629
6276
|
readonly InvalidOrExpiredToken: 1;
|
|
6277
|
+
/** The new password did not satisfy the host's password rules. The accompanying ProblemDetails (in the failed-validation HTTP 400) carries the per-rule error messages from IdentityResult.Errors. */
|
|
5630
6278
|
readonly InvalidPassword: 2;
|
|
5631
6279
|
};
|
|
5632
6280
|
type ResetPasswordResult = (typeof ResetPasswordResult)[keyof typeof ResetPasswordResult];
|
|
5633
6281
|
/**
|
|
5634
6282
|
* Outcome of `POST /api/auth/switch-identity`. Members carry explicit
|
|
5635
|
-
* integer values so
|
|
5636
|
-
*
|
|
6283
|
+
* integer values so the JSON wire form is a stable contract across
|
|
6284
|
+
* reorderings.
|
|
5637
6285
|
*/
|
|
5638
6286
|
declare const SwitchIdentityResult: {
|
|
6287
|
+
/** The alt identity was signed in and the auth cookie has been swapped. */
|
|
5639
6288
|
readonly Switched: 0;
|
|
6289
|
+
/** The current principal has no alt-identity claim — there is nothing to switch to. */
|
|
5640
6290
|
readonly NoAltIdentity: 1;
|
|
6291
|
+
/** The alt identity referenced by the claim no longer exists in Dataverse (or is disabled). */
|
|
5641
6292
|
readonly AltIdentityNotFound: 2;
|
|
6293
|
+
/** The current request is unauthenticated. */
|
|
5642
6294
|
readonly NotAuthenticated: 3;
|
|
5643
6295
|
};
|
|
5644
6296
|
type SwitchIdentityResult = (typeof SwitchIdentityResult)[keyof typeof SwitchIdentityResult];
|
|
@@ -5646,13 +6298,21 @@ type SwitchIdentityResult = (typeof SwitchIdentityResult)[keyof typeof SwitchIde
|
|
|
5646
6298
|
* Bit flags describing the security operations the current user can perform on a record.
|
|
5647
6299
|
*/
|
|
5648
6300
|
declare const TableSecurityPermission: {
|
|
6301
|
+
/** No permissions. */
|
|
5649
6302
|
readonly None: 0;
|
|
6303
|
+
/** The record can be read. */
|
|
5650
6304
|
readonly Read: 1;
|
|
6305
|
+
/** The record (or table) can have new records created. */
|
|
5651
6306
|
readonly Create: 2;
|
|
6307
|
+
/** The record can be modified. */
|
|
5652
6308
|
readonly Write: 4;
|
|
6309
|
+
/** The record can be deleted. */
|
|
5653
6310
|
readonly Delete: 8;
|
|
6311
|
+
/** The record can be appended to other records (used as the child of a relationship). */
|
|
5654
6312
|
readonly Append: 16;
|
|
6313
|
+
/** Other records can be appended to this record (used as the parent of a relationship). */
|
|
5655
6314
|
readonly AppendTo: 32;
|
|
6315
|
+
/** All permissions except Create. */
|
|
5656
6316
|
readonly All: 63;
|
|
5657
6317
|
};
|
|
5658
6318
|
type TableSecurityPermission = (typeof TableSecurityPermission)[keyof typeof TableSecurityPermission];
|
|
@@ -5691,8 +6351,9 @@ type BaseDataPoint = Schemas['DataPointBase'];
|
|
|
5691
6351
|
type DataverseDataPoint = Schemas['DataPointDataverseDataPoint'];
|
|
5692
6352
|
type ChartLinkedEntity = Schemas['ChartLinkedEntity'];
|
|
5693
6353
|
type FileInfo = Schemas['FileInfo'];
|
|
5694
|
-
type EnvironmentFileSettings = Schemas['EnvironmentFileSettings'];
|
|
5695
6354
|
type CreateFileArchiveRequest = Schemas['CreateFileArchiveRequest'];
|
|
6355
|
+
type OrganizationSettings = Schemas['OrganizationSettings'];
|
|
6356
|
+
type Currency = Schemas['Currency'];
|
|
5696
6357
|
/**
|
|
5697
6358
|
* Client-side result of {@link PowerPortalsProClient.createFileArchiveAsync}.
|
|
5698
6359
|
* Carries the archive bytes plus the metadata derived from the server's
|
|
@@ -5710,17 +6371,37 @@ interface FileArchiveResult {
|
|
|
5710
6371
|
}
|
|
5711
6372
|
type LocalizationBundleManifest = Schemas['LocalizationBundleManifest'];
|
|
5712
6373
|
type LocalizationManifestForLocale = Schemas['LocalizationManifestForLocale'];
|
|
6374
|
+
type TranslationAvailability = Schemas['TranslationAvailability'];
|
|
6375
|
+
type TranslationLanguageOption = Schemas['TranslationLanguageOption'];
|
|
6376
|
+
type TranslationRequest = Schemas['TranslationRequest'];
|
|
6377
|
+
type TranslationResult = Schemas['TranslationResult'];
|
|
6378
|
+
type TranslatedFile = Schemas['TranslatedFile'];
|
|
6379
|
+
type LocalizationOverview = Schemas['LocalizationOverview'];
|
|
6380
|
+
type LocalizationPipelineConfiguration = Schemas['LocalizationPipelineConfiguration'];
|
|
6381
|
+
type LocalizationSourceLoad = Schemas['LocalizationSourceLoad'];
|
|
6382
|
+
type LocalizationSourceKind = Schemas['LocalizationSourceKind'];
|
|
6383
|
+
type LocalizationSourceStatus = Schemas['LocalizationSourceStatus'];
|
|
5713
6384
|
/**
|
|
5714
|
-
*
|
|
5715
|
-
*
|
|
5716
|
-
* `
|
|
5717
|
-
*
|
|
5718
|
-
*
|
|
5719
|
-
|
|
5720
|
-
|
|
6385
|
+
* A localization file pulled from the per-source or merged download endpoint:
|
|
6386
|
+
* the UTF-8 JSON bytes plus the server-suggested filename (parsed from the
|
|
6387
|
+
* `Content-Disposition` header). Mirrors the C# `LocalizationDownload` shape so
|
|
6388
|
+
* both stacks share one mental model. The download methods return `null` (not
|
|
6389
|
+
* this) when the server has nothing for the requested source/culture (404).
|
|
6390
|
+
*/
|
|
6391
|
+
interface LocalizationFileDownload {
|
|
6392
|
+
/** Server-suggested download filename (already includes the culture + `.json`). */
|
|
6393
|
+
readonly fileName: string;
|
|
6394
|
+
/** UTF-8-encoded JSON body. */
|
|
6395
|
+
readonly data: Uint8Array;
|
|
6396
|
+
}
|
|
6397
|
+
type CacheClearResult = Schemas['CacheClearResult'];
|
|
6398
|
+
/**
|
|
6399
|
+
* SPA-facing wrapper over the framework's record / metadata / file endpoints
|
|
6400
|
+
* under `/api/*`. Flat surface, no sub-namespacing — CRUD, metadata, files,
|
|
6401
|
+
* and aggregate-chart calls all live at the root.
|
|
5721
6402
|
*
|
|
5722
|
-
* Authentication is a separate concern handled by {@link AuthClient},
|
|
5723
|
-
*
|
|
6403
|
+
* Authentication is a separate concern handled by {@link AuthClient}, which
|
|
6404
|
+
* sits beside this class with its own surface.
|
|
5724
6405
|
*
|
|
5725
6406
|
* @example
|
|
5726
6407
|
* ```ts
|
|
@@ -5739,10 +6420,9 @@ declare class PowerPortalsProClient {
|
|
|
5739
6420
|
readonly transport: Transport;
|
|
5740
6421
|
constructor(transportOrOptions?: Transport | TransportOptions);
|
|
5741
6422
|
/**
|
|
5742
|
-
* Creates a new record. URL is derived from `record.tableName`.
|
|
5743
|
-
*
|
|
5744
|
-
* (which carry no dirty flags) round-trip
|
|
5745
|
-
* dirty-tracked records.
|
|
6423
|
+
* Creates a new record. URL is derived from `record.tableName`. The server
|
|
6424
|
+
* marks every property as modified before applying so column values
|
|
6425
|
+
* arriving from JSON (which carry no dirty flags) round-trip correctly.
|
|
5746
6426
|
*/
|
|
5747
6427
|
createRecordAsync(record: TableRecord$1, signal?: AbortSignal): Promise<CreateResponse>;
|
|
5748
6428
|
/**
|
|
@@ -5750,6 +6430,71 @@ declare class PowerPortalsProClient {
|
|
|
5750
6430
|
* omit it for the table's full set of columns visible to the caller.
|
|
5751
6431
|
*/
|
|
5752
6432
|
retrieveRecordAsync(tableLogicalName: string, recordId: string, columns?: readonly string[], signal?: AbortSignal): Promise<TableRecord$1>;
|
|
6433
|
+
/**
|
|
6434
|
+
* Probes whether the localization-translation feature is usable: whether a translation
|
|
6435
|
+
* provider is configured, whether the managed solution is installed, and the candidate
|
|
6436
|
+
* target languages (the portal's cultures annotated with provider-translatability).
|
|
6437
|
+
* SystemAdmin-gated.
|
|
6438
|
+
*/
|
|
6439
|
+
getTranslationAvailabilityAsync(signal?: AbortSignal): Promise<TranslationAvailability>;
|
|
6440
|
+
/**
|
|
6441
|
+
* Translates an uploaded localization file into one or more target languages, reusing the
|
|
6442
|
+
* Dataverse translation memory. Returns one file per language (base64 `content`) plus a zip
|
|
6443
|
+
* of all and translated-vs-reused counts. SystemAdmin-gated.
|
|
6444
|
+
*/
|
|
6445
|
+
translateLocalizationFileAsync(request: TranslationRequest, signal?: AbortSignal): Promise<TranslationResult>;
|
|
6446
|
+
/**
|
|
6447
|
+
* Reads the admin localization overview: the configured warmup pipeline plus the
|
|
6448
|
+
* per-source load records (load order, source kind, cultures touched, key counts,
|
|
6449
|
+
* how many keys overrode an earlier source, duration, status) from the most recent
|
|
6450
|
+
* warmup. Backs the `<LocalizationAdmin />` panel. SystemAdmin-gated.
|
|
6451
|
+
*/
|
|
6452
|
+
getLocalizationOverviewAsync(signal?: AbortSignal): Promise<LocalizationOverview>;
|
|
6453
|
+
/**
|
|
6454
|
+
* Downloads the JSON one source contributed to one culture during the most recent
|
|
6455
|
+
* warmup — a translation-handoff snapshot. Returns `null` when the source/culture
|
|
6456
|
+
* pair isn't tracked (the server answers 404 — cache cleared, source removed, or
|
|
6457
|
+
* the culture has no entries for that source). SystemAdmin-gated.
|
|
6458
|
+
*/
|
|
6459
|
+
downloadLocalizationSourceAsync(sourceId: string, culture: string, signal?: AbortSignal): Promise<LocalizationFileDownload | null>;
|
|
6460
|
+
/**
|
|
6461
|
+
* Downloads the merged JSON of every key the cache will serve for a culture (the
|
|
6462
|
+
* post-merge winning value across all sources) — a complete-snapshot reference.
|
|
6463
|
+
* Returns `null` when the culture has no entries (404). SystemAdmin-gated.
|
|
6464
|
+
*/
|
|
6465
|
+
downloadMergedLocalizationsAsync(culture: string, signal?: AbortSignal): Promise<LocalizationFileDownload | null>;
|
|
6466
|
+
/**
|
|
6467
|
+
* Shared binary-download path for the two localization download endpoints. Reads
|
|
6468
|
+
* the raw bytes via `response.arrayBuffer()` and derives the filename from the
|
|
6469
|
+
* `Content-Disposition` header (matching {@link createFileArchiveAsync}). Maps a
|
|
6470
|
+
* 404 to `null` so callers can show a "nothing to download" message instead of
|
|
6471
|
+
* surfacing it as an error.
|
|
6472
|
+
*/
|
|
6473
|
+
private downloadLocalizationFile;
|
|
6474
|
+
/**
|
|
6475
|
+
* Lists every registered server-side cache by name — the values that
|
|
6476
|
+
* {@link clearCacheAsync} accepts. Backs the per-cache buttons on an admin
|
|
6477
|
+
* "clear caches" page; render them sorted client-side for a stable order.
|
|
6478
|
+
* SystemAdmin-gated.
|
|
6479
|
+
*/
|
|
6480
|
+
getCacheNamesAsync(signal?: AbortSignal): Promise<readonly string[]>;
|
|
6481
|
+
/**
|
|
6482
|
+
* Clears every registered server-side cache and returns one
|
|
6483
|
+
* {@link CacheClearResult} per cache (name, success flag, error, elapsed ms).
|
|
6484
|
+
* Per-cache failures are reported in the result rows rather than thrown, so a
|
|
6485
|
+
* single misbehaving cache doesn't abort the rest — inspect `succeeded` on each
|
|
6486
|
+
* row. SystemAdmin-gated.
|
|
6487
|
+
*/
|
|
6488
|
+
clearAllCachesAsync(signal?: AbortSignal): Promise<readonly CacheClearResult[]>;
|
|
6489
|
+
/**
|
|
6490
|
+
* Clears a single named cache (case-insensitive match against
|
|
6491
|
+
* {@link getCacheNamesAsync}). Returns the {@link CacheClearResult}, or `null`
|
|
6492
|
+
* when no cache by that name is registered (the server answers 404). A clear
|
|
6493
|
+
* that runs but throws internally comes back as a result row with
|
|
6494
|
+
* `succeeded: false` — that's distinct from the not-found `null`.
|
|
6495
|
+
* SystemAdmin-gated.
|
|
6496
|
+
*/
|
|
6497
|
+
clearCacheAsync(name: string, signal?: AbortSignal): Promise<CacheClearResult | null>;
|
|
5753
6498
|
/**
|
|
5754
6499
|
* Runs a FetchXML query and returns the matching records plus paging info.
|
|
5755
6500
|
* The query is the FetchXML XML literal — the same format Dataverse natively accepts.
|
|
@@ -5767,23 +6512,24 @@ declare class PowerPortalsProClient {
|
|
|
5767
6512
|
* client can render headers + dispatch cells without a separate
|
|
5768
6513
|
* metadata round-trip.
|
|
5769
6514
|
*
|
|
5770
|
-
*
|
|
5771
|
-
* be supplied
|
|
6515
|
+
* At least one of <c>request.viewId</c> or <c>request.fetchXml</c> must
|
|
6516
|
+
* be supplied (neither returns a 400). Both may be supplied together — the
|
|
6517
|
+
* <c>fetchXml</c> is the query and the <c>viewId</c> names the view for
|
|
6518
|
+
* localized column-title resolution.
|
|
5772
6519
|
*
|
|
5773
|
-
* Mirrors how the
|
|
6520
|
+
* Mirrors how the is consumed
|
|
5774
6521
|
* `@powerportalspro/react`'s `useGridData` hook calls this method
|
|
5775
6522
|
* internally, so most consumers don't invoke it directly.
|
|
5776
6523
|
*/
|
|
5777
6524
|
loadGridAsync(request: GridDataRequest, signal?: AbortSignal): Promise<GridDataResponse>;
|
|
5778
6525
|
/**
|
|
5779
|
-
* Updates an existing record. URL is derived from `record.tableName` and `record.id`
|
|
6526
|
+
* Updates an existing record. URL is derived from `record.tableName` and `record.id`
|
|
5780
6527
|
* `record.id` must be set. For a new record, use {@link createRecordAsync} instead.
|
|
5781
6528
|
*/
|
|
5782
6529
|
updateRecordAsync(record: TableRecord$1, signal?: AbortSignal): Promise<UpdateResponse>;
|
|
5783
6530
|
/**
|
|
5784
|
-
* Executes a batch of {@link OrganizationRequest}s as a single round-trip
|
|
5785
|
-
*
|
|
5786
|
-
* MainContext save flow uses this to ship every dirty descendant's
|
|
6531
|
+
* Executes a batch of {@link OrganizationRequest}s as a single round-trip.
|
|
6532
|
+
* The MainContext save flow uses this to ship every dirty descendant's
|
|
5787
6533
|
* requests in one shot so a multi-record save lands transactionally
|
|
5788
6534
|
* server-side.
|
|
5789
6535
|
*
|
|
@@ -5806,7 +6552,7 @@ declare class PowerPortalsProClient {
|
|
|
5806
6552
|
* query, performs the multi-series pivot, and applies combined
|
|
5807
6553
|
* date-label formatting using the request culture.
|
|
5808
6554
|
*
|
|
5809
|
-
* Mirrors how the
|
|
6555
|
+
* Mirrors how the is consumed
|
|
5810
6556
|
* `@powerportalspro/react-charts`'s `DataverseChartDataSource` family
|
|
5811
6557
|
* calls this method internally, so most consumers don't invoke it
|
|
5812
6558
|
* directly.
|
|
@@ -5818,12 +6564,13 @@ declare class PowerPortalsProClient {
|
|
|
5818
6564
|
* Returns the current user's combined table-level `TableSecurityPermission`
|
|
5819
6565
|
* bitmask for `tableLogicalName` — the bitwise union of Read / Create /
|
|
5820
6566
|
* Write / Delete / Append / AppendTo flags any registered
|
|
5821
|
-
* `ITablePermissionHandler` allows for that user on that table.
|
|
5822
|
-
* the cached `ITablePermissionCache
|
|
5823
|
-
*
|
|
5824
|
-
* by the `useTablePermissions(tableName)` React hook with
|
|
5825
|
-
* dedup; reach for the raw client only when you're
|
|
5826
|
-
* a
|
|
6567
|
+
* `ITablePermissionHandler` allows for that user on that table. Routed
|
|
6568
|
+
* server-side through the cached `ITablePermissionCache` lookup.
|
|
6569
|
+
*
|
|
6570
|
+
* Wrapped by the `useTablePermissions(tableName)` React hook with
|
|
6571
|
+
* in-flight-promise dedup; reach for the raw client only when you're
|
|
6572
|
+
* outside React (e.g. a stand-alone script) or need an imperative
|
|
6573
|
+
* one-off check.
|
|
5827
6574
|
*
|
|
5828
6575
|
* Returns `0` (`TableSecurityPermission.None`) when the user has no
|
|
5829
6576
|
* permissions on the table; consumers compare via bit math (e.g.
|
|
@@ -5907,14 +6654,14 @@ declare class PowerPortalsProClient {
|
|
|
5907
6654
|
* override files (last-wins). Use this to seed the React-side localizer
|
|
5908
6655
|
* with one round-trip.
|
|
5909
6656
|
*
|
|
5910
|
-
* Returned shape is a nested object that mirrors the source JSON files
|
|
6657
|
+
* Returned shape is a nested object that mirrors the source JSON files
|
|
5911
6658
|
* `{ app: { buttons: { save: { label: "Save" } } }, tables: { contact: ... } }`.
|
|
5912
6659
|
* The client typically flattens this to dotted-key form for `t()` lookup
|
|
5913
6660
|
* (see {@link flattenStrings} in `@powerportalspro/react`).
|
|
5914
6661
|
*
|
|
5915
6662
|
* @param culture culture code matching what server-side ASP.NET request
|
|
5916
|
-
*
|
|
5917
|
-
*
|
|
6663
|
+
* localization recognizes — e.g. `"en"`, `"es"`, `"fr-CA"`. Falls back
|
|
6664
|
+
* to the default culture server-side when the value isn't supported.
|
|
5918
6665
|
*/
|
|
5919
6666
|
retrieveLocalizedStringsAsync(culture: string, signal?: AbortSignal): Promise<Record<string, unknown>>;
|
|
5920
6667
|
/**
|
|
@@ -5939,12 +6686,12 @@ declare class PowerPortalsProClient {
|
|
|
5939
6686
|
* Two response shapes, selected by `request.responseFormat`:
|
|
5940
6687
|
*
|
|
5941
6688
|
* - **BinaryStream** (default): the server returns the raw archive bytes; this
|
|
5942
|
-
*
|
|
5943
|
-
*
|
|
5944
|
-
*
|
|
6689
|
+
* method reads them via `response.arrayBuffer()` and wraps the result in a
|
|
6690
|
+
* {@link FileArchiveResult}, deriving `fileName` from the `Content-Disposition`
|
|
6691
|
+
* header and `contentType` from `Content-Type`. Most consumers want this path.
|
|
5945
6692
|
* - **Json**: the server returns a {@link FileArchiveJsonResponse} envelope with
|
|
5946
|
-
*
|
|
5947
|
-
*
|
|
6693
|
+
* the archive bytes base64-encoded. Useful for test harnesses, service workers,
|
|
6694
|
+
* or callers that need to inspect filename/size before triggering a download.
|
|
5948
6695
|
*
|
|
5949
6696
|
* Either way, the returned `data` is empty (`Uint8Array(0)`) when none of the
|
|
5950
6697
|
* supplied records produced a usable file — the caller can surface a "nothing to
|
|
@@ -5956,7 +6703,21 @@ declare class PowerPortalsProClient {
|
|
|
5956
6703
|
* upload size in KB). UI consumers use this to validate uploads client-side before
|
|
5957
6704
|
* the round-trip, mirroring what the server enforces.
|
|
5958
6705
|
*/
|
|
5959
|
-
|
|
6706
|
+
/**
|
|
6707
|
+
* Reads the org-wide settings sourced from the Dataverse `organization`
|
|
6708
|
+
* record: default currency plus file-upload constraints
|
|
6709
|
+
* (`blockedFileExtensions`, `maxUploadFileSizeInBytes`). Replaces the legacy
|
|
6710
|
+
* `getEnvironmentFileSettingsAsync` — file fields now live on this combined
|
|
6711
|
+
* response.
|
|
6712
|
+
* <para>
|
|
6713
|
+
* Primary consumers:
|
|
6714
|
+
* </para>
|
|
6715
|
+
* - Create-mode `<MoneyEdit>` reads `defaultCurrency` to render the right
|
|
6716
|
+
* symbol on brand-new records before save.
|
|
6717
|
+
* - File editors / FileGrid read the two file fields to reject invalid
|
|
6718
|
+
* uploads client-side before the round-trip.
|
|
6719
|
+
*/
|
|
6720
|
+
getOrganizationSettingsAsync(signal?: AbortSignal): Promise<OrganizationSettings>;
|
|
5960
6721
|
}
|
|
5961
6722
|
|
|
5962
6723
|
type TableRecord = components['schemas']['TableRecord'];
|
|
@@ -5971,7 +6732,7 @@ type TableRecord = components['schemas']['TableRecord'];
|
|
|
5971
6732
|
* Returns `undefined` when neither field carries a usable value (record
|
|
5972
6733
|
* still loading, or a never-seeded create-mode record).
|
|
5973
6734
|
*
|
|
5974
|
-
* Mirrors
|
|
6735
|
+
* Mirrors implicit conversion
|
|
5975
6736
|
* (`Id == Guid.Empty ? _idForCreate : Id`). The server resolves either
|
|
5976
6737
|
* shape via `ResolveAssociateRecordAsync` — both flows interoperate.
|
|
5977
6738
|
*/
|
|
@@ -5979,4 +6740,4 @@ declare function getRecordReferenceId(record: Pick<TableRecord, 'id' | '_idForCr
|
|
|
5979
6740
|
|
|
5980
6741
|
declare const VERSION = "0.1.0";
|
|
5981
6742
|
|
|
5982
|
-
export { type AggregateChartConfig, AggregateType, ArchiveFormat, ArgumentError, ArgumentNullError, type AssociateRequest, AuthClient, type AuthenticatorSetupResponse, type BaseDataPoint, type ChangeEmailRequest, type ChangeEmailResponse, ChangeEmailResult, type ChangePasswordRequest, type ChangePasswordResponse, ChangePasswordResult, type ChartAggregation, type ChartData, type ChartDataRequest, type ChartDataResponse, type ChartDataset, ChartDateGrouping, type ChartGrouping, type ChartLinkedEntity, type ColumnSort, ColumnType, type ConfirmEmailRequest, type ConfirmEmailResponse, type ConfirmExternalLoginRequest, type ConfirmExternalLoginResponse, ConfirmExternalLoginResult, type CreateRequest, type CreateResponse, type CurrentLoginInfo, type CurrentUserInfo, type DataPoint, type DataverseDataPoint, DateTimeBehavior, type DeletePersonalDataRequest, type DeletePersonalDataResponse, DeletePersonalDataResult, type DeleteRequest, type DeleteResponse, type Disable2faResponse, type DisassociateRequest,
|
|
6743
|
+
export { type AggregateChartConfig, AggregateType, ArchiveFormat, ArgumentError, ArgumentNullError, type AssociateRequest, AuthClient, type AuthOptionsResponse, type AuthenticatorSetupResponse, type BaseDataPoint, type CacheClearResult, type ChangeEmailRequest, type ChangeEmailResponse, ChangeEmailResult, type ChangePasswordRequest, type ChangePasswordResponse, ChangePasswordResult, type ChartAggregation, type ChartData, type ChartDataRequest, type ChartDataResponse, type ChartDataset, ChartDateGrouping, type ChartGrouping, type ChartLinkedEntity, type ColumnSort, ColumnType, type ConfirmEmailRequest, type ConfirmEmailResponse, type ConfirmExternalLoginRequest, type ConfirmExternalLoginResponse, ConfirmExternalLoginResult, type CreateRequest, type CreateResponse, type Currency, type CurrentLoginInfo, type CurrentUserInfo, type DataPoint, type DataverseDataPoint, DateTimeBehavior, type DeletePersonalDataRequest, type DeletePersonalDataResponse, DeletePersonalDataResult, type DeleteRequest, type DeleteResponse, type Disable2faResponse, type DisassociateRequest, ExternalLoginCandidateKind, type ExternalLoginProviderInfo, type ExternalLoginsResponse, FileArchiveResponseFormat, type FileInfo, type Forget2faResponse, type GridDataRequest, type GridDataResponse, type GridFilterBase, InvalidOperationError, JoinOperator, type LocalizationFileDownload, type LocalizationOverview, type LocalizationPipelineConfiguration, type LocalizationSourceKind, type LocalizationSourceLoad, type LocalizationSourceStatus, type LoginRequest, type LoginResponse, LoginResult, type OrganizationRequest, type OrganizationResponse, type OrganizationSettings, type PendingExternalLoginResponse, type PersonalDataResponse, PowerPortalsProClient, PowerPortalsProError, type PowerPortalsProErrorInit, type ProblemDetails, type ProfileResponse, type RecoveryCodesResponse, type RegisterRequest, type RegisterResponse, RegisterResult, type RelationshipFilter, RelationshipFilterMode, type RemoveExternalLoginRequest, type RemoveExternalLoginResponse, type RequestOptions, type RequestPasswordResetRequest, RequiredLevel, type ResendEmailConfirmationRequest, type ResetAuthenticatorResponse, type ResetPasswordRequest, type ResetPasswordResponse, ResetPasswordResult, type ResolvedColumn, type RetrieveRecordsResponse, Routes, type SelectExternalLoginRequest, type SendEmailConfirmationResponse, type SetPasswordRequest, type SetPasswordResponse, type SwitchIdentityResponse, SwitchIdentityResult, type TableMetadata, type TableRecord$1 as TableRecord, type TableRecordReference, TableSecurityPermission, type TranslatedFile, type TranslationAvailability, type TranslationLanguageOption, type TranslationRequest, type TranslationResult, Transport, type TransportOptions, type TwoFactorStatusResponse, UnauthorizedAccessError, type UpdateProfileRequest, type UpdateRequest, type UpdateResponse, VERSION, type VerifyAuthenticatorRequest, type VerifyAuthenticatorResponse, type VerifyTwoFactorRequest, type VerifyTwoFactorResponse, type ViewMetadata, type components, getRecordReferenceId, mapProblemDetails, type paths };
|