@contember/react-client 0.7.0-beta.5 → 0.8.0-alpha.10

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 (31) hide show
  1. package/LICENSE +1 -1
  2. package/dist/development/ContemberClient.js +16 -3
  3. package/dist/development/ContemberClient.js.map +1 -1
  4. package/dist/development/auth/SetSessionTokenContext.js +8 -0
  5. package/dist/development/auth/SetSessionTokenContext.js.map +1 -0
  6. package/dist/development/auth/useSetSessionToken.js +7 -0
  7. package/dist/development/auth/useSetSessionToken.js.map +1 -0
  8. package/dist/development/index.js +2 -3
  9. package/dist/development/index.js.map +1 -1
  10. package/dist/production/ContemberClient.js +16 -3
  11. package/dist/production/ContemberClient.js.map +1 -1
  12. package/dist/production/auth/SetSessionTokenContext.js +6 -0
  13. package/dist/production/auth/SetSessionTokenContext.js.map +1 -0
  14. package/dist/production/auth/useSetSessionToken.js +5 -0
  15. package/dist/production/auth/useSetSessionToken.js.map +1 -0
  16. package/dist/production/index.js +2 -3
  17. package/dist/production/index.js.map +1 -1
  18. package/dist/react-client.d.ts +4 -10
  19. package/package.json +4 -3
  20. package/dist/development/auth/useLoginRequest.js +0 -18
  21. package/dist/development/auth/useLoginRequest.js.map +0 -1
  22. package/dist/development/system/useDiffQuery.js +0 -17
  23. package/dist/development/system/useDiffQuery.js.map +0 -1
  24. package/dist/development/system/useReleaseTreeMutation.js +0 -17
  25. package/dist/development/system/useReleaseTreeMutation.js.map +0 -1
  26. package/dist/production/auth/useLoginRequest.js +0 -16
  27. package/dist/production/auth/useLoginRequest.js.map +0 -1
  28. package/dist/production/system/useDiffQuery.js +0 -15
  29. package/dist/production/system/useDiffQuery.js.map +0 -1
  30. package/dist/production/system/useReleaseTreeMutation.js +0 -15
  31. package/dist/production/system/useReleaseTreeMutation.js.map +0 -1
package/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2018-present manGoweb, spol. s r.o.
1
+ Copyright (c) 2018-present manGoweb, s.r.o.
2
2
 
3
3
  Portions of this software are licensed as follows:
4
4
 
@@ -1,10 +1,12 @@
1
- import { memo, createElement } from 'react';
1
+ import { memo, useState, useCallback, createElement } from 'react';
2
2
  import { ApiBaseUrlContext } from './config/ApiBaseUrlContext.js';
3
3
  import { LoginTokenContext } from './config/LoginTokenContext.js';
4
+ import { SetSessionTokenContext } from './auth/SetSessionTokenContext.js';
4
5
  import { SessionTokenContext } from './auth/SessionTokenContext.js';
5
6
  import { ProjectSlugContext } from './project/ProjectSlugContext.js';
6
7
  import { StageSlugContext } from './project/StageSlugContext.js';
7
8
 
9
+ const sessionTokenKey = "contember_session_token";
8
10
  const ContemberClient = memo(function ContemberClient2({
9
11
  apiBaseUrl,
10
12
  children,
@@ -13,17 +15,28 @@ const ContemberClient = memo(function ContemberClient2({
13
15
  sessionToken,
14
16
  stage
15
17
  }) {
18
+ const [sessionTokenInner, setSessionTokenInner] = useState(() => localStorage.getItem(sessionTokenKey) ?? sessionToken ?? void 0);
19
+ const setSessionToken = useCallback((token) => {
20
+ if (token !== void 0) {
21
+ localStorage.setItem(sessionTokenKey, token);
22
+ } else {
23
+ localStorage.removeItem(sessionTokenKey);
24
+ }
25
+ setSessionTokenInner(token);
26
+ }, []);
16
27
  return /* @__PURE__ */ createElement(ApiBaseUrlContext.Provider, {
17
28
  value: apiBaseUrl
18
29
  }, /* @__PURE__ */ createElement(LoginTokenContext.Provider, {
19
30
  value: loginToken
31
+ }, /* @__PURE__ */ createElement(SetSessionTokenContext.Provider, {
32
+ value: setSessionToken
20
33
  }, /* @__PURE__ */ createElement(SessionTokenContext.Provider, {
21
- value: sessionToken
34
+ value: sessionTokenInner
22
35
  }, /* @__PURE__ */ createElement(ProjectSlugContext.Provider, {
23
36
  value: project
24
37
  }, /* @__PURE__ */ createElement(StageSlugContext.Provider, {
25
38
  value: stage
26
- }, children)))));
39
+ }, children))))));
27
40
  });
28
41
 
29
42
  export { ContemberClient };
@@ -1 +1 @@
1
- {"version":3,"file":"ContemberClient.js","sources":["../../src/ContemberClient.tsx"],"sourcesContent":["import { memo, ReactNode } from 'react'\nimport { SessionTokenContext } from './auth'\nimport { ApiBaseUrlContext, LoginTokenContext } from './config'\nimport { ProjectSlugContext, StageSlugContext } from './project'\n\nexport interface ContemberClientProps {\n\tapiBaseUrl: string\n\tsessionToken?: string\n\tloginToken?: string\n\tproject?: string\n\tstage?: string\n}\n\nexport const ContemberClient = memo<ContemberClientProps & { children: React.ReactNode }>(function ContemberClient({\n\tapiBaseUrl,\n\tchildren,\n\tloginToken,\n\tproject,\n\tsessionToken,\n\tstage,\n}) {\n\treturn (\n\t\t<ApiBaseUrlContext.Provider value={apiBaseUrl}>\n\t\t\t<LoginTokenContext.Provider value={loginToken}>\n\t\t\t\t<SessionTokenContext.Provider value={sessionToken}>\n\t\t\t\t\t<ProjectSlugContext.Provider value={project}>\n\t\t\t\t\t\t<StageSlugContext.Provider value={stage}>{children}</StageSlugContext.Provider>\n\t\t\t\t\t</ProjectSlugContext.Provider>\n\t\t\t\t</SessionTokenContext.Provider>\n\t\t\t</LoginTokenContext.Provider>\n\t\t</ApiBaseUrlContext.Provider>\n\t)\n})\n"],"names":[],"mappings":";;;;;;;MAaa,kBAAkB,KAA2D,0BAAyB;AAAA,EAClH;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,GACE;AACF,uCACE,kBAAkB,UAAnB;AAAA,IAA4B,OAAO;AAAA,mCACjC,kBAAkB,UAAnB;AAAA,IAA4B,OAAO;AAAA,mCACjC,oBAAoB,UAArB;AAAA,IAA8B,OAAO;AAAA,mCACnC,mBAAmB,UAApB;AAAA,IAA6B,OAAO;AAAA,mCAClC,iBAAiB,UAAlB;AAAA,IAA2B,OAAO;AAAA,KAAQ;AAAA;;;;"}
1
+ {"version":3,"file":"ContemberClient.js","sources":["../../src/ContemberClient.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useState } from 'react'\nimport { SessionTokenContext, SetSessionTokenContext } from './auth'\nimport { ApiBaseUrlContext, LoginTokenContext } from './config'\nimport { ProjectSlugContext, StageSlugContext } from './project'\n\nexport interface ContemberClientProps {\n\tapiBaseUrl: string\n\tsessionToken?: string\n\tloginToken?: string\n\tproject?: string\n\tstage?: string\n}\n\nconst sessionTokenKey = 'contember_session_token'\n\nexport const ContemberClient = memo<ContemberClientProps & { children: React.ReactNode }>(function ContemberClient({\n\tapiBaseUrl,\n\tchildren,\n\tloginToken,\n\tproject,\n\tsessionToken,\n\tstage,\n}) {\n\tconst [sessionTokenInner, setSessionTokenInner] = useState(() => localStorage.getItem(sessionTokenKey) ?? sessionToken ?? undefined)\n\n\tconst setSessionToken = useCallback((token: string | undefined) => {\n\t\tif (token !== undefined) {\n\t\t\tlocalStorage.setItem(sessionTokenKey, token)\n\t\t} else {\n\t\t\tlocalStorage.removeItem(sessionTokenKey)\n\t\t}\n\t\tsetSessionTokenInner(token)\n\t}, [])\n\n\treturn (\n\t\t<ApiBaseUrlContext.Provider value={apiBaseUrl}>\n\t\t\t<LoginTokenContext.Provider value={loginToken}>\n\t\t\t\t<SetSessionTokenContext.Provider value={setSessionToken}>\n\t\t\t\t\t<SessionTokenContext.Provider value={sessionTokenInner}>\n\t\t\t\t\t\t<ProjectSlugContext.Provider value={project}>\n\t\t\t\t\t\t\t<StageSlugContext.Provider value={stage}>{children}</StageSlugContext.Provider>\n\t\t\t\t\t\t</ProjectSlugContext.Provider>\n\t\t\t\t\t</SessionTokenContext.Provider>\n\t\t\t\t</SetSessionTokenContext.Provider>\n\t\t\t</LoginTokenContext.Provider>\n\t\t</ApiBaseUrlContext.Provider>\n\t)\n})\n"],"names":[],"mappings":";;;;;;;;AAaA,MAAM,kBAAkB;MAEX,kBAAkB,KAA2D,0BAAyB;AAAA,EAClH;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,GACE;AACF,QAAM,CAAC,mBAAmB,wBAAwB,SAAS,MAAM,aAAa,QAAQ,oBAAoB,gBAAiB;AAE3H,QAAM,kBAAkB,YAAY,CAAC,UAA8B;AAClE,QAAI,UAAU,QAAW;AACxB,mBAAa,QAAQ,iBAAiB;AAAA,WAChC;AACN,mBAAa,WAAW;AAAA;AAEzB,yBAAqB;AAAA,KACnB;AAEH,uCACE,kBAAkB,UAAnB;AAAA,IAA4B,OAAO;AAAA,mCACjC,kBAAkB,UAAnB;AAAA,IAA4B,OAAO;AAAA,mCACjC,uBAAuB,UAAxB;AAAA,IAAiC,OAAO;AAAA,mCACtC,oBAAoB,UAArB;AAAA,IAA8B,OAAO;AAAA,mCACnC,mBAAmB,UAApB;AAAA,IAA6B,OAAO;AAAA,mCAClC,iBAAiB,UAAlB;AAAA,IAA2B,OAAO;AAAA,KAAQ;AAAA;;;;"}
@@ -0,0 +1,8 @@
1
+ import { createContext } from 'react';
2
+
3
+ const SetSessionTokenContext = createContext(() => {
4
+ throw new Error("SetSessionTokenContext is not set");
5
+ });
6
+
7
+ export { SetSessionTokenContext };
8
+ //# sourceMappingURL=SetSessionTokenContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetSessionTokenContext.js","sources":["../../../src/auth/SetSessionTokenContext.ts"],"sourcesContent":["import { createContext } from 'react'\n\nexport const SetSessionTokenContext = createContext<(token: string | undefined) => void>(() => {\n\tthrow new Error('SetSessionTokenContext is not set')\n})\n"],"names":[],"mappings":";;MAEa,yBAAyB,cAAmD,MAAM;AAC9F,QAAM,IAAI,MAAM;AAAA;;;;"}
@@ -0,0 +1,7 @@
1
+ import { useContext } from 'react';
2
+ import { SetSessionTokenContext } from './SetSessionTokenContext.js';
3
+
4
+ const useSetSessionToken = () => useContext(SetSessionTokenContext);
5
+
6
+ export { useSetSessionToken };
7
+ //# sourceMappingURL=useSetSessionToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSetSessionToken.js","sources":["../../../src/auth/useSetSessionToken.ts"],"sourcesContent":["import { useContext } from 'react'\nimport { SetSessionTokenContext } from './SetSessionTokenContext'\n\nexport const useSetSessionToken = () => useContext(SetSessionTokenContext)\n"],"names":[],"mappings":";;;MAGa,qBAAqB,MAAM,WAAW;;;;"}
@@ -5,8 +5,9 @@ export * from '@contember/client';
5
5
  export { apiRequestReducer } from './apiRequest/apiRequestReducer.js';
6
6
  export { useApiRequest } from './apiRequest/useApiRequest.js';
7
7
  export { SessionTokenContext } from './auth/SessionTokenContext.js';
8
- export { useLoginRequest } from './auth/useLoginRequest.js';
8
+ export { SetSessionTokenContext } from './auth/SetSessionTokenContext.js';
9
9
  export { useSessionToken } from './auth/useSessionToken.js';
10
+ export { useSetSessionToken } from './auth/useSetSessionToken.js';
10
11
  export { RichTextRenderer } from './components/RichTextRenderer/RichTextRenderer.js';
11
12
  export { RichTextRendererError } from './components/RichTextRenderer/RichTextRendererError.js';
12
13
  export { ApiBaseUrlContext } from './config/ApiBaseUrlContext.js';
@@ -21,8 +22,6 @@ export { StageSlugContext } from './project/StageSlugContext.js';
21
22
  export { useProjectSlug } from './project/useProjectSlug.js';
22
23
  export { useStageSlug } from './project/useStageSlug.js';
23
24
  export { useCurrentSystemGraphQlClient } from './system/useCurrentSystemGraphQlClient.js';
24
- export { useDiffQuery } from './system/useDiffQuery.js';
25
- export { useReleaseTreeMutation } from './system/useReleaseTreeMutation.js';
26
25
  export { useSystemApiRequest } from './system/useSystemApiRequest.js';
27
26
  export { useSystemGraphQlClient } from './system/useSystemGraphQlClient.js';
28
27
  export { useTenantApiRequest } from './tenant/useTenantApiRequest.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,9 +1,11 @@
1
- import { memo, createElement } from "react";
1
+ import { memo, useState, useCallback, createElement } from "react";
2
2
  import { ApiBaseUrlContext } from "./config/ApiBaseUrlContext.js";
3
3
  import { LoginTokenContext } from "./config/LoginTokenContext.js";
4
+ import { SetSessionTokenContext } from "./auth/SetSessionTokenContext.js";
4
5
  import { SessionTokenContext } from "./auth/SessionTokenContext.js";
5
6
  import { ProjectSlugContext } from "./project/ProjectSlugContext.js";
6
7
  import { StageSlugContext } from "./project/StageSlugContext.js";
8
+ const sessionTokenKey = "contember_session_token";
7
9
  const ContemberClient = memo(function ContemberClient2({
8
10
  apiBaseUrl,
9
11
  children,
@@ -12,17 +14,28 @@ const ContemberClient = memo(function ContemberClient2({
12
14
  sessionToken,
13
15
  stage
14
16
  }) {
17
+ const [sessionTokenInner, setSessionTokenInner] = useState(() => localStorage.getItem(sessionTokenKey) ?? sessionToken ?? void 0);
18
+ const setSessionToken = useCallback((token) => {
19
+ if (token !== void 0) {
20
+ localStorage.setItem(sessionTokenKey, token);
21
+ } else {
22
+ localStorage.removeItem(sessionTokenKey);
23
+ }
24
+ setSessionTokenInner(token);
25
+ }, []);
15
26
  return /* @__PURE__ */ createElement(ApiBaseUrlContext.Provider, {
16
27
  value: apiBaseUrl
17
28
  }, /* @__PURE__ */ createElement(LoginTokenContext.Provider, {
18
29
  value: loginToken
30
+ }, /* @__PURE__ */ createElement(SetSessionTokenContext.Provider, {
31
+ value: setSessionToken
19
32
  }, /* @__PURE__ */ createElement(SessionTokenContext.Provider, {
20
- value: sessionToken
33
+ value: sessionTokenInner
21
34
  }, /* @__PURE__ */ createElement(ProjectSlugContext.Provider, {
22
35
  value: project
23
36
  }, /* @__PURE__ */ createElement(StageSlugContext.Provider, {
24
37
  value: stage
25
- }, children)))));
38
+ }, children))))));
26
39
  });
27
40
  export { ContemberClient };
28
41
  //# sourceMappingURL=ContemberClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContemberClient.js","sources":["../../src/ContemberClient.tsx"],"sourcesContent":["import { memo, ReactNode } from 'react'\nimport { SessionTokenContext } from './auth'\nimport { ApiBaseUrlContext, LoginTokenContext } from './config'\nimport { ProjectSlugContext, StageSlugContext } from './project'\n\nexport interface ContemberClientProps {\n\tapiBaseUrl: string\n\tsessionToken?: string\n\tloginToken?: string\n\tproject?: string\n\tstage?: string\n}\n\nexport const ContemberClient = memo<ContemberClientProps & { children: React.ReactNode }>(function ContemberClient({\n\tapiBaseUrl,\n\tchildren,\n\tloginToken,\n\tproject,\n\tsessionToken,\n\tstage,\n}) {\n\treturn (\n\t\t<ApiBaseUrlContext.Provider value={apiBaseUrl}>\n\t\t\t<LoginTokenContext.Provider value={loginToken}>\n\t\t\t\t<SessionTokenContext.Provider value={sessionToken}>\n\t\t\t\t\t<ProjectSlugContext.Provider value={project}>\n\t\t\t\t\t\t<StageSlugContext.Provider value={stage}>{children}</StageSlugContext.Provider>\n\t\t\t\t\t</ProjectSlugContext.Provider>\n\t\t\t\t</SessionTokenContext.Provider>\n\t\t\t</LoginTokenContext.Provider>\n\t\t</ApiBaseUrlContext.Provider>\n\t)\n})\n"],"names":[],"mappings":";;;;;;MAaa,kBAAkB,KAA2D,0BAAyB;AAAA,EAClH;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,GACE;uCAEA,kBAAkB,UAAnB;AAAA,IAA4B,OAAO;AAAA,mCACjC,kBAAkB,UAAnB;AAAA,IAA4B,OAAO;AAAA,mCACjC,oBAAoB,UAArB;AAAA,IAA8B,OAAO;AAAA,mCACnC,mBAAmB,UAApB;AAAA,IAA6B,OAAO;AAAA,mCAClC,iBAAiB,UAAlB;AAAA,IAA2B,OAAO;AAAA,KAAQ;AAAA;;"}
1
+ {"version":3,"file":"ContemberClient.js","sources":["../../src/ContemberClient.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useState } from 'react'\nimport { SessionTokenContext, SetSessionTokenContext } from './auth'\nimport { ApiBaseUrlContext, LoginTokenContext } from './config'\nimport { ProjectSlugContext, StageSlugContext } from './project'\n\nexport interface ContemberClientProps {\n\tapiBaseUrl: string\n\tsessionToken?: string\n\tloginToken?: string\n\tproject?: string\n\tstage?: string\n}\n\nconst sessionTokenKey = 'contember_session_token'\n\nexport const ContemberClient = memo<ContemberClientProps & { children: React.ReactNode }>(function ContemberClient({\n\tapiBaseUrl,\n\tchildren,\n\tloginToken,\n\tproject,\n\tsessionToken,\n\tstage,\n}) {\n\tconst [sessionTokenInner, setSessionTokenInner] = useState(() => localStorage.getItem(sessionTokenKey) ?? sessionToken ?? undefined)\n\n\tconst setSessionToken = useCallback((token: string | undefined) => {\n\t\tif (token !== undefined) {\n\t\t\tlocalStorage.setItem(sessionTokenKey, token)\n\t\t} else {\n\t\t\tlocalStorage.removeItem(sessionTokenKey)\n\t\t}\n\t\tsetSessionTokenInner(token)\n\t}, [])\n\n\treturn (\n\t\t<ApiBaseUrlContext.Provider value={apiBaseUrl}>\n\t\t\t<LoginTokenContext.Provider value={loginToken}>\n\t\t\t\t<SetSessionTokenContext.Provider value={setSessionToken}>\n\t\t\t\t\t<SessionTokenContext.Provider value={sessionTokenInner}>\n\t\t\t\t\t\t<ProjectSlugContext.Provider value={project}>\n\t\t\t\t\t\t\t<StageSlugContext.Provider value={stage}>{children}</StageSlugContext.Provider>\n\t\t\t\t\t\t</ProjectSlugContext.Provider>\n\t\t\t\t\t</SessionTokenContext.Provider>\n\t\t\t\t</SetSessionTokenContext.Provider>\n\t\t\t</LoginTokenContext.Provider>\n\t\t</ApiBaseUrlContext.Provider>\n\t)\n})\n"],"names":[],"mappings":";;;;;;;AAaA,MAAM,kBAAkB;MAEX,kBAAkB,KAA2D,0BAAyB;AAAA,EAClH;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,GACE;QACI,CAAC,mBAAmB,wBAAwB,SAAS,MAAM,aAAa,QAAQ,oBAAoB,gBAAiB;QAErH,kBAAkB,YAAY,CAAC,UAA8B;QAC9D,UAAU,QAAW;mBACX,QAAQ,iBAAiB;AAAA,WAChC;mBACO,WAAW;AAAA;yBAEJ;AAAA,KACnB;uCAGD,kBAAkB,UAAnB;AAAA,IAA4B,OAAO;AAAA,mCACjC,kBAAkB,UAAnB;AAAA,IAA4B,OAAO;AAAA,mCACjC,uBAAuB,UAAxB;AAAA,IAAiC,OAAO;AAAA,mCACtC,oBAAoB,UAArB;AAAA,IAA8B,OAAO;AAAA,mCACnC,mBAAmB,UAApB;AAAA,IAA6B,OAAO;AAAA,mCAClC,iBAAiB,UAAlB;AAAA,IAA2B,OAAO;AAAA,KAAQ;AAAA;;"}
@@ -0,0 +1,6 @@
1
+ import { createContext } from "react";
2
+ const SetSessionTokenContext = createContext(() => {
3
+ throw new Error("SetSessionTokenContext is not set");
4
+ });
5
+ export { SetSessionTokenContext };
6
+ //# sourceMappingURL=SetSessionTokenContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetSessionTokenContext.js","sources":["../../../src/auth/SetSessionTokenContext.ts"],"sourcesContent":["import { createContext } from 'react'\n\nexport const SetSessionTokenContext = createContext<(token: string | undefined) => void>(() => {\n\tthrow new Error('SetSessionTokenContext is not set')\n})\n"],"names":[],"mappings":";MAEa,yBAAyB,cAAmD,MAAM;QACxF,IAAI,MAAM;AAAA;;"}
@@ -0,0 +1,5 @@
1
+ import { useContext } from "react";
2
+ import { SetSessionTokenContext } from "./SetSessionTokenContext.js";
3
+ const useSetSessionToken = () => useContext(SetSessionTokenContext);
4
+ export { useSetSessionToken };
5
+ //# sourceMappingURL=useSetSessionToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSetSessionToken.js","sources":["../../../src/auth/useSetSessionToken.ts"],"sourcesContent":["import { useContext } from 'react'\nimport { SetSessionTokenContext } from './SetSessionTokenContext'\n\nexport const useSetSessionToken = () => useContext(SetSessionTokenContext)\n"],"names":[],"mappings":";;MAGa,qBAAqB,MAAM,WAAW;;"}
@@ -5,8 +5,9 @@ export * from "@contember/client";
5
5
  export { apiRequestReducer } from "./apiRequest/apiRequestReducer.js";
6
6
  export { useApiRequest } from "./apiRequest/useApiRequest.js";
7
7
  export { SessionTokenContext } from "./auth/SessionTokenContext.js";
8
- export { useLoginRequest } from "./auth/useLoginRequest.js";
8
+ export { SetSessionTokenContext } from "./auth/SetSessionTokenContext.js";
9
9
  export { useSessionToken } from "./auth/useSessionToken.js";
10
+ export { useSetSessionToken } from "./auth/useSetSessionToken.js";
10
11
  export { RichTextRenderer } from "./components/RichTextRenderer/RichTextRenderer.js";
11
12
  export { RichTextRendererError } from "./components/RichTextRenderer/RichTextRendererError.js";
12
13
  export { ApiBaseUrlContext } from "./config/ApiBaseUrlContext.js";
@@ -21,8 +22,6 @@ export { StageSlugContext } from "./project/StageSlugContext.js";
21
22
  export { useProjectSlug } from "./project/useProjectSlug.js";
22
23
  export { useStageSlug } from "./project/useStageSlug.js";
23
24
  export { useCurrentSystemGraphQlClient } from "./system/useCurrentSystemGraphQlClient.js";
24
- export { useDiffQuery } from "./system/useDiffQuery.js";
25
- export { useReleaseTreeMutation } from "./system/useReleaseTreeMutation.js";
26
25
  export { useSystemApiRequest } from "./system/useSystemApiRequest.js";
27
26
  export { useSystemGraphQlClient } from "./system/useSystemGraphQlClient.js";
28
27
  export { useTenantApiRequest } from "./tenant/useTenantApiRequest.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,19 +2,15 @@
2
2
 
3
3
  import { ComponentType } from 'react';
4
4
  import { Context } from 'react';
5
- import { DiffQueryResponse } from '@contember/client';
6
5
  import type { FileUploader } from '@contember/client';
7
6
  import type { FileUploadError } from '@contember/client';
8
7
  import { GraphQlClient } from '@contember/client';
9
8
  import type { GraphQlClientFailedRequestMetadata } from '@contember/client';
10
9
  import type { GraphQlClientRequestOptions } from '@contember/client';
11
10
  import type { GraphQlClientVariables } from '@contember/client';
12
- import { LoginMutationResponse } from '@contember/client';
13
11
  import { NamedExoticComponent } from 'react';
14
12
  import { ReactElement } from 'react';
15
13
  import type { ReactNode } from 'react';
16
- import { ReleaseTreeMutationResponse } from '@contember/client';
17
- import { TreeFilter } from '@contember/client';
18
14
 
19
15
  export declare const ApiBaseUrlContext: Context<string | undefined>;
20
16
 
@@ -285,6 +281,8 @@ export declare interface RootEditorNode<CustomElements extends RichTextElement =
285
281
 
286
282
  export declare const SessionTokenContext: Context<string | undefined>;
287
283
 
284
+ export declare const SetSessionTokenContext: Context<(token: string | undefined) => void>;
285
+
288
286
  export declare type SingleFileUploadState<Result = unknown, Metadata = undefined> = {
289
287
  readyState: 'initializing';
290
288
  abortController: AbortController;
@@ -341,22 +339,18 @@ export declare const useCurrentContentGraphQlClient: () => GraphQlClient;
341
339
 
342
340
  export declare const useCurrentSystemGraphQlClient: () => GraphQlClient;
343
341
 
344
- export declare const useDiffQuery: () => [ApiRequestState<DiffQueryResponse>, (treeFilter: TreeFilter[]) => Promise<DiffQueryResponse>];
345
-
346
342
  export declare const useFileUpload: <Result = unknown, Metadata = undefined>(options?: FileUploadOptions | undefined) => FileUpload<Result, Metadata>;
347
343
 
348
344
  export declare const useGraphQlClient: (path: string) => GraphQlClient;
349
345
 
350
- export declare const useLoginRequest: () => [ApiRequestState<LoginMutationResponse>, (email: string, password: string) => Promise<LoginMutationResponse>];
351
-
352
346
  export declare const useLoginToken: () => string | undefined;
353
347
 
354
348
  export declare const useProjectSlug: () => string | undefined;
355
349
 
356
- export declare const useReleaseTreeMutation: () => [ApiRequestState<ReleaseTreeMutationResponse>, (treeFilter: TreeFilter[]) => Promise<ReleaseTreeMutationResponse>];
357
-
358
350
  export declare const useSessionToken: () => string | undefined;
359
351
 
352
+ export declare const useSetSessionToken: () => (token: string | undefined) => void;
353
+
360
354
  export declare const useStageSlug: () => string | undefined;
361
355
 
362
356
  export declare const useSystemApiRequest: <SuccessData>() => UseApiRequestResult<SuccessData>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@contember/react-client",
3
3
  "license": "Apache-2.0",
4
- "version": "0.7.0-beta.5",
4
+ "version": "0.8.0-alpha.10",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "main": "./dist/production/index.js",
@@ -18,7 +18,7 @@
18
18
  ],
19
19
  "typings": "./dist/react-client.d.ts",
20
20
  "dependencies": {
21
- "@contember/client": "0.7.0-beta.5"
21
+ "@contember/client": "0.8.0-alpha.10"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "react": "^17"
@@ -27,5 +27,6 @@
27
27
  "build": "vite build --mode development && vite build --mode production",
28
28
  "build:api:dev": "api-extractor run --local",
29
29
  "build:api:prod": "api-extractor run"
30
- }
30
+ },
31
+ "readme": "# `@contember/react-client`\n\n## Usage\nIf you wish to communicate with any Contember API, wrap your code with the `ContemberClient` component:\n```tsx\nimport { ContemberClient } from '@contember/react-client'\n\n<ContemberClient\n\tapiBaseUrl=\"https://api.example.com\"\n\tproject=\"PROJECT-SLUG\"\n\tsessionToken=\"SESSION-TOKEN\"\n\tstage=\"STAGE-SLUG\"\n>\n ...\n</ContemberClient>\n```\n\n## Notable APIs\nYou'll have to look at the code for now, sorry.\n- `<RichTextRenderer />`\n- `useFileUpload`\n- `useContentApiRequest` / `useTenantApiRequest` / `useSystemApiRequest`\n"
31
32
  }
@@ -1,18 +0,0 @@
1
- import { loginMutation } from '@contember/client';
2
- import { useCallback } from 'react';
3
- import { useTenantApiRequest } from '../tenant/useTenantApiRequest.js';
4
- import { useLoginToken } from '../config/useLoginToken.js';
5
-
6
- const useLoginRequest = () => {
7
- const [requestState, sendRequest] = useTenantApiRequest();
8
- const loginToken = useLoginToken();
9
- const login = useCallback((email, password) => sendRequest(loginMutation, {
10
- email,
11
- password,
12
- expiration: 3600 * 24 * 14
13
- }, { apiTokenOverride: loginToken }), [sendRequest, loginToken]);
14
- return [requestState, login];
15
- };
16
-
17
- export { useLoginRequest };
18
- //# sourceMappingURL=useLoginRequest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLoginRequest.js","sources":["../../../src/auth/useLoginRequest.ts"],"sourcesContent":["import { loginMutation, LoginMutationResponse } from '@contember/client'\nimport { useCallback } from 'react'\nimport type { ApiRequestState } from '../apiRequest'\nimport { useLoginToken } from '../config'\nimport { useTenantApiRequest } from '../tenant'\n\nexport const useLoginRequest = (): [\n\tApiRequestState<LoginMutationResponse>,\n\t(email: string, password: string) => Promise<LoginMutationResponse>,\n] => {\n\tconst [requestState, sendRequest] = useTenantApiRequest<LoginMutationResponse>()\n\tconst loginToken = useLoginToken()\n\n\tconst login = useCallback(\n\t\t(email: string, password: string) =>\n\t\t\tsendRequest(\n\t\t\t\tloginMutation,\n\t\t\t\t{\n\t\t\t\t\temail,\n\t\t\t\t\tpassword,\n\t\t\t\t\texpiration: 3600 * 24 * 14, // Two weeks\n\t\t\t\t},\n\t\t\t\t{ apiTokenOverride: loginToken },\n\t\t\t),\n\t\t[sendRequest, loginToken],\n\t)\n\n\treturn [requestState, login]\n}\n"],"names":[],"mappings":";;;;;MAMa,kBAAkB,MAG1B;AACJ,QAAM,CAAC,cAAc,eAAe;AACpC,QAAM,aAAa;AAEnB,QAAM,QAAQ,YACb,CAAC,OAAe,aACf,YACC,eACA;AAAA,IACC;AAAA,IACA;AAAA,IACA,YAAY,OAAO,KAAK;AAAA,KAEzB,EAAE,kBAAkB,eAEtB,CAAC,aAAa;AAGf,SAAO,CAAC,cAAc;AAAA;;;;"}
@@ -1,17 +0,0 @@
1
- import { diffQuery } from '@contember/client';
2
- import { useCallback } from 'react';
3
- import { useSystemApiRequest } from './useSystemApiRequest.js';
4
- import { useStageSlug } from '../project/useStageSlug.js';
5
-
6
- const useDiffQuery = () => {
7
- const [requestState, sendRequest] = useSystemApiRequest();
8
- const stage = useStageSlug();
9
- const sendQuery = useCallback((treeFilter) => sendRequest(diffQuery, {
10
- stage,
11
- filter: treeFilter
12
- }), [stage, sendRequest]);
13
- return [requestState, sendQuery];
14
- };
15
-
16
- export { useDiffQuery };
17
- //# sourceMappingURL=useDiffQuery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDiffQuery.js","sources":["../../../src/system/useDiffQuery.ts"],"sourcesContent":["import { diffQuery, DiffQueryResponse, TreeFilter } from '@contember/client'\nimport { useCallback } from 'react'\nimport type { ApiRequestState } from '../apiRequest'\nimport { useStageSlug } from '../project'\nimport { useSystemApiRequest } from './useSystemApiRequest'\n\nexport const useDiffQuery = (): [\n\tApiRequestState<DiffQueryResponse>,\n\t(treeFilter: TreeFilter[]) => Promise<DiffQueryResponse>,\n] => {\n\tconst [requestState, sendRequest] = useSystemApiRequest<DiffQueryResponse>()\n\tconst stage = useStageSlug()\n\tconst sendQuery = useCallback(\n\t\t(treeFilter: TreeFilter[]) =>\n\t\t\tsendRequest(diffQuery, {\n\t\t\t\tstage,\n\t\t\t\tfilter: treeFilter,\n\t\t\t}),\n\t\t[stage, sendRequest],\n\t)\n\n\treturn [requestState, sendQuery]\n}\n"],"names":[],"mappings":";;;;;MAMa,eAAe,MAGvB;AACJ,QAAM,CAAC,cAAc,eAAe;AACpC,QAAM,QAAQ;AACd,QAAM,YAAY,YACjB,CAAC,eACA,YAAY,WAAW;AAAA,IACtB;AAAA,IACA,QAAQ;AAAA,MAEV,CAAC,OAAO;AAGT,SAAO,CAAC,cAAc;AAAA;;;;"}
@@ -1,17 +0,0 @@
1
- import { releaseTreeMutation } from '@contember/client';
2
- import { useCallback } from 'react';
3
- import { useSystemApiRequest } from './useSystemApiRequest.js';
4
- import { useStageSlug } from '../project/useStageSlug.js';
5
-
6
- const useReleaseTreeMutation = () => {
7
- const [requestState, sendRequest] = useSystemApiRequest();
8
- const stage = useStageSlug();
9
- const sendMutation = useCallback((treeFilter) => sendRequest(releaseTreeMutation, {
10
- stage,
11
- filter: treeFilter
12
- }), [stage, sendRequest]);
13
- return [requestState, sendMutation];
14
- };
15
-
16
- export { useReleaseTreeMutation };
17
- //# sourceMappingURL=useReleaseTreeMutation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useReleaseTreeMutation.js","sources":["../../../src/system/useReleaseTreeMutation.ts"],"sourcesContent":["import { releaseTreeMutation, ReleaseTreeMutationResponse, TreeFilter } from '@contember/client'\nimport { useCallback } from 'react'\nimport type { ApiRequestState } from '../apiRequest'\nimport { useStageSlug } from '../project'\nimport { useSystemApiRequest } from './useSystemApiRequest'\n\nexport const useReleaseTreeMutation = (): [\n\tApiRequestState<ReleaseTreeMutationResponse>,\n\t(treeFilter: TreeFilter[]) => Promise<ReleaseTreeMutationResponse>,\n] => {\n\tconst [requestState, sendRequest] = useSystemApiRequest<ReleaseTreeMutationResponse>()\n\tconst stage = useStageSlug()\n\tconst sendMutation = useCallback(\n\t\t(treeFilter: TreeFilter[]) =>\n\t\t\tsendRequest(releaseTreeMutation, {\n\t\t\t\tstage,\n\t\t\t\tfilter: treeFilter,\n\t\t\t}),\n\t\t[stage, sendRequest],\n\t)\n\n\treturn [requestState, sendMutation]\n}\n"],"names":[],"mappings":";;;;;MAMa,yBAAyB,MAGjC;AACJ,QAAM,CAAC,cAAc,eAAe;AACpC,QAAM,QAAQ;AACd,QAAM,eAAe,YACpB,CAAC,eACA,YAAY,qBAAqB;AAAA,IAChC;AAAA,IACA,QAAQ;AAAA,MAEV,CAAC,OAAO;AAGT,SAAO,CAAC,cAAc;AAAA;;;;"}
@@ -1,16 +0,0 @@
1
- import { loginMutation } from "@contember/client";
2
- import { useCallback } from "react";
3
- import { useTenantApiRequest } from "../tenant/useTenantApiRequest.js";
4
- import { useLoginToken } from "../config/useLoginToken.js";
5
- const useLoginRequest = () => {
6
- const [requestState, sendRequest] = useTenantApiRequest();
7
- const loginToken = useLoginToken();
8
- const login = useCallback((email, password) => sendRequest(loginMutation, {
9
- email,
10
- password,
11
- expiration: 3600 * 24 * 14
12
- }, { apiTokenOverride: loginToken }), [sendRequest, loginToken]);
13
- return [requestState, login];
14
- };
15
- export { useLoginRequest };
16
- //# sourceMappingURL=useLoginRequest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLoginRequest.js","sources":["../../../src/auth/useLoginRequest.ts"],"sourcesContent":["import { loginMutation, LoginMutationResponse } from '@contember/client'\nimport { useCallback } from 'react'\nimport type { ApiRequestState } from '../apiRequest'\nimport { useLoginToken } from '../config'\nimport { useTenantApiRequest } from '../tenant'\n\nexport const useLoginRequest = (): [\n\tApiRequestState<LoginMutationResponse>,\n\t(email: string, password: string) => Promise<LoginMutationResponse>,\n] => {\n\tconst [requestState, sendRequest] = useTenantApiRequest<LoginMutationResponse>()\n\tconst loginToken = useLoginToken()\n\n\tconst login = useCallback(\n\t\t(email: string, password: string) =>\n\t\t\tsendRequest(\n\t\t\t\tloginMutation,\n\t\t\t\t{\n\t\t\t\t\temail,\n\t\t\t\t\tpassword,\n\t\t\t\t\texpiration: 3600 * 24 * 14, // Two weeks\n\t\t\t\t},\n\t\t\t\t{ apiTokenOverride: loginToken },\n\t\t\t),\n\t\t[sendRequest, loginToken],\n\t)\n\n\treturn [requestState, login]\n}\n"],"names":[],"mappings":";;;;MAMa,kBAAkB,MAG1B;QACE,CAAC,cAAc,eAAe;QAC9B,aAAa;QAEb,QAAQ,YACb,CAAC,OAAe,aACf,YACC,eACA;AAAA,IACC;AAAA,IACA;AAAA,IACA,YAAY,OAAO,KAAK;AAAA,KAEzB,EAAE,kBAAkB,eAEtB,CAAC,aAAa;SAGR,CAAC,cAAc;AAAA;;"}
@@ -1,15 +0,0 @@
1
- import { diffQuery } from "@contember/client";
2
- import { useCallback } from "react";
3
- import { useSystemApiRequest } from "./useSystemApiRequest.js";
4
- import { useStageSlug } from "../project/useStageSlug.js";
5
- const useDiffQuery = () => {
6
- const [requestState, sendRequest] = useSystemApiRequest();
7
- const stage = useStageSlug();
8
- const sendQuery = useCallback((treeFilter) => sendRequest(diffQuery, {
9
- stage,
10
- filter: treeFilter
11
- }), [stage, sendRequest]);
12
- return [requestState, sendQuery];
13
- };
14
- export { useDiffQuery };
15
- //# sourceMappingURL=useDiffQuery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDiffQuery.js","sources":["../../../src/system/useDiffQuery.ts"],"sourcesContent":["import { diffQuery, DiffQueryResponse, TreeFilter } from '@contember/client'\nimport { useCallback } from 'react'\nimport type { ApiRequestState } from '../apiRequest'\nimport { useStageSlug } from '../project'\nimport { useSystemApiRequest } from './useSystemApiRequest'\n\nexport const useDiffQuery = (): [\n\tApiRequestState<DiffQueryResponse>,\n\t(treeFilter: TreeFilter[]) => Promise<DiffQueryResponse>,\n] => {\n\tconst [requestState, sendRequest] = useSystemApiRequest<DiffQueryResponse>()\n\tconst stage = useStageSlug()\n\tconst sendQuery = useCallback(\n\t\t(treeFilter: TreeFilter[]) =>\n\t\t\tsendRequest(diffQuery, {\n\t\t\t\tstage,\n\t\t\t\tfilter: treeFilter,\n\t\t\t}),\n\t\t[stage, sendRequest],\n\t)\n\n\treturn [requestState, sendQuery]\n}\n"],"names":[],"mappings":";;;;MAMa,eAAe,MAGvB;QACE,CAAC,cAAc,eAAe;QAC9B,QAAQ;QACR,YAAY,YACjB,CAAC,eACA,YAAY,WAAW;AAAA,IACtB;AAAA,IACA,QAAQ;AAAA,MAEV,CAAC,OAAO;SAGF,CAAC,cAAc;AAAA;;"}
@@ -1,15 +0,0 @@
1
- import { releaseTreeMutation } from "@contember/client";
2
- import { useCallback } from "react";
3
- import { useSystemApiRequest } from "./useSystemApiRequest.js";
4
- import { useStageSlug } from "../project/useStageSlug.js";
5
- const useReleaseTreeMutation = () => {
6
- const [requestState, sendRequest] = useSystemApiRequest();
7
- const stage = useStageSlug();
8
- const sendMutation = useCallback((treeFilter) => sendRequest(releaseTreeMutation, {
9
- stage,
10
- filter: treeFilter
11
- }), [stage, sendRequest]);
12
- return [requestState, sendMutation];
13
- };
14
- export { useReleaseTreeMutation };
15
- //# sourceMappingURL=useReleaseTreeMutation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useReleaseTreeMutation.js","sources":["../../../src/system/useReleaseTreeMutation.ts"],"sourcesContent":["import { releaseTreeMutation, ReleaseTreeMutationResponse, TreeFilter } from '@contember/client'\nimport { useCallback } from 'react'\nimport type { ApiRequestState } from '../apiRequest'\nimport { useStageSlug } from '../project'\nimport { useSystemApiRequest } from './useSystemApiRequest'\n\nexport const useReleaseTreeMutation = (): [\n\tApiRequestState<ReleaseTreeMutationResponse>,\n\t(treeFilter: TreeFilter[]) => Promise<ReleaseTreeMutationResponse>,\n] => {\n\tconst [requestState, sendRequest] = useSystemApiRequest<ReleaseTreeMutationResponse>()\n\tconst stage = useStageSlug()\n\tconst sendMutation = useCallback(\n\t\t(treeFilter: TreeFilter[]) =>\n\t\t\tsendRequest(releaseTreeMutation, {\n\t\t\t\tstage,\n\t\t\t\tfilter: treeFilter,\n\t\t\t}),\n\t\t[stage, sendRequest],\n\t)\n\n\treturn [requestState, sendMutation]\n}\n"],"names":[],"mappings":";;;;MAMa,yBAAyB,MAGjC;QACE,CAAC,cAAc,eAAe;QAC9B,QAAQ;QACR,eAAe,YACpB,CAAC,eACA,YAAY,qBAAqB;AAAA,IAChC;AAAA,IACA,QAAQ;AAAA,MAEV,CAAC,OAAO;SAGF,CAAC,cAAc;AAAA;;"}