@thunderid/javascript 1.19.0 → 1.20.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.
Files changed (37) hide show
  1. package/dist/api/auth/getFlowMeta.d.ts +3 -1
  2. package/dist/api/auth/getFlowMeta.d.ts.map +1 -1
  3. package/dist/api/management/user-types/getUserType.d.ts +8 -0
  4. package/dist/api/management/user-types/getUserType.d.ts.map +1 -1
  5. package/dist/api/management/users/sendUserAttributeVerification.d.ts +59 -0
  6. package/dist/api/management/users/sendUserAttributeVerification.d.ts.map +1 -0
  7. package/dist/cjs/index.cjs +260 -33
  8. package/dist/constants/AdministrationConstants.d.ts +3 -1
  9. package/dist/constants/AdministrationConstants.d.ts.map +1 -1
  10. package/dist/constants/AttributeVerificationConstants.d.ts +5 -2
  11. package/dist/constants/AttributeVerificationConstants.d.ts.map +1 -1
  12. package/dist/edge/index.js +256 -34
  13. package/dist/i18n/models/i18n.d.ts +7 -0
  14. package/dist/i18n/models/i18n.d.ts.map +1 -1
  15. package/dist/i18n/translations/en-US.d.ts.map +1 -1
  16. package/dist/i18n/translations/fr-FR.d.ts.map +1 -1
  17. package/dist/i18n/translations/hi-IN.d.ts.map +1 -1
  18. package/dist/i18n/translations/ja-JP.d.ts.map +1 -1
  19. package/dist/i18n/translations/pt-BR.d.ts.map +1 -1
  20. package/dist/i18n/translations/pt-PT.d.ts.map +1 -1
  21. package/dist/i18n/translations/si-LK.d.ts.map +1 -1
  22. package/dist/i18n/translations/ta-IN.d.ts.map +1 -1
  23. package/dist/i18n/translations/te-IN.d.ts.map +1 -1
  24. package/dist/index.d.ts +5 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +256 -34
  27. package/dist/models/config.d.ts +5 -0
  28. package/dist/models/config.d.ts.map +1 -1
  29. package/dist/models/embedded-flow.d.ts +1 -0
  30. package/dist/models/embedded-flow.d.ts.map +1 -1
  31. package/dist/models/managed-user.d.ts +6 -0
  32. package/dist/models/managed-user.d.ts.map +1 -1
  33. package/dist/utils/isAdminVerifiableAttribute.d.ts +22 -0
  34. package/dist/utils/isAdminVerifiableAttribute.d.ts.map +1 -0
  35. package/dist/utils/isFlowMetaUnavailableError.d.ts +16 -0
  36. package/dist/utils/isFlowMetaUnavailableError.d.ts.map +1 -0
  37. package/package.json +1 -1
@@ -13,7 +13,9 @@ import { FlowMetadataResponse, GetFlowMetaRequestConfig } from '../../models/flo
13
13
  * and `id` are omitted the server returns i18n-only metadata.
14
14
  * @returns A promise that resolves to the {@link FlowMetadataResponse}.
15
15
  *
16
- * @throws {ThunderIDAPIError} When the server returns a non-OK response.
16
+ * @throws {ThunderIDAPIError} When the server returns a non-OK response, or an OK response whose body is not JSON.
17
+ * Use {@link isFlowMetaUnavailableError} to tell a server that has no flow metadata endpoint, such as an OpenID
18
+ * Connect provider other than ThunderID, from a real failure.
17
19
  *
18
20
  * @example
19
21
  * ```typescript
@@ -1 +1 @@
1
- {"version":3,"file":"getFlowMeta.d.ts","sourceRoot":"","sources":["../../../src/api/auth/getFlowMeta.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,oBAAoB,EAAE,wBAAwB,EAAC,MAAM,wBAAwB,CAAC;AAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,QAAA,MAAM,WAAW,GAAU,mEAQxB,wBAAwB,KAAG,OAAO,CAAC,oBAAoB,CAoCzD,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"getFlowMeta.d.ts","sourceRoot":"","sources":["../../../src/api/auth/getFlowMeta.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,oBAAoB,EAAE,wBAAwB,EAAC,MAAM,wBAAwB,CAAC;AAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,QAAA,MAAM,WAAW,GAAU,mEAQxB,wBAAwB,KAAG,OAAO,CAAC,oBAAoB,CA8CzD,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -10,5 +10,13 @@ export interface GetUserTypeConfig extends ManagementRequestConfig {
10
10
  * Fetches a user type with its attribute schema.
11
11
  */
12
12
  declare const getUserType: ({ userTypeId, ...config }: GetUserTypeConfig) => Promise<ManagedUserTypeDetails>;
13
+ /**
14
+ * Looks up the schema for the type handle reported by the users API.
15
+ *
16
+ * @internal Shared by the SDK packages. It is not part of the public API and can change in any release.
17
+ */
18
+ export declare const getUserTypeByHandle: (config: ManagementRequestConfig & {
19
+ handle: string;
20
+ }) => Promise<ManagedUserTypeDetails | undefined>;
13
21
  export default getUserType;
14
22
  //# sourceMappingURL=getUserType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getUserType.d.ts","sourceRoot":"","sources":["../../../../src/api/management/user-types/getUserType.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,uBAAuB,EAAC,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAC,sBAAsB,EAAC,MAAM,6BAA6B,CAAC;AAGnE,MAAM,WAAW,iBAAkB,SAAQ,uBAAuB;IAChE;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,QAAA,MAAM,WAAW,GAAU,2BAAyB,iBAAiB,KAAG,OAAO,CAAC,sBAAsB,CAQlG,CAAC;AAEL,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"getUserType.d.ts","sourceRoot":"","sources":["../../../../src/api/management/user-types/getUserType.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,uBAAuB,EAAC,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAC,sBAAsB,EAAC,MAAM,6BAA6B,CAAC;AAKnE,MAAM,WAAW,iBAAkB,SAAQ,uBAAuB;IAChE;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,QAAA,MAAM,WAAW,GAAU,2BAAyB,iBAAiB,KAAG,OAAO,CAAC,sBAAsB,CAQlG,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,uBAAuB,GAAG;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,KACjD,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAa5C,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { ManagementRequestConfig } from '../../../models/api';
2
+ /**
3
+ * Configuration for the sendUserAttributeVerification request.
4
+ */
5
+ export interface SendUserAttributeVerificationConfig extends ManagementRequestConfig {
6
+ /**
7
+ * The attribute to verify, such as `email`.
8
+ */
9
+ attribute: string;
10
+ /**
11
+ * Handle of the administrator-initiated verification flow to run. When omitted, the handle the server
12
+ * names under `adminAttributeVerificationFlow` in its `flow` configuration is used.
13
+ */
14
+ handle?: string;
15
+ /**
16
+ * Identifier of the user.
17
+ */
18
+ userId: string;
19
+ }
20
+ /**
21
+ * What the flow reports once it has sent the verification link. It never returns the link or the address.
22
+ */
23
+ export interface SendUserAttributeVerificationResult {
24
+ /**
25
+ * The channel the link went out on, such as `email`.
26
+ */
27
+ channel: string;
28
+ /**
29
+ * Whether the flow's email step sent the link. `false` means the flow ran but no email went out, so check it
30
+ * before telling the administrator the link was sent. Absent when the flow does not report it.
31
+ */
32
+ emailSent?: boolean;
33
+ /**
34
+ * The masked address the link was sent to, such as `j***@example.com`.
35
+ */
36
+ maskedDestination?: string;
37
+ }
38
+ /**
39
+ * Sends a user a link to verify one of their attributes, through the server's administrator-initiated
40
+ * verification flow. The flow pauses once the link is sent; the user finishes it from the link, without
41
+ * the administrator. A refused step raises {@link AdministrationFlowError} with the step's code, such as
42
+ * `FET-1114` for a suspended user. Without a `handle`, the flow is the one the server's
43
+ * `adminAttributeVerificationFlow` setting names; when that is unset the call fails with
44
+ * `sendUserAttributeVerification-NotConfiguredError-001`. A flow whose email step sends nothing still
45
+ * resolves, with `emailSent: false`, as the account lifecycle actions do, so callers must check `emailSent`.
46
+ *
47
+ * @param config - Request configuration. Requires `baseUrl` and a token with the root `system` permission.
48
+ * @returns The channel, masked destination and delivery flag reported by the flow.
49
+ * @throws {ThunderIDAPIError} If required input is missing or the request fails.
50
+ * @throws {AdministrationFlowError} If no flow is configured, the flow refuses the start or it does not return the delivery step.
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * const {emailSent, maskedDestination} = await sendUserAttributeVerification({baseUrl, attribute: 'email', userId});
55
+ * ```
56
+ */
57
+ declare const sendUserAttributeVerification: ({ attribute, handle, userId, ...config }: SendUserAttributeVerificationConfig) => Promise<SendUserAttributeVerificationResult>;
58
+ export default sendUserAttributeVerification;
59
+ //# sourceMappingURL=sendUserAttributeVerification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendUserAttributeVerification.d.ts","sourceRoot":"","sources":["../../../../src/api/management/users/sendUserAttributeVerification.ts"],"names":[],"mappings":"AAQA,OAAO,EAAC,uBAAuB,EAAC,MAAM,qBAAqB,CAAC;AAM5D;;GAEG;AACH,MAAM,WAAW,mCAAoC,SAAQ,uBAAuB;IAClF;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mCAAmC;IAClD;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,QAAA,MAAM,6BAA6B,GAAU,0CAK1C,mCAAmC,KAAG,OAAO,CAAC,mCAAmC,CAyEnF,CAAC;AAEF,eAAe,6BAA6B,CAAC"}
@@ -886,6 +886,7 @@ var executeEmbeddedSignInFlow_default = executeEmbeddedSignInFlow;
886
886
  //#endregion
887
887
  //#region src/models/embedded-flow.ts
888
888
  let EmbeddedFlowType = /* @__PURE__ */ function(EmbeddedFlowType$1) {
889
+ EmbeddedFlowType$1["AdminInitiated"] = "ADMIN_INITIATED";
889
890
  EmbeddedFlowType$1["Authentication"] = "AUTHENTICATION";
890
891
  EmbeddedFlowType$1["DeviceGrant"] = "DEVICE_GRANT";
891
892
  EmbeddedFlowType$1["Recovery"] = "RECOVERY";
@@ -1524,7 +1525,9 @@ var executeEmbeddedSelfFlow_default = executeEmbeddedSelfFlow;
1524
1525
  * and `id` are omitted the server returns i18n-only metadata.
1525
1526
  * @returns A promise that resolves to the {@link FlowMetadataResponse}.
1526
1527
  *
1527
- * @throws {ThunderIDAPIError} When the server returns a non-OK response.
1528
+ * @throws {ThunderIDAPIError} When the server returns a non-OK response, or an OK response whose body is not JSON.
1529
+ * Use {@link isFlowMetaUnavailableError} to tell a server that has no flow metadata endpoint, such as an OpenID
1530
+ * Connect provider other than ThunderID, from a real failure.
1528
1531
  *
1529
1532
  * @example
1530
1533
  * ```typescript
@@ -1562,7 +1565,11 @@ const getFlowMeta = async ({ url, baseUrl, type, id, language, namespace,...requ
1562
1565
  method: "GET"
1563
1566
  });
1564
1567
  if (!response.ok) throw new ThunderIDAPIError(await response.text(), "getFlowMeta-ResponseError-001", "javascript", response.status, response.statusText, "Flow metadata request failed");
1565
- return await response.json();
1568
+ try {
1569
+ return await response.json();
1570
+ } catch {
1571
+ throw new ThunderIDAPIError("The response body is not JSON.", "getFlowMeta-InvalidResponseError-001", "javascript", response.status, response.statusText, "Flow metadata request failed");
1572
+ }
1566
1573
  };
1567
1574
  var getFlowMeta_default = getFlowMeta;
1568
1575
 
@@ -2228,10 +2235,12 @@ const AdministrationModes = {
2228
2235
  };
2229
2236
  /**
2230
2237
  * Keys of the `flow` server-config section that name the administration flow for each operation. An
2231
- * unset key is the opt-out: the operation calls the management API directly.
2238
+ * unset key is the opt-out: the operation calls the management API directly. `adminAttributeVerificationFlow`
2239
+ * names an administrator-initiated flow, started by its handle, and has no such fallback.
2232
2240
  */
2233
2241
  const AdministrationFlowConfigKey = {
2234
2242
  ACTION_DELETION: "actionDeletionFlow",
2243
+ ADMIN_ATTRIBUTE_VERIFICATION: "adminAttributeVerificationFlow",
2235
2244
  AGENT_SUSPEND: "agentSuspendFlow",
2236
2245
  AGENT_UNLOCK: "agentUnlockFlow",
2237
2246
  AGENT_UNSUSPEND: "agentUnsuspendFlow",
@@ -3534,6 +3543,21 @@ const updateUserCredentials = async ({ payload, userId,...config }) => {
3534
3543
  };
3535
3544
  var updateUserCredentials_default = updateUserCredentials;
3536
3545
 
3546
+ //#endregion
3547
+ //#region src/utils/computeNextPageOffset.ts
3548
+ /**
3549
+ * Offset of the next page: the request offset plus the number of items the backend returned, or
3550
+ * `null` once the list is exhausted.
3551
+ *
3552
+ * @internal Shared by the SDK packages. It is not part of the public API and can change in any release.
3553
+ */
3554
+ const computeNextPageOffset = (offset, count, totalResults) => {
3555
+ if (!Number.isInteger(offset) || offset < 0 || !Number.isInteger(count) || count <= 0) return null;
3556
+ const next = offset + count;
3557
+ return totalResults !== void 0 && next >= totalResults ? null : next;
3558
+ };
3559
+ var computeNextPageOffset_default = computeNextPageOffset;
3560
+
3537
3561
  //#endregion
3538
3562
  //#region src/api/management/user-types/getUserType.ts
3539
3563
  /**
@@ -3547,6 +3571,28 @@ const getUserType = async ({ userTypeId,...config }) => requestManagementResourc
3547
3571
  operation: "getUserType",
3548
3572
  query: { include: "display" }
3549
3573
  });
3574
+ /**
3575
+ * Looks up the schema for the type handle reported by the users API.
3576
+ *
3577
+ * @internal Shared by the SDK packages. It is not part of the public API and can change in any release.
3578
+ */
3579
+ const getUserTypeByHandle = async (config) => {
3580
+ const { handle,...endpoint } = config;
3581
+ let offset = 0;
3582
+ while (offset !== null) {
3583
+ const page = await getUserTypes_default({
3584
+ ...endpoint,
3585
+ limit: 100,
3586
+ offset
3587
+ });
3588
+ const type = page.types.find((candidate) => candidate.handle === handle);
3589
+ if (type) return getUserType({
3590
+ ...endpoint,
3591
+ userTypeId: type.id
3592
+ });
3593
+ offset = computeNextPageOffset_default(offset, page.count, page.totalResults);
3594
+ }
3595
+ };
3550
3596
  var getUserType_default = getUserType;
3551
3597
 
3552
3598
  //#endregion
@@ -8210,6 +8256,85 @@ const unlockUser = async ({ userId, operatorNote,...config }) => runAccountLifec
8210
8256
  });
8211
8257
  var unlockUser_default = unlockUser;
8212
8258
 
8259
+ //#endregion
8260
+ //#region src/constants/AttributeVerificationConstants.ts
8261
+ /**
8262
+ * Wire names and eligibility rules for user attribute verification, by the user or by an administrator.
8263
+ */
8264
+ const AttributeVerificationConstants = {
8265
+ ADMIN_VERIFIABLE_ATTRIBUTES: ["email"],
8266
+ ATTRIBUTE_INPUT: "attribute",
8267
+ CHANNEL_KEY: "channel",
8268
+ DEFAULT_FLOW_HANDLE: "default-self-attribute-verification-flow",
8269
+ EMAIL_SENT_KEY: "emailSent",
8270
+ MASKED_DESTINATION_KEY: "maskedDestination",
8271
+ SUBJECT_INPUT: "subject",
8272
+ VERIFIABLE_ATTRIBUTE_TYPES: ["email", "mobile"],
8273
+ VERIFIED_ATTRIBUTES_KEY: "verifiedAttributes"
8274
+ };
8275
+ var AttributeVerificationConstants_default = AttributeVerificationConstants;
8276
+
8277
+ //#endregion
8278
+ //#region src/api/management/users/sendUserAttributeVerification.ts
8279
+ const OPERATION = "sendUserAttributeVerification";
8280
+ /**
8281
+ * Sends a user a link to verify one of their attributes, through the server's administrator-initiated
8282
+ * verification flow. The flow pauses once the link is sent; the user finishes it from the link, without
8283
+ * the administrator. A refused step raises {@link AdministrationFlowError} with the step's code, such as
8284
+ * `FET-1114` for a suspended user. Without a `handle`, the flow is the one the server's
8285
+ * `adminAttributeVerificationFlow` setting names; when that is unset the call fails with
8286
+ * `sendUserAttributeVerification-NotConfiguredError-001`. A flow whose email step sends nothing still
8287
+ * resolves, with `emailSent: false`, as the account lifecycle actions do, so callers must check `emailSent`.
8288
+ *
8289
+ * @param config - Request configuration. Requires `baseUrl` and a token with the root `system` permission.
8290
+ * @returns The channel, masked destination and delivery flag reported by the flow.
8291
+ * @throws {ThunderIDAPIError} If required input is missing or the request fails.
8292
+ * @throws {AdministrationFlowError} If no flow is configured, the flow refuses the start or it does not return the delivery step.
8293
+ *
8294
+ * @example
8295
+ * ```typescript
8296
+ * const {emailSent, maskedDestination} = await sendUserAttributeVerification({baseUrl, attribute: 'email', userId});
8297
+ * ```
8298
+ */
8299
+ const sendUserAttributeVerification = async ({ attribute, handle, userId,...config }) => {
8300
+ if (typeof userId !== "string" || userId.trim() === "" || typeof attribute !== "string" || !attribute.trim()) throw new ThunderIDAPIError("A user identifier and an attribute are required.", `${OPERATION}-ValidationError-002`, "javascript", 400, "The provided user identifier or attribute is empty.");
8301
+ const flowHandle = handle ?? (await resolveAdministrationFlowHandles_default(config, [AdministrationFlowConfigKey.ADMIN_ATTRIBUTE_VERIFICATION]))[AdministrationFlowConfigKey.ADMIN_ATTRIBUTE_VERIFICATION];
8302
+ if (!flowHandle) throw new AdministrationFlowError(`No administrator verification flow is configured, so no link was sent. Configure a flow for "${AdministrationFlowConfigKey.ADMIN_ATTRIBUTE_VERIFICATION}" in the server's flow configuration.`, `${OPERATION}-NotConfiguredError-001`);
8303
+ const result = await requestManagementResource_default(toServerConfig_default(config, OPERATION), {
8304
+ body: {
8305
+ flowType: EmbeddedFlowType.AdminInitiated,
8306
+ handle: flowHandle,
8307
+ inputs: {
8308
+ [AttributeVerificationConstants_default.ATTRIBUTE_INPUT]: attribute,
8309
+ [AttributeVerificationConstants_default.SUBJECT_INPUT]: userId
8310
+ },
8311
+ verbose: true
8312
+ },
8313
+ collection: "flow",
8314
+ failureMessage: "Failed to send the verification link",
8315
+ id: "execute",
8316
+ method: "POST",
8317
+ operation: OPERATION
8318
+ });
8319
+ const data = result?.data?.additionalData ?? {};
8320
+ const channel = data[AttributeVerificationConstants_default.CHANNEL_KEY];
8321
+ if (result?.flowStatus === "INCOMPLETE" && channel) {
8322
+ const emailSent = data[AttributeVerificationConstants_default.EMAIL_SENT_KEY];
8323
+ const maskedDestination = data[AttributeVerificationConstants_default.MASKED_DESTINATION_KEY];
8324
+ return {
8325
+ channel,
8326
+ ...emailSent !== void 0 ? { emailSent: emailSent === "true" } : {},
8327
+ ...maskedDestination ? { maskedDestination } : {}
8328
+ };
8329
+ }
8330
+ if (result?.flowStatus === "ERROR") {
8331
+ const flowError = result.error ?? {};
8332
+ throw new AdministrationFlowError(flowError.message?.defaultValue ?? flowError.description?.defaultValue ?? "The verification link was not sent.", flowError.code ?? `${OPERATION}-FlowError-001`, flowError);
8333
+ }
8334
+ throw new AdministrationFlowError("The verification flow did not report a sent link.", `${OPERATION}-UnexpectedStateError-001`);
8335
+ };
8336
+ var sendUserAttributeVerification_default = sendUserAttributeVerification;
8337
+
8213
8338
  //#endregion
8214
8339
  //#region src/api/management/agents/suspendAgent.ts
8215
8340
  /**
@@ -8822,21 +8947,6 @@ const SelectConstants = {
8822
8947
  };
8823
8948
  var SelectConstants_default = SelectConstants;
8824
8949
 
8825
- //#endregion
8826
- //#region src/constants/AttributeVerificationConstants.ts
8827
- /**
8828
- * Wire names and eligibility rules for self user attribute verification.
8829
- */
8830
- const AttributeVerificationConstants = {
8831
- ATTRIBUTE_INPUT: "attribute",
8832
- DEFAULT_FLOW_HANDLE: "default-self-attribute-verification-flow",
8833
- MASKED_DESTINATION_KEY: "maskedDestination",
8834
- VERIFIABLE_ATTRIBUTE_TYPES: ["email", "mobile"],
8835
- VERIFIED_ATTRIBUTES_KEY: "verifiedAttributes",
8836
- VERIFY_AFTER_SAVE_ATTRIBUTE_TYPES: ["email"]
8837
- };
8838
- var AttributeVerificationConstants_default = AttributeVerificationConstants;
8839
-
8840
8950
  //#endregion
8841
8951
  //#region src/errors/ThunderIDRuntimeError.ts
8842
8952
  /**
@@ -12707,6 +12817,38 @@ const getVerifiedAttributes = (user) => {
12707
12817
  };
12708
12818
  var getVerifiedAttributes_default = getVerifiedAttributes;
12709
12819
 
12820
+ //#endregion
12821
+ //#region src/utils/isAdminVerifiableAttribute.ts
12822
+ const hasReportedStatus = (user, attribute) => {
12823
+ const value = user?.attributes?.[attribute];
12824
+ const verified = user?.verifiedAttributes;
12825
+ return typeof value === "string" && value.trim() !== "" && !!verified && typeof verified === "object" && !Array.isArray(verified);
12826
+ };
12827
+ const getContactType = (schema, attribute) => {
12828
+ if (!Object.prototype.hasOwnProperty.call(schema, attribute)) return;
12829
+ const field = schema[attribute];
12830
+ return (field?.type === "email" || field?.type === "mobile") && !field.credential ? field.type : void 0;
12831
+ };
12832
+ /**
12833
+ * Whether the administrator view knows the verification status of a stored contact.
12834
+ * A recorded verification remains visible when the schema cannot be read.
12835
+ *
12836
+ * @internal Shared by the SDK packages. It is not part of the public API and can change in any release.
12837
+ */
12838
+ const hasAdminVerificationStatus = (user, attribute, schema) => hasReportedStatus(user, attribute) && (Object.prototype.hasOwnProperty.call(user?.verifiedAttributes, attribute) || (schema ? getContactType(schema, attribute) !== void 0 : AttributeVerificationConstants_default.ADMIN_VERIFIABLE_ATTRIBUTES.includes(attribute)));
12839
+ /**
12840
+ * Whether the stored attribute can be verified through the shipped administrator email flow.
12841
+ * With a schema, the property must be a top-level email. Without one, the base view recognizes
12842
+ * the default email field for applications that supply their own send callback.
12843
+ *
12844
+ * @param user - The user, as read from `GET /users/{id}`.
12845
+ * @param attribute - The concrete attribute name, such as `workEmail`.
12846
+ * @param schema - The user's type schema.
12847
+ * @returns Whether the administrator email flow supports the attribute.
12848
+ */
12849
+ const isAdminVerifiableAttribute = (user, attribute, schema) => hasReportedStatus(user, attribute) && (schema ? getContactType(schema, attribute) === "email" : AttributeVerificationConstants_default.ADMIN_VERIFIABLE_ATTRIBUTES.includes(attribute));
12850
+ var isAdminVerifiableAttribute_default = isAdminVerifiableAttribute;
12851
+
12710
12852
  //#endregion
12711
12853
  //#region src/utils/isVerifiableAttribute.ts
12712
12854
  /**
@@ -13201,21 +13343,6 @@ const resolveRequestBaseUrl = (config) => {
13201
13343
  };
13202
13344
  var resolveRequestBaseUrl_default = resolveRequestBaseUrl;
13203
13345
 
13204
- //#endregion
13205
- //#region src/utils/computeNextPageOffset.ts
13206
- /**
13207
- * Offset of the next page: the request offset plus the number of items the backend returned, or
13208
- * `null` once the list is exhausted.
13209
- *
13210
- * @internal Shared by the SDK packages. It is not part of the public API and can change in any release.
13211
- */
13212
- const computeNextPageOffset = (offset, count, totalResults) => {
13213
- if (!Number.isInteger(offset) || offset < 0 || !Number.isInteger(count) || count <= 0) return null;
13214
- const next = offset + count;
13215
- return totalResults !== void 0 && next >= totalResults ? null : next;
13216
- };
13217
- var computeNextPageOffset_default = computeNextPageOffset;
13218
-
13219
13346
  //#endregion
13220
13347
  //#region src/utils/isAdvancingPageOffset.ts
13221
13348
  /**
@@ -13369,6 +13496,45 @@ var isRetryableError_default = isRetryableError;
13369
13496
  const isFlowExpiredError = (error$1) => error$1 instanceof ThunderIDAPIError && error$1.serverError?.code === "FES-1004";
13370
13497
  var isFlowExpiredError_default = isFlowExpiredError;
13371
13498
 
13499
+ //#endregion
13500
+ //#region src/utils/isFlowMetaUnavailableError.ts
13501
+ /**
13502
+ * Statuses a server answers with when it has no `GET /flow/meta` endpoint, or does not open it to this client.
13503
+ */
13504
+ const UNAVAILABLE_STATUSES = new Set([
13505
+ 401,
13506
+ 403,
13507
+ 404,
13508
+ 405,
13509
+ 501
13510
+ ]);
13511
+ /**
13512
+ * Prefix of the error codes ThunderID's flow metadata endpoint answers with, such as `FM-1004` for an unknown
13513
+ * application.
13514
+ */
13515
+ const FLOW_META_SERVER_ERROR_PREFIX = "FM-";
13516
+ /**
13517
+ * Tells whether a {@link getFlowMeta} failure means the server has no flow metadata to give, rather than that the
13518
+ * request failed. This is what happens when `baseUrl` points at an OpenID Connect provider other than ThunderID:
13519
+ * the provider answers `/flow/meta` with 401, 403, 404, 405 or 501, or with a body that is not JSON. Callers treat
13520
+ * such a failure as "no flow metadata" and carry on with the SDK's defaults.
13521
+ *
13522
+ * Everything else stays a real failure: a network error, a server error (5xx other than 501), and any reply that
13523
+ * carries ThunderID's own flow metadata error code (`FM-…`), such as the 404 ThunderID answers for an unknown
13524
+ * application.
13525
+ *
13526
+ * @param error - The value `getFlowMeta` rejected with.
13527
+ * @returns `true` when the server has no flow metadata endpoint.
13528
+ */
13529
+ const isFlowMetaUnavailableError = (error$1) => {
13530
+ if (!(error$1 instanceof ThunderIDAPIError)) return false;
13531
+ if (error$1.code === "getFlowMeta-InvalidResponseError-001") return true;
13532
+ if (error$1.code !== "getFlowMeta-ResponseError-001" || error$1.statusCode === void 0) return false;
13533
+ if (error$1.serverError?.code?.startsWith(FLOW_META_SERVER_ERROR_PREFIX)) return false;
13534
+ return UNAVAILABLE_STATUSES.has(error$1.statusCode);
13535
+ };
13536
+ var isFlowMetaUnavailableError_default = isFlowMetaUnavailableError;
13537
+
13372
13538
  //#endregion
13373
13539
  //#region src/utils/withRetry.ts
13374
13540
  const DEFAULT_RETRY_DELAY_MS = 500;
@@ -13818,6 +13984,13 @@ const en_US = {
13818
13984
  "admin.users.details.edit.action": "Edit",
13819
13985
  "admin.users.details.edit.save": "Save changes",
13820
13986
  "admin.users.details.edit.error": "Could not save the user. Please try again.",
13987
+ "admin.users.details.verification.status.verified": "Verified",
13988
+ "admin.users.details.verification.status.unverified": "Unverified",
13989
+ "admin.users.details.verification.verify": "Verify",
13990
+ "admin.users.details.verification.sent": "Verification link sent to {destination}.",
13991
+ "admin.users.details.verification.sent_generic": "Verification link sent.",
13992
+ "admin.users.details.verification.error": "Could not send the verification link. Please try again.",
13993
+ "admin.users.details.verification.load_error": "The verification settings could not be loaded.",
13821
13994
  "admin.groups.list.title": "Groups",
13822
13995
  "admin.groups.list.columns.name": "Name",
13823
13996
  "admin.groups.list.columns.description": "Description",
@@ -14370,6 +14543,13 @@ const fr_FR = {
14370
14543
  "admin.users.details.edit.action": "Modifier",
14371
14544
  "admin.users.details.edit.save": "Enregistrer les modifications",
14372
14545
  "admin.users.details.edit.error": "Impossible d'enregistrer l'utilisateur. Veuillez réessayer.",
14546
+ "admin.users.details.verification.status.verified": "Vérifié",
14547
+ "admin.users.details.verification.status.unverified": "Non vérifié",
14548
+ "admin.users.details.verification.verify": "Vérifier",
14549
+ "admin.users.details.verification.sent": "Lien de vérification envoyé à {destination}.",
14550
+ "admin.users.details.verification.sent_generic": "Lien de vérification envoyé.",
14551
+ "admin.users.details.verification.error": "Impossible d'envoyer le lien de vérification. Veuillez réessayer.",
14552
+ "admin.users.details.verification.load_error": "Les paramètres de vérification n'ont pas pu être chargés.",
14373
14553
  "admin.groups.list.title": "Groupes",
14374
14554
  "admin.groups.list.columns.name": "Nom",
14375
14555
  "admin.groups.list.columns.description": "Description",
@@ -14922,6 +15102,13 @@ const te_IN = {
14922
15102
  "admin.users.details.edit.action": "సవరించు",
14923
15103
  "admin.users.details.edit.save": "మార్పులను సేవ్ చేయి",
14924
15104
  "admin.users.details.edit.error": "వినియోగదారుని సేవ్ చేయలేకపోయాము. దయచేసి మళ్లీ ప్రయత్నించండి.",
15105
+ "admin.users.details.verification.status.verified": "ధృవీకరించబడింది",
15106
+ "admin.users.details.verification.status.unverified": "ధృవీకరించబడలేదు",
15107
+ "admin.users.details.verification.verify": "ధృవీకరించండి",
15108
+ "admin.users.details.verification.sent": "ధృవీకరణ లింక్ {destination}కి పంపబడింది.",
15109
+ "admin.users.details.verification.sent_generic": "ధృవీకరణ లింక్ పంపబడింది.",
15110
+ "admin.users.details.verification.error": "ధృవీకరణ లింక్‌ను పంపలేకపోయాము. దయచేసి మళ్లీ ప్రయత్నించండి.",
15111
+ "admin.users.details.verification.load_error": "ధృవీకరణ సెట్టింగ్‌లను లోడ్ చేయలేకపోయాము.",
14925
15112
  "admin.groups.list.title": "సమూహాలు",
14926
15113
  "admin.groups.list.columns.name": "పేరు",
14927
15114
  "admin.groups.list.columns.description": "వివరణ",
@@ -15474,6 +15661,13 @@ const hi_IN = {
15474
15661
  "admin.users.details.edit.action": "संपादित करें",
15475
15662
  "admin.users.details.edit.save": "परिवर्तन सहेजें",
15476
15663
  "admin.users.details.edit.error": "उपयोगकर्ता को सहेजा नहीं जा सका। कृपया फिर से प्रयास करें।",
15664
+ "admin.users.details.verification.status.verified": "सत्यापित",
15665
+ "admin.users.details.verification.status.unverified": "सत्यापित नहीं",
15666
+ "admin.users.details.verification.verify": "सत्यापित करें",
15667
+ "admin.users.details.verification.sent": "सत्यापन लिंक {destination} पर भेजा गया।",
15668
+ "admin.users.details.verification.sent_generic": "सत्यापन लिंक भेजा गया।",
15669
+ "admin.users.details.verification.error": "सत्यापन लिंक नहीं भेजा जा सका। कृपया फिर से प्रयास करें।",
15670
+ "admin.users.details.verification.load_error": "सत्यापन सेटिंग्स लोड नहीं हो सकीं।",
15477
15671
  "admin.groups.list.title": "समूह",
15478
15672
  "admin.groups.list.columns.name": "नाम",
15479
15673
  "admin.groups.list.columns.description": "विवरण",
@@ -16026,6 +16220,13 @@ const pt_BR = {
16026
16220
  "admin.users.details.edit.action": "Editar",
16027
16221
  "admin.users.details.edit.save": "Salvar alterações",
16028
16222
  "admin.users.details.edit.error": "Não foi possível salvar o usuário. Tente novamente.",
16223
+ "admin.users.details.verification.status.verified": "Verificado",
16224
+ "admin.users.details.verification.status.unverified": "Não verificado",
16225
+ "admin.users.details.verification.verify": "Verificar",
16226
+ "admin.users.details.verification.sent": "Link de verificação enviado para {destination}.",
16227
+ "admin.users.details.verification.sent_generic": "Link de verificação enviado.",
16228
+ "admin.users.details.verification.error": "Não foi possível enviar o link de verificação. Tente novamente.",
16229
+ "admin.users.details.verification.load_error": "Não foi possível carregar as configurações de verificação.",
16029
16230
  "admin.groups.list.title": "Grupos",
16030
16231
  "admin.groups.list.columns.name": "Nome",
16031
16232
  "admin.groups.list.columns.description": "Descrição",
@@ -16578,6 +16779,13 @@ const pt_PT = {
16578
16779
  "admin.users.details.edit.action": "Editar",
16579
16780
  "admin.users.details.edit.save": "Guardar alterações",
16580
16781
  "admin.users.details.edit.error": "Não foi possível guardar o utilizador. Tente novamente.",
16782
+ "admin.users.details.verification.status.verified": "Verificado",
16783
+ "admin.users.details.verification.status.unverified": "Não verificado",
16784
+ "admin.users.details.verification.verify": "Verificar",
16785
+ "admin.users.details.verification.sent": "Ligação de verificação enviada para {destination}.",
16786
+ "admin.users.details.verification.sent_generic": "Ligação de verificação enviada.",
16787
+ "admin.users.details.verification.error": "Não foi possível enviar a ligação de verificação. Tente novamente.",
16788
+ "admin.users.details.verification.load_error": "Não foi possível carregar as definições de verificação.",
16581
16789
  "admin.groups.list.title": "Grupos",
16582
16790
  "admin.groups.list.columns.name": "Nome",
16583
16791
  "admin.groups.list.columns.description": "Descrição",
@@ -17130,6 +17338,13 @@ const ta_IN = {
17130
17338
  "admin.users.details.edit.action": "திருத்து",
17131
17339
  "admin.users.details.edit.save": "மாற்றங்களைச் சேமி",
17132
17340
  "admin.users.details.edit.error": "பயனரைச் சேமிக்க முடியவில்லை. மீண்டும் முயற்சிக்கவும்.",
17341
+ "admin.users.details.verification.status.verified": "சரிபார்க்கப்பட்டது",
17342
+ "admin.users.details.verification.status.unverified": "சரிபார்க்கப்படவில்லை",
17343
+ "admin.users.details.verification.verify": "சரிபார்",
17344
+ "admin.users.details.verification.sent": "சரிபார்ப்பு இணைப்பு {destination} க்கு அனுப்பப்பட்டது.",
17345
+ "admin.users.details.verification.sent_generic": "சரிபார்ப்பு இணைப்பு அனுப்பப்பட்டது.",
17346
+ "admin.users.details.verification.error": "சரிபார்ப்பு இணைப்பை அனுப்ப முடியவில்லை. மீண்டும் முயற்சிக்கவும்.",
17347
+ "admin.users.details.verification.load_error": "சரிபார்ப்பு அமைப்புகளை ஏற்ற முடியவில்லை.",
17133
17348
  "admin.groups.list.title": "குழுக்கள்",
17134
17349
  "admin.groups.list.columns.name": "பெயர்",
17135
17350
  "admin.groups.list.columns.description": "விளக்கம்",
@@ -17682,6 +17897,13 @@ const si_LK = {
17682
17897
  "admin.users.details.edit.action": "සංස්කරණය",
17683
17898
  "admin.users.details.edit.save": "වෙනස්කම් සුරකින්න",
17684
17899
  "admin.users.details.edit.error": "පරිශීලකයා සුරැකිය නොහැකි විය. නැවත උත්සාහ කරන්න.",
17900
+ "admin.users.details.verification.status.verified": "සත්‍යාපනය කර ඇත",
17901
+ "admin.users.details.verification.status.unverified": "සත්‍යාපනය කර නැත",
17902
+ "admin.users.details.verification.verify": "සත්‍යාපනය කරන්න",
17903
+ "admin.users.details.verification.sent": "සත්‍යාපන සබැඳිය {destination} වෙත යවන ලදී.",
17904
+ "admin.users.details.verification.sent_generic": "සත්‍යාපන සබැඳිය යවන ලදී.",
17905
+ "admin.users.details.verification.error": "සත්‍යාපන සබැඳිය යැවිය නොහැකි විය. නැවත උත්සාහ කරන්න.",
17906
+ "admin.users.details.verification.load_error": "සත්‍යාපන සැකසුම් පූරණය කළ නොහැකි විය.",
17685
17907
  "admin.groups.list.title": "කණ්ඩායම්",
17686
17908
  "admin.groups.list.columns.name": "නම",
17687
17909
  "admin.groups.list.columns.description": "විස්තරය",
@@ -19338,6 +19560,7 @@ exports.getUserOverlayRules = getUserOverlayRules_default;
19338
19560
  exports.getUserSharingPolicies = getUserSharingPolicies_default;
19339
19561
  exports.getUserSharingPolicy = getUserSharingPolicy_default;
19340
19562
  exports.getUserType = getUserType_default;
19563
+ exports.getUserTypeByHandle = getUserTypeByHandle;
19341
19564
  exports.getUserTypes = getUserTypes_default;
19342
19565
  exports.getUserUsages = getUserUsages_default;
19343
19566
  exports.getUsers = getUsers_default;
@@ -19348,15 +19571,18 @@ exports.getVariable = getVariable_default;
19348
19571
  exports.getVariables = getVariables_default;
19349
19572
  exports.getVendorPrefix = getVendorPrefix_default;
19350
19573
  exports.getVerifiedAttributes = getVerifiedAttributes_default;
19574
+ exports.hasAdminVerificationStatus = hasAdminVerificationStatus;
19351
19575
  exports.hasPermission = hasPermission_default;
19352
19576
  exports.hasUnresolvedTranslationParams = hasUnresolvedTranslationParams;
19353
19577
  exports.importConfiguration = importConfiguration_default;
19354
19578
  exports.info = info;
19579
+ exports.isAdminVerifiableAttribute = isAdminVerifiableAttribute_default;
19355
19580
  exports.isAdvancingPageOffset = isAdvancingPageOffset_default;
19356
19581
  exports.isApplicationSubmissionValid = isApplicationSubmissionValid_default;
19357
19582
  exports.isEmojiUri = isEmojiUri_default;
19358
19583
  exports.isEmpty = isEmpty_default;
19359
19584
  exports.isFlowExpiredError = isFlowExpiredError_default;
19585
+ exports.isFlowMetaUnavailableError = isFlowMetaUnavailableError_default;
19360
19586
  exports.isRecognizedBaseUrlPattern = isRecognizedBaseUrlPattern_default;
19361
19587
  exports.isRetryableError = isRetryableError_default;
19362
19588
  exports.isSharingPolicyFormValid = isSharingPolicyFormValid;
@@ -19408,6 +19634,7 @@ exports.restoreFlowVersion = restoreFlowVersion_default;
19408
19634
  exports.revertGatewayConfiguration = revertGatewayConfiguration_default;
19409
19635
  exports.runAccountLifecycleAction = runAccountLifecycleAction_default;
19410
19636
  exports.runAdministrationFlow = runAdministrationFlow_default;
19637
+ exports.sendUserAttributeVerification = sendUserAttributeVerification_default;
19411
19638
  exports.set = set_default;
19412
19639
  exports.setTranslation = setTranslation_default;
19413
19640
  exports.setTranslations = setTranslations_default;
@@ -12,10 +12,12 @@ declare const AdministrationModes: {
12
12
  };
13
13
  /**
14
14
  * Keys of the `flow` server-config section that name the administration flow for each operation. An
15
- * unset key is the opt-out: the operation calls the management API directly.
15
+ * unset key is the opt-out: the operation calls the management API directly. `adminAttributeVerificationFlow`
16
+ * names an administrator-initiated flow, started by its handle, and has no such fallback.
16
17
  */
17
18
  export declare const AdministrationFlowConfigKey: {
18
19
  ACTION_DELETION: 'actionDeletionFlow';
20
+ ADMIN_ATTRIBUTE_VERIFICATION: 'adminAttributeVerificationFlow';
19
21
  AGENT_SUSPEND: 'agentSuspendFlow';
20
22
  AGENT_UNLOCK: 'agentUnlockFlow';
21
23
  AGENT_UNSUSPEND: 'agentUnsuspendFlow';
@@ -1 +1 @@
1
- {"version":3,"file":"AdministrationConstants.d.ts","sourceRoot":"","sources":["../../src/constants/AdministrationConstants.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,EAAE;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,CAAC;CAIlB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE;IACxC,eAAe,EAAE,oBAAoB,CAAC;IACtC,aAAa,EAAE,kBAAkB,CAAC;IAClC,YAAY,EAAE,iBAAiB,CAAC;IAChC,eAAe,EAAE,oBAAoB,CAAC;IACtC,oBAAoB,EAAE,yBAAyB,CAAC;IAChD,mBAAmB,EAAE,wBAAwB,CAAC;IAC9C,qBAAqB,EAAE,0BAA0B,CAAC;IAClD,cAAc,EAAE,mBAAmB,CAAC;IACpC,wBAAwB,EAAE,4BAA4B,CAAC;IACvD,uBAAuB,EAAE,2BAA2B,CAAC;IACrD,aAAa,EAAE,kBAAkB,CAAC;IAClC,uBAAuB,EAAE,2BAA2B,CAAC;IACrD,mBAAmB,EAAE,wBAAwB,CAAC;IAC9C,aAAa,EAAE,kBAAkB,CAAC;IAClC,YAAY,EAAE,iBAAiB,CAAC;IAChC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,cAAc,EAAE,mBAAmB,CAAC;CAmBrC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE;IAC1C,KAAK,EAAE;QAAC,OAAO,EAAE,kBAAkB,CAAC;QAAC,MAAM,EAAE,iBAAiB,CAAC;QAAC,SAAS,EAAE,oBAAoB,CAAA;KAAC,CAAC;IACjG,WAAW,EAAE;QAAC,OAAO,EAAE,wBAAwB,CAAC;QAAC,SAAS,EAAE,0BAA0B,CAAA;KAAC,CAAC;IACxF,IAAI,EAAE;QAAC,OAAO,EAAE,iBAAiB,CAAC;QAAC,MAAM,EAAE,gBAAgB,CAAC;QAAC,SAAS,EAAE,mBAAmB,CAAA;KAAC,CAAC;CAgB9F,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE;IACpC,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,qBAAqB,CAAC;IACnC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC;IACzB,aAAa,EAAE,cAAc,CAAC;IAC9B,WAAW,EAAE,mBAAmB,CAAC;IACjC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,eAAe,EAAE,wBAAwB,CAAC;IAC1C,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,SAAS,CAAC;CAapB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE;IACnC,aAAa,EAAE,cAAc,CAAC;IAC9B,UAAU,EAAE,WAAW,CAAC;CAIzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AAEzD,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"AdministrationConstants.d.ts","sourceRoot":"","sources":["../../src/constants/AdministrationConstants.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,EAAE;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,CAAC;CAIlB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,EAAE;IACxC,eAAe,EAAE,oBAAoB,CAAC;IACtC,4BAA4B,EAAE,gCAAgC,CAAC;IAC/D,aAAa,EAAE,kBAAkB,CAAC;IAClC,YAAY,EAAE,iBAAiB,CAAC;IAChC,eAAe,EAAE,oBAAoB,CAAC;IACtC,oBAAoB,EAAE,yBAAyB,CAAC;IAChD,mBAAmB,EAAE,wBAAwB,CAAC;IAC9C,qBAAqB,EAAE,0BAA0B,CAAC;IAClD,cAAc,EAAE,mBAAmB,CAAC;IACpC,wBAAwB,EAAE,4BAA4B,CAAC;IACvD,uBAAuB,EAAE,2BAA2B,CAAC;IACrD,aAAa,EAAE,kBAAkB,CAAC;IAClC,uBAAuB,EAAE,2BAA2B,CAAC;IACrD,mBAAmB,EAAE,wBAAwB,CAAC;IAC9C,aAAa,EAAE,kBAAkB,CAAC;IAClC,YAAY,EAAE,iBAAiB,CAAC;IAChC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,cAAc,EAAE,mBAAmB,CAAC;CAoBrC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE;IAC1C,KAAK,EAAE;QAAC,OAAO,EAAE,kBAAkB,CAAC;QAAC,MAAM,EAAE,iBAAiB,CAAC;QAAC,SAAS,EAAE,oBAAoB,CAAA;KAAC,CAAC;IACjG,WAAW,EAAE;QAAC,OAAO,EAAE,wBAAwB,CAAC;QAAC,SAAS,EAAE,0BAA0B,CAAA;KAAC,CAAC;IACxF,IAAI,EAAE;QAAC,OAAO,EAAE,iBAAiB,CAAC;QAAC,MAAM,EAAE,gBAAgB,CAAC;QAAC,SAAS,EAAE,mBAAmB,CAAA;KAAC,CAAC;CAgB9F,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE;IACpC,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,qBAAqB,CAAC;IACnC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC;IACzB,aAAa,EAAE,cAAc,CAAC;IAC9B,WAAW,EAAE,mBAAmB,CAAC;IACjC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,eAAe,EAAE,wBAAwB,CAAC;IAC1C,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,SAAS,CAAC;CAapB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE;IACnC,aAAa,EAAE,cAAc,CAAC;IAC9B,UAAU,EAAE,WAAW,CAAC;CAIzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AAEzD,eAAe,mBAAmB,CAAC"}
@@ -1,13 +1,16 @@
1
1
  /**
2
- * Wire names and eligibility rules for self user attribute verification.
2
+ * Wire names and eligibility rules for user attribute verification, by the user or by an administrator.
3
3
  */
4
4
  declare const AttributeVerificationConstants: {
5
+ ADMIN_VERIFIABLE_ATTRIBUTES: readonly string[];
5
6
  ATTRIBUTE_INPUT: string;
7
+ CHANNEL_KEY: string;
6
8
  DEFAULT_FLOW_HANDLE: string;
9
+ EMAIL_SENT_KEY: string;
7
10
  MASKED_DESTINATION_KEY: string;
11
+ SUBJECT_INPUT: string;
8
12
  VERIFIABLE_ATTRIBUTE_TYPES: readonly string[];
9
13
  VERIFIED_ATTRIBUTES_KEY: string;
10
- VERIFY_AFTER_SAVE_ATTRIBUTE_TYPES: readonly string[];
11
14
  };
12
15
  export default AttributeVerificationConstants;
13
16
  //# sourceMappingURL=AttributeVerificationConstants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeVerificationConstants.d.ts","sourceRoot":"","sources":["../../src/constants/AttributeVerificationConstants.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,QAAA,MAAM,8BAA8B,EAAE;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,0BAA0B,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,uBAAuB,EAAE,MAAM,CAAC;IAChC,iCAAiC,EAAE,SAAS,MAAM,EAAE,CAAC;CA2BtD,CAAC;AAEF,eAAe,8BAA8B,CAAC"}
1
+ {"version":3,"file":"AttributeVerificationConstants.d.ts","sourceRoot":"","sources":["../../src/constants/AttributeVerificationConstants.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,QAAA,MAAM,8BAA8B,EAAE;IACpC,2BAA2B,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,uBAAuB,EAAE,MAAM,CAAC;CAsCjC,CAAC;AAEF,eAAe,8BAA8B,CAAC"}