@powerportalspro/core 5.1.0 → 6.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.d.cts CHANGED
@@ -53,6 +53,12 @@ declare const Routes: {
53
53
  * values across all sources). `culture` is a query-string parameter. SystemAdmin-only.
54
54
  */
55
55
  readonly localizationMergedDownload: "/api/localizations/merged/download";
56
+ /**
57
+ * GET — structured list of every key the cache will serve for a culture, its winning
58
+ * value, and the source that supplied it. `culture` is a query-string parameter. Backs
59
+ * the LocalizationAdmin "view merged sources" dialog. SystemAdmin-only.
60
+ */
61
+ readonly localizationMergedEntries: "/api/localizations/merged/entries";
56
62
  /** GET — whether translation is configured, the managed solution is installed, and the candidate target languages. SystemAdmin-only. */
57
63
  readonly localizationTranslationAvailability: "/api/localizations/translation/availability";
58
64
  /** POST — translate an uploaded localization file into one or more target languages. SystemAdmin-only. */
@@ -1302,6 +1308,43 @@ interface paths {
1302
1308
  patch?: never;
1303
1309
  trace?: never;
1304
1310
  };
1311
+ "/api/localizations/merged/entries": {
1312
+ parameters: {
1313
+ query?: never;
1314
+ header?: never;
1315
+ path?: never;
1316
+ cookie?: never;
1317
+ };
1318
+ get: {
1319
+ parameters: {
1320
+ query: {
1321
+ culture: string;
1322
+ };
1323
+ header?: never;
1324
+ path?: never;
1325
+ cookie?: never;
1326
+ };
1327
+ requestBody?: never;
1328
+ responses: {
1329
+ /** @description OK */
1330
+ 200: {
1331
+ headers: {
1332
+ [name: string]: unknown;
1333
+ };
1334
+ content: {
1335
+ "application/json": components["schemas"]["MergedLocalizationEntry"][];
1336
+ };
1337
+ };
1338
+ };
1339
+ };
1340
+ put?: never;
1341
+ post?: never;
1342
+ delete?: never;
1343
+ options?: never;
1344
+ head?: never;
1345
+ patch?: never;
1346
+ trace?: never;
1347
+ };
1305
1348
  "/api/localizations/translation/availability": {
1306
1349
  parameters: {
1307
1350
  query?: never;
@@ -4109,16 +4152,7 @@ interface components {
4109
4152
  * don't use role-based authorization.
4110
4153
  */
4111
4154
  roles?: string[];
4112
- /**
4113
- * @description Logical name of the Dataverse table the signed-in user is backed by — typically
4114
- * `"contact"` for a portal user or `"systemuser"` for an internal user.
4115
- * Sourced from the principal's `tablename` claim that PowerPortalsPro's
4116
- * `SignInManager` stamps on every sign-in. `null` for anonymous
4117
- * requests, and also for hosts whose Identity stack doesn't emit the claim
4118
- * (e.g., a generic `IdentityUser` consumer that hasn't wired up a
4119
- * PortalUser-style backing entity).
4120
- */
4121
- tableName?: null | string;
4155
+ portalUserType?: null | components["schemas"]["PortalUserType"];
4122
4156
  /**
4123
4157
  * @description Logical name of the user's sibling Dataverse identity (`"contact"` or
4124
4158
  * `"systemuser"`) when one is registered — set on every principal refresh
@@ -4234,7 +4268,8 @@ interface components {
4234
4268
  */
4235
4269
  success?: boolean;
4236
4270
  };
4237
- EntityRole: number;
4271
+ /** @enum {integer} */
4272
+ EntityRole: 0 | 1;
4238
4273
  /**
4239
4274
  * @description One option presented to the user when a single external sign-in matches
4240
4275
  * both a Dataverse `systemuser` and a `contact`. Used by
@@ -4841,6 +4876,33 @@ interface components {
4841
4876
  /** @description The schema name of the relationship in Dataverse. */
4842
4877
  relationshipName: string;
4843
4878
  };
4879
+ /**
4880
+ * @description One merged localization key for a culture, paired with the source that supplied the
4881
+ * winning value. Backs the `LocalizationAdmin` "view merged sources" dialog — the
4882
+ * same data the merged-download produces, but per-key annotated with its origin so an
4883
+ * admin can see exactly which file / web resource / metadata table a given string came
4884
+ * from. Returned sorted by string MergedLocalizationEntry.Key. Surfaced via
4885
+ * Task<IReadOnlyList<MergedLocalizationEntry>> IPowerPortalsProService.GetMergedLocalizationEntriesAsync(string culture).
4886
+ */
4887
+ MergedLocalizationEntry: {
4888
+ /** @description The flat dot-delimited localization key (lowercased, as stored in the cache). */
4889
+ key: string;
4890
+ /** @description The winning value for this key in the requested culture (post-merge). */
4891
+ value: string;
4892
+ /**
4893
+ * @description Stable identifier of the source that supplied the winning value
4894
+ * (see string LocalizationSourceLoad.SourceId). Empty when no source
4895
+ * contributed a non-empty value for the key.
4896
+ */
4897
+ sourceId: string;
4898
+ /**
4899
+ * @description Human-readable name/location of the winning source — the file path, web-resource
4900
+ * name, or Dataverse-metadata display name. Empty when unattributed.
4901
+ */
4902
+ sourceDisplayName: string;
4903
+ /** @description The kind of the winning source — drives the "Kind" column / grouping in the UI. */
4904
+ sourceKind: components["schemas"]["LocalizationSourceKind"];
4905
+ };
4844
4906
  /** @description Metadata for a Dataverse one-to-many (1:N) relationship between a referenced (parent) table and a referencing (child) table. */
4845
4907
  OneToManyMetadata: {
4846
4908
  /** @description The logical name of the referenced (parent) table — the "one" side of the relationship. */
@@ -5140,6 +5202,8 @@ interface components {
5140
5202
  [key: string]: string;
5141
5203
  };
5142
5204
  };
5205
+ /** @enum {integer} */
5206
+ PortalUserType: 0 | 1 | 2;
5143
5207
  ProblemDetails: {
5144
5208
  type?: null | string;
5145
5209
  title?: null | string;
@@ -5355,6 +5419,15 @@ interface components {
5355
5419
  * so clients can match this directly against the property key.
5356
5420
  */
5357
5421
  columnName: string;
5422
+ /**
5423
+ * @description Logical name of the table this column actually belongs to. For a primary-entity column
5424
+ * this is the view's main table; for a linked-entity column it is the <em>related</em>
5425
+ * table the column lives on (e.g. `contact` for an account view's primary-contact
5426
+ * email column). Lets a client attribute each column to its owning table without a
5427
+ * separate metadata round-trip — needed to build the column's localization key, which is
5428
+ * keyed by the owning table, not the grid's primary table.
5429
+ */
5430
+ tableName: string;
5358
5431
  /**
5359
5432
  * @description Localized display name, resolved against the user's locale via
5360
5433
  * the framework's localization layer. Falls back through
@@ -5802,7 +5875,8 @@ interface components {
5802
5875
  */
5803
5876
  displayName?: null | string;
5804
5877
  };
5805
- ViewType: number;
5878
+ /** @enum {integer} */
5879
+ ViewType: 0 | 1 | 2 | 4 | 32 | 64 | 2048;
5806
5880
  };
5807
5881
  responses: never;
5808
5882
  parameters: never;
@@ -6180,6 +6254,13 @@ declare const DeletePersonalDataResult: {
6180
6254
  readonly RequireLocalPassword: 2;
6181
6255
  };
6182
6256
  type DeletePersonalDataResult = (typeof DeletePersonalDataResult)[keyof typeof DeletePersonalDataResult];
6257
+ declare const EntityRole: {
6258
+ /** The entity plays the "referenced" (primary) role. */
6259
+ readonly Referenced: 0;
6260
+ /** The entity plays the "referencing" (related) role. */
6261
+ readonly Referencing: 1;
6262
+ };
6263
+ type EntityRole = (typeof EntityRole)[keyof typeof EntityRole];
6183
6264
  /**
6184
6265
  * Which Dataverse table backs an external-login candidate. Members carry
6185
6266
  * explicit integer values so the JSON wire form is a stable contract
@@ -6250,6 +6331,15 @@ declare const LoginResult: {
6250
6331
  readonly LockedOut: 4;
6251
6332
  };
6252
6333
  type LoginResult = (typeof LoginResult)[keyof typeof LoginResult];
6334
+ declare const PortalUserType: {
6335
+ /** A portal contact under the classic (portal-side) security model — no stub systemuser; permission handlers enforce access. */
6336
+ readonly Contact: 0;
6337
+ /** A real internal Dataverse systemuser (e.g. Entra ID staff sign-in). */
6338
+ readonly SystemUser: 1;
6339
+ /** A portal contact whose Dataverse access is enforced through the system-managed (C2) stub systemuser provisioned for it under the Dataverse-native security model. Must never be presented as an internal user. */
6340
+ readonly ContactStubUser: 2;
6341
+ };
6342
+ type PortalUserType = (typeof PortalUserType)[keyof typeof PortalUserType];
6253
6343
  /**
6254
6344
  * Outcome of a RegisterRequest. Members carry explicit integer
6255
6345
  * values so the JSON wire form is a stable contract across reorderings.
@@ -6348,6 +6438,23 @@ declare const TableSecurityPermission: {
6348
6438
  readonly All: 63;
6349
6439
  };
6350
6440
  type TableSecurityPermission = (typeof TableSecurityPermission)[keyof typeof TableSecurityPermission];
6441
+ declare const ViewType: {
6442
+ /** A public view visible to all users. */
6443
+ readonly Public: 0;
6444
+ /** An advanced find view. */
6445
+ readonly AdvancedFind: 1;
6446
+ /** A view used for displaying associated records. */
6447
+ readonly Associated: 2;
6448
+ /** A view used for Quick Find search. */
6449
+ readonly QuickFind: 4;
6450
+ /** A view used for displaying team or queue members. */
6451
+ readonly Members: 32;
6452
+ /** A view used in lookup dialogs. */
6453
+ readonly Lookup: 64;
6454
+ /** A view used for the lookup display format. */
6455
+ readonly LookupDisplay: 2048;
6456
+ };
6457
+ type ViewType = (typeof ViewType)[keyof typeof ViewType];
6351
6458
 
6352
6459
  type Schemas = components['schemas'];
6353
6460
  type TableRecord$1 = Schemas['TableRecord'];
@@ -6413,6 +6520,7 @@ type LocalizationPipelineConfiguration = Schemas['LocalizationPipelineConfigurat
6413
6520
  type LocalizationSourceLoad = Schemas['LocalizationSourceLoad'];
6414
6521
  type LocalizationSourceKind = Schemas['LocalizationSourceKind'];
6415
6522
  type LocalizationSourceStatus = Schemas['LocalizationSourceStatus'];
6523
+ type MergedLocalizationEntry = Schemas['MergedLocalizationEntry'];
6416
6524
  /**
6417
6525
  * A localization file pulled from the per-source or merged download endpoint:
6418
6526
  * the UTF-8 JSON bytes plus the server-suggested filename (parsed from the
@@ -6495,6 +6603,13 @@ declare class PowerPortalsProClient {
6495
6603
  * Returns `null` when the culture has no entries (404). SystemAdmin-gated.
6496
6604
  */
6497
6605
  downloadMergedLocalizationsAsync(culture: string, signal?: AbortSignal): Promise<LocalizationFileDownload | null>;
6606
+ /**
6607
+ * Reads the merged localization keys for a culture as a structured list — every key the
6608
+ * cache will serve, its winning value, and which source supplied it. Same data as
6609
+ * {@link downloadMergedLocalizationsAsync} but per-key annotated with provenance, for the
6610
+ * `<LocalizationAdmin />` "view merged sources" dialog. Sorted by key. SystemAdmin-gated.
6611
+ */
6612
+ getMergedLocalizationEntriesAsync(culture: string, signal?: AbortSignal): Promise<readonly MergedLocalizationEntry[]>;
6498
6613
  /**
6499
6614
  * Shared binary-download path for the two localization download endpoints. Reads
6500
6615
  * the raw bytes via `response.arrayBuffer()` and derives the filename from the
@@ -6772,4 +6887,4 @@ declare function getRecordReferenceId(record: Pick<TableRecord, 'id' | '_idForCr
6772
6887
 
6773
6888
  declare const VERSION = "0.1.0";
6774
6889
 
6775
- 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 };
6890
+ 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, EntityRole, 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 MergedLocalizationEntry, type OrganizationRequest, type OrganizationResponse, type OrganizationSettings, type PendingExternalLoginResponse, type PersonalDataResponse, PortalUserType, 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, ViewType, type components, getRecordReferenceId, mapProblemDetails, type paths };
package/dist/index.d.ts CHANGED
@@ -53,6 +53,12 @@ declare const Routes: {
53
53
  * values across all sources). `culture` is a query-string parameter. SystemAdmin-only.
54
54
  */
55
55
  readonly localizationMergedDownload: "/api/localizations/merged/download";
56
+ /**
57
+ * GET — structured list of every key the cache will serve for a culture, its winning
58
+ * value, and the source that supplied it. `culture` is a query-string parameter. Backs
59
+ * the LocalizationAdmin "view merged sources" dialog. SystemAdmin-only.
60
+ */
61
+ readonly localizationMergedEntries: "/api/localizations/merged/entries";
56
62
  /** GET — whether translation is configured, the managed solution is installed, and the candidate target languages. SystemAdmin-only. */
57
63
  readonly localizationTranslationAvailability: "/api/localizations/translation/availability";
58
64
  /** POST — translate an uploaded localization file into one or more target languages. SystemAdmin-only. */
@@ -1302,6 +1308,43 @@ interface paths {
1302
1308
  patch?: never;
1303
1309
  trace?: never;
1304
1310
  };
1311
+ "/api/localizations/merged/entries": {
1312
+ parameters: {
1313
+ query?: never;
1314
+ header?: never;
1315
+ path?: never;
1316
+ cookie?: never;
1317
+ };
1318
+ get: {
1319
+ parameters: {
1320
+ query: {
1321
+ culture: string;
1322
+ };
1323
+ header?: never;
1324
+ path?: never;
1325
+ cookie?: never;
1326
+ };
1327
+ requestBody?: never;
1328
+ responses: {
1329
+ /** @description OK */
1330
+ 200: {
1331
+ headers: {
1332
+ [name: string]: unknown;
1333
+ };
1334
+ content: {
1335
+ "application/json": components["schemas"]["MergedLocalizationEntry"][];
1336
+ };
1337
+ };
1338
+ };
1339
+ };
1340
+ put?: never;
1341
+ post?: never;
1342
+ delete?: never;
1343
+ options?: never;
1344
+ head?: never;
1345
+ patch?: never;
1346
+ trace?: never;
1347
+ };
1305
1348
  "/api/localizations/translation/availability": {
1306
1349
  parameters: {
1307
1350
  query?: never;
@@ -4109,16 +4152,7 @@ interface components {
4109
4152
  * don't use role-based authorization.
4110
4153
  */
4111
4154
  roles?: string[];
4112
- /**
4113
- * @description Logical name of the Dataverse table the signed-in user is backed by — typically
4114
- * `"contact"` for a portal user or `"systemuser"` for an internal user.
4115
- * Sourced from the principal's `tablename` claim that PowerPortalsPro's
4116
- * `SignInManager` stamps on every sign-in. `null` for anonymous
4117
- * requests, and also for hosts whose Identity stack doesn't emit the claim
4118
- * (e.g., a generic `IdentityUser` consumer that hasn't wired up a
4119
- * PortalUser-style backing entity).
4120
- */
4121
- tableName?: null | string;
4155
+ portalUserType?: null | components["schemas"]["PortalUserType"];
4122
4156
  /**
4123
4157
  * @description Logical name of the user's sibling Dataverse identity (`"contact"` or
4124
4158
  * `"systemuser"`) when one is registered — set on every principal refresh
@@ -4234,7 +4268,8 @@ interface components {
4234
4268
  */
4235
4269
  success?: boolean;
4236
4270
  };
4237
- EntityRole: number;
4271
+ /** @enum {integer} */
4272
+ EntityRole: 0 | 1;
4238
4273
  /**
4239
4274
  * @description One option presented to the user when a single external sign-in matches
4240
4275
  * both a Dataverse `systemuser` and a `contact`. Used by
@@ -4841,6 +4876,33 @@ interface components {
4841
4876
  /** @description The schema name of the relationship in Dataverse. */
4842
4877
  relationshipName: string;
4843
4878
  };
4879
+ /**
4880
+ * @description One merged localization key for a culture, paired with the source that supplied the
4881
+ * winning value. Backs the `LocalizationAdmin` "view merged sources" dialog — the
4882
+ * same data the merged-download produces, but per-key annotated with its origin so an
4883
+ * admin can see exactly which file / web resource / metadata table a given string came
4884
+ * from. Returned sorted by string MergedLocalizationEntry.Key. Surfaced via
4885
+ * Task&lt;IReadOnlyList&lt;MergedLocalizationEntry&gt;&gt; IPowerPortalsProService.GetMergedLocalizationEntriesAsync(string culture).
4886
+ */
4887
+ MergedLocalizationEntry: {
4888
+ /** @description The flat dot-delimited localization key (lowercased, as stored in the cache). */
4889
+ key: string;
4890
+ /** @description The winning value for this key in the requested culture (post-merge). */
4891
+ value: string;
4892
+ /**
4893
+ * @description Stable identifier of the source that supplied the winning value
4894
+ * (see string LocalizationSourceLoad.SourceId). Empty when no source
4895
+ * contributed a non-empty value for the key.
4896
+ */
4897
+ sourceId: string;
4898
+ /**
4899
+ * @description Human-readable name/location of the winning source — the file path, web-resource
4900
+ * name, or Dataverse-metadata display name. Empty when unattributed.
4901
+ */
4902
+ sourceDisplayName: string;
4903
+ /** @description The kind of the winning source — drives the "Kind" column / grouping in the UI. */
4904
+ sourceKind: components["schemas"]["LocalizationSourceKind"];
4905
+ };
4844
4906
  /** @description Metadata for a Dataverse one-to-many (1:N) relationship between a referenced (parent) table and a referencing (child) table. */
4845
4907
  OneToManyMetadata: {
4846
4908
  /** @description The logical name of the referenced (parent) table — the "one" side of the relationship. */
@@ -5140,6 +5202,8 @@ interface components {
5140
5202
  [key: string]: string;
5141
5203
  };
5142
5204
  };
5205
+ /** @enum {integer} */
5206
+ PortalUserType: 0 | 1 | 2;
5143
5207
  ProblemDetails: {
5144
5208
  type?: null | string;
5145
5209
  title?: null | string;
@@ -5355,6 +5419,15 @@ interface components {
5355
5419
  * so clients can match this directly against the property key.
5356
5420
  */
5357
5421
  columnName: string;
5422
+ /**
5423
+ * @description Logical name of the table this column actually belongs to. For a primary-entity column
5424
+ * this is the view's main table; for a linked-entity column it is the <em>related</em>
5425
+ * table the column lives on (e.g. `contact` for an account view's primary-contact
5426
+ * email column). Lets a client attribute each column to its owning table without a
5427
+ * separate metadata round-trip — needed to build the column's localization key, which is
5428
+ * keyed by the owning table, not the grid's primary table.
5429
+ */
5430
+ tableName: string;
5358
5431
  /**
5359
5432
  * @description Localized display name, resolved against the user's locale via
5360
5433
  * the framework's localization layer. Falls back through
@@ -5802,7 +5875,8 @@ interface components {
5802
5875
  */
5803
5876
  displayName?: null | string;
5804
5877
  };
5805
- ViewType: number;
5878
+ /** @enum {integer} */
5879
+ ViewType: 0 | 1 | 2 | 4 | 32 | 64 | 2048;
5806
5880
  };
5807
5881
  responses: never;
5808
5882
  parameters: never;
@@ -6180,6 +6254,13 @@ declare const DeletePersonalDataResult: {
6180
6254
  readonly RequireLocalPassword: 2;
6181
6255
  };
6182
6256
  type DeletePersonalDataResult = (typeof DeletePersonalDataResult)[keyof typeof DeletePersonalDataResult];
6257
+ declare const EntityRole: {
6258
+ /** The entity plays the "referenced" (primary) role. */
6259
+ readonly Referenced: 0;
6260
+ /** The entity plays the "referencing" (related) role. */
6261
+ readonly Referencing: 1;
6262
+ };
6263
+ type EntityRole = (typeof EntityRole)[keyof typeof EntityRole];
6183
6264
  /**
6184
6265
  * Which Dataverse table backs an external-login candidate. Members carry
6185
6266
  * explicit integer values so the JSON wire form is a stable contract
@@ -6250,6 +6331,15 @@ declare const LoginResult: {
6250
6331
  readonly LockedOut: 4;
6251
6332
  };
6252
6333
  type LoginResult = (typeof LoginResult)[keyof typeof LoginResult];
6334
+ declare const PortalUserType: {
6335
+ /** A portal contact under the classic (portal-side) security model — no stub systemuser; permission handlers enforce access. */
6336
+ readonly Contact: 0;
6337
+ /** A real internal Dataverse systemuser (e.g. Entra ID staff sign-in). */
6338
+ readonly SystemUser: 1;
6339
+ /** A portal contact whose Dataverse access is enforced through the system-managed (C2) stub systemuser provisioned for it under the Dataverse-native security model. Must never be presented as an internal user. */
6340
+ readonly ContactStubUser: 2;
6341
+ };
6342
+ type PortalUserType = (typeof PortalUserType)[keyof typeof PortalUserType];
6253
6343
  /**
6254
6344
  * Outcome of a RegisterRequest. Members carry explicit integer
6255
6345
  * values so the JSON wire form is a stable contract across reorderings.
@@ -6348,6 +6438,23 @@ declare const TableSecurityPermission: {
6348
6438
  readonly All: 63;
6349
6439
  };
6350
6440
  type TableSecurityPermission = (typeof TableSecurityPermission)[keyof typeof TableSecurityPermission];
6441
+ declare const ViewType: {
6442
+ /** A public view visible to all users. */
6443
+ readonly Public: 0;
6444
+ /** An advanced find view. */
6445
+ readonly AdvancedFind: 1;
6446
+ /** A view used for displaying associated records. */
6447
+ readonly Associated: 2;
6448
+ /** A view used for Quick Find search. */
6449
+ readonly QuickFind: 4;
6450
+ /** A view used for displaying team or queue members. */
6451
+ readonly Members: 32;
6452
+ /** A view used in lookup dialogs. */
6453
+ readonly Lookup: 64;
6454
+ /** A view used for the lookup display format. */
6455
+ readonly LookupDisplay: 2048;
6456
+ };
6457
+ type ViewType = (typeof ViewType)[keyof typeof ViewType];
6351
6458
 
6352
6459
  type Schemas = components['schemas'];
6353
6460
  type TableRecord$1 = Schemas['TableRecord'];
@@ -6413,6 +6520,7 @@ type LocalizationPipelineConfiguration = Schemas['LocalizationPipelineConfigurat
6413
6520
  type LocalizationSourceLoad = Schemas['LocalizationSourceLoad'];
6414
6521
  type LocalizationSourceKind = Schemas['LocalizationSourceKind'];
6415
6522
  type LocalizationSourceStatus = Schemas['LocalizationSourceStatus'];
6523
+ type MergedLocalizationEntry = Schemas['MergedLocalizationEntry'];
6416
6524
  /**
6417
6525
  * A localization file pulled from the per-source or merged download endpoint:
6418
6526
  * the UTF-8 JSON bytes plus the server-suggested filename (parsed from the
@@ -6495,6 +6603,13 @@ declare class PowerPortalsProClient {
6495
6603
  * Returns `null` when the culture has no entries (404). SystemAdmin-gated.
6496
6604
  */
6497
6605
  downloadMergedLocalizationsAsync(culture: string, signal?: AbortSignal): Promise<LocalizationFileDownload | null>;
6606
+ /**
6607
+ * Reads the merged localization keys for a culture as a structured list — every key the
6608
+ * cache will serve, its winning value, and which source supplied it. Same data as
6609
+ * {@link downloadMergedLocalizationsAsync} but per-key annotated with provenance, for the
6610
+ * `<LocalizationAdmin />` "view merged sources" dialog. Sorted by key. SystemAdmin-gated.
6611
+ */
6612
+ getMergedLocalizationEntriesAsync(culture: string, signal?: AbortSignal): Promise<readonly MergedLocalizationEntry[]>;
6498
6613
  /**
6499
6614
  * Shared binary-download path for the two localization download endpoints. Reads
6500
6615
  * the raw bytes via `response.arrayBuffer()` and derives the filename from the
@@ -6772,4 +6887,4 @@ declare function getRecordReferenceId(record: Pick<TableRecord, 'id' | '_idForCr
6772
6887
 
6773
6888
  declare const VERSION = "0.1.0";
6774
6889
 
6775
- 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 };
6890
+ 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, EntityRole, 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 MergedLocalizationEntry, type OrganizationRequest, type OrganizationResponse, type OrganizationSettings, type PendingExternalLoginResponse, type PersonalDataResponse, PortalUserType, 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, ViewType, type components, getRecordReferenceId, mapProblemDetails, type paths };
package/dist/index.js CHANGED
@@ -158,6 +158,12 @@ var api = {
158
158
  * values across all sources). `culture` is a query-string parameter. SystemAdmin-only.
159
159
  */
160
160
  localizationMergedDownload: `${apiRoot}/localizations/merged/download`,
161
+ /**
162
+ * GET — structured list of every key the cache will serve for a culture, its winning
163
+ * value, and the source that supplied it. `culture` is a query-string parameter. Backs
164
+ * the LocalizationAdmin "view merged sources" dialog. SystemAdmin-only.
165
+ */
166
+ localizationMergedEntries: `${apiRoot}/localizations/merged/entries`,
161
167
  /** GET — whether translation is configured, the managed solution is installed, and the candidate target languages. SystemAdmin-only. */
162
168
  localizationTranslationAvailability: `${apiRoot}/localizations/translation/availability`,
163
169
  /** POST — translate an uploaded localization file into one or more target languages. SystemAdmin-only. */
@@ -793,6 +799,20 @@ var PowerPortalsProClient = class {
793
799
  signal
794
800
  );
795
801
  }
802
+ /**
803
+ * Reads the merged localization keys for a culture as a structured list — every key the
804
+ * cache will serve, its winning value, and which source supplied it. Same data as
805
+ * {@link downloadMergedLocalizationsAsync} but per-key annotated with provenance, for the
806
+ * `<LocalizationAdmin />` "view merged sources" dialog. Sorted by key. SystemAdmin-gated.
807
+ */
808
+ getMergedLocalizationEntriesAsync(culture, signal) {
809
+ const query = new URLSearchParams({ culture }).toString();
810
+ return this.transport.sendJson(
811
+ "GET",
812
+ `${Routes.api.localizationMergedEntries}?${query}`,
813
+ signal ? { signal } : {}
814
+ );
815
+ }
796
816
  /**
797
817
  * Shared binary-download path for the two localization download endpoints. Reads
798
818
  * the raw bytes via `response.arrayBuffer()` and derives the filename from the
@@ -1385,6 +1405,12 @@ var DeletePersonalDataResult = {
1385
1405
  /** 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." */
1386
1406
  RequireLocalPassword: 2
1387
1407
  };
1408
+ var EntityRole = {
1409
+ /** The entity plays the "referenced" (primary) role. */
1410
+ Referenced: 0,
1411
+ /** The entity plays the "referencing" (related) role. */
1412
+ Referencing: 1
1413
+ };
1388
1414
  var ExternalLoginCandidateKind = {
1389
1415
  /** The candidate is a Dataverse contact record. */
1390
1416
  Contact: 0,
@@ -1447,6 +1473,14 @@ var LoginResult = {
1447
1473
  /** The account is locked out (too many failed attempts, manual lockout, etc.). The client should show the lockout page. */
1448
1474
  LockedOut: 4
1449
1475
  };
1476
+ var PortalUserType = {
1477
+ /** A portal contact under the classic (portal-side) security model — no stub systemuser; permission handlers enforce access. */
1478
+ Contact: 0,
1479
+ /** A real internal Dataverse systemuser (e.g. Entra ID staff sign-in). */
1480
+ SystemUser: 1,
1481
+ /** A portal contact whose Dataverse access is enforced through the system-managed (C2) stub systemuser provisioned for it under the Dataverse-native security model. Must never be presented as an internal user. */
1482
+ ContactStubUser: 2
1483
+ };
1450
1484
  var RegisterResult = {
1451
1485
  /** 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. */
1452
1486
  ConfirmationEmailSent: 0,
@@ -1507,6 +1541,22 @@ var TableSecurityPermission = {
1507
1541
  /** All permissions except Create. */
1508
1542
  All: 63
1509
1543
  };
1544
+ var ViewType = {
1545
+ /** A public view visible to all users. */
1546
+ Public: 0,
1547
+ /** An advanced find view. */
1548
+ AdvancedFind: 1,
1549
+ /** A view used for displaying associated records. */
1550
+ Associated: 2,
1551
+ /** A view used for Quick Find search. */
1552
+ QuickFind: 4,
1553
+ /** A view used for displaying team or queue members. */
1554
+ Members: 32,
1555
+ /** A view used in lookup dialogs. */
1556
+ Lookup: 64,
1557
+ /** A view used for the lookup display format. */
1558
+ LookupDisplay: 2048
1559
+ };
1510
1560
 
1511
1561
  // src/record-id.ts
1512
1562
  var EMPTY_GUID = "00000000-0000-0000-0000-000000000000";
@@ -1519,6 +1569,6 @@ function getRecordReferenceId(record) {
1519
1569
  // src/index.ts
1520
1570
  var VERSION = "0.1.0";
1521
1571
 
1522
- export { AggregateType, ArchiveFormat, ArgumentError, ArgumentNullError, AuthClient, ChangeEmailResult, ChangePasswordResult, ChartDateGrouping, ColumnType, ConfirmExternalLoginResult, DateTimeBehavior, DeletePersonalDataResult, ExternalLoginCandidateKind, FileArchiveResponseFormat, InvalidOperationError, JoinOperator, LocalizationSourceKind, LocalizationSourceStatus, LoginResult, PowerPortalsProClient, PowerPortalsProError, RegisterResult, RelationshipFilterMode, RequiredLevel, ResetPasswordResult, Routes, SwitchIdentityResult, TableSecurityPermission, Transport, UnauthorizedAccessError, VERSION, getRecordReferenceId, mapProblemDetails };
1572
+ export { AggregateType, ArchiveFormat, ArgumentError, ArgumentNullError, AuthClient, ChangeEmailResult, ChangePasswordResult, ChartDateGrouping, ColumnType, ConfirmExternalLoginResult, DateTimeBehavior, DeletePersonalDataResult, EntityRole, ExternalLoginCandidateKind, FileArchiveResponseFormat, InvalidOperationError, JoinOperator, LocalizationSourceKind, LocalizationSourceStatus, LoginResult, PortalUserType, PowerPortalsProClient, PowerPortalsProError, RegisterResult, RelationshipFilterMode, RequiredLevel, ResetPasswordResult, Routes, SwitchIdentityResult, TableSecurityPermission, Transport, UnauthorizedAccessError, VERSION, ViewType, getRecordReferenceId, mapProblemDetails };
1523
1573
  //# sourceMappingURL=index.js.map
1524
1574
  //# sourceMappingURL=index.js.map