@thunderid/javascript 1.0.6 → 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 +3 -3
@@ -1465,6 +1465,73 @@ const getUsersMeMeta = async ({ baseUrl, fetcher, url,...requestConfig }) => {
1465
1465
  };
1466
1466
  var getUsersMeMeta_default = getUsersMeMeta;
1467
1467
 
1468
+ //#endregion
1469
+ //#region src/api/updateMeCredentials.ts
1470
+ /**
1471
+ * Updates one or more of the signed-in user's credentials at the
1472
+ * /users/me/update-credentials endpoint.
1473
+ *
1474
+ * The endpoint responds with `204 No Content` on success, so this function resolves with
1475
+ * `void` rather than a parsed body.
1476
+ *
1477
+ * @param config - Configuration object with URL, payload and optional request config.
1478
+ * @returns A promise that resolves once the credentials have been updated.
1479
+ * @example
1480
+ * ```typescript
1481
+ * // Using default fetch
1482
+ * await updateMeCredentials({
1483
+ * url: "https://localhost:8090/users/me/update-credentials",
1484
+ * payload: {password: "n3wP@ssword!"}
1485
+ * });
1486
+ * ```
1487
+ *
1488
+ * @example
1489
+ * ```typescript
1490
+ * // Using custom fetcher (e.g. an httpClient that attaches the access token)
1491
+ * await updateMeCredentials({
1492
+ * baseUrl: "https://localhost:8090",
1493
+ * payload: {password: "n3wP@ssword!"},
1494
+ * fetcher: async (url, config) => {
1495
+ * const response = await httpClient({url, method: config.method, headers: config.headers, data: config.body});
1496
+ * return {
1497
+ * ok: response.status >= 200 && response.status < 300,
1498
+ * status: response.status,
1499
+ * statusText: response.statusText,
1500
+ * json: () => Promise.resolve(response.data),
1501
+ * text: () => Promise.resolve(typeof response.data === 'string' ? response.data : JSON.stringify(response.data))
1502
+ * } as Response;
1503
+ * }
1504
+ * });
1505
+ * ```
1506
+ */
1507
+ const updateMeCredentials = async ({ url, baseUrl, payload, fetcher,...requestConfig }) => {
1508
+ try {
1509
+ new URL(url ?? baseUrl);
1510
+ } catch (error$1) {
1511
+ 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.");
1512
+ }
1513
+ const fetchFn = fetcher ?? fetch;
1514
+ const resolvedUrl = url ?? `${baseUrl?.replace(/\/$/, "")}/users/me/update-credentials`;
1515
+ const requestInit = {
1516
+ ...requestConfig,
1517
+ method: "POST",
1518
+ body: JSON.stringify({ attributes: payload }),
1519
+ headers: {
1520
+ ...requestConfig.headers,
1521
+ Accept: "application/json",
1522
+ "Content-Type": "application/json"
1523
+ }
1524
+ };
1525
+ try {
1526
+ const response = await fetchFn(resolvedUrl, requestInit);
1527
+ if (!response?.ok) throw new ThunderIDAPIError(await response.text(), "updateMeCredentials-ResponseError-001", "javascript", response.status, response.statusText, "Failed to update user credentials");
1528
+ } catch (error$1) {
1529
+ if (error$1 instanceof ThunderIDAPIError) throw error$1;
1530
+ throw new ThunderIDAPIError(`Network or parsing error: ${error$1 instanceof Error ? error$1.message : "Unknown error"}`, "updateMeCredentials-NetworkError-001", "javascript", 0, "Network Error");
1531
+ }
1532
+ };
1533
+ var updateMeCredentials_default = updateMeCredentials;
1534
+
1468
1535
  //#endregion
1469
1536
  //#region src/api/updateMeProfile.ts
1470
1537
  /**
@@ -1542,6 +1609,456 @@ const updateMeProfile = async ({ url, baseUrl, payload, fetcher,...requestConfig
1542
1609
  };
1543
1610
  var updateMeProfile_default = updateMeProfile;
1544
1611
 
1612
+ //#endregion
1613
+ //#region src/utils/requestManagementResource.ts
1614
+ /**
1615
+ * Performs a request against a management API resource and maps failures onto
1616
+ * {@link ThunderIDAPIError}. HTTP 403 and 404 get their own codes so a caller can tell a missing
1617
+ * permission from a missing resource.
1618
+ *
1619
+ * @returns The parsed JSON body, or `undefined` when the server returns no content.
1620
+ */
1621
+ const requestManagementResource = async ({ baseUrl, url, fetcher,...requestConfig }, { body, collection, failureMessage, id, method, operation, query }) => {
1622
+ try {
1623
+ new URL(url ?? baseUrl);
1624
+ } catch (error$1) {
1625
+ 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.");
1626
+ }
1627
+ if (id?.trim() === "") throw new ThunderIDAPIError("A resource identifier is required.", `${operation}-ValidationError-002`, "javascript", 400, "The provided resource identifier is empty.");
1628
+ const collectionUrl = (url ?? `${baseUrl}/${collection}`).replace(/\/+$/, "");
1629
+ const resourceUrl = id === void 0 ? collectionUrl : `${collectionUrl}/${encodeURIComponent(id)}`;
1630
+ const searchParams = new URLSearchParams();
1631
+ Object.entries(query ?? {}).forEach(([key, value]) => {
1632
+ if (value !== void 0) searchParams.set(key, String(value));
1633
+ });
1634
+ const queryString = searchParams.toString();
1635
+ const resolvedUrl = queryString ? `${resourceUrl}?${queryString}` : resourceUrl;
1636
+ const requestInit = {
1637
+ ...requestConfig,
1638
+ headers: {
1639
+ Accept: "application/json",
1640
+ "Content-Type": "application/json",
1641
+ ...requestConfig.headers
1642
+ },
1643
+ method,
1644
+ ...body !== void 0 ? { body: JSON.stringify(body) } : {}
1645
+ };
1646
+ const fetchFn = fetcher ?? fetch;
1647
+ try {
1648
+ const response = await fetchFn(resolvedUrl, requestInit);
1649
+ if (!response?.ok) {
1650
+ const errorText = await response.text();
1651
+ let reason = "ResponseError";
1652
+ if (response.status === 403) reason = "ForbiddenError";
1653
+ else if (response.status === 404) reason = "NotFoundError";
1654
+ throw new ThunderIDAPIError(errorText, `${operation}-${reason}-001`, "javascript", response.status, response.statusText, failureMessage);
1655
+ }
1656
+ if (response.status === 204 || method === "DELETE") return;
1657
+ return await response.json();
1658
+ } catch (error$1) {
1659
+ if (error$1 instanceof ThunderIDAPIError) throw error$1;
1660
+ throw new ThunderIDAPIError(`Network or parsing error: ${error$1 instanceof Error ? error$1.message : "Unknown error"}`, `${operation}-NetworkError-001`, "javascript", 0, "Network Error");
1661
+ }
1662
+ };
1663
+ var requestManagementResource_default = requestManagementResource;
1664
+
1665
+ //#endregion
1666
+ //#region src/api/applications/getApplications.ts
1667
+ /**
1668
+ * Retrieves a page of applications.
1669
+ *
1670
+ * @param config - Request configuration object.
1671
+ * @returns A promise that resolves with the page of applications.
1672
+ *
1673
+ * @example
1674
+ * ```typescript
1675
+ * const {applications, totalResults} = await getApplications({
1676
+ * baseUrl: 'https://localhost:8090',
1677
+ * limit: 10,
1678
+ * offset: 0,
1679
+ * });
1680
+ * ```
1681
+ */
1682
+ const getApplications = async ({ limit, offset,...config }) => requestManagementResource_default(config, {
1683
+ collection: "applications",
1684
+ failureMessage: "Failed to fetch applications",
1685
+ method: "GET",
1686
+ operation: "getApplications",
1687
+ query: {
1688
+ limit,
1689
+ offset
1690
+ }
1691
+ });
1692
+ var getApplications_default = getApplications;
1693
+
1694
+ //#endregion
1695
+ //#region src/api/applications/getApplication.ts
1696
+ /**
1697
+ * Retrieves a single application.
1698
+ *
1699
+ * @param config - Request configuration object.
1700
+ * @returns A promise that resolves with the application.
1701
+ *
1702
+ * @example
1703
+ * ```typescript
1704
+ * const application = await getApplication({
1705
+ * baseUrl: 'https://localhost:8090',
1706
+ * applicationId: '550e8400-e29b-41d4-a716-446655440000',
1707
+ * });
1708
+ * ```
1709
+ */
1710
+ const getApplication = async ({ applicationId,...config }) => requestManagementResource_default(config, {
1711
+ collection: "applications",
1712
+ failureMessage: "Failed to fetch application",
1713
+ id: applicationId,
1714
+ method: "GET",
1715
+ operation: "getApplication"
1716
+ });
1717
+ var getApplication_default = getApplication;
1718
+
1719
+ //#endregion
1720
+ //#region src/api/applications/createApplication.ts
1721
+ /**
1722
+ * Creates an application.
1723
+ *
1724
+ * @param config - Request configuration object.
1725
+ * @returns A promise that resolves with the application as the server stored it.
1726
+ *
1727
+ * @example
1728
+ * ```typescript
1729
+ * const application = await createApplication({
1730
+ * baseUrl: 'https://localhost:8090',
1731
+ * payload: {name: 'My SPA', url: 'http://localhost:3000'},
1732
+ * });
1733
+ * ```
1734
+ */
1735
+ const createApplication = async ({ payload,...config }) => requestManagementResource_default(config, {
1736
+ body: payload,
1737
+ collection: "applications",
1738
+ failureMessage: "Failed to create application",
1739
+ method: "POST",
1740
+ operation: "createApplication"
1741
+ });
1742
+ var createApplication_default = createApplication;
1743
+
1744
+ //#endregion
1745
+ //#region src/api/applications/updateApplication.ts
1746
+ /**
1747
+ * Updates an application.
1748
+ *
1749
+ * @param config - Request configuration object.
1750
+ * @returns A promise that resolves with the updated application.
1751
+ *
1752
+ * @example
1753
+ * ```typescript
1754
+ * const application = await updateApplication({
1755
+ * baseUrl: 'https://localhost:8090',
1756
+ * applicationId: '550e8400-e29b-41d4-a716-446655440000',
1757
+ * payload: {...existing, name: 'Renamed'},
1758
+ * });
1759
+ * ```
1760
+ */
1761
+ const updateApplication = async ({ applicationId, payload,...config }) => requestManagementResource_default(config, {
1762
+ body: payload,
1763
+ collection: "applications",
1764
+ failureMessage: "Failed to update application",
1765
+ id: applicationId,
1766
+ method: "PUT",
1767
+ operation: "updateApplication"
1768
+ });
1769
+ var updateApplication_default = updateApplication;
1770
+
1771
+ //#endregion
1772
+ //#region src/api/applications/deleteApplication.ts
1773
+ /**
1774
+ * Deletes an application.
1775
+ *
1776
+ * @param config - Request configuration object.
1777
+ * @returns A promise that resolves once the application is deleted.
1778
+ *
1779
+ * @example
1780
+ * ```typescript
1781
+ * await deleteApplication({
1782
+ * baseUrl: 'https://localhost:8090',
1783
+ * applicationId: '550e8400-e29b-41d4-a716-446655440000',
1784
+ * });
1785
+ * ```
1786
+ */
1787
+ const deleteApplication = async ({ applicationId,...config }) => requestManagementResource_default(config, {
1788
+ collection: "applications",
1789
+ failureMessage: "Failed to delete application",
1790
+ id: applicationId,
1791
+ method: "DELETE",
1792
+ operation: "deleteApplication"
1793
+ });
1794
+ var deleteApplication_default = deleteApplication;
1795
+
1796
+ //#endregion
1797
+ //#region src/api/users/getUsers.ts
1798
+ /**
1799
+ * Retrieves a page of users. Each user carries its resolved `display` value.
1800
+ *
1801
+ * @param config - Request configuration object.
1802
+ * @returns A promise that resolves with the page of users.
1803
+ *
1804
+ * @example
1805
+ * ```typescript
1806
+ * const {users, totalResults} = await getUsers({
1807
+ * baseUrl: 'https://localhost:8090',
1808
+ * limit: 10,
1809
+ * filter: 'username eq "alice"',
1810
+ * });
1811
+ * ```
1812
+ */
1813
+ const getUsers = async ({ filter, limit, offset,...config }) => requestManagementResource_default(config, {
1814
+ collection: "users",
1815
+ failureMessage: "Failed to fetch users",
1816
+ method: "GET",
1817
+ operation: "getUsers",
1818
+ query: {
1819
+ filter,
1820
+ include: "display",
1821
+ limit,
1822
+ offset
1823
+ }
1824
+ });
1825
+ var getUsers_default = getUsers;
1826
+
1827
+ //#endregion
1828
+ //#region src/api/users/getUser.ts
1829
+ /**
1830
+ * Retrieves a single user, with its resolved `display` value.
1831
+ *
1832
+ * @param config - Request configuration object.
1833
+ * @returns A promise that resolves with the user.
1834
+ *
1835
+ * @example
1836
+ * ```typescript
1837
+ * const user = await getUser({
1838
+ * baseUrl: 'https://localhost:8090',
1839
+ * userId: '9a475e1e-b0cb-4b29-8df5-2e5b24fb0ed3',
1840
+ * });
1841
+ * ```
1842
+ */
1843
+ const getUser = async ({ userId,...config }) => requestManagementResource_default(config, {
1844
+ collection: "users",
1845
+ failureMessage: "Failed to fetch user",
1846
+ id: userId,
1847
+ method: "GET",
1848
+ operation: "getUser",
1849
+ query: { include: "display" }
1850
+ });
1851
+ var getUser_default = getUser;
1852
+
1853
+ //#endregion
1854
+ //#region src/api/users/createUser.ts
1855
+ /**
1856
+ * Creates a user.
1857
+ *
1858
+ * @param config - Request configuration object.
1859
+ * @returns A promise that resolves with the user as the server stored it.
1860
+ *
1861
+ * @example
1862
+ * ```typescript
1863
+ * const user = await createUser({
1864
+ * baseUrl: 'https://localhost:8090',
1865
+ * payload: {ouId, type: 'customer', attributes: {username: 'alice'}},
1866
+ * });
1867
+ * ```
1868
+ */
1869
+ const createUser = async ({ payload,...config }) => requestManagementResource_default(config, {
1870
+ body: payload,
1871
+ collection: "users",
1872
+ failureMessage: "Failed to create user",
1873
+ method: "POST",
1874
+ operation: "createUser"
1875
+ });
1876
+ var createUser_default = createUser;
1877
+
1878
+ //#endregion
1879
+ //#region src/api/users/updateUser.ts
1880
+ /**
1881
+ * Updates a user.
1882
+ *
1883
+ * @param config - Request configuration object.
1884
+ * @returns A promise that resolves with the updated user.
1885
+ *
1886
+ * @example
1887
+ * ```typescript
1888
+ * const user = await updateUser({
1889
+ * baseUrl: 'https://localhost:8090',
1890
+ * userId: '9a475e1e-b0cb-4b29-8df5-2e5b24fb0ed3',
1891
+ * payload: {attributes: {givenName: 'Alice'}},
1892
+ * });
1893
+ * ```
1894
+ */
1895
+ const updateUser = async ({ userId, payload,...config }) => requestManagementResource_default(config, {
1896
+ body: payload,
1897
+ collection: "users",
1898
+ failureMessage: "Failed to update user",
1899
+ id: userId,
1900
+ method: "PUT",
1901
+ operation: "updateUser"
1902
+ });
1903
+ var updateUser_default = updateUser;
1904
+
1905
+ //#endregion
1906
+ //#region src/api/users/deleteUser.ts
1907
+ /**
1908
+ * Deletes a user.
1909
+ *
1910
+ * @param config - Request configuration object.
1911
+ * @returns A promise that resolves once the user is deleted.
1912
+ *
1913
+ * @example
1914
+ * ```typescript
1915
+ * await deleteUser({
1916
+ * baseUrl: 'https://localhost:8090',
1917
+ * userId: '9a475e1e-b0cb-4b29-8df5-2e5b24fb0ed3',
1918
+ * });
1919
+ * ```
1920
+ */
1921
+ const deleteUser = async ({ userId,...config }) => requestManagementResource_default(config, {
1922
+ collection: "users",
1923
+ failureMessage: "Failed to delete user",
1924
+ id: userId,
1925
+ method: "DELETE",
1926
+ operation: "deleteUser"
1927
+ });
1928
+ var deleteUser_default = deleteUser;
1929
+
1930
+ //#endregion
1931
+ //#region src/api/agents/getAgents.ts
1932
+ /**
1933
+ * Retrieves a page of agents.
1934
+ *
1935
+ * @param config - Request configuration object.
1936
+ * @returns A promise that resolves with the page of agents.
1937
+ *
1938
+ * @example
1939
+ * ```typescript
1940
+ * const {agents, totalResults} = await getAgents({
1941
+ * baseUrl: 'https://localhost:8090',
1942
+ * limit: 10,
1943
+ * });
1944
+ * ```
1945
+ */
1946
+ const getAgents = async ({ limit, offset,...config }) => requestManagementResource_default(config, {
1947
+ collection: "agents",
1948
+ failureMessage: "Failed to fetch agents",
1949
+ method: "GET",
1950
+ operation: "getAgents",
1951
+ query: {
1952
+ include: "display",
1953
+ limit,
1954
+ offset
1955
+ }
1956
+ });
1957
+ var getAgents_default = getAgents;
1958
+
1959
+ //#endregion
1960
+ //#region src/api/agents/getAgent.ts
1961
+ /**
1962
+ * Retrieves a single agent.
1963
+ *
1964
+ * @param config - Request configuration object.
1965
+ * @returns A promise that resolves with the agent.
1966
+ *
1967
+ * @example
1968
+ * ```typescript
1969
+ * const agent = await getAgent({
1970
+ * baseUrl: 'https://localhost:8090',
1971
+ * agentId: '6f1e2d3c-4b5a-4978-8a6b-5c4d3e2f1a0b',
1972
+ * });
1973
+ * ```
1974
+ */
1975
+ const getAgent = async ({ agentId,...config }) => requestManagementResource_default(config, {
1976
+ collection: "agents",
1977
+ failureMessage: "Failed to fetch agent",
1978
+ id: agentId,
1979
+ method: "GET",
1980
+ operation: "getAgent",
1981
+ query: { include: "display" }
1982
+ });
1983
+ var getAgent_default = getAgent;
1984
+
1985
+ //#endregion
1986
+ //#region src/api/agents/createAgent.ts
1987
+ /**
1988
+ * Creates an agent.
1989
+ *
1990
+ * @param config - Request configuration object.
1991
+ * @returns A promise that resolves with the agent as the server stored it.
1992
+ *
1993
+ * @example
1994
+ * ```typescript
1995
+ * const agent = await createAgent({
1996
+ * baseUrl: 'https://localhost:8090',
1997
+ * payload: {ouId, type: 'default', name: 'Nightly Sync Worker'},
1998
+ * });
1999
+ * ```
2000
+ */
2001
+ const createAgent = async ({ payload,...config }) => requestManagementResource_default(config, {
2002
+ body: payload,
2003
+ collection: "agents",
2004
+ failureMessage: "Failed to create agent",
2005
+ method: "POST",
2006
+ operation: "createAgent"
2007
+ });
2008
+ var createAgent_default = createAgent;
2009
+
2010
+ //#endregion
2011
+ //#region src/api/agents/updateAgent.ts
2012
+ /**
2013
+ * Updates an agent.
2014
+ *
2015
+ * @param config - Request configuration object.
2016
+ * @returns A promise that resolves with the updated agent.
2017
+ *
2018
+ * @example
2019
+ * ```typescript
2020
+ * const agent = await updateAgent({
2021
+ * baseUrl: 'https://localhost:8090',
2022
+ * agentId: '6f1e2d3c-4b5a-4978-8a6b-5c4d3e2f1a0b',
2023
+ * payload: {name: 'Renamed Agent'},
2024
+ * });
2025
+ * ```
2026
+ */
2027
+ const updateAgent = async ({ agentId, payload,...config }) => requestManagementResource_default(config, {
2028
+ body: payload,
2029
+ collection: "agents",
2030
+ failureMessage: "Failed to update agent",
2031
+ id: agentId,
2032
+ method: "PUT",
2033
+ operation: "updateAgent"
2034
+ });
2035
+ var updateAgent_default = updateAgent;
2036
+
2037
+ //#endregion
2038
+ //#region src/api/agents/deleteAgent.ts
2039
+ /**
2040
+ * Deletes an agent.
2041
+ *
2042
+ * @param config - Request configuration object.
2043
+ * @returns A promise that resolves once the agent is deleted.
2044
+ *
2045
+ * @example
2046
+ * ```typescript
2047
+ * await deleteAgent({
2048
+ * baseUrl: 'https://localhost:8090',
2049
+ * agentId: '6f1e2d3c-4b5a-4978-8a6b-5c4d3e2f1a0b',
2050
+ * });
2051
+ * ```
2052
+ */
2053
+ const deleteAgent = async ({ agentId,...config }) => requestManagementResource_default(config, {
2054
+ collection: "agents",
2055
+ failureMessage: "Failed to delete agent",
2056
+ id: agentId,
2057
+ method: "DELETE",
2058
+ operation: "deleteAgent"
2059
+ });
2060
+ var deleteAgent_default = deleteAgent;
2061
+
1545
2062
  //#endregion
1546
2063
  //#region src/constants/ApplicationNativeAuthenticationConstants.ts
1547
2064
  /**
@@ -1625,6 +2142,28 @@ var OIDCRequestConstants_default = OIDCRequestConstants;
1625
2142
  const VendorConstants = { VENDOR_PREFIX: "thunderid" };
1626
2143
  var VendorConstants_default = VendorConstants;
1627
2144
 
2145
+ //#endregion
2146
+ //#region src/constants/CredentialConstants.ts
2147
+ /**
2148
+ * Constants for the credential types the server accepts on the self-service
2149
+ * credential write path.
2150
+ *
2151
+ * The server keys credentials by type. `password` is the one every user type schema
2152
+ * declares by default, hence a named constant for it; any other schema-declared
2153
+ * `credential: true` attribute (for example `pin`) can be self-managed too, just by its
2154
+ * own attribute name rather than a constant here.
2155
+ *
2156
+ * @example
2157
+ * ```typescript
2158
+ * await updateMeCredentials({
2159
+ * payload: {[CredentialConstants.PASSWORD]: newPassword},
2160
+ * url,
2161
+ * });
2162
+ * ```
2163
+ */
2164
+ const CredentialConstants = { PASSWORD: "password" };
2165
+ var CredentialConstants_default = CredentialConstants;
2166
+
1628
2167
  //#endregion
1629
2168
  //#region src/constants/ConsentConstants.ts
1630
2169
  /**
@@ -1649,6 +2188,42 @@ const ConsentConstants = {
1649
2188
  };
1650
2189
  var ConsentConstants_default = ConsentConstants;
1651
2190
 
2191
+ //#endregion
2192
+ //#region src/constants/ApplicationQueryKeys.ts
2193
+ /**
2194
+ * Cache keys for application resources. The SDK's reactive wrappers use them to refetch after a
2195
+ * mutation, and an application can reuse them as keys in its own data fetching cache.
2196
+ */
2197
+ const ApplicationQueryKeys = {
2198
+ APPLICATION: "application",
2199
+ APPLICATIONS: "applications"
2200
+ };
2201
+ var ApplicationQueryKeys_default = ApplicationQueryKeys;
2202
+
2203
+ //#endregion
2204
+ //#region src/constants/UserQueryKeys.ts
2205
+ /**
2206
+ * Cache keys for user resources. The SDK's reactive wrappers use them to refetch after a mutation,
2207
+ * and an application can reuse them as keys in its own data fetching cache.
2208
+ */
2209
+ const UserQueryKeys = {
2210
+ USER: "user",
2211
+ USERS: "users"
2212
+ };
2213
+ var UserQueryKeys_default = UserQueryKeys;
2214
+
2215
+ //#endregion
2216
+ //#region src/constants/AgentQueryKeys.ts
2217
+ /**
2218
+ * Cache keys for agent resources. The SDK's reactive wrappers use them to refetch after a mutation,
2219
+ * and an application can reuse them as keys in its own data fetching cache.
2220
+ */
2221
+ const AgentQueryKeys = {
2222
+ AGENT: "agent",
2223
+ AGENTS: "agents"
2224
+ };
2225
+ var AgentQueryKeys_default = AgentQueryKeys;
2226
+
1652
2227
  //#endregion
1653
2228
  //#region src/errors/ThunderIDRuntimeError.ts
1654
2229
  /**
@@ -1775,6 +2350,51 @@ let FlowMode = /* @__PURE__ */ function(FlowMode$1) {
1775
2350
  return FlowMode$1;
1776
2351
  }({});
1777
2352
 
2353
+ //#endregion
2354
+ //#region src/models/application.ts
2355
+ /**
2356
+ * OAuth 2.0 grant type values.
2357
+ */
2358
+ const OAuth2GrantTypes = {
2359
+ AUTHORIZATION_CODE: "authorization_code",
2360
+ CIBA: "urn:openid:params:grant-type:ciba",
2361
+ CLIENT_CREDENTIALS: "client_credentials",
2362
+ IMPLICIT: "implicit",
2363
+ JWT_BEARER: "urn:ietf:params:oauth:grant-type:jwt-bearer",
2364
+ PASSWORD: "password",
2365
+ REFRESH_TOKEN: "refresh_token",
2366
+ TOKEN_EXCHANGE: "urn:ietf:params:oauth:grant-type:token-exchange"
2367
+ };
2368
+ /**
2369
+ * Grant types that can issue a refresh token.
2370
+ */
2371
+ const REFRESH_TOKEN_ISSUING_GRANTS = [OAuth2GrantTypes.AUTHORIZATION_CODE, OAuth2GrantTypes.CIBA];
2372
+ /**
2373
+ * OAuth 2.0 response type values.
2374
+ */
2375
+ const OAuth2ResponseTypes = {
2376
+ CODE: "code",
2377
+ CODE_ID_TOKEN: "code id_token",
2378
+ CODE_TOKEN: "code token",
2379
+ ID_TOKEN: "id_token",
2380
+ TOKEN: "token",
2381
+ TOKEN_ID_TOKEN: "token id_token"
2382
+ };
2383
+ /**
2384
+ * Token endpoint authentication methods an application can be configured with.
2385
+ */
2386
+ const TokenEndpointAuthMethods = {
2387
+ CLIENT_SECRET_BASIC: "client_secret_basic",
2388
+ CLIENT_SECRET_JWT: "client_secret_jwt",
2389
+ CLIENT_SECRET_POST: "client_secret_post",
2390
+ NONE: "none",
2391
+ PRIVATE_KEY_JWT: "private_key_jwt"
2392
+ };
2393
+ /**
2394
+ * Inbound authentication protocol values.
2395
+ */
2396
+ const InboundAuthTypes = { OAUTH2: "oauth2" };
2397
+
1778
2398
  //#endregion
1779
2399
  //#region src/models/field.ts
1780
2400
  let FieldType = /* @__PURE__ */ function(FieldType$1) {
@@ -2300,9 +2920,13 @@ var processOpenIDScopes_default = processOpenIDScopes;
2300
2920
  * endpoints. Used to keep these overrides out of the resolved OIDC provider metadata.
2301
2921
  */
2302
2922
  const RESOURCE_ENDPOINT_KEYS = [
2923
+ "agents",
2924
+ "applications",
2303
2925
  "flowExecute",
2304
2926
  "flowMeta",
2927
+ "users",
2305
2928
  "usersMe",
2929
+ "usersMeCredentials",
2306
2930
  "usersMeMeta"
2307
2931
  ];
2308
2932
  /**
@@ -4332,6 +4956,182 @@ const resolveFieldName = (field) => {
4332
4956
  };
4333
4957
  var resolveFieldName_default = resolveFieldName;
4334
4958
 
4959
+ //#endregion
4960
+ //#region src/utils/evaluatePasswordPolicy.ts
4961
+ /**
4962
+ * Evaluates a password against a policy, returning one result when the policy configures
4963
+ * a `regex` and none otherwise.
4964
+ *
4965
+ * An uncompilable `regex` is treated as passing, matching `evaluateValidationRule`:
4966
+ * the SDK stays lenient so a misconfigured schema cannot lock a user out of their own
4967
+ * password change.
4968
+ *
4969
+ * @param value - The candidate password.
4970
+ * @param policy - The rule to apply.
4971
+ * @returns A single-item list when `policy.regex` is set, otherwise an empty list.
4972
+ * @example
4973
+ * ```typescript
4974
+ * const results = evaluatePasswordPolicy('sh0rt', {regex: '^.{8,}$'});
4975
+ * const isValid = results.every(result => result.passed);
4976
+ * ```
4977
+ */
4978
+ const evaluatePasswordPolicy = (value, policy) => {
4979
+ if (!policy.regex) return [];
4980
+ let matches = true;
4981
+ try {
4982
+ matches = new RegExp(policy.regex).test(value);
4983
+ } catch {
4984
+ matches = true;
4985
+ }
4986
+ return [{
4987
+ key: "regex",
4988
+ messageKey: "validation.password.pattern",
4989
+ passed: matches
4990
+ }];
4991
+ };
4992
+ var evaluatePasswordPolicy_default = evaluatePasswordPolicy;
4993
+
4994
+ //#endregion
4995
+ //#region src/utils/evaluateChangePasswordForm.ts
4996
+ /**
4997
+ * Evaluates a change-password form against a policy.
4998
+ *
4999
+ * Every predicate a change-password UI needs is derived here so the React and Vue
5000
+ * components stay pure rendering concerns and cannot drift apart on what counts as a
5001
+ * submittable form.
5002
+ *
5003
+ * @param values - The current field values.
5004
+ * @param policy - The rules the new password must satisfy.
5005
+ * @returns The derived flags plus the per-rule results.
5006
+ * @example
5007
+ * ```typescript
5008
+ * const {isValid, ruleResults} = evaluateChangePasswordForm(
5009
+ * {confirmPassword, newPassword},
5010
+ * {regex: '^.{12,}$'},
5011
+ * );
5012
+ * const canSubmit = !loading && isValid;
5013
+ * ```
5014
+ */
5015
+ const evaluateChangePasswordForm = (values, policy) => {
5016
+ const { confirmPassword, newPassword } = values;
5017
+ const ruleResults = evaluatePasswordPolicy_default(newPassword, policy);
5018
+ const meetsPolicy = ruleResults.every((rule) => rule.passed);
5019
+ const confirmMatches = newPassword === confirmPassword;
5020
+ return {
5021
+ confirmMatches,
5022
+ isValid: newPassword !== "" && confirmPassword !== "" && meetsPolicy && confirmMatches,
5023
+ meetsPolicy,
5024
+ ruleResults
5025
+ };
5026
+ };
5027
+ var evaluateChangePasswordForm_default = evaluateChangePasswordForm;
5028
+
5029
+ //#endregion
5030
+ //#region src/utils/resolveChangeCredentialPolicy.ts
5031
+ /**
5032
+ * Resolves the rules a change-credential form should enforce for the given credential.
5033
+ *
5034
+ * The organization's own policy, expressed as the credential attribute's `regex` in
5035
+ * `GET /users/me/meta`, is the sole source of truth: the SDK does not layer its own
5036
+ * character-class or length rules on top, since doing so could reject a value the
5037
+ * organization's policy accepts. When the schema carries no regex for this credential,
5038
+ * there is no policy to check client-side and the requirement checklist is simply empty.
5039
+ *
5040
+ * @param userSchema - The user type schema resolved by the provider, keyed by attribute.
5041
+ * @param attribute - The credential attribute this form manages (e.g. `password`, `pin`).
5042
+ * @param override - An explicit policy supplied by the caller, which wins outright.
5043
+ * @returns The policy to hand to {@link evaluatePasswordPolicy}.
5044
+ * @example
5045
+ * ```typescript
5046
+ * const policy = resolveChangeCredentialPolicy(userSchema, 'pin', undefined);
5047
+ * const results = evaluatePasswordPolicy(candidate, policy);
5048
+ * ```
5049
+ */
5050
+ const resolveChangeCredentialPolicy = (userSchema, attribute, override) => {
5051
+ if (override) return override;
5052
+ const schemaRegex = userSchema?.[attribute]?.regex;
5053
+ return schemaRegex ? { regex: schemaRegex } : {};
5054
+ };
5055
+ var resolveChangeCredentialPolicy_default = resolveChangeCredentialPolicy;
5056
+
5057
+ //#endregion
5058
+ //#region src/utils/supportsCredential.ts
5059
+ /**
5060
+ * Whether the signed-in user's type allows them to set the given credential for themselves.
5061
+ *
5062
+ * The user type schema from `GET /users/me/meta` is the only thing a client can check before
5063
+ * rendering. It says whether the credential is declared on this type at all, which is a property
5064
+ * of the type rather than of the account, so it cannot say whether this particular user has one
5065
+ * stored today. That second question is the server's to answer.
5066
+ *
5067
+ * Without this check the form would submit into a guaranteed failure. `POST
5068
+ * /users/me/update-credentials` rejects a write for a name not declared on the type, since the
5069
+ * entity layer only accepts schema-declared credential keys.
5070
+ *
5071
+ * An absent schema means the answer is not known yet, either because the profile is still loading
5072
+ * or because the consuming app never supplied one. Both resolve to `true` so a change-credential
5073
+ * affordance is never hidden on missing information alone, and so apps that do not wire up
5074
+ * `userSchema` keep the behaviour they had before this check existed.
5075
+ *
5076
+ * @param userSchema - The user type schema resolved by the provider, keyed by attribute.
5077
+ * @param attribute - The credential attribute to check (e.g. `password`, `pin`).
5078
+ * @returns `false` only when the schema is known and either defines no attribute named
5079
+ * `attribute` or defines one that isn't marked `credential: true`.
5080
+ * @example
5081
+ * ```typescript
5082
+ * if (!supportsCredential(userSchema, 'pin')) {
5083
+ * return null;
5084
+ * }
5085
+ * ```
5086
+ */
5087
+ const supportsCredential = (userSchema, attribute) => {
5088
+ if (!userSchema) return true;
5089
+ return userSchema[attribute]?.credential === true;
5090
+ };
5091
+ var supportsCredential_default = supportsCredential;
5092
+
5093
+ //#endregion
5094
+ //#region src/utils/mapCredentialUpdateError.ts
5095
+ /**
5096
+ * Maps a failure from the credential write path onto the field that caused it.
5097
+ *
5098
+ * `400` is the new password failing a server-side check. Everything else, including a
5099
+ * `403`, has no single field to blame here: this form collects no current-value field for
5100
+ * a `403` to attach to, since the server does not verify one on this path today.
5101
+ *
5102
+ * @param error - The value thrown by the credential update call.
5103
+ * @returns Where to show the failure and what to show.
5104
+ * @example
5105
+ * ```typescript
5106
+ * const {field, message, messageKey} = mapCredentialUpdateError(caughtError);
5107
+ * const text = message ?? t(messageKey);
5108
+ *
5109
+ * if (field) {
5110
+ * setFieldErrors({[field]: text});
5111
+ * } else {
5112
+ * setError(text);
5113
+ * }
5114
+ * ```
5115
+ */
5116
+ const GENERIC_MESSAGE_KEY = "user.change_password.generic.error";
5117
+ const mapCredentialUpdateError = (error$1) => {
5118
+ if ((error$1 instanceof ThunderIDAPIError ? error$1.statusCode : void 0) === 400 && error$1 instanceof ThunderIDError) return {
5119
+ field: "newPassword",
5120
+ message: error$1.message,
5121
+ messageKey: GENERIC_MESSAGE_KEY
5122
+ };
5123
+ if (error$1 instanceof ThunderIDError) return {
5124
+ field: null,
5125
+ message: error$1.message,
5126
+ messageKey: GENERIC_MESSAGE_KEY
5127
+ };
5128
+ return {
5129
+ field: null,
5130
+ messageKey: GENERIC_MESSAGE_KEY
5131
+ };
5132
+ };
5133
+ var mapCredentialUpdateError_default = mapCredentialUpdateError;
5134
+
4335
5135
  //#endregion
4336
5136
  //#region src/utils/resolveMeta.ts
4337
5137
  /**
@@ -4965,6 +5765,19 @@ const en_US = {
4965
5765
  "passkey.register.description": "Create a passkey to securely sign in to your account without a password.",
4966
5766
  "user.profile.heading": "Profile",
4967
5767
  "user.profile.update.generic.error": "An error occurred while updating your profile. Please try again.",
5768
+ "user.change_password.heading": "Change {credential}",
5769
+ "user.change_password.new.label": "New {credential}",
5770
+ "user.change_password.new.placeholder": "Enter your new {credentialLower}",
5771
+ "user.change_password.confirm.label": "Confirm New {credential}",
5772
+ "user.change_password.confirm.placeholder": "Re-enter your new {credentialLower}",
5773
+ "user.change_password.requirements.heading": "Your {credentialLower} must have:",
5774
+ "user.change_password.submit": "Update {credential}",
5775
+ "user.change_password.success": "Your {credentialLower} has been updated.",
5776
+ "user.change_password.mismatch.error": "{credential}s do not match.",
5777
+ "user.change_password.generic.error": "An error occurred while updating your {credentialLower}. Please try again.",
5778
+ "user.change_password.unavailable.heading": "{credential} changes unavailable",
5779
+ "user.change_password.unavailable.description": "Please contact your administrator.",
5780
+ "validation.password.pattern": "Matches the required format",
4968
5781
  "organization.switcher.switch.organization": "Switch Organization",
4969
5782
  "organization.switcher.loading.placeholder.organizations": "Loading organizations...",
4970
5783
  "organization.switcher.members": "members",
@@ -5086,6 +5899,19 @@ const fr_FR = {
5086
5899
  "passkey.register.description": "Créez une clé d'accès pour vous connecter en toute sécurité à votre compte sans mot de passe.",
5087
5900
  "user.profile.heading": "Profil",
5088
5901
  "user.profile.update.generic.error": "Une erreur est survenue lors de la mise à jour de votre profil. Veuillez réessayer.",
5902
+ "user.change_password.heading": "Modifier {credential}",
5903
+ "user.change_password.new.label": "Nouveau {credential}",
5904
+ "user.change_password.new.placeholder": "Entrez votre nouveau {credentialLower}",
5905
+ "user.change_password.confirm.label": "Confirmer le nouveau {credential}",
5906
+ "user.change_password.confirm.placeholder": "Saisissez à nouveau votre nouveau {credentialLower}",
5907
+ "user.change_password.requirements.heading": "Votre {credentialLower} doit contenir :",
5908
+ "user.change_password.submit": "Mettre à jour {credential}",
5909
+ "user.change_password.success": "Votre {credentialLower} a été mis à jour.",
5910
+ "user.change_password.mismatch.error": "Les {credentialLower}s ne correspondent pas.",
5911
+ "user.change_password.generic.error": "Une erreur est survenue lors de la mise à jour de votre {credentialLower}. Veuillez réessayer.",
5912
+ "user.change_password.unavailable.heading": "Modification du {credentialLower} indisponible",
5913
+ "user.change_password.unavailable.description": "Veuillez contacter votre administrateur.",
5914
+ "validation.password.pattern": "Correspond au format requis",
5089
5915
  "organization.switcher.switch.organization": "Changer d'organisation",
5090
5916
  "organization.switcher.loading.placeholder.organizations": "Chargement des organisations...",
5091
5917
  "organization.switcher.members": "membres",
@@ -5207,6 +6033,19 @@ const te_IN = {
5207
6033
  "passkey.register.description": "పాస్‌వర్డ్ లేకుండా మీ ఖాతాలోకి సురక్షితంగా సైన్ ఇన్ చేయడానికి Passkey ని సృష్టించండి.",
5208
6034
  "user.profile.heading": "ప్రొఫైల్",
5209
6035
  "user.profile.update.generic.error": "ప్రొఫైల్ అప్‌డేట్ చేస్తూ లోపం వచ్చింది. దయచేసి మళ్లీ ప్రయత్నించండి.",
6036
+ "user.change_password.heading": "{credential} మార్చండి",
6037
+ "user.change_password.new.label": "కొత్త {credential}",
6038
+ "user.change_password.new.placeholder": "మీ కొత్త {credentialLower} నమోదు చేయండి",
6039
+ "user.change_password.confirm.label": "కొత్త {credential} నిర్ధారించండి",
6040
+ "user.change_password.confirm.placeholder": "మీ కొత్త {credentialLower}ని మళ్లీ నమోదు చేయండి",
6041
+ "user.change_password.requirements.heading": "మీ {credentialLower} కింది వాటిని కలిగి ఉండాలి:",
6042
+ "user.change_password.submit": "{credential} నవీకరించండి",
6043
+ "user.change_password.success": "మీ {credentialLower} నవీకరించబడింది.",
6044
+ "user.change_password.mismatch.error": "{credentialLower} సరిపోలలేదు.",
6045
+ "user.change_password.generic.error": "మీ {credentialLower} నవీకరించేటప్పుడు లోపం వచ్చింది. దయచేసి మళ్లీ ప్రయత్నించండి.",
6046
+ "user.change_password.unavailable.heading": "{credential} మార్పులు అందుబాటులో లేవు",
6047
+ "user.change_password.unavailable.description": "దయచేసి మీ నిర్వాహకుడిని సంప్రదించండి.",
6048
+ "validation.password.pattern": "అవసరమైన ఫార్మాట్‌కు సరిపోతుంది",
5210
6049
  "organization.switcher.switch.organization": "ఆర్గనైజేషన్ మార్చండి",
5211
6050
  "organization.switcher.loading.placeholder.organizations": "ఆర్గనైజేషన్‌లు లోడ్ అవుతున్నాయి...",
5212
6051
  "organization.switcher.members": "సభ్యులు",
@@ -5328,6 +6167,19 @@ const hi_IN = {
5328
6167
  "passkey.register.description": "बिना पासवर्ड के अपने खाते में सुरक्षित रूप से साइन इन करने के लिए एक Passkey बनाएं।",
5329
6168
  "user.profile.heading": "प्रोफ़ाइल",
5330
6169
  "user.profile.update.generic.error": "प्रोफ़ाइल अपडेट करते समय त्रुटि हुई। कृपया पुनः प्रयास करें।",
6170
+ "user.change_password.heading": "{credential} बदलें",
6171
+ "user.change_password.new.label": "नया {credential}",
6172
+ "user.change_password.new.placeholder": "अपना नया {credentialLower} दर्ज करें",
6173
+ "user.change_password.confirm.label": "नए {credential} की पुष्टि करें",
6174
+ "user.change_password.confirm.placeholder": "अपना नया {credentialLower} फिर से दर्ज करें",
6175
+ "user.change_password.requirements.heading": "आपके {credentialLower} में यह होना चाहिए:",
6176
+ "user.change_password.submit": "{credential} अपडेट करें",
6177
+ "user.change_password.success": "आपका {credentialLower} अपडेट कर दिया गया है।",
6178
+ "user.change_password.mismatch.error": "{credential} मेल नहीं खाते।",
6179
+ "user.change_password.generic.error": "आपका {credentialLower} अपडेट करते समय त्रुटि हुई। कृपया पुनः प्रयास करें।",
6180
+ "user.change_password.unavailable.heading": "{credential} परिवर्तन उपलब्ध नहीं है",
6181
+ "user.change_password.unavailable.description": "कृपया अपने व्यवस्थापक से संपर्क करें।",
6182
+ "validation.password.pattern": "आवश्यक प्रारूप से मेल खाता है",
5331
6183
  "organization.switcher.switch.organization": "संगठन बदलें",
5332
6184
  "organization.switcher.loading.placeholder.organizations": "संगठन लोड हो रहे हैं...",
5333
6185
  "organization.switcher.members": "सदस्य",
@@ -5449,6 +6301,19 @@ const pt_BR = {
5449
6301
  "passkey.register.description": "Crie uma passkey para entrar em sua conta com segurança sem uma senha.",
5450
6302
  "user.profile.heading": "Perfil",
5451
6303
  "user.profile.update.generic.error": "Ocorreu um erro ao atualizar seu perfil. Tente novamente.",
6304
+ "user.change_password.heading": "Alterar {credential}",
6305
+ "user.change_password.new.label": "Novo {credential}",
6306
+ "user.change_password.new.placeholder": "Digite seu novo {credentialLower}",
6307
+ "user.change_password.confirm.label": "Confirmar novo {credential}",
6308
+ "user.change_password.confirm.placeholder": "Digite novamente seu novo {credentialLower}",
6309
+ "user.change_password.requirements.heading": "Seu {credentialLower} deve conter:",
6310
+ "user.change_password.submit": "Atualizar {credential}",
6311
+ "user.change_password.success": "Seu {credentialLower} foi atualizado.",
6312
+ "user.change_password.mismatch.error": "Os {credentialLower}s não coincidem.",
6313
+ "user.change_password.generic.error": "Ocorreu um erro ao atualizar seu {credentialLower}. Tente novamente.",
6314
+ "user.change_password.unavailable.heading": "Alteração de {credentialLower} indisponível",
6315
+ "user.change_password.unavailable.description": "Entre em contato com o administrador.",
6316
+ "validation.password.pattern": "Corresponde ao formato exigido",
5452
6317
  "organization.switcher.switch.organization": "Trocar Organização",
5453
6318
  "organization.switcher.loading.placeholder.organizations": "Carregando organizações...",
5454
6319
  "organization.switcher.members": "membros",
@@ -5570,6 +6435,19 @@ const pt_PT = {
5570
6435
  "passkey.register.description": "Crie uma passkey para iniciar sessão na sua conta com segurança sem palavra-passe.",
5571
6436
  "user.profile.heading": "Perfil",
5572
6437
  "user.profile.update.generic.error": "Ocorreu um erro ao actualizar o seu perfil. Tente novamente.",
6438
+ "user.change_password.heading": "Alterar {credential}",
6439
+ "user.change_password.new.label": "Novo {credential}",
6440
+ "user.change_password.new.placeholder": "Introduza o seu novo {credentialLower}",
6441
+ "user.change_password.confirm.label": "Confirmar novo {credential}",
6442
+ "user.change_password.confirm.placeholder": "Introduza novamente o seu novo {credentialLower}",
6443
+ "user.change_password.requirements.heading": "O seu {credentialLower} deve conter:",
6444
+ "user.change_password.submit": "Atualizar {credential}",
6445
+ "user.change_password.success": "O seu {credentialLower} foi atualizado.",
6446
+ "user.change_password.mismatch.error": "Os {credentialLower}s não coincidem.",
6447
+ "user.change_password.generic.error": "Ocorreu um erro ao actualizar o seu {credentialLower}. Tente novamente.",
6448
+ "user.change_password.unavailable.heading": "Alteração de {credentialLower} indisponível",
6449
+ "user.change_password.unavailable.description": "Contacte o seu administrador.",
6450
+ "validation.password.pattern": "Corresponde ao formato exigido",
5573
6451
  "organization.switcher.switch.organization": "Trocar Organização",
5574
6452
  "organization.switcher.loading.placeholder.organizations": "A carregar organizações...",
5575
6453
  "organization.switcher.members": "membros",
@@ -5691,6 +6569,19 @@ const ta_IN = {
5691
6569
  "passkey.register.description": "கடவுச்சொல் இல்லாமல் பாதுகாப்பாக உள்நுழைய ஒரு passkey-ஐ உருவாக்கவும்.",
5692
6570
  "user.profile.heading": "சுயவிவரம்",
5693
6571
  "user.profile.update.generic.error": "உங்கள் சுயவிவரத்தை புதுப்பிக்கும் போது பிழை ஏற்பட்டது. மீண்டும் முயற்சிக்கவும்.",
6572
+ "user.change_password.heading": "{credential} மாற்றவும்",
6573
+ "user.change_password.new.label": "புதிய {credential}",
6574
+ "user.change_password.new.placeholder": "உங்கள் புதிய {credentialLower}-ஐ உள்ளிடவும்",
6575
+ "user.change_password.confirm.label": "புதிய {credential}-ஐ உறுதிப்படுத்தவும்",
6576
+ "user.change_password.confirm.placeholder": "உங்கள் புதிய {credentialLower}-ஐ மீண்டும் உள்ளிடவும்",
6577
+ "user.change_password.requirements.heading": "உங்கள் {credentialLower} பின்வருவனவற்றைக் கொண்டிருக்க வேண்டும்:",
6578
+ "user.change_password.submit": "{credential}-ஐ புதுப்பிக்கவும்",
6579
+ "user.change_password.success": "உங்கள் {credentialLower} புதுப்பிக்கப்பட்டது.",
6580
+ "user.change_password.mismatch.error": "{credentialLower} பொருந்தவில்லை.",
6581
+ "user.change_password.generic.error": "உங்கள் {credentialLower}-ஐ புதுப்பிக்கும் போது பிழை ஏற்பட்டது. மீண்டும் முயற்சிக்கவும்.",
6582
+ "user.change_password.unavailable.heading": "{credential} மாற்றங்கள் கிடைக்கவில்லை",
6583
+ "user.change_password.unavailable.description": "உங்கள் நிர்வாகியை தொடர்பு கொள்ளவும்.",
6584
+ "validation.password.pattern": "தேவையான வடிவமைப்பிற்கு பொருந்துகிறது",
5694
6585
  "organization.switcher.switch.organization": "அமைப்பை மாற்று",
5695
6586
  "organization.switcher.loading.placeholder.organizations": "அமைப்புகள் ஏற்றப்படுகின்றன...",
5696
6587
  "organization.switcher.members": "உறுப்பினர்கள்",
@@ -5812,6 +6703,19 @@ const si_LK = {
5812
6703
  "passkey.register.description": "මුරපදයක් නොමැතිව ඔබේ ගිණුමට ආරක්ෂිතව ඇතුල් වීමට passkey එකක් සාදන්න.",
5813
6704
  "user.profile.heading": "පැතිකඩ",
5814
6705
  "user.profile.update.generic.error": "ඔබේ පැතිකඩ යාවත්කාලීන කිරීමේදී දෝෂයක් ඇතිවිය.කරුණාකර නැවත උත්සාහ කරන්න",
6706
+ "user.change_password.heading": "{credential} වෙනස් කරන්න",
6707
+ "user.change_password.new.label": "නව {credential}",
6708
+ "user.change_password.new.placeholder": "ඔබේ නව {credentialLower} ඇතුළත් කරන්න",
6709
+ "user.change_password.confirm.label": "නව {credential} තහවුරු කරන්න",
6710
+ "user.change_password.confirm.placeholder": "ඔබේ නව {credentialLower} නැවත ඇතුළත් කරන්න",
6711
+ "user.change_password.requirements.heading": "ඔබේ {credentialLower} තුළ තිබිය යුතුය:",
6712
+ "user.change_password.submit": "{credential} යාවත්කාලීන කරන්න",
6713
+ "user.change_password.success": "ඔබේ {credentialLower} යාවත්කාලීන කර ඇත.",
6714
+ "user.change_password.mismatch.error": "{credentialLower} නොගැලපේ.",
6715
+ "user.change_password.generic.error": "ඔබේ {credentialLower} යාවත්කාලීන කිරීමේදී දෝෂයක් ඇතිවිය. කරුණාකර නැවත උත්සාහ කරන්න.",
6716
+ "user.change_password.unavailable.heading": "{credential} වෙනස් කිරීම් ලබා ගත නොහැක",
6717
+ "user.change_password.unavailable.description": "කරුණාකර ඔබේ පරිපාලක සම්බන්ධ කර ගන්න.",
6718
+ "validation.password.pattern": "අවශ්‍ය ආකෘතියට ගැලපේ",
5815
6719
  "organization.switcher.switch.organization": "සංවිධානය මාරු කරන්න",
5816
6720
  "organization.switcher.loading.placeholder.organizations": "සංවිධාන ලෝඩ් වෙමින්...",
5817
6721
  "organization.switcher.members": "සාමාජිකයන්",
@@ -5949,9 +6853,12 @@ const normalizeTranslations = (translations) => {
5949
6853
  var normalizeTranslations_default = normalizeTranslations;
5950
6854
 
5951
6855
  //#endregion
6856
+ exports.AgentQueryKeys = AgentQueryKeys_default;
5952
6857
  exports.ApplicationNativeAuthenticationConstants = ApplicationNativeAuthenticationConstants_default;
6858
+ exports.ApplicationQueryKeys = ApplicationQueryKeys_default;
5953
6859
  exports.AuthenticationHelper = AuthenticationHelper_default;
5954
6860
  exports.ConsentConstants = ConsentConstants_default;
6861
+ exports.CredentialConstants = CredentialConstants_default;
5955
6862
  exports.DEFAULT_THEME = DEFAULT_THEME;
5956
6863
  exports.DEFAULT_VALIDATION_MESSAGE_KEYS = DEFAULT_VALIDATION_MESSAGE_KEYS;
5957
6864
  exports.EMOJI_URI_SCHEME = EMOJI_URI_SCHEME;
@@ -5971,8 +6878,12 @@ exports.FieldType = FieldType;
5971
6878
  exports.FlowMetaType = FlowMetaType;
5972
6879
  exports.FlowMode = FlowMode;
5973
6880
  exports.HttpClient = HttpClient;
6881
+ exports.InboundAuthTypes = InboundAuthTypes;
5974
6882
  exports.IsomorphicCrypto = IsomorphicCrypto;
6883
+ exports.OAuth2GrantTypes = OAuth2GrantTypes;
6884
+ exports.OAuth2ResponseTypes = OAuth2ResponseTypes;
5975
6885
  exports.OIDCRequestConstants = OIDCRequestConstants_default;
6886
+ exports.REFRESH_TOKEN_ISSUING_GRANTS = REFRESH_TOKEN_ISSUING_GRANTS;
5976
6887
  exports.StorageManager = StorageManager_default;
5977
6888
  exports.ThunderIDAPIError = ThunderIDAPIError;
5978
6889
  exports.ThunderIDAuthException = ThunderIDAuthException;
@@ -5980,7 +6891,9 @@ exports.ThunderIDError = ThunderIDError;
5980
6891
  exports.ThunderIDJavaScriptClient = ThunderIDJavaScriptClient_default;
5981
6892
  exports.ThunderIDRuntimeError = ThunderIDRuntimeError;
5982
6893
  exports.TokenConstants = TokenConstants_default;
6894
+ exports.TokenEndpointAuthMethods = TokenEndpointAuthMethods;
5983
6895
  exports.TranslationBundleConstants = TranslationBundleConstants_default;
6896
+ exports.UserQueryKeys = UserQueryKeys_default;
5984
6897
  exports.VendorConstants = VendorConstants_default;
5985
6898
  exports.arrayBufferToBase64url = arrayBufferToBase64url_default;
5986
6899
  exports.base64urlToArrayBuffer = base64urlToArrayBuffer_default;
@@ -5988,14 +6901,22 @@ exports.bem = bem_default;
5988
6901
  exports.buildValidatorFromRules = buildValidatorFromRules_default;
5989
6902
  exports.configureLogger = configure;
5990
6903
  exports.countryCodeToFlagEmoji = countryCodeToFlagEmoji;
6904
+ exports.createAgent = createAgent_default;
6905
+ exports.createApplication = createApplication_default;
5991
6906
  exports.createComponentLogger = createComponentLogger;
5992
6907
  exports.createLogger = createLogger;
5993
6908
  exports.createPackageComponentLogger = createPackageComponentLogger;
5994
6909
  exports.createPackageLogger = createPackageLogger;
5995
6910
  exports.createTheme = createTheme_default;
6911
+ exports.createUser = createUser_default;
5996
6912
  exports.debug = debug;
5997
6913
  exports.deepMerge = deepMerge_default;
6914
+ exports.deleteAgent = deleteAgent_default;
6915
+ exports.deleteApplication = deleteApplication_default;
6916
+ exports.deleteUser = deleteUser_default;
5998
6917
  exports.error = error;
6918
+ exports.evaluateChangePasswordForm = evaluateChangePasswordForm_default;
6919
+ exports.evaluatePasswordPolicy = evaluatePasswordPolicy_default;
5999
6920
  exports.evaluateValidationRule = evaluateValidationRule_default;
6000
6921
  exports.executeEmbeddedRecoveryFlow = executeEmbeddedRecoveryFlow_default;
6001
6922
  exports.executeEmbeddedSignInFlow = executeEmbeddedSignInFlow_default;
@@ -6007,13 +6928,19 @@ exports.extractUserClaimsFromIdToken = extractUserClaimsFromIdToken_default;
6007
6928
  exports.formatDate = formatDate_default;
6008
6929
  exports.generateFlattenedUserProfile = generateFlattenedUserProfile_default;
6009
6930
  exports.get = get_default;
6931
+ exports.getAgent = getAgent_default;
6932
+ exports.getAgents = getAgents_default;
6933
+ exports.getApplication = getApplication_default;
6934
+ exports.getApplications = getApplications_default;
6010
6935
  exports.getBaseLanguage = getBaseLanguage;
6011
6936
  exports.getDefaultI18nBundles = getDefaultI18nBundles_default;
6012
6937
  exports.getFlowMeta = getFlowMeta_default;
6013
6938
  exports.getLatestStateParam = getLatestStateParam_default;
6014
6939
  exports.getOrganizationUnitChildren = getOrganizationUnitChildren_default;
6015
6940
  exports.getRedirectBasedSignUpUrl = getRedirectBasedSignUpUrl_default;
6941
+ exports.getUser = getUser_default;
6016
6942
  exports.getUserInfo = getUserInfo_default;
6943
+ exports.getUsers = getUsers_default;
6017
6944
  exports.getUsersMe = getUsersMe_default;
6018
6945
  exports.getUsersMeMeta = getUsersMeMeta_default;
6019
6946
  exports.getVendorPrefix = getVendorPrefix_default;
@@ -6023,10 +6950,12 @@ exports.isEmojiUri = isEmojiUri_default;
6023
6950
  exports.isEmpty = isEmpty_default;
6024
6951
  exports.isRecognizedBaseUrlPattern = isRecognizedBaseUrlPattern_default;
6025
6952
  exports.logger = logger_default;
6953
+ exports.mapCredentialUpdateError = mapCredentialUpdateError_default;
6026
6954
  exports.normalizeLocaleTag = normalizeLocaleTag;
6027
6955
  exports.normalizeTranslations = normalizeTranslations_default;
6028
6956
  exports.processOpenIDScopes = processOpenIDScopes_default;
6029
6957
  exports.removeTrailingSlash = removeTrailingSlash_default;
6958
+ exports.resolveChangeCredentialPolicy = resolveChangeCredentialPolicy_default;
6030
6959
  exports.resolveFieldName = resolveFieldName_default;
6031
6960
  exports.resolveFlowTemplateLiterals = resolveFlowTemplateLiterals;
6032
6961
  exports.resolveLocaleDisplayName = resolveLocaleDisplayName;
@@ -6036,6 +6965,11 @@ exports.resolveResourceEndpoint = resolveResourceEndpoint_default;
6036
6965
  exports.set = set_default;
6037
6966
  exports.startCase = startCase_default;
6038
6967
  exports.substituteTranslationParams = substituteTranslationParams_default;
6968
+ exports.supportsCredential = supportsCredential_default;
6969
+ exports.updateAgent = updateAgent_default;
6970
+ exports.updateApplication = updateApplication_default;
6971
+ exports.updateMeCredentials = updateMeCredentials_default;
6039
6972
  exports.updateMeProfile = updateMeProfile_default;
6973
+ exports.updateUser = updateUser_default;
6040
6974
  exports.warn = warn;
6041
6975
  exports.withVendorCSSClassPrefix = withVendorCSSClassPrefix_default;