@contember/react-client 0.8.0-alpha.10 → 0.8.0-alpha.2.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 (30) hide show
  1. package/dist/development/ContemberClient.js +3 -16
  2. package/dist/development/ContemberClient.js.map +1 -1
  3. package/dist/development/auth/useLoginRequest.js +18 -0
  4. package/dist/development/auth/useLoginRequest.js.map +1 -0
  5. package/dist/development/index.js +3 -2
  6. package/dist/development/index.js.map +1 -1
  7. package/dist/development/system/useDiffQuery.js +17 -0
  8. package/dist/development/system/useDiffQuery.js.map +1 -0
  9. package/dist/development/system/useReleaseTreeMutation.js +17 -0
  10. package/dist/development/system/useReleaseTreeMutation.js.map +1 -0
  11. package/dist/production/ContemberClient.js +3 -16
  12. package/dist/production/ContemberClient.js.map +1 -1
  13. package/dist/production/auth/useLoginRequest.js +16 -0
  14. package/dist/production/auth/useLoginRequest.js.map +1 -0
  15. package/dist/production/index.js +3 -2
  16. package/dist/production/index.js.map +1 -1
  17. package/dist/production/system/useDiffQuery.js +15 -0
  18. package/dist/production/system/useDiffQuery.js.map +1 -0
  19. package/dist/production/system/useReleaseTreeMutation.js +15 -0
  20. package/dist/production/system/useReleaseTreeMutation.js.map +1 -0
  21. package/dist/react-client.d.ts +10 -4
  22. package/package.json +2 -2
  23. package/dist/development/auth/SetSessionTokenContext.js +0 -8
  24. package/dist/development/auth/SetSessionTokenContext.js.map +0 -1
  25. package/dist/development/auth/useSetSessionToken.js +0 -7
  26. package/dist/development/auth/useSetSessionToken.js.map +0 -1
  27. package/dist/production/auth/SetSessionTokenContext.js +0 -6
  28. package/dist/production/auth/SetSessionTokenContext.js.map +0 -1
  29. package/dist/production/auth/useSetSessionToken.js +0 -5
  30. package/dist/production/auth/useSetSessionToken.js.map +0 -1
@@ -1,12 +1,10 @@
1
- import { memo, useState, useCallback, createElement } from 'react';
1
+ import { memo, 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';
5
4
  import { SessionTokenContext } from './auth/SessionTokenContext.js';
6
5
  import { ProjectSlugContext } from './project/ProjectSlugContext.js';
7
6
  import { StageSlugContext } from './project/StageSlugContext.js';
8
7
 
9
- const sessionTokenKey = "contember_session_token";
10
8
  const ContemberClient = memo(function ContemberClient2({
11
9
  apiBaseUrl,
12
10
  children,
@@ -15,28 +13,17 @@ const ContemberClient = memo(function ContemberClient2({
15
13
  sessionToken,
16
14
  stage
17
15
  }) {
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
- }, []);
27
16
  return /* @__PURE__ */ createElement(ApiBaseUrlContext.Provider, {
28
17
  value: apiBaseUrl
29
18
  }, /* @__PURE__ */ createElement(LoginTokenContext.Provider, {
30
19
  value: loginToken
31
- }, /* @__PURE__ */ createElement(SetSessionTokenContext.Provider, {
32
- value: setSessionToken
33
20
  }, /* @__PURE__ */ createElement(SessionTokenContext.Provider, {
34
- value: sessionTokenInner
21
+ value: sessionToken
35
22
  }, /* @__PURE__ */ createElement(ProjectSlugContext.Provider, {
36
23
  value: project
37
24
  }, /* @__PURE__ */ createElement(StageSlugContext.Provider, {
38
25
  value: stage
39
- }, children))))));
26
+ }, children)))));
40
27
  });
41
28
 
42
29
  export { ContemberClient };
@@ -1 +1 @@
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;;;;"}
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;;;;"}
@@ -0,0 +1,18 @@
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
@@ -0,0 +1 @@
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;;;;"}
@@ -5,9 +5,8 @@ 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 { SetSessionTokenContext } from './auth/SetSessionTokenContext.js';
8
+ export { useLoginRequest } from './auth/useLoginRequest.js';
9
9
  export { useSessionToken } from './auth/useSessionToken.js';
10
- export { useSetSessionToken } from './auth/useSetSessionToken.js';
11
10
  export { RichTextRenderer } from './components/RichTextRenderer/RichTextRenderer.js';
12
11
  export { RichTextRendererError } from './components/RichTextRenderer/RichTextRendererError.js';
13
12
  export { ApiBaseUrlContext } from './config/ApiBaseUrlContext.js';
@@ -22,6 +21,8 @@ export { StageSlugContext } from './project/StageSlugContext.js';
22
21
  export { useProjectSlug } from './project/useProjectSlug.js';
23
22
  export { useStageSlug } from './project/useStageSlug.js';
24
23
  export { useCurrentSystemGraphQlClient } from './system/useCurrentSystemGraphQlClient.js';
24
+ export { useDiffQuery } from './system/useDiffQuery.js';
25
+ export { useReleaseTreeMutation } from './system/useReleaseTreeMutation.js';
25
26
  export { useSystemApiRequest } from './system/useSystemApiRequest.js';
26
27
  export { useSystemGraphQlClient } from './system/useSystemGraphQlClient.js';
27
28
  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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,17 @@
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
@@ -0,0 +1 @@
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;;;;"}
@@ -0,0 +1,17 @@
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
@@ -0,0 +1 @@
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,11 +1,9 @@
1
- import { memo, useState, useCallback, createElement } from "react";
1
+ import { memo, 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";
5
4
  import { SessionTokenContext } from "./auth/SessionTokenContext.js";
6
5
  import { ProjectSlugContext } from "./project/ProjectSlugContext.js";
7
6
  import { StageSlugContext } from "./project/StageSlugContext.js";
8
- const sessionTokenKey = "contember_session_token";
9
7
  const ContemberClient = memo(function ContemberClient2({
10
8
  apiBaseUrl,
11
9
  children,
@@ -14,28 +12,17 @@ const ContemberClient = memo(function ContemberClient2({
14
12
  sessionToken,
15
13
  stage
16
14
  }) {
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
- }, []);
26
15
  return /* @__PURE__ */ createElement(ApiBaseUrlContext.Provider, {
27
16
  value: apiBaseUrl
28
17
  }, /* @__PURE__ */ createElement(LoginTokenContext.Provider, {
29
18
  value: loginToken
30
- }, /* @__PURE__ */ createElement(SetSessionTokenContext.Provider, {
31
- value: setSessionToken
32
19
  }, /* @__PURE__ */ createElement(SessionTokenContext.Provider, {
33
- value: sessionTokenInner
20
+ value: sessionToken
34
21
  }, /* @__PURE__ */ createElement(ProjectSlugContext.Provider, {
35
22
  value: project
36
23
  }, /* @__PURE__ */ createElement(StageSlugContext.Provider, {
37
24
  value: stage
38
- }, children))))));
25
+ }, children)))));
39
26
  });
40
27
  export { ContemberClient };
41
28
  //# sourceMappingURL=ContemberClient.js.map
@@ -1 +1 @@
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;;"}
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;;"}
@@ -0,0 +1,16 @@
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
@@ -0,0 +1 @@
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;;"}
@@ -5,9 +5,8 @@ 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 { SetSessionTokenContext } from "./auth/SetSessionTokenContext.js";
8
+ export { useLoginRequest } from "./auth/useLoginRequest.js";
9
9
  export { useSessionToken } from "./auth/useSessionToken.js";
10
- export { useSetSessionToken } from "./auth/useSetSessionToken.js";
11
10
  export { RichTextRenderer } from "./components/RichTextRenderer/RichTextRenderer.js";
12
11
  export { RichTextRendererError } from "./components/RichTextRenderer/RichTextRendererError.js";
13
12
  export { ApiBaseUrlContext } from "./config/ApiBaseUrlContext.js";
@@ -22,6 +21,8 @@ export { StageSlugContext } from "./project/StageSlugContext.js";
22
21
  export { useProjectSlug } from "./project/useProjectSlug.js";
23
22
  export { useStageSlug } from "./project/useStageSlug.js";
24
23
  export { useCurrentSystemGraphQlClient } from "./system/useCurrentSystemGraphQlClient.js";
24
+ export { useDiffQuery } from "./system/useDiffQuery.js";
25
+ export { useReleaseTreeMutation } from "./system/useReleaseTreeMutation.js";
25
26
  export { useSystemApiRequest } from "./system/useSystemApiRequest.js";
26
27
  export { useSystemGraphQlClient } from "./system/useSystemGraphQlClient.js";
27
28
  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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,15 @@
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
@@ -0,0 +1 @@
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;;"}
@@ -0,0 +1,15 @@
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
@@ -0,0 +1 @@
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;;"}
@@ -2,15 +2,19 @@
2
2
 
3
3
  import { ComponentType } from 'react';
4
4
  import { Context } from 'react';
5
+ import { DiffQueryResponse } from '@contember/client';
5
6
  import type { FileUploader } from '@contember/client';
6
7
  import type { FileUploadError } from '@contember/client';
7
8
  import { GraphQlClient } from '@contember/client';
8
9
  import type { GraphQlClientFailedRequestMetadata } from '@contember/client';
9
10
  import type { GraphQlClientRequestOptions } from '@contember/client';
10
11
  import type { GraphQlClientVariables } from '@contember/client';
12
+ import { LoginMutationResponse } from '@contember/client';
11
13
  import { NamedExoticComponent } from 'react';
12
14
  import { ReactElement } from 'react';
13
15
  import type { ReactNode } from 'react';
16
+ import { ReleaseTreeMutationResponse } from '@contember/client';
17
+ import { TreeFilter } from '@contember/client';
14
18
 
15
19
  export declare const ApiBaseUrlContext: Context<string | undefined>;
16
20
 
@@ -281,8 +285,6 @@ export declare interface RootEditorNode<CustomElements extends RichTextElement =
281
285
 
282
286
  export declare const SessionTokenContext: Context<string | undefined>;
283
287
 
284
- export declare const SetSessionTokenContext: Context<(token: string | undefined) => void>;
285
-
286
288
  export declare type SingleFileUploadState<Result = unknown, Metadata = undefined> = {
287
289
  readyState: 'initializing';
288
290
  abortController: AbortController;
@@ -339,17 +341,21 @@ export declare const useCurrentContentGraphQlClient: () => GraphQlClient;
339
341
 
340
342
  export declare const useCurrentSystemGraphQlClient: () => GraphQlClient;
341
343
 
344
+ export declare const useDiffQuery: () => [ApiRequestState<DiffQueryResponse>, (treeFilter: TreeFilter[]) => Promise<DiffQueryResponse>];
345
+
342
346
  export declare const useFileUpload: <Result = unknown, Metadata = undefined>(options?: FileUploadOptions | undefined) => FileUpload<Result, Metadata>;
343
347
 
344
348
  export declare const useGraphQlClient: (path: string) => GraphQlClient;
345
349
 
350
+ export declare const useLoginRequest: () => [ApiRequestState<LoginMutationResponse>, (email: string, password: string) => Promise<LoginMutationResponse>];
351
+
346
352
  export declare const useLoginToken: () => string | undefined;
347
353
 
348
354
  export declare const useProjectSlug: () => string | undefined;
349
355
 
350
- export declare const useSessionToken: () => string | undefined;
356
+ export declare const useReleaseTreeMutation: () => [ApiRequestState<ReleaseTreeMutationResponse>, (treeFilter: TreeFilter[]) => Promise<ReleaseTreeMutationResponse>];
351
357
 
352
- export declare const useSetSessionToken: () => (token: string | undefined) => void;
358
+ export declare const useSessionToken: () => string | undefined;
353
359
 
354
360
  export declare const useStageSlug: () => string | undefined;
355
361
 
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.8.0-alpha.10",
4
+ "version": "0.8.0-alpha.2.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.8.0-alpha.10"
21
+ "@contember/client": "0.8.0-alpha.2.10"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "react": "^17"
@@ -1,8 +0,0 @@
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
@@ -1 +0,0 @@
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;;;;"}
@@ -1,7 +0,0 @@
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
@@ -1 +0,0 @@
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;;;;"}
@@ -1,6 +0,0 @@
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
@@ -1 +0,0 @@
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;;"}
@@ -1,5 +0,0 @@
1
- import { useContext } from "react";
2
- import { SetSessionTokenContext } from "./SetSessionTokenContext.js";
3
- const useSetSessionToken = () => useContext(SetSessionTokenContext);
4
- export { useSetSessionToken };
5
- //# sourceMappingURL=useSetSessionToken.js.map
@@ -1 +0,0 @@
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;;"}