@thunderid/javascript 1.0.7 → 1.1.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 (81) hide show
  1. package/dist/api/agents/createAgent.d.ts +28 -0
  2. package/dist/api/agents/createAgent.d.ts.map +1 -0
  3. package/dist/api/agents/deleteAgent.d.ts +27 -0
  4. package/dist/api/agents/deleteAgent.d.ts.map +1 -0
  5. package/dist/api/agents/getAgent.d.ts +28 -0
  6. package/dist/api/agents/getAgent.d.ts.map +1 -0
  7. package/dist/api/agents/getAgents.d.ts +23 -0
  8. package/dist/api/agents/getAgents.d.ts.map +1 -0
  9. package/dist/api/agents/updateAgent.d.ts +33 -0
  10. package/dist/api/agents/updateAgent.d.ts.map +1 -0
  11. package/dist/api/applications/createApplication.d.ts +28 -0
  12. package/dist/api/applications/createApplication.d.ts.map +1 -0
  13. package/dist/api/applications/deleteApplication.d.ts +27 -0
  14. package/dist/api/applications/deleteApplication.d.ts.map +1 -0
  15. package/dist/api/applications/getApplication.d.ts +28 -0
  16. package/dist/api/applications/getApplication.d.ts.map +1 -0
  17. package/dist/api/applications/getApplications.d.ts +24 -0
  18. package/dist/api/applications/getApplications.d.ts.map +1 -0
  19. package/dist/api/applications/updateApplication.d.ts +33 -0
  20. package/dist/api/applications/updateApplication.d.ts.map +1 -0
  21. package/dist/api/updateMeCredentials.d.ts +66 -0
  22. package/dist/api/updateMeCredentials.d.ts.map +1 -0
  23. package/dist/api/users/createUser.d.ts +28 -0
  24. package/dist/api/users/createUser.d.ts.map +1 -0
  25. package/dist/api/users/deleteUser.d.ts +27 -0
  26. package/dist/api/users/deleteUser.d.ts.map +1 -0
  27. package/dist/api/users/getUser.d.ts +28 -0
  28. package/dist/api/users/getUser.d.ts.map +1 -0
  29. package/dist/api/users/getUsers.d.ts +24 -0
  30. package/dist/api/users/getUsers.d.ts.map +1 -0
  31. package/dist/api/users/updateUser.d.ts +33 -0
  32. package/dist/api/users/updateUser.d.ts.map +1 -0
  33. package/dist/cjs/index.cjs +934 -0
  34. package/dist/constants/AgentQueryKeys.d.ts +10 -0
  35. package/dist/constants/AgentQueryKeys.d.ts.map +1 -0
  36. package/dist/constants/ApplicationQueryKeys.d.ts +10 -0
  37. package/dist/constants/ApplicationQueryKeys.d.ts.map +1 -0
  38. package/dist/constants/CredentialConstants.d.ts +22 -0
  39. package/dist/constants/CredentialConstants.d.ts.map +1 -0
  40. package/dist/constants/UserQueryKeys.d.ts +10 -0
  41. package/dist/constants/UserQueryKeys.d.ts.map +1 -0
  42. package/dist/edge/index.js +905 -1
  43. package/dist/i18n/models/i18n.d.ts +13 -0
  44. package/dist/i18n/models/i18n.d.ts.map +1 -1
  45. package/dist/i18n/translations/en-US.d.ts.map +1 -1
  46. package/dist/i18n/translations/fr-FR.d.ts.map +1 -1
  47. package/dist/i18n/translations/hi-IN.d.ts.map +1 -1
  48. package/dist/i18n/translations/ja-JP.d.ts.map +1 -1
  49. package/dist/i18n/translations/pt-BR.d.ts.map +1 -1
  50. package/dist/i18n/translations/pt-PT.d.ts.map +1 -1
  51. package/dist/i18n/translations/si-LK.d.ts.map +1 -1
  52. package/dist/i18n/translations/ta-IN.d.ts.map +1 -1
  53. package/dist/i18n/translations/te-IN.d.ts.map +1 -1
  54. package/dist/index.d.ts +49 -0
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +905 -1
  57. package/dist/models/agent-resource.d.ts +96 -0
  58. package/dist/models/agent-resource.d.ts.map +1 -0
  59. package/dist/models/api.d.ts +57 -0
  60. package/dist/models/api.d.ts.map +1 -0
  61. package/dist/models/application.d.ts +271 -0
  62. package/dist/models/application.d.ts.map +1 -0
  63. package/dist/models/config.d.ts +26 -1
  64. package/dist/models/config.d.ts.map +1 -1
  65. package/dist/models/managed-user.d.ts +44 -0
  66. package/dist/models/managed-user.d.ts.map +1 -0
  67. package/dist/utils/evaluateChangePasswordForm.d.ts +64 -0
  68. package/dist/utils/evaluateChangePasswordForm.d.ts.map +1 -0
  69. package/dist/utils/evaluatePasswordPolicy.d.ts +60 -0
  70. package/dist/utils/evaluatePasswordPolicy.d.ts.map +1 -0
  71. package/dist/utils/mapCredentialUpdateError.d.ts +31 -0
  72. package/dist/utils/mapCredentialUpdateError.d.ts.map +1 -0
  73. package/dist/utils/requestManagementResource.d.ts +41 -0
  74. package/dist/utils/requestManagementResource.d.ts.map +1 -0
  75. package/dist/utils/resolveChangeCredentialPolicy.d.ts +24 -0
  76. package/dist/utils/resolveChangeCredentialPolicy.d.ts.map +1 -0
  77. package/dist/utils/resolveResourceEndpoint.d.ts +1 -1
  78. package/dist/utils/resolveResourceEndpoint.d.ts.map +1 -1
  79. package/dist/utils/supportsCredential.d.ts +32 -0
  80. package/dist/utils/supportsCredential.d.ts.map +1 -0
  81. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1445,6 +1445,73 @@ const getUsersMeMeta = async ({ baseUrl, fetcher, url,...requestConfig }) => {
1445
1445
  };
1446
1446
  var getUsersMeMeta_default = getUsersMeMeta;
1447
1447
 
1448
+ //#endregion
1449
+ //#region src/api/updateMeCredentials.ts
1450
+ /**
1451
+ * Updates one or more of the signed-in user's credentials at the
1452
+ * /users/me/update-credentials endpoint.
1453
+ *
1454
+ * The endpoint responds with `204 No Content` on success, so this function resolves with
1455
+ * `void` rather than a parsed body.
1456
+ *
1457
+ * @param config - Configuration object with URL, payload and optional request config.
1458
+ * @returns A promise that resolves once the credentials have been updated.
1459
+ * @example
1460
+ * ```typescript
1461
+ * // Using default fetch
1462
+ * await updateMeCredentials({
1463
+ * url: "https://localhost:8090/users/me/update-credentials",
1464
+ * payload: {password: "n3wP@ssword!"}
1465
+ * });
1466
+ * ```
1467
+ *
1468
+ * @example
1469
+ * ```typescript
1470
+ * // Using custom fetcher (e.g. an httpClient that attaches the access token)
1471
+ * await updateMeCredentials({
1472
+ * baseUrl: "https://localhost:8090",
1473
+ * payload: {password: "n3wP@ssword!"},
1474
+ * fetcher: async (url, config) => {
1475
+ * const response = await httpClient({url, method: config.method, headers: config.headers, data: config.body});
1476
+ * return {
1477
+ * ok: response.status >= 200 && response.status < 300,
1478
+ * status: response.status,
1479
+ * statusText: response.statusText,
1480
+ * json: () => Promise.resolve(response.data),
1481
+ * text: () => Promise.resolve(typeof response.data === 'string' ? response.data : JSON.stringify(response.data))
1482
+ * } as Response;
1483
+ * }
1484
+ * });
1485
+ * ```
1486
+ */
1487
+ const updateMeCredentials = async ({ url, baseUrl, payload, fetcher,...requestConfig }) => {
1488
+ try {
1489
+ new URL(url ?? baseUrl);
1490
+ } catch (error$1) {
1491
+ throw new ThunderIDAPIError(`Invalid URL provided. ${error$1 instanceof Error ? error$1.message : String(error$1)}`, "updateMeCredentials-ValidationError-001", "javascript", 400, "The provided `url` or `baseUrl` path does not adhere to the URL schema.");
1492
+ }
1493
+ const fetchFn = fetcher ?? fetch;
1494
+ const resolvedUrl = url ?? `${baseUrl?.replace(/\/$/, "")}/users/me/update-credentials`;
1495
+ const requestInit = {
1496
+ ...requestConfig,
1497
+ method: "POST",
1498
+ body: JSON.stringify({ attributes: payload }),
1499
+ headers: {
1500
+ ...requestConfig.headers,
1501
+ Accept: "application/json",
1502
+ "Content-Type": "application/json"
1503
+ }
1504
+ };
1505
+ try {
1506
+ const response = await fetchFn(resolvedUrl, requestInit);
1507
+ if (!response?.ok) throw new ThunderIDAPIError(await response.text(), "updateMeCredentials-ResponseError-001", "javascript", response.status, response.statusText, "Failed to update user credentials");
1508
+ } catch (error$1) {
1509
+ if (error$1 instanceof ThunderIDAPIError) throw error$1;
1510
+ throw new ThunderIDAPIError(`Network or parsing error: ${error$1 instanceof Error ? error$1.message : "Unknown error"}`, "updateMeCredentials-NetworkError-001", "javascript", 0, "Network Error");
1511
+ }
1512
+ };
1513
+ var updateMeCredentials_default = updateMeCredentials;
1514
+
1448
1515
  //#endregion
1449
1516
  //#region src/api/updateMeProfile.ts
1450
1517
  /**
@@ -1522,6 +1589,456 @@ const updateMeProfile = async ({ url, baseUrl, payload, fetcher,...requestConfig
1522
1589
  };
1523
1590
  var updateMeProfile_default = updateMeProfile;
1524
1591
 
1592
+ //#endregion
1593
+ //#region src/utils/requestManagementResource.ts
1594
+ /**
1595
+ * Performs a request against a management API resource and maps failures onto
1596
+ * {@link ThunderIDAPIError}. HTTP 403 and 404 get their own codes so a caller can tell a missing
1597
+ * permission from a missing resource.
1598
+ *
1599
+ * @returns The parsed JSON body, or `undefined` when the server returns no content.
1600
+ */
1601
+ const requestManagementResource = async ({ baseUrl, url, fetcher,...requestConfig }, { body, collection, failureMessage, id, method, operation, query }) => {
1602
+ try {
1603
+ new URL(url ?? baseUrl);
1604
+ } catch (error$1) {
1605
+ throw new ThunderIDAPIError(`Invalid URL provided. ${error$1 instanceof Error ? error$1.message : String(error$1)}`, `${operation}-ValidationError-001`, "javascript", 400, "The provided `url` or `baseUrl` path does not adhere to the URL schema.");
1606
+ }
1607
+ if (id?.trim() === "") throw new ThunderIDAPIError("A resource identifier is required.", `${operation}-ValidationError-002`, "javascript", 400, "The provided resource identifier is empty.");
1608
+ const collectionUrl = (url ?? `${baseUrl}/${collection}`).replace(/\/+$/, "");
1609
+ const resourceUrl = id === void 0 ? collectionUrl : `${collectionUrl}/${encodeURIComponent(id)}`;
1610
+ const searchParams = new URLSearchParams();
1611
+ Object.entries(query ?? {}).forEach(([key, value]) => {
1612
+ if (value !== void 0) searchParams.set(key, String(value));
1613
+ });
1614
+ const queryString = searchParams.toString();
1615
+ const resolvedUrl = queryString ? `${resourceUrl}?${queryString}` : resourceUrl;
1616
+ const requestInit = {
1617
+ ...requestConfig,
1618
+ headers: {
1619
+ Accept: "application/json",
1620
+ "Content-Type": "application/json",
1621
+ ...requestConfig.headers
1622
+ },
1623
+ method,
1624
+ ...body !== void 0 ? { body: JSON.stringify(body) } : {}
1625
+ };
1626
+ const fetchFn = fetcher ?? fetch;
1627
+ try {
1628
+ const response = await fetchFn(resolvedUrl, requestInit);
1629
+ if (!response?.ok) {
1630
+ const errorText = await response.text();
1631
+ let reason = "ResponseError";
1632
+ if (response.status === 403) reason = "ForbiddenError";
1633
+ else if (response.status === 404) reason = "NotFoundError";
1634
+ throw new ThunderIDAPIError(errorText, `${operation}-${reason}-001`, "javascript", response.status, response.statusText, failureMessage);
1635
+ }
1636
+ if (response.status === 204 || method === "DELETE") return;
1637
+ return await response.json();
1638
+ } catch (error$1) {
1639
+ if (error$1 instanceof ThunderIDAPIError) throw error$1;
1640
+ throw new ThunderIDAPIError(`Network or parsing error: ${error$1 instanceof Error ? error$1.message : "Unknown error"}`, `${operation}-NetworkError-001`, "javascript", 0, "Network Error");
1641
+ }
1642
+ };
1643
+ var requestManagementResource_default = requestManagementResource;
1644
+
1645
+ //#endregion
1646
+ //#region src/api/applications/getApplications.ts
1647
+ /**
1648
+ * Retrieves a page of applications.
1649
+ *
1650
+ * @param config - Request configuration object.
1651
+ * @returns A promise that resolves with the page of applications.
1652
+ *
1653
+ * @example
1654
+ * ```typescript
1655
+ * const {applications, totalResults} = await getApplications({
1656
+ * baseUrl: 'https://localhost:8090',
1657
+ * limit: 10,
1658
+ * offset: 0,
1659
+ * });
1660
+ * ```
1661
+ */
1662
+ const getApplications = async ({ limit, offset,...config }) => requestManagementResource_default(config, {
1663
+ collection: "applications",
1664
+ failureMessage: "Failed to fetch applications",
1665
+ method: "GET",
1666
+ operation: "getApplications",
1667
+ query: {
1668
+ limit,
1669
+ offset
1670
+ }
1671
+ });
1672
+ var getApplications_default = getApplications;
1673
+
1674
+ //#endregion
1675
+ //#region src/api/applications/getApplication.ts
1676
+ /**
1677
+ * Retrieves a single application.
1678
+ *
1679
+ * @param config - Request configuration object.
1680
+ * @returns A promise that resolves with the application.
1681
+ *
1682
+ * @example
1683
+ * ```typescript
1684
+ * const application = await getApplication({
1685
+ * baseUrl: 'https://localhost:8090',
1686
+ * applicationId: '550e8400-e29b-41d4-a716-446655440000',
1687
+ * });
1688
+ * ```
1689
+ */
1690
+ const getApplication = async ({ applicationId,...config }) => requestManagementResource_default(config, {
1691
+ collection: "applications",
1692
+ failureMessage: "Failed to fetch application",
1693
+ id: applicationId,
1694
+ method: "GET",
1695
+ operation: "getApplication"
1696
+ });
1697
+ var getApplication_default = getApplication;
1698
+
1699
+ //#endregion
1700
+ //#region src/api/applications/createApplication.ts
1701
+ /**
1702
+ * Creates an application.
1703
+ *
1704
+ * @param config - Request configuration object.
1705
+ * @returns A promise that resolves with the application as the server stored it.
1706
+ *
1707
+ * @example
1708
+ * ```typescript
1709
+ * const application = await createApplication({
1710
+ * baseUrl: 'https://localhost:8090',
1711
+ * payload: {name: 'My SPA', url: 'http://localhost:3000'},
1712
+ * });
1713
+ * ```
1714
+ */
1715
+ const createApplication = async ({ payload,...config }) => requestManagementResource_default(config, {
1716
+ body: payload,
1717
+ collection: "applications",
1718
+ failureMessage: "Failed to create application",
1719
+ method: "POST",
1720
+ operation: "createApplication"
1721
+ });
1722
+ var createApplication_default = createApplication;
1723
+
1724
+ //#endregion
1725
+ //#region src/api/applications/updateApplication.ts
1726
+ /**
1727
+ * Updates an application.
1728
+ *
1729
+ * @param config - Request configuration object.
1730
+ * @returns A promise that resolves with the updated application.
1731
+ *
1732
+ * @example
1733
+ * ```typescript
1734
+ * const application = await updateApplication({
1735
+ * baseUrl: 'https://localhost:8090',
1736
+ * applicationId: '550e8400-e29b-41d4-a716-446655440000',
1737
+ * payload: {...existing, name: 'Renamed'},
1738
+ * });
1739
+ * ```
1740
+ */
1741
+ const updateApplication = async ({ applicationId, payload,...config }) => requestManagementResource_default(config, {
1742
+ body: payload,
1743
+ collection: "applications",
1744
+ failureMessage: "Failed to update application",
1745
+ id: applicationId,
1746
+ method: "PUT",
1747
+ operation: "updateApplication"
1748
+ });
1749
+ var updateApplication_default = updateApplication;
1750
+
1751
+ //#endregion
1752
+ //#region src/api/applications/deleteApplication.ts
1753
+ /**
1754
+ * Deletes an application.
1755
+ *
1756
+ * @param config - Request configuration object.
1757
+ * @returns A promise that resolves once the application is deleted.
1758
+ *
1759
+ * @example
1760
+ * ```typescript
1761
+ * await deleteApplication({
1762
+ * baseUrl: 'https://localhost:8090',
1763
+ * applicationId: '550e8400-e29b-41d4-a716-446655440000',
1764
+ * });
1765
+ * ```
1766
+ */
1767
+ const deleteApplication = async ({ applicationId,...config }) => requestManagementResource_default(config, {
1768
+ collection: "applications",
1769
+ failureMessage: "Failed to delete application",
1770
+ id: applicationId,
1771
+ method: "DELETE",
1772
+ operation: "deleteApplication"
1773
+ });
1774
+ var deleteApplication_default = deleteApplication;
1775
+
1776
+ //#endregion
1777
+ //#region src/api/users/getUsers.ts
1778
+ /**
1779
+ * Retrieves a page of users. Each user carries its resolved `display` value.
1780
+ *
1781
+ * @param config - Request configuration object.
1782
+ * @returns A promise that resolves with the page of users.
1783
+ *
1784
+ * @example
1785
+ * ```typescript
1786
+ * const {users, totalResults} = await getUsers({
1787
+ * baseUrl: 'https://localhost:8090',
1788
+ * limit: 10,
1789
+ * filter: 'username eq "alice"',
1790
+ * });
1791
+ * ```
1792
+ */
1793
+ const getUsers = async ({ filter, limit, offset,...config }) => requestManagementResource_default(config, {
1794
+ collection: "users",
1795
+ failureMessage: "Failed to fetch users",
1796
+ method: "GET",
1797
+ operation: "getUsers",
1798
+ query: {
1799
+ filter,
1800
+ include: "display",
1801
+ limit,
1802
+ offset
1803
+ }
1804
+ });
1805
+ var getUsers_default = getUsers;
1806
+
1807
+ //#endregion
1808
+ //#region src/api/users/getUser.ts
1809
+ /**
1810
+ * Retrieves a single user, with its resolved `display` value.
1811
+ *
1812
+ * @param config - Request configuration object.
1813
+ * @returns A promise that resolves with the user.
1814
+ *
1815
+ * @example
1816
+ * ```typescript
1817
+ * const user = await getUser({
1818
+ * baseUrl: 'https://localhost:8090',
1819
+ * userId: '9a475e1e-b0cb-4b29-8df5-2e5b24fb0ed3',
1820
+ * });
1821
+ * ```
1822
+ */
1823
+ const getUser = async ({ userId,...config }) => requestManagementResource_default(config, {
1824
+ collection: "users",
1825
+ failureMessage: "Failed to fetch user",
1826
+ id: userId,
1827
+ method: "GET",
1828
+ operation: "getUser",
1829
+ query: { include: "display" }
1830
+ });
1831
+ var getUser_default = getUser;
1832
+
1833
+ //#endregion
1834
+ //#region src/api/users/createUser.ts
1835
+ /**
1836
+ * Creates a user.
1837
+ *
1838
+ * @param config - Request configuration object.
1839
+ * @returns A promise that resolves with the user as the server stored it.
1840
+ *
1841
+ * @example
1842
+ * ```typescript
1843
+ * const user = await createUser({
1844
+ * baseUrl: 'https://localhost:8090',
1845
+ * payload: {ouId, type: 'customer', attributes: {username: 'alice'}},
1846
+ * });
1847
+ * ```
1848
+ */
1849
+ const createUser = async ({ payload,...config }) => requestManagementResource_default(config, {
1850
+ body: payload,
1851
+ collection: "users",
1852
+ failureMessage: "Failed to create user",
1853
+ method: "POST",
1854
+ operation: "createUser"
1855
+ });
1856
+ var createUser_default = createUser;
1857
+
1858
+ //#endregion
1859
+ //#region src/api/users/updateUser.ts
1860
+ /**
1861
+ * Updates a user.
1862
+ *
1863
+ * @param config - Request configuration object.
1864
+ * @returns A promise that resolves with the updated user.
1865
+ *
1866
+ * @example
1867
+ * ```typescript
1868
+ * const user = await updateUser({
1869
+ * baseUrl: 'https://localhost:8090',
1870
+ * userId: '9a475e1e-b0cb-4b29-8df5-2e5b24fb0ed3',
1871
+ * payload: {attributes: {givenName: 'Alice'}},
1872
+ * });
1873
+ * ```
1874
+ */
1875
+ const updateUser = async ({ userId, payload,...config }) => requestManagementResource_default(config, {
1876
+ body: payload,
1877
+ collection: "users",
1878
+ failureMessage: "Failed to update user",
1879
+ id: userId,
1880
+ method: "PUT",
1881
+ operation: "updateUser"
1882
+ });
1883
+ var updateUser_default = updateUser;
1884
+
1885
+ //#endregion
1886
+ //#region src/api/users/deleteUser.ts
1887
+ /**
1888
+ * Deletes a user.
1889
+ *
1890
+ * @param config - Request configuration object.
1891
+ * @returns A promise that resolves once the user is deleted.
1892
+ *
1893
+ * @example
1894
+ * ```typescript
1895
+ * await deleteUser({
1896
+ * baseUrl: 'https://localhost:8090',
1897
+ * userId: '9a475e1e-b0cb-4b29-8df5-2e5b24fb0ed3',
1898
+ * });
1899
+ * ```
1900
+ */
1901
+ const deleteUser = async ({ userId,...config }) => requestManagementResource_default(config, {
1902
+ collection: "users",
1903
+ failureMessage: "Failed to delete user",
1904
+ id: userId,
1905
+ method: "DELETE",
1906
+ operation: "deleteUser"
1907
+ });
1908
+ var deleteUser_default = deleteUser;
1909
+
1910
+ //#endregion
1911
+ //#region src/api/agents/getAgents.ts
1912
+ /**
1913
+ * Retrieves a page of agents.
1914
+ *
1915
+ * @param config - Request configuration object.
1916
+ * @returns A promise that resolves with the page of agents.
1917
+ *
1918
+ * @example
1919
+ * ```typescript
1920
+ * const {agents, totalResults} = await getAgents({
1921
+ * baseUrl: 'https://localhost:8090',
1922
+ * limit: 10,
1923
+ * });
1924
+ * ```
1925
+ */
1926
+ const getAgents = async ({ limit, offset,...config }) => requestManagementResource_default(config, {
1927
+ collection: "agents",
1928
+ failureMessage: "Failed to fetch agents",
1929
+ method: "GET",
1930
+ operation: "getAgents",
1931
+ query: {
1932
+ include: "display",
1933
+ limit,
1934
+ offset
1935
+ }
1936
+ });
1937
+ var getAgents_default = getAgents;
1938
+
1939
+ //#endregion
1940
+ //#region src/api/agents/getAgent.ts
1941
+ /**
1942
+ * Retrieves a single agent.
1943
+ *
1944
+ * @param config - Request configuration object.
1945
+ * @returns A promise that resolves with the agent.
1946
+ *
1947
+ * @example
1948
+ * ```typescript
1949
+ * const agent = await getAgent({
1950
+ * baseUrl: 'https://localhost:8090',
1951
+ * agentId: '6f1e2d3c-4b5a-4978-8a6b-5c4d3e2f1a0b',
1952
+ * });
1953
+ * ```
1954
+ */
1955
+ const getAgent = async ({ agentId,...config }) => requestManagementResource_default(config, {
1956
+ collection: "agents",
1957
+ failureMessage: "Failed to fetch agent",
1958
+ id: agentId,
1959
+ method: "GET",
1960
+ operation: "getAgent",
1961
+ query: { include: "display" }
1962
+ });
1963
+ var getAgent_default = getAgent;
1964
+
1965
+ //#endregion
1966
+ //#region src/api/agents/createAgent.ts
1967
+ /**
1968
+ * Creates an agent.
1969
+ *
1970
+ * @param config - Request configuration object.
1971
+ * @returns A promise that resolves with the agent as the server stored it.
1972
+ *
1973
+ * @example
1974
+ * ```typescript
1975
+ * const agent = await createAgent({
1976
+ * baseUrl: 'https://localhost:8090',
1977
+ * payload: {ouId, type: 'default', name: 'Nightly Sync Worker'},
1978
+ * });
1979
+ * ```
1980
+ */
1981
+ const createAgent = async ({ payload,...config }) => requestManagementResource_default(config, {
1982
+ body: payload,
1983
+ collection: "agents",
1984
+ failureMessage: "Failed to create agent",
1985
+ method: "POST",
1986
+ operation: "createAgent"
1987
+ });
1988
+ var createAgent_default = createAgent;
1989
+
1990
+ //#endregion
1991
+ //#region src/api/agents/updateAgent.ts
1992
+ /**
1993
+ * Updates an agent.
1994
+ *
1995
+ * @param config - Request configuration object.
1996
+ * @returns A promise that resolves with the updated agent.
1997
+ *
1998
+ * @example
1999
+ * ```typescript
2000
+ * const agent = await updateAgent({
2001
+ * baseUrl: 'https://localhost:8090',
2002
+ * agentId: '6f1e2d3c-4b5a-4978-8a6b-5c4d3e2f1a0b',
2003
+ * payload: {name: 'Renamed Agent'},
2004
+ * });
2005
+ * ```
2006
+ */
2007
+ const updateAgent = async ({ agentId, payload,...config }) => requestManagementResource_default(config, {
2008
+ body: payload,
2009
+ collection: "agents",
2010
+ failureMessage: "Failed to update agent",
2011
+ id: agentId,
2012
+ method: "PUT",
2013
+ operation: "updateAgent"
2014
+ });
2015
+ var updateAgent_default = updateAgent;
2016
+
2017
+ //#endregion
2018
+ //#region src/api/agents/deleteAgent.ts
2019
+ /**
2020
+ * Deletes an agent.
2021
+ *
2022
+ * @param config - Request configuration object.
2023
+ * @returns A promise that resolves once the agent is deleted.
2024
+ *
2025
+ * @example
2026
+ * ```typescript
2027
+ * await deleteAgent({
2028
+ * baseUrl: 'https://localhost:8090',
2029
+ * agentId: '6f1e2d3c-4b5a-4978-8a6b-5c4d3e2f1a0b',
2030
+ * });
2031
+ * ```
2032
+ */
2033
+ const deleteAgent = async ({ agentId,...config }) => requestManagementResource_default(config, {
2034
+ collection: "agents",
2035
+ failureMessage: "Failed to delete agent",
2036
+ id: agentId,
2037
+ method: "DELETE",
2038
+ operation: "deleteAgent"
2039
+ });
2040
+ var deleteAgent_default = deleteAgent;
2041
+
1525
2042
  //#endregion
1526
2043
  //#region src/constants/ApplicationNativeAuthenticationConstants.ts
1527
2044
  /**
@@ -1605,6 +2122,28 @@ var OIDCRequestConstants_default = OIDCRequestConstants;
1605
2122
  const VendorConstants = { VENDOR_PREFIX: "thunderid" };
1606
2123
  var VendorConstants_default = VendorConstants;
1607
2124
 
2125
+ //#endregion
2126
+ //#region src/constants/CredentialConstants.ts
2127
+ /**
2128
+ * Constants for the credential types the server accepts on the self-service
2129
+ * credential write path.
2130
+ *
2131
+ * The server keys credentials by type. `password` is the one every user type schema
2132
+ * declares by default, hence a named constant for it; any other schema-declared
2133
+ * `credential: true` attribute (for example `pin`) can be self-managed too, just by its
2134
+ * own attribute name rather than a constant here.
2135
+ *
2136
+ * @example
2137
+ * ```typescript
2138
+ * await updateMeCredentials({
2139
+ * payload: {[CredentialConstants.PASSWORD]: newPassword},
2140
+ * url,
2141
+ * });
2142
+ * ```
2143
+ */
2144
+ const CredentialConstants = { PASSWORD: "password" };
2145
+ var CredentialConstants_default = CredentialConstants;
2146
+
1608
2147
  //#endregion
1609
2148
  //#region src/constants/ConsentConstants.ts
1610
2149
  /**
@@ -1629,6 +2168,42 @@ const ConsentConstants = {
1629
2168
  };
1630
2169
  var ConsentConstants_default = ConsentConstants;
1631
2170
 
2171
+ //#endregion
2172
+ //#region src/constants/ApplicationQueryKeys.ts
2173
+ /**
2174
+ * Cache keys for application resources. The SDK's reactive wrappers use them to refetch after a
2175
+ * mutation, and an application can reuse them as keys in its own data fetching cache.
2176
+ */
2177
+ const ApplicationQueryKeys = {
2178
+ APPLICATION: "application",
2179
+ APPLICATIONS: "applications"
2180
+ };
2181
+ var ApplicationQueryKeys_default = ApplicationQueryKeys;
2182
+
2183
+ //#endregion
2184
+ //#region src/constants/UserQueryKeys.ts
2185
+ /**
2186
+ * Cache keys for user resources. The SDK's reactive wrappers use them to refetch after a mutation,
2187
+ * and an application can reuse them as keys in its own data fetching cache.
2188
+ */
2189
+ const UserQueryKeys = {
2190
+ USER: "user",
2191
+ USERS: "users"
2192
+ };
2193
+ var UserQueryKeys_default = UserQueryKeys;
2194
+
2195
+ //#endregion
2196
+ //#region src/constants/AgentQueryKeys.ts
2197
+ /**
2198
+ * Cache keys for agent resources. The SDK's reactive wrappers use them to refetch after a mutation,
2199
+ * and an application can reuse them as keys in its own data fetching cache.
2200
+ */
2201
+ const AgentQueryKeys = {
2202
+ AGENT: "agent",
2203
+ AGENTS: "agents"
2204
+ };
2205
+ var AgentQueryKeys_default = AgentQueryKeys;
2206
+
1632
2207
  //#endregion
1633
2208
  //#region src/errors/ThunderIDRuntimeError.ts
1634
2209
  /**
@@ -1755,6 +2330,51 @@ let FlowMode = /* @__PURE__ */ function(FlowMode$1) {
1755
2330
  return FlowMode$1;
1756
2331
  }({});
1757
2332
 
2333
+ //#endregion
2334
+ //#region src/models/application.ts
2335
+ /**
2336
+ * OAuth 2.0 grant type values.
2337
+ */
2338
+ const OAuth2GrantTypes = {
2339
+ AUTHORIZATION_CODE: "authorization_code",
2340
+ CIBA: "urn:openid:params:grant-type:ciba",
2341
+ CLIENT_CREDENTIALS: "client_credentials",
2342
+ IMPLICIT: "implicit",
2343
+ JWT_BEARER: "urn:ietf:params:oauth:grant-type:jwt-bearer",
2344
+ PASSWORD: "password",
2345
+ REFRESH_TOKEN: "refresh_token",
2346
+ TOKEN_EXCHANGE: "urn:ietf:params:oauth:grant-type:token-exchange"
2347
+ };
2348
+ /**
2349
+ * Grant types that can issue a refresh token.
2350
+ */
2351
+ const REFRESH_TOKEN_ISSUING_GRANTS = [OAuth2GrantTypes.AUTHORIZATION_CODE, OAuth2GrantTypes.CIBA];
2352
+ /**
2353
+ * OAuth 2.0 response type values.
2354
+ */
2355
+ const OAuth2ResponseTypes = {
2356
+ CODE: "code",
2357
+ CODE_ID_TOKEN: "code id_token",
2358
+ CODE_TOKEN: "code token",
2359
+ ID_TOKEN: "id_token",
2360
+ TOKEN: "token",
2361
+ TOKEN_ID_TOKEN: "token id_token"
2362
+ };
2363
+ /**
2364
+ * Token endpoint authentication methods an application can be configured with.
2365
+ */
2366
+ const TokenEndpointAuthMethods = {
2367
+ CLIENT_SECRET_BASIC: "client_secret_basic",
2368
+ CLIENT_SECRET_JWT: "client_secret_jwt",
2369
+ CLIENT_SECRET_POST: "client_secret_post",
2370
+ NONE: "none",
2371
+ PRIVATE_KEY_JWT: "private_key_jwt"
2372
+ };
2373
+ /**
2374
+ * Inbound authentication protocol values.
2375
+ */
2376
+ const InboundAuthTypes = { OAUTH2: "oauth2" };
2377
+
1758
2378
  //#endregion
1759
2379
  //#region src/models/field.ts
1760
2380
  let FieldType = /* @__PURE__ */ function(FieldType$1) {
@@ -2280,9 +2900,13 @@ var processOpenIDScopes_default = processOpenIDScopes;
2280
2900
  * endpoints. Used to keep these overrides out of the resolved OIDC provider metadata.
2281
2901
  */
2282
2902
  const RESOURCE_ENDPOINT_KEYS = [
2903
+ "agents",
2904
+ "applications",
2283
2905
  "flowExecute",
2284
2906
  "flowMeta",
2907
+ "users",
2285
2908
  "usersMe",
2909
+ "usersMeCredentials",
2286
2910
  "usersMeMeta"
2287
2911
  ];
2288
2912
  /**
@@ -4312,6 +4936,182 @@ const resolveFieldName = (field) => {
4312
4936
  };
4313
4937
  var resolveFieldName_default = resolveFieldName;
4314
4938
 
4939
+ //#endregion
4940
+ //#region src/utils/evaluatePasswordPolicy.ts
4941
+ /**
4942
+ * Evaluates a password against a policy, returning one result when the policy configures
4943
+ * a `regex` and none otherwise.
4944
+ *
4945
+ * An uncompilable `regex` is treated as passing, matching `evaluateValidationRule`:
4946
+ * the SDK stays lenient so a misconfigured schema cannot lock a user out of their own
4947
+ * password change.
4948
+ *
4949
+ * @param value - The candidate password.
4950
+ * @param policy - The rule to apply.
4951
+ * @returns A single-item list when `policy.regex` is set, otherwise an empty list.
4952
+ * @example
4953
+ * ```typescript
4954
+ * const results = evaluatePasswordPolicy('sh0rt', {regex: '^.{8,}$'});
4955
+ * const isValid = results.every(result => result.passed);
4956
+ * ```
4957
+ */
4958
+ const evaluatePasswordPolicy = (value, policy) => {
4959
+ if (!policy.regex) return [];
4960
+ let matches = true;
4961
+ try {
4962
+ matches = new RegExp(policy.regex).test(value);
4963
+ } catch {
4964
+ matches = true;
4965
+ }
4966
+ return [{
4967
+ key: "regex",
4968
+ messageKey: "validation.password.pattern",
4969
+ passed: matches
4970
+ }];
4971
+ };
4972
+ var evaluatePasswordPolicy_default = evaluatePasswordPolicy;
4973
+
4974
+ //#endregion
4975
+ //#region src/utils/evaluateChangePasswordForm.ts
4976
+ /**
4977
+ * Evaluates a change-password form against a policy.
4978
+ *
4979
+ * Every predicate a change-password UI needs is derived here so the React and Vue
4980
+ * components stay pure rendering concerns and cannot drift apart on what counts as a
4981
+ * submittable form.
4982
+ *
4983
+ * @param values - The current field values.
4984
+ * @param policy - The rules the new password must satisfy.
4985
+ * @returns The derived flags plus the per-rule results.
4986
+ * @example
4987
+ * ```typescript
4988
+ * const {isValid, ruleResults} = evaluateChangePasswordForm(
4989
+ * {confirmPassword, newPassword},
4990
+ * {regex: '^.{12,}$'},
4991
+ * );
4992
+ * const canSubmit = !loading && isValid;
4993
+ * ```
4994
+ */
4995
+ const evaluateChangePasswordForm = (values, policy) => {
4996
+ const { confirmPassword, newPassword } = values;
4997
+ const ruleResults = evaluatePasswordPolicy_default(newPassword, policy);
4998
+ const meetsPolicy = ruleResults.every((rule) => rule.passed);
4999
+ const confirmMatches = newPassword === confirmPassword;
5000
+ return {
5001
+ confirmMatches,
5002
+ isValid: newPassword !== "" && confirmPassword !== "" && meetsPolicy && confirmMatches,
5003
+ meetsPolicy,
5004
+ ruleResults
5005
+ };
5006
+ };
5007
+ var evaluateChangePasswordForm_default = evaluateChangePasswordForm;
5008
+
5009
+ //#endregion
5010
+ //#region src/utils/resolveChangeCredentialPolicy.ts
5011
+ /**
5012
+ * Resolves the rules a change-credential form should enforce for the given credential.
5013
+ *
5014
+ * The organization's own policy, expressed as the credential attribute's `regex` in
5015
+ * `GET /users/me/meta`, is the sole source of truth: the SDK does not layer its own
5016
+ * character-class or length rules on top, since doing so could reject a value the
5017
+ * organization's policy accepts. When the schema carries no regex for this credential,
5018
+ * there is no policy to check client-side and the requirement checklist is simply empty.
5019
+ *
5020
+ * @param userSchema - The user type schema resolved by the provider, keyed by attribute.
5021
+ * @param attribute - The credential attribute this form manages (e.g. `password`, `pin`).
5022
+ * @param override - An explicit policy supplied by the caller, which wins outright.
5023
+ * @returns The policy to hand to {@link evaluatePasswordPolicy}.
5024
+ * @example
5025
+ * ```typescript
5026
+ * const policy = resolveChangeCredentialPolicy(userSchema, 'pin', undefined);
5027
+ * const results = evaluatePasswordPolicy(candidate, policy);
5028
+ * ```
5029
+ */
5030
+ const resolveChangeCredentialPolicy = (userSchema, attribute, override) => {
5031
+ if (override) return override;
5032
+ const schemaRegex = userSchema?.[attribute]?.regex;
5033
+ return schemaRegex ? { regex: schemaRegex } : {};
5034
+ };
5035
+ var resolveChangeCredentialPolicy_default = resolveChangeCredentialPolicy;
5036
+
5037
+ //#endregion
5038
+ //#region src/utils/supportsCredential.ts
5039
+ /**
5040
+ * Whether the signed-in user's type allows them to set the given credential for themselves.
5041
+ *
5042
+ * The user type schema from `GET /users/me/meta` is the only thing a client can check before
5043
+ * rendering. It says whether the credential is declared on this type at all, which is a property
5044
+ * of the type rather than of the account, so it cannot say whether this particular user has one
5045
+ * stored today. That second question is the server's to answer.
5046
+ *
5047
+ * Without this check the form would submit into a guaranteed failure. `POST
5048
+ * /users/me/update-credentials` rejects a write for a name not declared on the type, since the
5049
+ * entity layer only accepts schema-declared credential keys.
5050
+ *
5051
+ * An absent schema means the answer is not known yet, either because the profile is still loading
5052
+ * or because the consuming app never supplied one. Both resolve to `true` so a change-credential
5053
+ * affordance is never hidden on missing information alone, and so apps that do not wire up
5054
+ * `userSchema` keep the behaviour they had before this check existed.
5055
+ *
5056
+ * @param userSchema - The user type schema resolved by the provider, keyed by attribute.
5057
+ * @param attribute - The credential attribute to check (e.g. `password`, `pin`).
5058
+ * @returns `false` only when the schema is known and either defines no attribute named
5059
+ * `attribute` or defines one that isn't marked `credential: true`.
5060
+ * @example
5061
+ * ```typescript
5062
+ * if (!supportsCredential(userSchema, 'pin')) {
5063
+ * return null;
5064
+ * }
5065
+ * ```
5066
+ */
5067
+ const supportsCredential = (userSchema, attribute) => {
5068
+ if (!userSchema) return true;
5069
+ return userSchema[attribute]?.credential === true;
5070
+ };
5071
+ var supportsCredential_default = supportsCredential;
5072
+
5073
+ //#endregion
5074
+ //#region src/utils/mapCredentialUpdateError.ts
5075
+ /**
5076
+ * Maps a failure from the credential write path onto the field that caused it.
5077
+ *
5078
+ * `400` is the new password failing a server-side check. Everything else, including a
5079
+ * `403`, has no single field to blame here: this form collects no current-value field for
5080
+ * a `403` to attach to, since the server does not verify one on this path today.
5081
+ *
5082
+ * @param error - The value thrown by the credential update call.
5083
+ * @returns Where to show the failure and what to show.
5084
+ * @example
5085
+ * ```typescript
5086
+ * const {field, message, messageKey} = mapCredentialUpdateError(caughtError);
5087
+ * const text = message ?? t(messageKey);
5088
+ *
5089
+ * if (field) {
5090
+ * setFieldErrors({[field]: text});
5091
+ * } else {
5092
+ * setError(text);
5093
+ * }
5094
+ * ```
5095
+ */
5096
+ const GENERIC_MESSAGE_KEY = "user.change_password.generic.error";
5097
+ const mapCredentialUpdateError = (error$1) => {
5098
+ if ((error$1 instanceof ThunderIDAPIError ? error$1.statusCode : void 0) === 400 && error$1 instanceof ThunderIDError) return {
5099
+ field: "newPassword",
5100
+ message: error$1.message,
5101
+ messageKey: GENERIC_MESSAGE_KEY
5102
+ };
5103
+ if (error$1 instanceof ThunderIDError) return {
5104
+ field: null,
5105
+ message: error$1.message,
5106
+ messageKey: GENERIC_MESSAGE_KEY
5107
+ };
5108
+ return {
5109
+ field: null,
5110
+ messageKey: GENERIC_MESSAGE_KEY
5111
+ };
5112
+ };
5113
+ var mapCredentialUpdateError_default = mapCredentialUpdateError;
5114
+
4315
5115
  //#endregion
4316
5116
  //#region src/utils/resolveMeta.ts
4317
5117
  /**
@@ -4945,6 +5745,19 @@ const en_US = {
4945
5745
  "passkey.register.description": "Create a passkey to securely sign in to your account without a password.",
4946
5746
  "user.profile.heading": "Profile",
4947
5747
  "user.profile.update.generic.error": "An error occurred while updating your profile. Please try again.",
5748
+ "user.change_password.heading": "Change {credential}",
5749
+ "user.change_password.new.label": "New {credential}",
5750
+ "user.change_password.new.placeholder": "Enter your new {credentialLower}",
5751
+ "user.change_password.confirm.label": "Confirm New {credential}",
5752
+ "user.change_password.confirm.placeholder": "Re-enter your new {credentialLower}",
5753
+ "user.change_password.requirements.heading": "Your {credentialLower} must have:",
5754
+ "user.change_password.submit": "Update {credential}",
5755
+ "user.change_password.success": "Your {credentialLower} has been updated.",
5756
+ "user.change_password.mismatch.error": "{credential}s do not match.",
5757
+ "user.change_password.generic.error": "An error occurred while updating your {credentialLower}. Please try again.",
5758
+ "user.change_password.unavailable.heading": "{credential} changes unavailable",
5759
+ "user.change_password.unavailable.description": "Please contact your administrator.",
5760
+ "validation.password.pattern": "Matches the required format",
4948
5761
  "organization.switcher.switch.organization": "Switch Organization",
4949
5762
  "organization.switcher.loading.placeholder.organizations": "Loading organizations...",
4950
5763
  "organization.switcher.members": "members",
@@ -5066,6 +5879,19 @@ const fr_FR = {
5066
5879
  "passkey.register.description": "Créez une clé d'accès pour vous connecter en toute sécurité à votre compte sans mot de passe.",
5067
5880
  "user.profile.heading": "Profil",
5068
5881
  "user.profile.update.generic.error": "Une erreur est survenue lors de la mise à jour de votre profil. Veuillez réessayer.",
5882
+ "user.change_password.heading": "Modifier {credential}",
5883
+ "user.change_password.new.label": "Nouveau {credential}",
5884
+ "user.change_password.new.placeholder": "Entrez votre nouveau {credentialLower}",
5885
+ "user.change_password.confirm.label": "Confirmer le nouveau {credential}",
5886
+ "user.change_password.confirm.placeholder": "Saisissez à nouveau votre nouveau {credentialLower}",
5887
+ "user.change_password.requirements.heading": "Votre {credentialLower} doit contenir :",
5888
+ "user.change_password.submit": "Mettre à jour {credential}",
5889
+ "user.change_password.success": "Votre {credentialLower} a été mis à jour.",
5890
+ "user.change_password.mismatch.error": "Les {credentialLower}s ne correspondent pas.",
5891
+ "user.change_password.generic.error": "Une erreur est survenue lors de la mise à jour de votre {credentialLower}. Veuillez réessayer.",
5892
+ "user.change_password.unavailable.heading": "Modification du {credentialLower} indisponible",
5893
+ "user.change_password.unavailable.description": "Veuillez contacter votre administrateur.",
5894
+ "validation.password.pattern": "Correspond au format requis",
5069
5895
  "organization.switcher.switch.organization": "Changer d'organisation",
5070
5896
  "organization.switcher.loading.placeholder.organizations": "Chargement des organisations...",
5071
5897
  "organization.switcher.members": "membres",
@@ -5187,6 +6013,19 @@ const te_IN = {
5187
6013
  "passkey.register.description": "పాస్‌వర్డ్ లేకుండా మీ ఖాతాలోకి సురక్షితంగా సైన్ ఇన్ చేయడానికి Passkey ని సృష్టించండి.",
5188
6014
  "user.profile.heading": "ప్రొఫైల్",
5189
6015
  "user.profile.update.generic.error": "ప్రొఫైల్ అప్‌డేట్ చేస్తూ లోపం వచ్చింది. దయచేసి మళ్లీ ప్రయత్నించండి.",
6016
+ "user.change_password.heading": "{credential} మార్చండి",
6017
+ "user.change_password.new.label": "కొత్త {credential}",
6018
+ "user.change_password.new.placeholder": "మీ కొత్త {credentialLower} నమోదు చేయండి",
6019
+ "user.change_password.confirm.label": "కొత్త {credential} నిర్ధారించండి",
6020
+ "user.change_password.confirm.placeholder": "మీ కొత్త {credentialLower}ని మళ్లీ నమోదు చేయండి",
6021
+ "user.change_password.requirements.heading": "మీ {credentialLower} కింది వాటిని కలిగి ఉండాలి:",
6022
+ "user.change_password.submit": "{credential} నవీకరించండి",
6023
+ "user.change_password.success": "మీ {credentialLower} నవీకరించబడింది.",
6024
+ "user.change_password.mismatch.error": "{credentialLower} సరిపోలలేదు.",
6025
+ "user.change_password.generic.error": "మీ {credentialLower} నవీకరించేటప్పుడు లోపం వచ్చింది. దయచేసి మళ్లీ ప్రయత్నించండి.",
6026
+ "user.change_password.unavailable.heading": "{credential} మార్పులు అందుబాటులో లేవు",
6027
+ "user.change_password.unavailable.description": "దయచేసి మీ నిర్వాహకుడిని సంప్రదించండి.",
6028
+ "validation.password.pattern": "అవసరమైన ఫార్మాట్‌కు సరిపోతుంది",
5190
6029
  "organization.switcher.switch.organization": "ఆర్గనైజేషన్ మార్చండి",
5191
6030
  "organization.switcher.loading.placeholder.organizations": "ఆర్గనైజేషన్‌లు లోడ్ అవుతున్నాయి...",
5192
6031
  "organization.switcher.members": "సభ్యులు",
@@ -5308,6 +6147,19 @@ const hi_IN = {
5308
6147
  "passkey.register.description": "बिना पासवर्ड के अपने खाते में सुरक्षित रूप से साइन इन करने के लिए एक Passkey बनाएं।",
5309
6148
  "user.profile.heading": "प्रोफ़ाइल",
5310
6149
  "user.profile.update.generic.error": "प्रोफ़ाइल अपडेट करते समय त्रुटि हुई। कृपया पुनः प्रयास करें।",
6150
+ "user.change_password.heading": "{credential} बदलें",
6151
+ "user.change_password.new.label": "नया {credential}",
6152
+ "user.change_password.new.placeholder": "अपना नया {credentialLower} दर्ज करें",
6153
+ "user.change_password.confirm.label": "नए {credential} की पुष्टि करें",
6154
+ "user.change_password.confirm.placeholder": "अपना नया {credentialLower} फिर से दर्ज करें",
6155
+ "user.change_password.requirements.heading": "आपके {credentialLower} में यह होना चाहिए:",
6156
+ "user.change_password.submit": "{credential} अपडेट करें",
6157
+ "user.change_password.success": "आपका {credentialLower} अपडेट कर दिया गया है।",
6158
+ "user.change_password.mismatch.error": "{credential} मेल नहीं खाते।",
6159
+ "user.change_password.generic.error": "आपका {credentialLower} अपडेट करते समय त्रुटि हुई। कृपया पुनः प्रयास करें।",
6160
+ "user.change_password.unavailable.heading": "{credential} परिवर्तन उपलब्ध नहीं है",
6161
+ "user.change_password.unavailable.description": "कृपया अपने व्यवस्थापक से संपर्क करें।",
6162
+ "validation.password.pattern": "आवश्यक प्रारूप से मेल खाता है",
5311
6163
  "organization.switcher.switch.organization": "संगठन बदलें",
5312
6164
  "organization.switcher.loading.placeholder.organizations": "संगठन लोड हो रहे हैं...",
5313
6165
  "organization.switcher.members": "सदस्य",
@@ -5429,6 +6281,19 @@ const pt_BR = {
5429
6281
  "passkey.register.description": "Crie uma passkey para entrar em sua conta com segurança sem uma senha.",
5430
6282
  "user.profile.heading": "Perfil",
5431
6283
  "user.profile.update.generic.error": "Ocorreu um erro ao atualizar seu perfil. Tente novamente.",
6284
+ "user.change_password.heading": "Alterar {credential}",
6285
+ "user.change_password.new.label": "Novo {credential}",
6286
+ "user.change_password.new.placeholder": "Digite seu novo {credentialLower}",
6287
+ "user.change_password.confirm.label": "Confirmar novo {credential}",
6288
+ "user.change_password.confirm.placeholder": "Digite novamente seu novo {credentialLower}",
6289
+ "user.change_password.requirements.heading": "Seu {credentialLower} deve conter:",
6290
+ "user.change_password.submit": "Atualizar {credential}",
6291
+ "user.change_password.success": "Seu {credentialLower} foi atualizado.",
6292
+ "user.change_password.mismatch.error": "Os {credentialLower}s não coincidem.",
6293
+ "user.change_password.generic.error": "Ocorreu um erro ao atualizar seu {credentialLower}. Tente novamente.",
6294
+ "user.change_password.unavailable.heading": "Alteração de {credentialLower} indisponível",
6295
+ "user.change_password.unavailable.description": "Entre em contato com o administrador.",
6296
+ "validation.password.pattern": "Corresponde ao formato exigido",
5432
6297
  "organization.switcher.switch.organization": "Trocar Organização",
5433
6298
  "organization.switcher.loading.placeholder.organizations": "Carregando organizações...",
5434
6299
  "organization.switcher.members": "membros",
@@ -5550,6 +6415,19 @@ const pt_PT = {
5550
6415
  "passkey.register.description": "Crie uma passkey para iniciar sessão na sua conta com segurança sem palavra-passe.",
5551
6416
  "user.profile.heading": "Perfil",
5552
6417
  "user.profile.update.generic.error": "Ocorreu um erro ao actualizar o seu perfil. Tente novamente.",
6418
+ "user.change_password.heading": "Alterar {credential}",
6419
+ "user.change_password.new.label": "Novo {credential}",
6420
+ "user.change_password.new.placeholder": "Introduza o seu novo {credentialLower}",
6421
+ "user.change_password.confirm.label": "Confirmar novo {credential}",
6422
+ "user.change_password.confirm.placeholder": "Introduza novamente o seu novo {credentialLower}",
6423
+ "user.change_password.requirements.heading": "O seu {credentialLower} deve conter:",
6424
+ "user.change_password.submit": "Atualizar {credential}",
6425
+ "user.change_password.success": "O seu {credentialLower} foi atualizado.",
6426
+ "user.change_password.mismatch.error": "Os {credentialLower}s não coincidem.",
6427
+ "user.change_password.generic.error": "Ocorreu um erro ao actualizar o seu {credentialLower}. Tente novamente.",
6428
+ "user.change_password.unavailable.heading": "Alteração de {credentialLower} indisponível",
6429
+ "user.change_password.unavailable.description": "Contacte o seu administrador.",
6430
+ "validation.password.pattern": "Corresponde ao formato exigido",
5553
6431
  "organization.switcher.switch.organization": "Trocar Organização",
5554
6432
  "organization.switcher.loading.placeholder.organizations": "A carregar organizações...",
5555
6433
  "organization.switcher.members": "membros",
@@ -5671,6 +6549,19 @@ const ta_IN = {
5671
6549
  "passkey.register.description": "கடவுச்சொல் இல்லாமல் பாதுகாப்பாக உள்நுழைய ஒரு passkey-ஐ உருவாக்கவும்.",
5672
6550
  "user.profile.heading": "சுயவிவரம்",
5673
6551
  "user.profile.update.generic.error": "உங்கள் சுயவிவரத்தை புதுப்பிக்கும் போது பிழை ஏற்பட்டது. மீண்டும் முயற்சிக்கவும்.",
6552
+ "user.change_password.heading": "{credential} மாற்றவும்",
6553
+ "user.change_password.new.label": "புதிய {credential}",
6554
+ "user.change_password.new.placeholder": "உங்கள் புதிய {credentialLower}-ஐ உள்ளிடவும்",
6555
+ "user.change_password.confirm.label": "புதிய {credential}-ஐ உறுதிப்படுத்தவும்",
6556
+ "user.change_password.confirm.placeholder": "உங்கள் புதிய {credentialLower}-ஐ மீண்டும் உள்ளிடவும்",
6557
+ "user.change_password.requirements.heading": "உங்கள் {credentialLower} பின்வருவனவற்றைக் கொண்டிருக்க வேண்டும்:",
6558
+ "user.change_password.submit": "{credential}-ஐ புதுப்பிக்கவும்",
6559
+ "user.change_password.success": "உங்கள் {credentialLower} புதுப்பிக்கப்பட்டது.",
6560
+ "user.change_password.mismatch.error": "{credentialLower} பொருந்தவில்லை.",
6561
+ "user.change_password.generic.error": "உங்கள் {credentialLower}-ஐ புதுப்பிக்கும் போது பிழை ஏற்பட்டது. மீண்டும் முயற்சிக்கவும்.",
6562
+ "user.change_password.unavailable.heading": "{credential} மாற்றங்கள் கிடைக்கவில்லை",
6563
+ "user.change_password.unavailable.description": "உங்கள் நிர்வாகியை தொடர்பு கொள்ளவும்.",
6564
+ "validation.password.pattern": "தேவையான வடிவமைப்பிற்கு பொருந்துகிறது",
5674
6565
  "organization.switcher.switch.organization": "அமைப்பை மாற்று",
5675
6566
  "organization.switcher.loading.placeholder.organizations": "அமைப்புகள் ஏற்றப்படுகின்றன...",
5676
6567
  "organization.switcher.members": "உறுப்பினர்கள்",
@@ -5792,6 +6683,19 @@ const si_LK = {
5792
6683
  "passkey.register.description": "මුරපදයක් නොමැතිව ඔබේ ගිණුමට ආරක්ෂිතව ඇතුල් වීමට passkey එකක් සාදන්න.",
5793
6684
  "user.profile.heading": "පැතිකඩ",
5794
6685
  "user.profile.update.generic.error": "ඔබේ පැතිකඩ යාවත්කාලීන කිරීමේදී දෝෂයක් ඇතිවිය.කරුණාකර නැවත උත්සාහ කරන්න",
6686
+ "user.change_password.heading": "{credential} වෙනස් කරන්න",
6687
+ "user.change_password.new.label": "නව {credential}",
6688
+ "user.change_password.new.placeholder": "ඔබේ නව {credentialLower} ඇතුළත් කරන්න",
6689
+ "user.change_password.confirm.label": "නව {credential} තහවුරු කරන්න",
6690
+ "user.change_password.confirm.placeholder": "ඔබේ නව {credentialLower} නැවත ඇතුළත් කරන්න",
6691
+ "user.change_password.requirements.heading": "ඔබේ {credentialLower} තුළ තිබිය යුතුය:",
6692
+ "user.change_password.submit": "{credential} යාවත්කාලීන කරන්න",
6693
+ "user.change_password.success": "ඔබේ {credentialLower} යාවත්කාලීන කර ඇත.",
6694
+ "user.change_password.mismatch.error": "{credentialLower} නොගැලපේ.",
6695
+ "user.change_password.generic.error": "ඔබේ {credentialLower} යාවත්කාලීන කිරීමේදී දෝෂයක් ඇතිවිය. කරුණාකර නැවත උත්සාහ කරන්න.",
6696
+ "user.change_password.unavailable.heading": "{credential} වෙනස් කිරීම් ලබා ගත නොහැක",
6697
+ "user.change_password.unavailable.description": "කරුණාකර ඔබේ පරිපාලක සම්බන්ධ කර ගන්න.",
6698
+ "validation.password.pattern": "අවශ්‍ය ආකෘතියට ගැලපේ",
5795
6699
  "organization.switcher.switch.organization": "සංවිධානය මාරු කරන්න",
5796
6700
  "organization.switcher.loading.placeholder.organizations": "සංවිධාන ලෝඩ් වෙමින්...",
5797
6701
  "organization.switcher.members": "සාමාජිකයන්",
@@ -5929,4 +6833,4 @@ const normalizeTranslations = (translations) => {
5929
6833
  var normalizeTranslations_default = normalizeTranslations;
5930
6834
 
5931
6835
  //#endregion
5932
- export { ApplicationNativeAuthenticationConstants_default as ApplicationNativeAuthenticationConstants, AuthenticationHelper_default as AuthenticationHelper, ConsentConstants_default as ConsentConstants, DEFAULT_THEME, DEFAULT_VALIDATION_MESSAGE_KEYS, EMOJI_URI_SCHEME, EmbeddedFlowActionVariant, EmbeddedFlowComponentType, EmbeddedFlowEventType, EmbeddedFlowResponseType, EmbeddedFlowTextVariant, EmbeddedFlowType, EmbeddedRecoveryFlowStatus, EmbeddedRecoveryFlowType, EmbeddedSignInFlowStatus, EmbeddedSignInFlowType, EmbeddedSignUpFlowStatus, EmbeddedSignUpFlowType, FieldType, FlowMetaType, FlowMode, HttpClient, IsomorphicCrypto, OIDCRequestConstants_default as OIDCRequestConstants, StorageManager_default as StorageManager, ThunderIDAPIError, ThunderIDAuthException, ThunderIDError, ThunderIDJavaScriptClient_default as ThunderIDJavaScriptClient, ThunderIDRuntimeError, TokenConstants_default as TokenConstants, TranslationBundleConstants_default as TranslationBundleConstants, VendorConstants_default as VendorConstants, arrayBufferToBase64url_default as arrayBufferToBase64url, base64urlToArrayBuffer_default as base64urlToArrayBuffer, bem_default as bem, buildValidatorFromRules_default as buildValidatorFromRules, configure as configureLogger, countryCodeToFlagEmoji, createComponentLogger, createLogger, createPackageComponentLogger, createPackageLogger, createTheme_default as createTheme, debug, deepMerge_default as deepMerge, error, evaluateValidationRule_default as evaluateValidationRule, executeEmbeddedRecoveryFlow_default as executeEmbeddedRecoveryFlow, executeEmbeddedSignInFlow_default as executeEmbeddedSignInFlow, executeEmbeddedSignUpFlow_default as executeEmbeddedSignUpFlow, executeEmbeddedUserOnboardingFlow_default as executeEmbeddedUserOnboardingFlow, extractEmojiFromUri_default as extractEmojiFromUri, extractPkceStorageKeyFromState_default as extractPkceStorageKeyFromState, extractUserClaimsFromIdToken_default as extractUserClaimsFromIdToken, formatDate_default as formatDate, generateFlattenedUserProfile_default as generateFlattenedUserProfile, get_default as get, getBaseLanguage, getDefaultI18nBundles_default as getDefaultI18nBundles, getFlowMeta_default as getFlowMeta, getLatestStateParam_default as getLatestStateParam, getOrganizationUnitChildren_default as getOrganizationUnitChildren, getRedirectBasedSignUpUrl_default as getRedirectBasedSignUpUrl, getUserInfo_default as getUserInfo, getUsersMe_default as getUsersMe, getUsersMeMeta_default as getUsersMeMeta, getVendorPrefix_default as getVendorPrefix, hasUnresolvedTranslationParams, info, isEmojiUri_default as isEmojiUri, isEmpty_default as isEmpty, isRecognizedBaseUrlPattern_default as isRecognizedBaseUrlPattern, logger_default as logger, normalizeLocaleTag, normalizeTranslations_default as normalizeTranslations, processOpenIDScopes_default as processOpenIDScopes, removeTrailingSlash_default as removeTrailingSlash, resolveFieldName_default as resolveFieldName, resolveFlowTemplateLiterals, resolveLocaleDisplayName, resolveLocaleEmoji_default as resolveLocaleEmoji, resolveMeta, resolveResourceEndpoint_default as resolveResourceEndpoint, set_default as set, startCase_default as startCase, substituteTranslationParams_default as substituteTranslationParams, updateMeProfile_default as updateMeProfile, warn, withVendorCSSClassPrefix_default as withVendorCSSClassPrefix };
6836
+ export { AgentQueryKeys_default as AgentQueryKeys, ApplicationNativeAuthenticationConstants_default as ApplicationNativeAuthenticationConstants, ApplicationQueryKeys_default as ApplicationQueryKeys, AuthenticationHelper_default as AuthenticationHelper, ConsentConstants_default as ConsentConstants, CredentialConstants_default as CredentialConstants, DEFAULT_THEME, DEFAULT_VALIDATION_MESSAGE_KEYS, EMOJI_URI_SCHEME, EmbeddedFlowActionVariant, EmbeddedFlowComponentType, EmbeddedFlowEventType, EmbeddedFlowResponseType, EmbeddedFlowTextVariant, EmbeddedFlowType, EmbeddedRecoveryFlowStatus, EmbeddedRecoveryFlowType, EmbeddedSignInFlowStatus, EmbeddedSignInFlowType, EmbeddedSignUpFlowStatus, EmbeddedSignUpFlowType, FieldType, FlowMetaType, FlowMode, HttpClient, InboundAuthTypes, IsomorphicCrypto, OAuth2GrantTypes, OAuth2ResponseTypes, OIDCRequestConstants_default as OIDCRequestConstants, REFRESH_TOKEN_ISSUING_GRANTS, StorageManager_default as StorageManager, ThunderIDAPIError, ThunderIDAuthException, ThunderIDError, ThunderIDJavaScriptClient_default as ThunderIDJavaScriptClient, ThunderIDRuntimeError, TokenConstants_default as TokenConstants, TokenEndpointAuthMethods, TranslationBundleConstants_default as TranslationBundleConstants, UserQueryKeys_default as UserQueryKeys, VendorConstants_default as VendorConstants, arrayBufferToBase64url_default as arrayBufferToBase64url, base64urlToArrayBuffer_default as base64urlToArrayBuffer, bem_default as bem, buildValidatorFromRules_default as buildValidatorFromRules, configure as configureLogger, countryCodeToFlagEmoji, createAgent_default as createAgent, createApplication_default as createApplication, createComponentLogger, createLogger, createPackageComponentLogger, createPackageLogger, createTheme_default as createTheme, createUser_default as createUser, debug, deepMerge_default as deepMerge, deleteAgent_default as deleteAgent, deleteApplication_default as deleteApplication, deleteUser_default as deleteUser, error, evaluateChangePasswordForm_default as evaluateChangePasswordForm, evaluatePasswordPolicy_default as evaluatePasswordPolicy, evaluateValidationRule_default as evaluateValidationRule, executeEmbeddedRecoveryFlow_default as executeEmbeddedRecoveryFlow, executeEmbeddedSignInFlow_default as executeEmbeddedSignInFlow, executeEmbeddedSignUpFlow_default as executeEmbeddedSignUpFlow, executeEmbeddedUserOnboardingFlow_default as executeEmbeddedUserOnboardingFlow, extractEmojiFromUri_default as extractEmojiFromUri, extractPkceStorageKeyFromState_default as extractPkceStorageKeyFromState, extractUserClaimsFromIdToken_default as extractUserClaimsFromIdToken, formatDate_default as formatDate, generateFlattenedUserProfile_default as generateFlattenedUserProfile, get_default as get, getAgent_default as getAgent, getAgents_default as getAgents, getApplication_default as getApplication, getApplications_default as getApplications, getBaseLanguage, getDefaultI18nBundles_default as getDefaultI18nBundles, getFlowMeta_default as getFlowMeta, getLatestStateParam_default as getLatestStateParam, getOrganizationUnitChildren_default as getOrganizationUnitChildren, getRedirectBasedSignUpUrl_default as getRedirectBasedSignUpUrl, getUser_default as getUser, getUserInfo_default as getUserInfo, getUsers_default as getUsers, getUsersMe_default as getUsersMe, getUsersMeMeta_default as getUsersMeMeta, getVendorPrefix_default as getVendorPrefix, hasUnresolvedTranslationParams, info, isEmojiUri_default as isEmojiUri, isEmpty_default as isEmpty, isRecognizedBaseUrlPattern_default as isRecognizedBaseUrlPattern, logger_default as logger, mapCredentialUpdateError_default as mapCredentialUpdateError, normalizeLocaleTag, normalizeTranslations_default as normalizeTranslations, processOpenIDScopes_default as processOpenIDScopes, removeTrailingSlash_default as removeTrailingSlash, resolveChangeCredentialPolicy_default as resolveChangeCredentialPolicy, resolveFieldName_default as resolveFieldName, resolveFlowTemplateLiterals, resolveLocaleDisplayName, resolveLocaleEmoji_default as resolveLocaleEmoji, resolveMeta, resolveResourceEndpoint_default as resolveResourceEndpoint, set_default as set, startCase_default as startCase, substituteTranslationParams_default as substituteTranslationParams, supportsCredential_default as supportsCredential, updateAgent_default as updateAgent, updateApplication_default as updateApplication, updateMeCredentials_default as updateMeCredentials, updateMeProfile_default as updateMeProfile, updateUser_default as updateUser, warn, withVendorCSSClassPrefix_default as withVendorCSSClassPrefix };