@webiny/app-graphql-playground 0.0.0-unstable.eb196ccd2f β†’ 0.0.0-unstable.f6dc066313

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.
package/README.md CHANGED
@@ -1 +1,11 @@
1
1
  # @webiny/app-graphql-playground
2
+
3
+ > [!NOTE]
4
+ > This package is part of the [Webiny](https://www.webiny.com) monorepo.
5
+ > It’s **included in every Webiny project by default** and is not meant to be used as a standalone package.
6
+
7
+ πŸ“˜ **Documentation:** [https://www.webiny.com/docs](https://www.webiny.com/docs)
8
+
9
+ ---
10
+
11
+ _This README file is automatically generated during the publish process._
package/index.js CHANGED
@@ -1,19 +1,33 @@
1
1
  import React, { memo } from "react";
2
2
  import { plugins } from "@webiny/plugins";
3
- import { AdminConfig, Layout } from "@webiny/app-admin";
4
- import Playground from "./plugins/Playground";
5
- import playgroundPlugins from "./plugins";
3
+ import { useRouter, AdminConfig, AdminLayout } from "@webiny/app-admin";
4
+ import { ReactComponent as ApiPlaygroundIcon } from "@webiny/icons/swap_horiz.svg";
5
+ import Playground from "./plugins/Playground.js";
6
+ import playgroundPlugins from "./plugins/index.js";
7
+ import { Routes } from "./routes.js";
6
8
  const {
7
- Route
9
+ Route,
10
+ Menu
8
11
  } = AdminConfig;
9
12
  const GraphQLPlaygroundExtension = ({
10
13
  createApolloClient
11
14
  }) => {
15
+ const router = useRouter();
12
16
  plugins.register(playgroundPlugins);
13
- return /*#__PURE__*/React.createElement(AdminConfig, null, /*#__PURE__*/React.createElement(Route, {
14
- name: "apiPlayground",
15
- path: "/api-playground",
16
- element: /*#__PURE__*/React.createElement(Layout, {
17
+ return /*#__PURE__*/React.createElement(AdminConfig, null, /*#__PURE__*/React.createElement(Menu.Support, {
18
+ pin: "start",
19
+ name: "api-playground",
20
+ element: /*#__PURE__*/React.createElement(Menu.Support.Link, {
21
+ text: "API Playground",
22
+ icon: /*#__PURE__*/React.createElement(Menu.Support.Link.Icon, {
23
+ label: "API Playground",
24
+ element: /*#__PURE__*/React.createElement(ApiPlaygroundIcon, null)
25
+ }),
26
+ to: router.getLink(Routes.ApiPlayground)
27
+ })
28
+ }), /*#__PURE__*/React.createElement(Route, {
29
+ route: Routes.ApiPlayground,
30
+ element: /*#__PURE__*/React.createElement(AdminLayout, {
17
31
  title: "API Playground"
18
32
  }, /*#__PURE__*/React.createElement(Playground, {
19
33
  createApolloClient: createApolloClient
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","plugins","AdminConfig","Layout","Playground","playgroundPlugins","Route","GraphQLPlaygroundExtension","createApolloClient","register","createElement","name","path","element","title","GraphQLPlayground"],"sources":["index.tsx"],"sourcesContent":["import React, { memo } from \"react\";\nimport type { ApolloClient } from \"apollo-client\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminConfig, Layout } from \"@webiny/app-admin\";\nimport Playground from \"./plugins/Playground\";\nimport playgroundPlugins from \"./plugins\";\n\nconst { Route } = AdminConfig;\n\ninterface CreateApolloClientParams {\n uri: string;\n}\n\ninterface GraphQLPlaygroundProps {\n createApolloClient(params: CreateApolloClientParams): ApolloClient<any>;\n}\n\nconst GraphQLPlaygroundExtension = ({ createApolloClient }: GraphQLPlaygroundProps) => {\n plugins.register(playgroundPlugins);\n\n return (\n <AdminConfig>\n <Route\n name={\"apiPlayground\"}\n path={\"/api-playground\"}\n element={\n <Layout title={\"API Playground\"}>\n <Playground createApolloClient={createApolloClient} />\n </Layout>\n }\n />\n </AdminConfig>\n );\n};\n\nexport const GraphQLPlayground = memo(GraphQLPlaygroundExtension);\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AAEnC,SAASC,OAAO,QAAQ,iBAAiB;AACzC,SAASC,WAAW,EAAEC,MAAM,QAAQ,mBAAmB;AACvD,OAAOC,UAAU;AACjB,OAAOC,iBAAiB;AAExB,MAAM;EAAEC;AAAM,CAAC,GAAGJ,WAAW;AAU7B,MAAMK,0BAA0B,GAAGA,CAAC;EAAEC;AAA2C,CAAC,KAAK;EACnFP,OAAO,CAACQ,QAAQ,CAACJ,iBAAiB,CAAC;EAEnC,oBACIN,KAAA,CAAAW,aAAA,CAACR,WAAW,qBACRH,KAAA,CAAAW,aAAA,CAACJ,KAAK;IACFK,IAAI,EAAE,eAAgB;IACtBC,IAAI,EAAE,iBAAkB;IACxBC,OAAO,eACHd,KAAA,CAAAW,aAAA,CAACP,MAAM;MAACW,KAAK,EAAE;IAAiB,gBAC5Bf,KAAA,CAAAW,aAAA,CAACN,UAAU;MAACI,kBAAkB,EAAEA;IAAmB,CAAE,CACjD;EACX,CACJ,CACQ,CAAC;AAEtB,CAAC;AAED,OAAO,MAAMO,iBAAiB,gBAAGf,IAAI,CAACO,0BAA0B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","plugins","useRouter","AdminConfig","AdminLayout","ReactComponent","ApiPlaygroundIcon","Playground","playgroundPlugins","Routes","Route","Menu","GraphQLPlaygroundExtension","createApolloClient","router","register","createElement","Support","pin","name","element","Link","text","icon","Icon","label","to","getLink","ApiPlayground","route","title","GraphQLPlayground"],"sources":["index.tsx"],"sourcesContent":["import React, { memo } from \"react\";\nimport type { ApolloClient } from \"apollo-client\";\nimport { plugins } from \"@webiny/plugins\";\nimport { useRouter, AdminConfig, AdminLayout } from \"@webiny/app-admin\";\nimport { ReactComponent as ApiPlaygroundIcon } from \"@webiny/icons/swap_horiz.svg\";\nimport Playground from \"./plugins/Playground.js\";\nimport playgroundPlugins from \"./plugins/index.js\";\nimport { Routes } from \"~/routes.js\";\n\nconst { Route, Menu } = AdminConfig;\n\ninterface CreateApolloClientParams {\n uri: string;\n}\n\ninterface GraphQLPlaygroundProps {\n createApolloClient(params: CreateApolloClientParams): ApolloClient<any>;\n}\n\nconst GraphQLPlaygroundExtension = ({ createApolloClient }: GraphQLPlaygroundProps) => {\n const router = useRouter();\n plugins.register(playgroundPlugins);\n\n return (\n <AdminConfig>\n <Menu.Support\n pin={\"start\"}\n name={\"api-playground\"}\n element={\n <Menu.Support.Link\n text={\"API Playground\"}\n icon={\n <Menu.Support.Link.Icon\n label=\"API Playground\"\n element={<ApiPlaygroundIcon />}\n />\n }\n to={router.getLink(Routes.ApiPlayground)}\n />\n }\n />\n\n <Route\n route={Routes.ApiPlayground}\n element={\n <AdminLayout title={\"API Playground\"}>\n <Playground createApolloClient={createApolloClient} />\n </AdminLayout>\n }\n />\n </AdminConfig>\n );\n};\n\nexport const GraphQLPlayground = memo(GraphQLPlaygroundExtension);\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AAEnC,SAASC,OAAO,QAAQ,iBAAiB;AACzC,SAASC,SAAS,EAAEC,WAAW,EAAEC,WAAW,QAAQ,mBAAmB;AACvE,SAASC,cAAc,IAAIC,iBAAiB,QAAQ,8BAA8B;AAClF,OAAOC,UAAU;AACjB,OAAOC,iBAAiB;AACxB,SAASC,MAAM;AAEf,MAAM;EAAEC,KAAK;EAAEC;AAAK,CAAC,GAAGR,WAAW;AAUnC,MAAMS,0BAA0B,GAAGA,CAAC;EAAEC;AAA2C,CAAC,KAAK;EACnF,MAAMC,MAAM,GAAGZ,SAAS,CAAC,CAAC;EAC1BD,OAAO,CAACc,QAAQ,CAACP,iBAAiB,CAAC;EAEnC,oBACIT,KAAA,CAAAiB,aAAA,CAACb,WAAW,qBACRJ,KAAA,CAAAiB,aAAA,CAACL,IAAI,CAACM,OAAO;IACTC,GAAG,EAAE,OAAQ;IACbC,IAAI,EAAE,gBAAiB;IACvBC,OAAO,eACHrB,KAAA,CAAAiB,aAAA,CAACL,IAAI,CAACM,OAAO,CAACI,IAAI;MACdC,IAAI,EAAE,gBAAiB;MACvBC,IAAI,eACAxB,KAAA,CAAAiB,aAAA,CAACL,IAAI,CAACM,OAAO,CAACI,IAAI,CAACG,IAAI;QACnBC,KAAK,EAAC,gBAAgB;QACtBL,OAAO,eAAErB,KAAA,CAAAiB,aAAA,CAACV,iBAAiB,MAAE;MAAE,CAClC,CACJ;MACDoB,EAAE,EAAEZ,MAAM,CAACa,OAAO,CAAClB,MAAM,CAACmB,aAAa;IAAE,CAC5C;EACJ,CACJ,CAAC,eAEF7B,KAAA,CAAAiB,aAAA,CAACN,KAAK;IACFmB,KAAK,EAAEpB,MAAM,CAACmB,aAAc;IAC5BR,OAAO,eACHrB,KAAA,CAAAiB,aAAA,CAACZ,WAAW;MAAC0B,KAAK,EAAE;IAAiB,gBACjC/B,KAAA,CAAAiB,aAAA,CAACT,UAAU;MAACM,kBAAkB,EAAEA;IAAmB,CAAE,CAC5C;EAChB,CACJ,CACQ,CAAC;AAEtB,CAAC;AAED,OAAO,MAAMkB,iBAAiB,gBAAG/B,IAAI,CAACY,0BAA0B,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@webiny/app-graphql-playground",
3
- "version": "0.0.0-unstable.eb196ccd2f",
3
+ "version": "0.0.0-unstable.f6dc066313",
4
+ "type": "module",
4
5
  "main": "index.js",
5
6
  "repository": {
6
7
  "type": "git",
@@ -11,37 +12,32 @@
11
12
  "dependencies": {
12
13
  "@emotion/react": "11.10.8",
13
14
  "@emotion/styled": "11.10.6",
14
- "@webiny/app": "0.0.0-unstable.eb196ccd2f",
15
- "@webiny/app-admin": "0.0.0-unstable.eb196ccd2f",
16
- "@webiny/app-i18n": "0.0.0-unstable.eb196ccd2f",
17
- "@webiny/app-security": "0.0.0-unstable.eb196ccd2f",
18
- "@webiny/plugins": "0.0.0-unstable.eb196ccd2f",
19
- "@webiny/ui": "0.0.0-unstable.eb196ccd2f",
15
+ "@webiny/app": "0.0.0-unstable.f6dc066313",
16
+ "@webiny/app-admin": "0.0.0-unstable.f6dc066313",
17
+ "@webiny/icons": "0.0.0-unstable.f6dc066313",
18
+ "@webiny/plugins": "0.0.0-unstable.f6dc066313",
19
+ "@webiny/ui": "0.0.0-unstable.f6dc066313",
20
20
  "apollo-cache": "1.3.5",
21
21
  "apollo-client": "2.6.10",
22
22
  "apollo-link": "1.2.14",
23
23
  "apollo-link-context": "1.0.20",
24
24
  "apollo-utilities": "1.3.4",
25
- "graphql": "15.9.0",
25
+ "graphql": "16.13.0",
26
26
  "load-script": "1.0.0",
27
27
  "prop-types": "15.8.1",
28
28
  "react": "18.2.0",
29
29
  "react-dom": "18.2.0"
30
30
  },
31
31
  "devDependencies": {
32
- "@emotion/babel-plugin": "11.11.0",
33
- "@webiny/project-utils": "0.0.0-unstable.eb196ccd2f",
34
- "rimraf": "6.0.1",
35
- "typescript": "5.3.3"
32
+ "@emotion/babel-plugin": "11.13.5",
33
+ "@webiny/build-tools": "0.0.0-unstable.f6dc066313",
34
+ "rimraf": "6.1.3",
35
+ "typescript": "5.9.3"
36
36
  },
37
37
  "publishConfig": {
38
38
  "access": "public",
39
39
  "directory": "dist"
40
40
  },
41
- "scripts": {
42
- "build": "node ../cli/bin.js run build",
43
- "watch": "node ../cli/bin.js run watch"
44
- },
45
41
  "adio": {
46
42
  "ignore": {
47
43
  "src": [
@@ -52,5 +48,5 @@
52
48
  ]
53
49
  }
54
50
  },
55
- "gitHead": "eb196ccd2f32296e10f7add6dd7220d4e3abece4"
51
+ "gitHead": "f6dc066313ddce5339d2aacec3aa84e61232689b"
56
52
  }
@@ -8,13 +8,12 @@ import { setContext } from "apollo-link-context";
8
8
  import loadScript from "load-script";
9
9
  import { Global } from "@emotion/react";
10
10
  import { plugins } from "@webiny/plugins";
11
- import { useI18N } from "@webiny/app-i18n/hooks/useI18N";
12
- import { useSecurity } from "@webiny/app-security";
13
- import { CircularProgress } from "@webiny/ui/Progress";
14
- import { playgroundDialog, PlaygroundContainer } from "./Playground.styles";
15
- import { settings } from "./settings";
16
- import { config as appConfig } from "@webiny/app/config";
17
- import { ORIGINAL_GQL_PLAYGROUND_URL, PATCHED_GQL_PLAYGROUND_URL } from "./constants";
11
+ import { useIdentity } from "@webiny/app-admin";
12
+ import { CircularProgress } from "@webiny/ui/Progress/index.js";
13
+ import { playgroundDialog, PlaygroundContainer } from "./Playground.styles.js";
14
+ import { settings } from "./settings.js";
15
+ import { config as appConfig } from "@webiny/app/config.js";
16
+ import { ORIGINAL_GQL_PLAYGROUND_URL, PATCHED_GQL_PLAYGROUND_URL } from "./constants.js";
18
17
  const withHeaders = (link, headers) => {
19
18
  return ApolloLink.from([setContext(async (_, req) => {
20
19
  return {
@@ -43,16 +42,11 @@ const Playground = ({
43
42
  createApolloClient
44
43
  }) => {
45
44
  const [loading, setLoading] = useState(true);
46
- const {
47
- getCurrentLocale
48
- } = useI18N();
49
45
  const {
50
46
  identity
51
- } = useSecurity();
47
+ } = useIdentity();
52
48
  const links = useRef({});
53
- const locale = getCurrentLocale("content");
54
49
  const tabs = plugins.byType("graphql-playground-tab").map(pl => pl.tab({
55
- locale: locale,
56
50
  identity: identity
57
51
  })).filter(Boolean);
58
52
  const createApolloLink = useCallback(({
@@ -1 +1 @@
1
- {"version":3,"names":["React","Fragment","useEffect","useRef","useCallback","useState","ApolloLink","setContext","loadScript","Global","plugins","useI18N","useSecurity","CircularProgress","playgroundDialog","PlaygroundContainer","settings","config","appConfig","ORIGINAL_GQL_PLAYGROUND_URL","PATCHED_GQL_PLAYGROUND_URL","withHeaders","link","headers","from","_","req","initScripts","Promise","resolve","window","GraphQLPlayground","err","Playground","createApolloClient","loading","setLoading","getCurrentLocale","identity","links","locale","tabs","byType","map","pl","tab","filter","Boolean","createApolloLink","endpoint","current","apiUrl","getKey","process","env","REACT_APP_API_URL","includes","Object","values","uri","then","init","document","getElementById","createElement","label","id","styles"],"sources":["Playground.tsx"],"sourcesContent":["import React, { Fragment, useEffect, useRef, useCallback, useState } from \"react\";\nimport { ApolloLink } from \"apollo-link\";\nimport { setContext } from \"apollo-link-context\";\n/**\n * Package load-script does not have types.\n */\n// @ts-expect-error\nimport loadScript from \"load-script\";\nimport { Global } from \"@emotion/react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { useI18N } from \"@webiny/app-i18n/hooks/useI18N\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { playgroundDialog, PlaygroundContainer } from \"./Playground.styles\";\nimport { settings } from \"./settings\";\nimport { config as appConfig } from \"@webiny/app/config\";\nimport type ApolloClient from \"apollo-client\";\nimport type { GraphQLPlaygroundTabPlugin } from \"~/types\";\nimport type { SecurityIdentity } from \"@webiny/app-security/types\";\nimport { ORIGINAL_GQL_PLAYGROUND_URL, PATCHED_GQL_PLAYGROUND_URL } from \"./constants\";\n\nconst withHeaders = (link: ApolloLink, headers: Record<string, string>): ApolloLink => {\n return ApolloLink.from([\n setContext(async (_, req) => {\n return {\n headers: {\n ...req.headers,\n ...headers\n }\n };\n }),\n link\n ]);\n};\n\nconst initScripts = () => {\n return new Promise((resolve: any) => {\n // @ts-expect-error\n if (window.GraphQLPlayground) {\n return resolve();\n }\n\n loadScript(PATCHED_GQL_PLAYGROUND_URL, (err: Error) => {\n if (err) {\n return loadScript(ORIGINAL_GQL_PLAYGROUND_URL, resolve);\n }\n\n resolve();\n });\n });\n};\n\ninterface CreateApolloClientParams {\n uri: string;\n}\n\ninterface PlaygroundProps {\n createApolloClient: (params: CreateApolloClientParams) => ApolloClient<any>;\n}\n\ninterface CreateApolloLinkCallableParams {\n endpoint: string;\n headers: Record<string, string>;\n}\n\ninterface CreateApolloLinkCallableResult {\n link: ApolloLink;\n}\n\ninterface CreateApolloLinkCallable {\n (params: CreateApolloLinkCallableParams): CreateApolloLinkCallableResult;\n}\n\nconst Playground = ({ createApolloClient }: PlaygroundProps) => {\n const [loading, setLoading] = useState(true);\n const { getCurrentLocale } = useI18N();\n const { identity } = useSecurity();\n const links = useRef<Record<string, ApolloLink>>({});\n\n const locale = getCurrentLocale(\"content\");\n\n const tabs = plugins\n .byType<GraphQLPlaygroundTabPlugin>(\"graphql-playground-tab\")\n .map(pl =>\n pl.tab({\n locale: locale as string,\n identity: identity as SecurityIdentity\n })\n )\n .filter(Boolean);\n\n const createApolloLink = useCallback<CreateApolloLinkCallable>(({ endpoint, headers }) => {\n const current = links.current;\n // If the request endpoint is not know to us, return the first available\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL) as string;\n if (!endpoint.includes(apiUrl)) {\n return { link: withHeaders(Object.values(current)[0], headers) };\n }\n\n if (!current[endpoint]) {\n current[endpoint] = createApolloClient({ uri: endpoint }).link;\n }\n\n return {\n link: withHeaders(current[endpoint], headers)\n };\n }, []);\n\n useEffect(() => {\n initScripts().then(() => {\n setLoading(false);\n });\n }, []);\n\n useEffect(() => {\n if (!loading) {\n // @ts-expect-error\n window.GraphQLPlayground.init(document.getElementById(\"graphql-playground\"), {\n tabs,\n createApolloLink,\n settings\n });\n }\n }, [loading]);\n\n return (\n <Fragment>\n {loading ? (\n <CircularProgress label={\"Loading playground...\"} />\n ) : (\n <PlaygroundContainer id={\"graphql-playground\"} />\n )}\n <Global styles={playgroundDialog} />\n </Fragment>\n );\n};\n\nexport default Playground;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,EAAEC,MAAM,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AACjF,SAASC,UAAU,QAAQ,aAAa;AACxC,SAASC,UAAU,QAAQ,qBAAqB;AAChD;AACA;AACA;AACA;AACA,OAAOC,UAAU,MAAM,aAAa;AACpC,SAASC,MAAM,QAAQ,gBAAgB;AACvC,SAASC,OAAO,QAAQ,iBAAiB;AACzC,SAASC,OAAO,QAAQ,gCAAgC;AACxD,SAASC,WAAW,QAAQ,sBAAsB;AAClD,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,gBAAgB,EAAEC,mBAAmB;AAC9C,SAASC,QAAQ;AACjB,SAASC,MAAM,IAAIC,SAAS,QAAQ,oBAAoB;AAIxD,SAASC,2BAA2B,EAAEC,0BAA0B;AAEhE,MAAMC,WAAW,GAAGA,CAACC,IAAgB,EAAEC,OAA+B,KAAiB;EACnF,OAAOjB,UAAU,CAACkB,IAAI,CAAC,CACnBjB,UAAU,CAAC,OAAOkB,CAAC,EAAEC,GAAG,KAAK;IACzB,OAAO;MACHH,OAAO,EAAE;QACL,GAAGG,GAAG,CAACH,OAAO;QACd,GAAGA;MACP;IACJ,CAAC;EACL,CAAC,CAAC,EACFD,IAAI,CACP,CAAC;AACN,CAAC;AAED,MAAMK,WAAW,GAAGA,CAAA,KAAM;EACtB,OAAO,IAAIC,OAAO,CAAEC,OAAY,IAAK;IACjC;IACA,IAAIC,MAAM,CAACC,iBAAiB,EAAE;MAC1B,OAAOF,OAAO,CAAC,CAAC;IACpB;IAEArB,UAAU,CAACY,0BAA0B,EAAGY,GAAU,IAAK;MACnD,IAAIA,GAAG,EAAE;QACL,OAAOxB,UAAU,CAACW,2BAA2B,EAAEU,OAAO,CAAC;MAC3D;MAEAA,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAuBD,MAAMI,UAAU,GAAGA,CAAC;EAAEC;AAAoC,CAAC,KAAK;EAC5D,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG/B,QAAQ,CAAC,IAAI,CAAC;EAC5C,MAAM;IAAEgC;EAAiB,CAAC,GAAG1B,OAAO,CAAC,CAAC;EACtC,MAAM;IAAE2B;EAAS,CAAC,GAAG1B,WAAW,CAAC,CAAC;EAClC,MAAM2B,KAAK,GAAGpC,MAAM,CAA6B,CAAC,CAAC,CAAC;EAEpD,MAAMqC,MAAM,GAAGH,gBAAgB,CAAC,SAAS,CAAC;EAE1C,MAAMI,IAAI,GAAG/B,OAAO,CACfgC,MAAM,CAA6B,wBAAwB,CAAC,CAC5DC,GAAG,CAACC,EAAE,IACHA,EAAE,CAACC,GAAG,CAAC;IACHL,MAAM,EAAEA,MAAgB;IACxBF,QAAQ,EAAEA;EACd,CAAC,CACL,CAAC,CACAQ,MAAM,CAACC,OAAO,CAAC;EAEpB,MAAMC,gBAAgB,GAAG5C,WAAW,CAA2B,CAAC;IAAE6C,QAAQ;IAAE1B;EAAQ,CAAC,KAAK;IACtF,MAAM2B,OAAO,GAAGX,KAAK,CAACW,OAAO;IAC7B;IACA,MAAMC,MAAM,GAAGjC,SAAS,CAACkC,MAAM,CAAC,SAAS,EAAEC,OAAO,CAACC,GAAG,CAACC,iBAAiB,CAAW;IACnF,IAAI,CAACN,QAAQ,CAACO,QAAQ,CAACL,MAAM,CAAC,EAAE;MAC5B,OAAO;QAAE7B,IAAI,EAAED,WAAW,CAACoC,MAAM,CAACC,MAAM,CAACR,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE3B,OAAO;MAAE,CAAC;IACpE;IAEA,IAAI,CAAC2B,OAAO,CAACD,QAAQ,CAAC,EAAE;MACpBC,OAAO,CAACD,QAAQ,CAAC,GAAGf,kBAAkB,CAAC;QAAEyB,GAAG,EAAEV;MAAS,CAAC,CAAC,CAAC3B,IAAI;IAClE;IAEA,OAAO;MACHA,IAAI,EAAED,WAAW,CAAC6B,OAAO,CAACD,QAAQ,CAAC,EAAE1B,OAAO;IAChD,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAENrB,SAAS,CAAC,MAAM;IACZyB,WAAW,CAAC,CAAC,CAACiC,IAAI,CAAC,MAAM;MACrBxB,UAAU,CAAC,KAAK,CAAC;IACrB,CAAC,CAAC;EACN,CAAC,EAAE,EAAE,CAAC;EAENlC,SAAS,CAAC,MAAM;IACZ,IAAI,CAACiC,OAAO,EAAE;MACV;MACAL,MAAM,CAACC,iBAAiB,CAAC8B,IAAI,CAACC,QAAQ,CAACC,cAAc,CAAC,oBAAoB,CAAC,EAAE;QACzEtB,IAAI;QACJO,gBAAgB;QAChBhC;MACJ,CAAC,CAAC;IACN;EACJ,CAAC,EAAE,CAACmB,OAAO,CAAC,CAAC;EAEb,oBACInC,KAAA,CAAAgE,aAAA,CAAC/D,QAAQ,QACJkC,OAAO,gBACJnC,KAAA,CAAAgE,aAAA,CAACnD,gBAAgB;IAACoD,KAAK,EAAE;EAAwB,CAAE,CAAC,gBAEpDjE,KAAA,CAAAgE,aAAA,CAACjD,mBAAmB;IAACmD,EAAE,EAAE;EAAqB,CAAE,CACnD,eACDlE,KAAA,CAAAgE,aAAA,CAACvD,MAAM;IAAC0D,MAAM,EAAErD;EAAiB,CAAE,CAC7B,CAAC;AAEnB,CAAC;AAED,eAAemB,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["React","Fragment","useEffect","useRef","useCallback","useState","ApolloLink","setContext","loadScript","Global","plugins","useIdentity","CircularProgress","playgroundDialog","PlaygroundContainer","settings","config","appConfig","ORIGINAL_GQL_PLAYGROUND_URL","PATCHED_GQL_PLAYGROUND_URL","withHeaders","link","headers","from","_","req","initScripts","Promise","resolve","window","GraphQLPlayground","err","Playground","createApolloClient","loading","setLoading","identity","links","tabs","byType","map","pl","tab","filter","Boolean","createApolloLink","endpoint","current","apiUrl","getKey","process","env","REACT_APP_API_URL","includes","Object","values","uri","then","init","document","getElementById","createElement","label","id","styles"],"sources":["Playground.tsx"],"sourcesContent":["import React, { Fragment, useEffect, useRef, useCallback, useState } from \"react\";\nimport { ApolloLink } from \"apollo-link\";\nimport { setContext } from \"apollo-link-context\";\n/**\n * Package load-script does not have types.\n */\n// @ts-expect-error\nimport loadScript from \"load-script\";\nimport { Global } from \"@emotion/react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { useIdentity } from \"@webiny/app-admin\";\nimport type { Identity } from \"@webiny/app-admin/domain/Identity.js\";\nimport { CircularProgress } from \"@webiny/ui/Progress/index.js\";\nimport { playgroundDialog, PlaygroundContainer } from \"./Playground.styles.js\";\nimport { settings } from \"./settings.js\";\nimport { config as appConfig } from \"@webiny/app/config.js\";\nimport type ApolloClient from \"apollo-client\";\nimport type { GraphQLPlaygroundTabPlugin } from \"~/types.js\";\nimport { ORIGINAL_GQL_PLAYGROUND_URL, PATCHED_GQL_PLAYGROUND_URL } from \"./constants.js\";\n\nconst withHeaders = (link: ApolloLink, headers: Record<string, string>): ApolloLink => {\n return ApolloLink.from([\n setContext(async (_, req) => {\n return {\n headers: {\n ...req.headers,\n ...headers\n }\n };\n }),\n link\n ]);\n};\n\nconst initScripts = () => {\n return new Promise((resolve: any) => {\n // @ts-expect-error\n if (window.GraphQLPlayground) {\n return resolve();\n }\n\n loadScript(PATCHED_GQL_PLAYGROUND_URL, (err: Error) => {\n if (err) {\n return loadScript(ORIGINAL_GQL_PLAYGROUND_URL, resolve);\n }\n\n resolve();\n });\n });\n};\n\ninterface CreateApolloClientParams {\n uri: string;\n}\n\ninterface PlaygroundProps {\n createApolloClient: (params: CreateApolloClientParams) => ApolloClient<any>;\n}\n\ninterface CreateApolloLinkCallableParams {\n endpoint: string;\n headers: Record<string, string>;\n}\n\ninterface CreateApolloLinkCallableResult {\n link: ApolloLink;\n}\n\ninterface CreateApolloLinkCallable {\n (params: CreateApolloLinkCallableParams): CreateApolloLinkCallableResult;\n}\n\nconst Playground = ({ createApolloClient }: PlaygroundProps) => {\n const [loading, setLoading] = useState(true);\n const { identity } = useIdentity();\n const links = useRef<Record<string, ApolloLink>>({});\n\n const tabs = plugins\n .byType<GraphQLPlaygroundTabPlugin>(\"graphql-playground-tab\")\n .map(pl =>\n pl.tab({\n identity: identity as Identity\n })\n )\n .filter(Boolean);\n\n const createApolloLink = useCallback<CreateApolloLinkCallable>(({ endpoint, headers }) => {\n const current = links.current;\n // If the request endpoint is not know to us, return the first available\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL) as string;\n if (!endpoint.includes(apiUrl)) {\n return { link: withHeaders(Object.values(current)[0], headers) };\n }\n\n if (!current[endpoint]) {\n current[endpoint] = createApolloClient({ uri: endpoint }).link;\n }\n\n return {\n link: withHeaders(current[endpoint], headers)\n };\n }, []);\n\n useEffect(() => {\n initScripts().then(() => {\n setLoading(false);\n });\n }, []);\n\n useEffect(() => {\n if (!loading) {\n // @ts-expect-error\n window.GraphQLPlayground.init(document.getElementById(\"graphql-playground\"), {\n tabs,\n createApolloLink,\n settings\n });\n }\n }, [loading]);\n\n return (\n <Fragment>\n {loading ? (\n <CircularProgress label={\"Loading playground...\"} />\n ) : (\n <PlaygroundContainer id={\"graphql-playground\"} />\n )}\n <Global styles={playgroundDialog} />\n </Fragment>\n );\n};\n\nexport default Playground;\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,6 @@
1
- /// <reference types="react" />
2
1
  export declare const PlaygroundContainer: import("@emotion/styled").StyledComponent<{
3
- theme?: import("@emotion/react").Theme | undefined;
4
- as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
2
+ theme?: import("@emotion/react").Theme;
3
+ as?: React.ElementType;
5
4
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
6
5
  export declare const playgroundDialog: {
7
6
  ".ReactModalPortal": {
@@ -1,3 +1,3 @@
1
- import type { GraphQLPlaygroundTabPlugin } from "../types";
1
+ import type { GraphQLPlaygroundTabPlugin } from "../types.js";
2
2
  declare const _default: GraphQLPlaygroundTabPlugin[];
3
3
  export default _default;
package/plugins/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // @ts-expect-error
2
2
  import placeholder from "!!raw-loader!./placeholder.graphql";
3
- import { config as appConfig } from "@webiny/app/config";
3
+ import { config as appConfig } from "@webiny/app/config.js";
4
4
  const plugin = {
5
5
  type: "graphql-playground-tab",
6
6
  tab() {
@@ -1 +1 @@
1
- {"version":3,"names":["placeholder","config","appConfig","plugin","type","tab","apiUrl","getKey","process","env","REACT_APP_API_URL","name","endpoint","headers","query"],"sources":["index.tsx"],"sourcesContent":["import type { GraphQLPlaygroundTabPlugin } from \"~/types\";\n// @ts-expect-error\nimport placeholder from \"!!raw-loader!./placeholder.graphql\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nconst plugin: GraphQLPlaygroundTabPlugin = {\n type: \"graphql-playground-tab\",\n tab() {\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL) as string;\n return {\n name: \"Main API\",\n endpoint: apiUrl + \"/graphql\",\n headers: {},\n query: placeholder\n };\n }\n};\nexport default [plugin];\n"],"mappings":"AACA;AACA,OAAOA,WAAW,MAAM,oCAAoC;AAC5D,SAASC,MAAM,IAAIC,SAAS,QAAQ,oBAAoB;AAExD,MAAMC,MAAkC,GAAG;EACvCC,IAAI,EAAE,wBAAwB;EAC9BC,GAAGA,CAAA,EAAG;IACF,MAAMC,MAAM,GAAGJ,SAAS,CAACK,MAAM,CAAC,SAAS,EAAEC,OAAO,CAACC,GAAG,CAACC,iBAAiB,CAAW;IACnF,OAAO;MACHC,IAAI,EAAE,UAAU;MAChBC,QAAQ,EAAEN,MAAM,GAAG,UAAU;MAC7BO,OAAO,EAAE,CAAC,CAAC;MACXC,KAAK,EAAEd;IACX,CAAC;EACL;AACJ,CAAC;AACD,eAAe,CAACG,MAAM,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["placeholder","config","appConfig","plugin","type","tab","apiUrl","getKey","process","env","REACT_APP_API_URL","name","endpoint","headers","query"],"sources":["index.tsx"],"sourcesContent":["import type { GraphQLPlaygroundTabPlugin } from \"~/types.js\";\n// @ts-expect-error\nimport placeholder from \"!!raw-loader!./placeholder.graphql\";\nimport { config as appConfig } from \"@webiny/app/config.js\";\n\nconst plugin: GraphQLPlaygroundTabPlugin = {\n type: \"graphql-playground-tab\",\n tab() {\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL) as string;\n return {\n name: \"Main API\",\n endpoint: apiUrl + \"/graphql\",\n headers: {},\n query: placeholder\n };\n }\n};\nexport default [plugin];\n"],"mappings":"AACA;AACA,OAAOA,WAAW,MAAM,oCAAoC;AAC5D,SAASC,MAAM,IAAIC,SAAS,QAAQ,uBAAuB;AAE3D,MAAMC,MAAkC,GAAG;EACvCC,IAAI,EAAE,wBAAwB;EAC9BC,GAAGA,CAAA,EAAG;IACF,MAAMC,MAAM,GAAGJ,SAAS,CAACK,MAAM,CAAC,SAAS,EAAEC,OAAO,CAACC,GAAG,CAACC,iBAAiB,CAAW;IACnF,OAAO;MACHC,IAAI,EAAE,UAAU;MAChBC,QAAQ,EAAEN,MAAM,GAAG,UAAU;MAC7BO,OAAO,EAAE,CAAC,CAAC;MACXC,KAAK,EAAEd;IACX,CAAC;EACL;AACJ,CAAC;AACD,eAAe,CAACG,MAAM,CAAC","ignoreList":[]}
package/routes.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ import { Route } from "@webiny/app-admin";
2
+ export declare const Routes: {
3
+ ApiPlayground: Route<undefined>;
4
+ };
package/routes.js ADDED
@@ -0,0 +1,9 @@
1
+ import { Route } from "@webiny/app-admin";
2
+ export const Routes = {
3
+ ApiPlayground: new Route({
4
+ name: "ApiPlayground",
5
+ path: "/api-playground"
6
+ })
7
+ };
8
+
9
+ //# sourceMappingURL=routes.js.map
package/routes.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Route","Routes","ApiPlayground","name","path"],"sources":["routes.ts"],"sourcesContent":["import { Route } from \"@webiny/app-admin\";\n\nexport const Routes = {\n ApiPlayground: new Route({\n name: \"ApiPlayground\",\n path: \"/api-playground\"\n })\n};\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,mBAAmB;AAEzC,OAAO,MAAMC,MAAM,GAAG;EAClBC,aAAa,EAAE,IAAIF,KAAK,CAAC;IACrBG,IAAI,EAAE,eAAe;IACrBC,IAAI,EAAE;EACV,CAAC;AACL,CAAC","ignoreList":[]}
package/types.d.ts CHANGED
@@ -1,8 +1,7 @@
1
- import type { Plugin } from "@webiny/plugins/types";
2
- import type { SecurityIdentity } from "@webiny/app-security/types";
1
+ import type { Identity } from "@webiny/app-admin/domain/Identity.js";
2
+ import type { Plugin } from "@webiny/plugins/types.js";
3
3
  export interface GraphQLPlaygroundTabParams {
4
- locale: string;
5
- identity: SecurityIdentity;
4
+ identity: Identity;
6
5
  }
7
6
  export interface GraphQLPlaygroundTab {
8
7
  name: string;
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { Plugin } from \"@webiny/plugins/types\";\nimport type { SecurityIdentity } from \"@webiny/app-security/types\";\n\nexport interface GraphQLPlaygroundTabParams {\n locale: string;\n identity: SecurityIdentity;\n}\nexport interface GraphQLPlaygroundTab {\n name: string;\n endpoint: string;\n headers: Record<string, string>;\n query: string;\n}\n\nexport type GraphQLPlaygroundTabPlugin = Plugin<{\n type: \"graphql-playground-tab\";\n tab: (params: GraphQLPlaygroundTabParams) => GraphQLPlaygroundTab | null;\n}>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { Identity } from \"@webiny/app-admin/domain/Identity.js\";\nimport type { Plugin } from \"@webiny/plugins/types.js\";\n\nexport interface GraphQLPlaygroundTabParams {\n identity: Identity;\n}\nexport interface GraphQLPlaygroundTab {\n name: string;\n endpoint: string;\n headers: Record<string, string>;\n query: string;\n}\n\nexport type GraphQLPlaygroundTabPlugin = Plugin<{\n type: \"graphql-playground-tab\";\n tab: (params: GraphQLPlaygroundTabParams) => GraphQLPlaygroundTab | null;\n}>;\n"],"mappings":"","ignoreList":[]}