@contember/interface 1.3.0-alpha.25 → 1.3.0-alpha.27

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 (40) hide show
  1. package/dist/development/bootstrap/ApplicationEntrypoint.cjs +8 -8
  2. package/dist/development/bootstrap/ApplicationEntrypoint.cjs.map +1 -1
  3. package/dist/development/bootstrap/ApplicationEntrypoint.js +10 -10
  4. package/dist/development/bootstrap/ApplicationEntrypoint.js.map +1 -1
  5. package/dist/development/hooks/useIsApplicationOutdated.cjs +55 -0
  6. package/dist/development/hooks/useIsApplicationOutdated.cjs.map +1 -0
  7. package/dist/development/hooks/useIsApplicationOutdated.js +55 -0
  8. package/dist/development/hooks/useIsApplicationOutdated.js.map +1 -0
  9. package/dist/development/index.cjs +2 -0
  10. package/dist/development/index.cjs.map +1 -1
  11. package/dist/development/index.js +3 -1
  12. package/dist/development/index.js.map +1 -1
  13. package/dist/production/bootstrap/ApplicationEntrypoint.cjs +3 -3
  14. package/dist/production/bootstrap/ApplicationEntrypoint.cjs.map +1 -1
  15. package/dist/production/bootstrap/ApplicationEntrypoint.js +5 -5
  16. package/dist/production/bootstrap/ApplicationEntrypoint.js.map +1 -1
  17. package/dist/production/hooks/useIsApplicationOutdated.cjs +55 -0
  18. package/dist/production/hooks/useIsApplicationOutdated.cjs.map +1 -0
  19. package/dist/production/hooks/useIsApplicationOutdated.js +55 -0
  20. package/dist/production/hooks/useIsApplicationOutdated.js.map +1 -0
  21. package/dist/production/index.cjs +2 -0
  22. package/dist/production/index.cjs.map +1 -1
  23. package/dist/production/index.js +3 -1
  24. package/dist/production/index.js.map +1 -1
  25. package/dist/types/bootstrap/ApplicationEntrypoint.d.ts.map +1 -1
  26. package/dist/types/bootstrap/DataViewPageNameKeyProvider.d.ts.map +1 -1
  27. package/dist/types/components/binding/EntityBeforePersist.d.ts.map +1 -1
  28. package/dist/types/components/binding/RedirectOnPersist.d.ts.map +1 -1
  29. package/dist/types/hooks/index.d.ts +2 -0
  30. package/dist/types/hooks/index.d.ts.map +1 -0
  31. package/dist/types/hooks/useIsApplicationOutdated.d.ts +4 -0
  32. package/dist/types/hooks/useIsApplicationOutdated.d.ts.map +1 -0
  33. package/dist/types/index.d.ts +1 -0
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/dist/types/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +12 -12
  37. package/src/bootstrap/ApplicationEntrypoint.tsx +20 -20
  38. package/src/hooks/index.ts +1 -0
  39. package/src/hooks/useIsApplicationOutdated.ts +62 -0
  40. package/src/index.ts +1 -0
@@ -19,7 +19,7 @@ const ApplicationEntrypoint = (props) => {
19
19
  routes: props.routes ?? { index: { path: "/" } },
20
20
  defaultDimensions: rootEnv.getAllDimensions()
21
21
  };
22
- return /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactBinding.EnvironmentContext.Provider, { value: rootEnv, children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactRouting.RoutingContext.Provider, { value: routing, children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactRouting.RequestProvider, { children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(
22
+ return /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactBinding.EnvironmentContext.Provider, { value: rootEnv, children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactRouting.RoutingProvider, { ...routing, children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(
23
23
  reactClient.ContemberClient,
24
24
  {
25
25
  apiBaseUrl: props.apiBaseUrl,
@@ -27,7 +27,7 @@ const ApplicationEntrypoint = (props) => {
27
27
  loginToken: props.loginToken,
28
28
  project: props.project,
29
29
  stage: props.stage,
30
- children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactBinding.EnvironmentExtensionProvider, { extension: reactIdentity.projectEnvironmentExtension, state: props.project ?? null, children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(DataViewPageNameKeyProvider.DataViewPageNameKeyProvider, { children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactIdentity.IdentityProvider, { children: props.children }, void 0, false, {
30
+ children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactBinding.EnvironmentExtensionProvider, { extension: reactIdentity.projectEnvironmentExtension, state: props.project ?? null, children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(DataViewPageNameKeyProvider.DataViewPageNameKeyProvider, { children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactIdentity.IdentityProvider, { children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactIdentity.IdentityEnvironmentProvider, { children: props.children }, void 0, false, {
31
31
  fileName: "/__w/interface/interface/packages/interface/src/bootstrap/ApplicationEntrypoint.tsx",
32
32
  lineNumber: 50,
33
33
  columnNumber: 9
@@ -39,21 +39,21 @@ const ApplicationEntrypoint = (props) => {
39
39
  fileName: "/__w/interface/interface/packages/interface/src/bootstrap/ApplicationEntrypoint.tsx",
40
40
  lineNumber: 48,
41
41
  columnNumber: 7
42
+ }, void 0) }, void 0, false, {
43
+ fileName: "/__w/interface/interface/packages/interface/src/bootstrap/ApplicationEntrypoint.tsx",
44
+ lineNumber: 47,
45
+ columnNumber: 6
42
46
  }, void 0)
43
47
  },
44
48
  void 0,
45
49
  false,
46
50
  {
47
51
  fileName: "/__w/interface/interface/packages/interface/src/bootstrap/ApplicationEntrypoint.tsx",
48
- lineNumber: 41,
49
- columnNumber: 6
52
+ lineNumber: 40,
53
+ columnNumber: 5
50
54
  },
51
55
  void 0
52
56
  ) }, void 0, false, {
53
- fileName: "/__w/interface/interface/packages/interface/src/bootstrap/ApplicationEntrypoint.tsx",
54
- lineNumber: 40,
55
- columnNumber: 5
56
- }, void 0) }, void 0, false, {
57
57
  fileName: "/__w/interface/interface/packages/interface/src/bootstrap/ApplicationEntrypoint.tsx",
58
58
  lineNumber: 39,
59
59
  columnNumber: 4
@@ -1 +1 @@
1
- {"version":3,"file":"ApplicationEntrypoint.cjs","sources":["../../../src/bootstrap/ApplicationEntrypoint.tsx"],"sourcesContent":["import { Environment, EnvironmentContext, EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { ContemberClient, ContemberClientProps } from '@contember/react-client'\nimport { ReactNode } from 'react'\nimport { RequestProvider, RouteMap, RoutingContext, RoutingContextValue, SelectedDimension } from '@contember/react-routing'\nimport { DataViewPageNameKeyProvider } from './DataViewPageNameKeyProvider'\nimport { IdentityProvider, projectEnvironmentExtension } from '@contember/react-identity'\n\nexport interface ApplicationEntrypointProps extends ContemberClientProps {\n\tbasePath: string\n\tsessionToken?: string\n\troutes?: RouteMap\n\tchildren: ReactNode\n\tenvironment?: Environment\n}\n\nconst validateProps = (props: Partial<ApplicationEntrypointProps>) => {\n\tif (typeof props.apiBaseUrl !== 'string') {\n\t\tthrow new Error(`The ENV variables haven't been set. Check your \\`.env.development.local\\` file.`) // TODO: better message\n\t}\n}\n\n/**\n * @group Entrypoints\n */\nexport const ApplicationEntrypoint = (props: ApplicationEntrypointProps) => {\n\tvalidateProps(props)\n\n\tconst rootEnv = props.environment ?? Environment.create()\n\n\tconst routing: RoutingContextValue = {\n\t\tbasePath: props.basePath,\n\t\troutes: props.routes ?? { index: { path: '/' } },\n\t\tdefaultDimensions: rootEnv.getAllDimensions(),\n\t}\n\n\n\treturn (\n\t\t<EnvironmentContext.Provider value={rootEnv}>\n\t\t\t<RoutingContext.Provider value={routing}>\n\t\t\t\t<RequestProvider>\n\t\t\t\t\t<ContemberClient\n\t\t\t\t\t\tapiBaseUrl={props.apiBaseUrl}\n\t\t\t\t\t\tsessionToken={props.sessionToken}\n\t\t\t\t\t\tloginToken={props.loginToken}\n\t\t\t\t\t\tproject={props.project}\n\t\t\t\t\t\tstage={props.stage}\n\t\t\t\t\t>\n\t\t\t\t\t\t<EnvironmentExtensionProvider extension={projectEnvironmentExtension} state={props.project ?? null}>\n\t\t\t\t\t\t\t<DataViewPageNameKeyProvider>\n\t\t\t\t\t\t\t\t<IdentityProvider>\n\t\t\t\t\t\t\t\t\t{props.children}\n\t\t\t\t\t\t\t\t</IdentityProvider>\n\t\t\t\t\t\t\t</DataViewPageNameKeyProvider>\n\t\t\t\t\t\t</EnvironmentExtensionProvider>\n\t\t\t\t\t</ContemberClient>\n\t\t\t\t</RequestProvider>\n\t\t\t</RoutingContext.Provider>\n\t\t</EnvironmentContext.Provider>\n\t)\n}\n"],"names":["Environment","jsxDEV","EnvironmentContext","RoutingContext","RequestProvider","ContemberClient","EnvironmentExtensionProvider","projectEnvironmentExtension","DataViewPageNameKeyProvider","IdentityProvider","this"],"mappings":";;;;;;;;AAeA,MAAM,gBAAgB,CAAC,UAA+C;AACjE,MAAA,OAAO,MAAM,eAAe,UAAU;AACnC,UAAA,IAAI,MAAM,iFAAiF;AAAA,EAClG;AACD;AAKa,MAAA,wBAAwB,CAAC,UAAsC;AAC3E,gBAAc,KAAK;AAEnB,QAAM,UAAU,MAAM,eAAeA,aAAA,YAAY,OAAO;AAExD,QAAM,UAA+B;AAAA,IACpC,UAAU,MAAM;AAAA,IAChB,QAAQ,MAAM,UAAU,EAAE,OAAO,EAAE,MAAM,MAAM;AAAA,IAC/C,mBAAmB,QAAQ,iBAAiB;AAAA,EAAA;AAI7C,SACEC,8BAAAA,OAAAC,aAAAA,mBAAmB,UAAnB,EAA4B,OAAO,SACnC,UAACD,qCAAAE,aAAAA,eAAe,UAAf,EAAwB,OAAO,SAC/B,+CAACC,aACA,iBAAA,EAAA,UAAAH,8BAAA;AAAA,IAACI,YAAA;AAAA,IAAA;AAAA,MACA,YAAY,MAAM;AAAA,MAClB,cAAc,MAAM;AAAA,MACpB,YAAY,MAAM;AAAA,MAClB,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,MAEb,UAACJ,8BAAA,OAAAK,2CAAA,EAA6B,WAAWC,cAAAA,6BAA6B,OAAO,MAAM,WAAW,MAC7F,UAACN,8BAAAA,OAAAO,4BAAA,6BAAA,EACA,UAACP,qCAAAQ,cAAAA,kBAAA,EACC,gBAAM,SADR,GAAA,QAAA,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAAA,GAAAC,MAEA,EAHD,GAAA,QAAA,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAAA,GAAAA,MAIA,EALD,GAAA,QAAA,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAMA,GAAAA,MAAA;AAAA,IAAA;AAAA,IAbD;AAAA,IAAA;AAAA,IAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAA;AAAA,IAAAA;AAAAA,EAAA,KADD,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAgBA,EAjBD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAkBA,EAnBD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAoBA,GAAAA,MAAA;AAEF;;"}
1
+ {"version":3,"file":"ApplicationEntrypoint.cjs","sources":["../../../src/bootstrap/ApplicationEntrypoint.tsx"],"sourcesContent":["import { Environment, EnvironmentContext, EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { ContemberClient, ContemberClientProps } from '@contember/react-client'\nimport { ReactNode } from 'react'\nimport { RequestProvider, RouteMap, RoutingContext, RoutingContextValue, RoutingProvider, SelectedDimension } from '@contember/react-routing'\nimport { DataViewPageNameKeyProvider } from './DataViewPageNameKeyProvider'\nimport { IdentityEnvironmentProvider, IdentityProvider, projectEnvironmentExtension } from '@contember/react-identity'\n\nexport interface ApplicationEntrypointProps extends ContemberClientProps {\n\tbasePath: string\n\tsessionToken?: string\n\troutes?: RouteMap\n\tchildren: ReactNode\n\tenvironment?: Environment\n}\n\nconst validateProps = (props: Partial<ApplicationEntrypointProps>) => {\n\tif (typeof props.apiBaseUrl !== 'string') {\n\t\tthrow new Error(`The ENV variables haven't been set. Check your \\`.env.development.local\\` file.`) // TODO: better message\n\t}\n}\n\n/**\n * @group Entrypoints\n */\nexport const ApplicationEntrypoint = (props: ApplicationEntrypointProps) => {\n\tvalidateProps(props)\n\n\tconst rootEnv = props.environment ?? Environment.create()\n\n\tconst routing: RoutingContextValue = {\n\t\tbasePath: props.basePath,\n\t\troutes: props.routes ?? { index: { path: '/' } },\n\t\tdefaultDimensions: rootEnv.getAllDimensions(),\n\t}\n\n\n\treturn (\n\t\t<EnvironmentContext.Provider value={rootEnv}>\n\t\t\t<RoutingProvider {...routing}>\n\t\t\t\t<ContemberClient\n\t\t\t\t\tapiBaseUrl={props.apiBaseUrl}\n\t\t\t\t\tsessionToken={props.sessionToken}\n\t\t\t\t\tloginToken={props.loginToken}\n\t\t\t\t\tproject={props.project}\n\t\t\t\t\tstage={props.stage}\n\t\t\t\t>\n\t\t\t\t\t<EnvironmentExtensionProvider extension={projectEnvironmentExtension} state={props.project ?? null}>\n\t\t\t\t\t\t<DataViewPageNameKeyProvider>\n\t\t\t\t\t\t\t<IdentityProvider>\n\t\t\t\t\t\t\t\t<IdentityEnvironmentProvider>\n\t\t\t\t\t\t\t\t\t{props.children}\n\t\t\t\t\t\t\t\t</IdentityEnvironmentProvider>\n\t\t\t\t\t\t\t</IdentityProvider>\n\t\t\t\t\t\t</DataViewPageNameKeyProvider>\n\t\t\t\t\t</EnvironmentExtensionProvider>\n\t\t\t\t</ContemberClient>\n\t\t\t</RoutingProvider>\n\t\t</EnvironmentContext.Provider>\n\t)\n}\n"],"names":["Environment","jsxDEV","EnvironmentContext","RoutingProvider","ContemberClient","EnvironmentExtensionProvider","projectEnvironmentExtension","DataViewPageNameKeyProvider","IdentityProvider","IdentityEnvironmentProvider","this"],"mappings":";;;;;;;;AAeA,MAAM,gBAAgB,CAAC,UAA+C;AACjE,MAAA,OAAO,MAAM,eAAe,UAAU;AACnC,UAAA,IAAI,MAAM,iFAAiF;AAAA,EAClG;AACD;AAKa,MAAA,wBAAwB,CAAC,UAAsC;AAC3E,gBAAc,KAAK;AAEnB,QAAM,UAAU,MAAM,eAAeA,aAAA,YAAY,OAAO;AAExD,QAAM,UAA+B;AAAA,IACpC,UAAU,MAAM;AAAA,IAChB,QAAQ,MAAM,UAAU,EAAE,OAAO,EAAE,MAAM,MAAM;AAAA,IAC/C,mBAAmB,QAAQ,iBAAiB;AAAA,EAAA;AAK5C,SAAAC,8BAAA,OAACC,gCAAmB,UAAnB,EAA4B,OAAO,SACnC,UAAAD,8BAAAA,OAACE,aAAAA,iBAAiB,EAAA,GAAG,SACpB,UAAAF,8BAAA;AAAA,IAACG,YAAA;AAAA,IAAA;AAAA,MACA,YAAY,MAAM;AAAA,MAClB,cAAc,MAAM;AAAA,MACpB,YAAY,MAAM;AAAA,MAClB,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,MAEb,UAACH,8BAAA,OAAAI,2CAAA,EAA6B,WAAWC,cAAA,6BAA6B,OAAO,MAAM,WAAW,MAC7F,UAAAL,8BAAA,OAACM,2DACA,UAACN,8BAAA,OAAAO,cAAA,kBAAA,EACA,UAACP,8BAAA,OAAAQ,cAAA,6BAAA,EACC,gBAAM,SADR,GAAA,QAAA,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAAA,GAAAC,MAEA,EAHD,GAAA,QAAA,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAAA,GAAAA,MAIA,EALD,GAAA,QAAA,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAAA,GAAAA,MAMA,EAPD,GAAA,QAAA,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAQA,GAAAA,MAAA;AAAA,IAAA;AAAA,IAfD;AAAA,IAAA;AAAA,IAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAA;AAAA,IAAAA;AAAAA,EAAA,KADD,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAkBA,EAnBD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAoBA,GAAAA,MAAA;AAEF;;"}
@@ -1,9 +1,9 @@
1
1
  import { jsxDEV } from "react/jsx-dev-runtime";
2
2
  import { Environment, EnvironmentContext, EnvironmentExtensionProvider } from "@contember/react-binding";
3
3
  import { ContemberClient } from "@contember/react-client";
4
- import { RoutingContext, RequestProvider } from "@contember/react-routing";
4
+ import { RoutingProvider } from "@contember/react-routing";
5
5
  import { DataViewPageNameKeyProvider } from "./DataViewPageNameKeyProvider.js";
6
- import { projectEnvironmentExtension, IdentityProvider } from "@contember/react-identity";
6
+ import { projectEnvironmentExtension, IdentityProvider, IdentityEnvironmentProvider } from "@contember/react-identity";
7
7
  const validateProps = (props) => {
8
8
  if (typeof props.apiBaseUrl !== "string") {
9
9
  throw new Error(`The ENV variables haven't been set. Check your \`.env.development.local\` file.`);
@@ -17,7 +17,7 @@ const ApplicationEntrypoint = (props) => {
17
17
  routes: props.routes ?? { index: { path: "/" } },
18
18
  defaultDimensions: rootEnv.getAllDimensions()
19
19
  };
20
- return /* @__PURE__ */ jsxDEV(EnvironmentContext.Provider, { value: rootEnv, children: /* @__PURE__ */ jsxDEV(RoutingContext.Provider, { value: routing, children: /* @__PURE__ */ jsxDEV(RequestProvider, { children: /* @__PURE__ */ jsxDEV(
20
+ return /* @__PURE__ */ jsxDEV(EnvironmentContext.Provider, { value: rootEnv, children: /* @__PURE__ */ jsxDEV(RoutingProvider, { ...routing, children: /* @__PURE__ */ jsxDEV(
21
21
  ContemberClient,
22
22
  {
23
23
  apiBaseUrl: props.apiBaseUrl,
@@ -25,7 +25,7 @@ const ApplicationEntrypoint = (props) => {
25
25
  loginToken: props.loginToken,
26
26
  project: props.project,
27
27
  stage: props.stage,
28
- children: /* @__PURE__ */ jsxDEV(EnvironmentExtensionProvider, { extension: projectEnvironmentExtension, state: props.project ?? null, children: /* @__PURE__ */ jsxDEV(DataViewPageNameKeyProvider, { children: /* @__PURE__ */ jsxDEV(IdentityProvider, { children: props.children }, void 0, false, {
28
+ children: /* @__PURE__ */ jsxDEV(EnvironmentExtensionProvider, { extension: projectEnvironmentExtension, state: props.project ?? null, children: /* @__PURE__ */ jsxDEV(DataViewPageNameKeyProvider, { children: /* @__PURE__ */ jsxDEV(IdentityProvider, { children: /* @__PURE__ */ jsxDEV(IdentityEnvironmentProvider, { children: props.children }, void 0, false, {
29
29
  fileName: "/__w/interface/interface/packages/interface/src/bootstrap/ApplicationEntrypoint.tsx",
30
30
  lineNumber: 50,
31
31
  columnNumber: 9
@@ -37,21 +37,21 @@ const ApplicationEntrypoint = (props) => {
37
37
  fileName: "/__w/interface/interface/packages/interface/src/bootstrap/ApplicationEntrypoint.tsx",
38
38
  lineNumber: 48,
39
39
  columnNumber: 7
40
+ }, void 0) }, void 0, false, {
41
+ fileName: "/__w/interface/interface/packages/interface/src/bootstrap/ApplicationEntrypoint.tsx",
42
+ lineNumber: 47,
43
+ columnNumber: 6
40
44
  }, void 0)
41
45
  },
42
46
  void 0,
43
47
  false,
44
48
  {
45
49
  fileName: "/__w/interface/interface/packages/interface/src/bootstrap/ApplicationEntrypoint.tsx",
46
- lineNumber: 41,
47
- columnNumber: 6
50
+ lineNumber: 40,
51
+ columnNumber: 5
48
52
  },
49
53
  void 0
50
54
  ) }, void 0, false, {
51
- fileName: "/__w/interface/interface/packages/interface/src/bootstrap/ApplicationEntrypoint.tsx",
52
- lineNumber: 40,
53
- columnNumber: 5
54
- }, void 0) }, void 0, false, {
55
55
  fileName: "/__w/interface/interface/packages/interface/src/bootstrap/ApplicationEntrypoint.tsx",
56
56
  lineNumber: 39,
57
57
  columnNumber: 4
@@ -1 +1 @@
1
- {"version":3,"file":"ApplicationEntrypoint.js","sources":["../../../src/bootstrap/ApplicationEntrypoint.tsx"],"sourcesContent":["import { Environment, EnvironmentContext, EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { ContemberClient, ContemberClientProps } from '@contember/react-client'\nimport { ReactNode } from 'react'\nimport { RequestProvider, RouteMap, RoutingContext, RoutingContextValue, SelectedDimension } from '@contember/react-routing'\nimport { DataViewPageNameKeyProvider } from './DataViewPageNameKeyProvider'\nimport { IdentityProvider, projectEnvironmentExtension } from '@contember/react-identity'\n\nexport interface ApplicationEntrypointProps extends ContemberClientProps {\n\tbasePath: string\n\tsessionToken?: string\n\troutes?: RouteMap\n\tchildren: ReactNode\n\tenvironment?: Environment\n}\n\nconst validateProps = (props: Partial<ApplicationEntrypointProps>) => {\n\tif (typeof props.apiBaseUrl !== 'string') {\n\t\tthrow new Error(`The ENV variables haven't been set. Check your \\`.env.development.local\\` file.`) // TODO: better message\n\t}\n}\n\n/**\n * @group Entrypoints\n */\nexport const ApplicationEntrypoint = (props: ApplicationEntrypointProps) => {\n\tvalidateProps(props)\n\n\tconst rootEnv = props.environment ?? Environment.create()\n\n\tconst routing: RoutingContextValue = {\n\t\tbasePath: props.basePath,\n\t\troutes: props.routes ?? { index: { path: '/' } },\n\t\tdefaultDimensions: rootEnv.getAllDimensions(),\n\t}\n\n\n\treturn (\n\t\t<EnvironmentContext.Provider value={rootEnv}>\n\t\t\t<RoutingContext.Provider value={routing}>\n\t\t\t\t<RequestProvider>\n\t\t\t\t\t<ContemberClient\n\t\t\t\t\t\tapiBaseUrl={props.apiBaseUrl}\n\t\t\t\t\t\tsessionToken={props.sessionToken}\n\t\t\t\t\t\tloginToken={props.loginToken}\n\t\t\t\t\t\tproject={props.project}\n\t\t\t\t\t\tstage={props.stage}\n\t\t\t\t\t>\n\t\t\t\t\t\t<EnvironmentExtensionProvider extension={projectEnvironmentExtension} state={props.project ?? null}>\n\t\t\t\t\t\t\t<DataViewPageNameKeyProvider>\n\t\t\t\t\t\t\t\t<IdentityProvider>\n\t\t\t\t\t\t\t\t\t{props.children}\n\t\t\t\t\t\t\t\t</IdentityProvider>\n\t\t\t\t\t\t\t</DataViewPageNameKeyProvider>\n\t\t\t\t\t\t</EnvironmentExtensionProvider>\n\t\t\t\t\t</ContemberClient>\n\t\t\t\t</RequestProvider>\n\t\t\t</RoutingContext.Provider>\n\t\t</EnvironmentContext.Provider>\n\t)\n}\n"],"names":["this"],"mappings":";;;;;;AAeA,MAAM,gBAAgB,CAAC,UAA+C;AACjE,MAAA,OAAO,MAAM,eAAe,UAAU;AACnC,UAAA,IAAI,MAAM,iFAAiF;AAAA,EAClG;AACD;AAKa,MAAA,wBAAwB,CAAC,UAAsC;AAC3E,gBAAc,KAAK;AAEnB,QAAM,UAAU,MAAM,eAAe,YAAY,OAAO;AAExD,QAAM,UAA+B;AAAA,IACpC,UAAU,MAAM;AAAA,IAChB,QAAQ,MAAM,UAAU,EAAE,OAAO,EAAE,MAAM,MAAM;AAAA,IAC/C,mBAAmB,QAAQ,iBAAiB;AAAA,EAAA;AAI7C,SACE,uBAAA,mBAAmB,UAAnB,EAA4B,OAAO,SACnC,UAAC,uBAAA,eAAe,UAAf,EAAwB,OAAO,SAC/B,iCAAC,iBACA,EAAA,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,YAAY,MAAM;AAAA,MAClB,cAAc,MAAM;AAAA,MACpB,YAAY,MAAM;AAAA,MAClB,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,MAEb,UAAC,uBAAA,8BAAA,EAA6B,WAAW,6BAA6B,OAAO,MAAM,WAAW,MAC7F,UAAC,uBAAA,6BAAA,EACA,UAAC,uBAAA,kBAAA,EACC,gBAAM,SADR,GAAA,QAAA,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAAA,GAAAA,MAEA,EAHD,GAAA,QAAA,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAAA,GAAAA,MAIA,EALD,GAAA,QAAA,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAMA,GAAAA,MAAA;AAAA,IAAA;AAAA,IAbD;AAAA,IAAA;AAAA,IAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAA;AAAA,IAAAA;AAAAA,EAAA,KADD,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAgBA,EAjBD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAkBA,EAnBD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAoBA,GAAAA,MAAA;AAEF;"}
1
+ {"version":3,"file":"ApplicationEntrypoint.js","sources":["../../../src/bootstrap/ApplicationEntrypoint.tsx"],"sourcesContent":["import { Environment, EnvironmentContext, EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { ContemberClient, ContemberClientProps } from '@contember/react-client'\nimport { ReactNode } from 'react'\nimport { RequestProvider, RouteMap, RoutingContext, RoutingContextValue, RoutingProvider, SelectedDimension } from '@contember/react-routing'\nimport { DataViewPageNameKeyProvider } from './DataViewPageNameKeyProvider'\nimport { IdentityEnvironmentProvider, IdentityProvider, projectEnvironmentExtension } from '@contember/react-identity'\n\nexport interface ApplicationEntrypointProps extends ContemberClientProps {\n\tbasePath: string\n\tsessionToken?: string\n\troutes?: RouteMap\n\tchildren: ReactNode\n\tenvironment?: Environment\n}\n\nconst validateProps = (props: Partial<ApplicationEntrypointProps>) => {\n\tif (typeof props.apiBaseUrl !== 'string') {\n\t\tthrow new Error(`The ENV variables haven't been set. Check your \\`.env.development.local\\` file.`) // TODO: better message\n\t}\n}\n\n/**\n * @group Entrypoints\n */\nexport const ApplicationEntrypoint = (props: ApplicationEntrypointProps) => {\n\tvalidateProps(props)\n\n\tconst rootEnv = props.environment ?? Environment.create()\n\n\tconst routing: RoutingContextValue = {\n\t\tbasePath: props.basePath,\n\t\troutes: props.routes ?? { index: { path: '/' } },\n\t\tdefaultDimensions: rootEnv.getAllDimensions(),\n\t}\n\n\n\treturn (\n\t\t<EnvironmentContext.Provider value={rootEnv}>\n\t\t\t<RoutingProvider {...routing}>\n\t\t\t\t<ContemberClient\n\t\t\t\t\tapiBaseUrl={props.apiBaseUrl}\n\t\t\t\t\tsessionToken={props.sessionToken}\n\t\t\t\t\tloginToken={props.loginToken}\n\t\t\t\t\tproject={props.project}\n\t\t\t\t\tstage={props.stage}\n\t\t\t\t>\n\t\t\t\t\t<EnvironmentExtensionProvider extension={projectEnvironmentExtension} state={props.project ?? null}>\n\t\t\t\t\t\t<DataViewPageNameKeyProvider>\n\t\t\t\t\t\t\t<IdentityProvider>\n\t\t\t\t\t\t\t\t<IdentityEnvironmentProvider>\n\t\t\t\t\t\t\t\t\t{props.children}\n\t\t\t\t\t\t\t\t</IdentityEnvironmentProvider>\n\t\t\t\t\t\t\t</IdentityProvider>\n\t\t\t\t\t\t</DataViewPageNameKeyProvider>\n\t\t\t\t\t</EnvironmentExtensionProvider>\n\t\t\t\t</ContemberClient>\n\t\t\t</RoutingProvider>\n\t\t</EnvironmentContext.Provider>\n\t)\n}\n"],"names":["this"],"mappings":";;;;;;AAeA,MAAM,gBAAgB,CAAC,UAA+C;AACjE,MAAA,OAAO,MAAM,eAAe,UAAU;AACnC,UAAA,IAAI,MAAM,iFAAiF;AAAA,EAClG;AACD;AAKa,MAAA,wBAAwB,CAAC,UAAsC;AAC3E,gBAAc,KAAK;AAEnB,QAAM,UAAU,MAAM,eAAe,YAAY,OAAO;AAExD,QAAM,UAA+B;AAAA,IACpC,UAAU,MAAM;AAAA,IAChB,QAAQ,MAAM,UAAU,EAAE,OAAO,EAAE,MAAM,MAAM;AAAA,IAC/C,mBAAmB,QAAQ,iBAAiB;AAAA,EAAA;AAK5C,SAAA,uBAAC,mBAAmB,UAAnB,EAA4B,OAAO,SACnC,UAAA,uBAAC,iBAAiB,EAAA,GAAG,SACpB,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,YAAY,MAAM;AAAA,MAClB,cAAc,MAAM;AAAA,MACpB,YAAY,MAAM;AAAA,MAClB,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,MAEb,UAAC,uBAAA,8BAAA,EAA6B,WAAW,6BAA6B,OAAO,MAAM,WAAW,MAC7F,UAAA,uBAAC,+BACA,UAAC,uBAAA,kBAAA,EACA,UAAC,uBAAA,6BAAA,EACC,gBAAM,SADR,GAAA,QAAA,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAAA,GAAAA,MAEA,EAHD,GAAA,QAAA,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAAA,GAAAA,MAIA,EALD,GAAA,QAAA,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAAA,GAAAA,MAMA,EAPD,GAAA,QAAA,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAQA,GAAAA,MAAA;AAAA,IAAA;AAAA,IAfD;AAAA,IAAA;AAAA,IAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAA;AAAA,IAAAA;AAAAA,EAAA,KADD,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAkBA,EAnBD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAoBA,GAAAA,MAAA;AAEF;"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const react = require("react");
4
+ const defaultCheckIntervalMs = 3e4;
5
+ const useIsApplicationOutdated = ({ checkIntervalMs = defaultCheckIntervalMs } = {}) => {
6
+ const [initialVersion] = react.useState(() => {
7
+ return getVersionFromDocument(document.head);
8
+ });
9
+ const [isOutdated, setIsOutdated] = react.useState(false);
10
+ const fetchVersion = useFetchVersion();
11
+ const checkVersion = react.useCallback(async () => {
12
+ if (document.hidden) {
13
+ return;
14
+ }
15
+ const version = await fetchVersion();
16
+ if (version !== initialVersion) {
17
+ setIsOutdated(true);
18
+ }
19
+ }, [fetchVersion, initialVersion]);
20
+ const shouldCheck = !!initialVersion && !isOutdated;
21
+ react.useEffect(() => {
22
+ if (!shouldCheck) {
23
+ return;
24
+ }
25
+ const handle = setInterval(checkVersion, checkIntervalMs);
26
+ return () => clearInterval(handle);
27
+ }, [checkIntervalMs, checkVersion, shouldCheck]);
28
+ react.useEffect(() => {
29
+ if (!shouldCheck) {
30
+ return;
31
+ }
32
+ document.addEventListener("visibilitychange", checkVersion);
33
+ return () => document.removeEventListener("visibilitychange", checkVersion);
34
+ }, [checkVersion, shouldCheck]);
35
+ return isOutdated;
36
+ };
37
+ const getVersionFromDocument = (node) => {
38
+ const meta = node.querySelector("meta[name=contember-build-version]");
39
+ return meta?.content;
40
+ };
41
+ const useFetchVersion = () => {
42
+ return react.useCallback(async () => {
43
+ try {
44
+ const result = await (await fetch(window.location.href)).text();
45
+ const html = document.createElement("html");
46
+ html.innerHTML = result;
47
+ return getVersionFromDocument(html);
48
+ } catch (e) {
49
+ console.error(e);
50
+ return void 0;
51
+ }
52
+ }, []);
53
+ };
54
+ exports.useIsApplicationOutdated = useIsApplicationOutdated;
55
+ //# sourceMappingURL=useIsApplicationOutdated.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsApplicationOutdated.cjs","sources":["../../../src/hooks/useIsApplicationOutdated.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nconst defaultCheckIntervalMs = 30_000\n\n\nexport const useIsApplicationOutdated = ({ checkIntervalMs = defaultCheckIntervalMs }: {\n\tcheckIntervalMs?: number\n} = {}) => {\n\tconst [initialVersion] = useState(() => {\n\t\treturn getVersionFromDocument(document.head)\n\t})\n\tconst [isOutdated, setIsOutdated] = useState(false)\n\tconst fetchVersion = useFetchVersion()\n\n\tconst checkVersion = useCallback(async () => {\n\t\tif (document.hidden) {\n\t\t\treturn\n\t\t}\n\t\tconst version = await fetchVersion()\n\t\tif (version !== initialVersion) {\n\t\t\tsetIsOutdated(true)\n\t\t}\n\t}, [fetchVersion, initialVersion])\n\tconst shouldCheck = !!initialVersion && !isOutdated\n\n\tuseEffect(() => {\n\t\tif (!shouldCheck) {\n\t\t\treturn\n\t\t}\n\t\tconst handle = setInterval(checkVersion, checkIntervalMs)\n\t\treturn () => clearInterval(handle)\n\t}, [checkIntervalMs, checkVersion, shouldCheck])\n\n\tuseEffect(() => {\n\t\tif (!shouldCheck) {\n\t\t\treturn\n\t\t}\n\t\tdocument.addEventListener('visibilitychange', checkVersion)\n\t\treturn () => document.removeEventListener('visibilitychange', checkVersion)\n\t}, [checkVersion, shouldCheck])\n\n\treturn isOutdated\n}\n\nconst getVersionFromDocument = (node: ParentNode) => {\n\tconst meta = node.querySelector<HTMLMetaElement>('meta[name=contember-build-version]')\n\treturn meta?.content\n}\n\nconst useFetchVersion = () => {\n\treturn useCallback(async () => {\n\t\ttry {\n\t\t\tconst result = await (await fetch(window.location.href)).text()\n\t\t\tconst html = document.createElement('html')\n\t\t\thtml.innerHTML = result\n\t\t\treturn getVersionFromDocument(html)\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\treturn undefined\n\t\t}\n\t}, [])\n}\n"],"names":["useState","useCallback","useEffect"],"mappings":";;;AAEA,MAAM,yBAAyB;AAGxB,MAAM,2BAA2B,CAAC,EAAE,kBAAkB,uBAAuB,IAEhF,CAAA,MAAO;AACV,QAAM,CAAC,cAAc,IAAIA,MAAAA,SAAS,MAAM;AAChC,WAAA,uBAAuB,SAAS,IAAI;AAAA,EAAA,CAC3C;AACD,QAAM,CAAC,YAAY,aAAa,IAAIA,eAAS,KAAK;AAClD,QAAM,eAAe;AAEf,QAAA,eAAeC,MAAAA,YAAY,YAAY;AAC5C,QAAI,SAAS,QAAQ;AACpB;AAAA,IACD;AACM,UAAA,UAAU,MAAM;AACtB,QAAI,YAAY,gBAAgB;AAC/B,oBAAc,IAAI;AAAA,IACnB;AAAA,EAAA,GACE,CAAC,cAAc,cAAc,CAAC;AACjC,QAAM,cAAc,CAAC,CAAC,kBAAkB,CAAC;AAEzCC,QAAAA,UAAU,MAAM;AACf,QAAI,CAAC,aAAa;AACjB;AAAA,IACD;AACM,UAAA,SAAS,YAAY,cAAc,eAAe;AACjD,WAAA,MAAM,cAAc,MAAM;AAAA,EAC/B,GAAA,CAAC,iBAAiB,cAAc,WAAW,CAAC;AAE/CA,QAAAA,UAAU,MAAM;AACf,QAAI,CAAC,aAAa;AACjB;AAAA,IACD;AACS,aAAA,iBAAiB,oBAAoB,YAAY;AAC1D,WAAO,MAAM,SAAS,oBAAoB,oBAAoB,YAAY;AAAA,EAAA,GACxE,CAAC,cAAc,WAAW,CAAC;AAEvB,SAAA;AACR;AAEA,MAAM,yBAAyB,CAAC,SAAqB;AAC9C,QAAA,OAAO,KAAK,cAA+B,oCAAoC;AACrF,SAAO,MAAM;AACd;AAEA,MAAM,kBAAkB,MAAM;AAC7B,SAAOD,kBAAY,YAAY;AAC1B,QAAA;AACG,YAAA,SAAS,OAAO,MAAM,MAAM,OAAO,SAAS,IAAI,GAAG;AACnD,YAAA,OAAO,SAAS,cAAc,MAAM;AAC1C,WAAK,YAAY;AACjB,aAAO,uBAAuB,IAAI;AAAA,aAC1B,GAAG;AACX,cAAQ,MAAM,CAAC;AACR,aAAA;AAAA,IACR;AAAA,EACD,GAAG,CAAE,CAAA;AACN;;"}
@@ -0,0 +1,55 @@
1
+ import { useState, useCallback, useEffect } from "react";
2
+ const defaultCheckIntervalMs = 3e4;
3
+ const useIsApplicationOutdated = ({ checkIntervalMs = defaultCheckIntervalMs } = {}) => {
4
+ const [initialVersion] = useState(() => {
5
+ return getVersionFromDocument(document.head);
6
+ });
7
+ const [isOutdated, setIsOutdated] = useState(false);
8
+ const fetchVersion = useFetchVersion();
9
+ const checkVersion = useCallback(async () => {
10
+ if (document.hidden) {
11
+ return;
12
+ }
13
+ const version = await fetchVersion();
14
+ if (version !== initialVersion) {
15
+ setIsOutdated(true);
16
+ }
17
+ }, [fetchVersion, initialVersion]);
18
+ const shouldCheck = !!initialVersion && !isOutdated;
19
+ useEffect(() => {
20
+ if (!shouldCheck) {
21
+ return;
22
+ }
23
+ const handle = setInterval(checkVersion, checkIntervalMs);
24
+ return () => clearInterval(handle);
25
+ }, [checkIntervalMs, checkVersion, shouldCheck]);
26
+ useEffect(() => {
27
+ if (!shouldCheck) {
28
+ return;
29
+ }
30
+ document.addEventListener("visibilitychange", checkVersion);
31
+ return () => document.removeEventListener("visibilitychange", checkVersion);
32
+ }, [checkVersion, shouldCheck]);
33
+ return isOutdated;
34
+ };
35
+ const getVersionFromDocument = (node) => {
36
+ const meta = node.querySelector("meta[name=contember-build-version]");
37
+ return meta?.content;
38
+ };
39
+ const useFetchVersion = () => {
40
+ return useCallback(async () => {
41
+ try {
42
+ const result = await (await fetch(window.location.href)).text();
43
+ const html = document.createElement("html");
44
+ html.innerHTML = result;
45
+ return getVersionFromDocument(html);
46
+ } catch (e) {
47
+ console.error(e);
48
+ return void 0;
49
+ }
50
+ }, []);
51
+ };
52
+ export {
53
+ useIsApplicationOutdated
54
+ };
55
+ //# sourceMappingURL=useIsApplicationOutdated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsApplicationOutdated.js","sources":["../../../src/hooks/useIsApplicationOutdated.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nconst defaultCheckIntervalMs = 30_000\n\n\nexport const useIsApplicationOutdated = ({ checkIntervalMs = defaultCheckIntervalMs }: {\n\tcheckIntervalMs?: number\n} = {}) => {\n\tconst [initialVersion] = useState(() => {\n\t\treturn getVersionFromDocument(document.head)\n\t})\n\tconst [isOutdated, setIsOutdated] = useState(false)\n\tconst fetchVersion = useFetchVersion()\n\n\tconst checkVersion = useCallback(async () => {\n\t\tif (document.hidden) {\n\t\t\treturn\n\t\t}\n\t\tconst version = await fetchVersion()\n\t\tif (version !== initialVersion) {\n\t\t\tsetIsOutdated(true)\n\t\t}\n\t}, [fetchVersion, initialVersion])\n\tconst shouldCheck = !!initialVersion && !isOutdated\n\n\tuseEffect(() => {\n\t\tif (!shouldCheck) {\n\t\t\treturn\n\t\t}\n\t\tconst handle = setInterval(checkVersion, checkIntervalMs)\n\t\treturn () => clearInterval(handle)\n\t}, [checkIntervalMs, checkVersion, shouldCheck])\n\n\tuseEffect(() => {\n\t\tif (!shouldCheck) {\n\t\t\treturn\n\t\t}\n\t\tdocument.addEventListener('visibilitychange', checkVersion)\n\t\treturn () => document.removeEventListener('visibilitychange', checkVersion)\n\t}, [checkVersion, shouldCheck])\n\n\treturn isOutdated\n}\n\nconst getVersionFromDocument = (node: ParentNode) => {\n\tconst meta = node.querySelector<HTMLMetaElement>('meta[name=contember-build-version]')\n\treturn meta?.content\n}\n\nconst useFetchVersion = () => {\n\treturn useCallback(async () => {\n\t\ttry {\n\t\t\tconst result = await (await fetch(window.location.href)).text()\n\t\t\tconst html = document.createElement('html')\n\t\t\thtml.innerHTML = result\n\t\t\treturn getVersionFromDocument(html)\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\treturn undefined\n\t\t}\n\t}, [])\n}\n"],"names":[],"mappings":";AAEA,MAAM,yBAAyB;AAGxB,MAAM,2BAA2B,CAAC,EAAE,kBAAkB,uBAAuB,IAEhF,CAAA,MAAO;AACV,QAAM,CAAC,cAAc,IAAI,SAAS,MAAM;AAChC,WAAA,uBAAuB,SAAS,IAAI;AAAA,EAAA,CAC3C;AACD,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAClD,QAAM,eAAe;AAEf,QAAA,eAAe,YAAY,YAAY;AAC5C,QAAI,SAAS,QAAQ;AACpB;AAAA,IACD;AACM,UAAA,UAAU,MAAM;AACtB,QAAI,YAAY,gBAAgB;AAC/B,oBAAc,IAAI;AAAA,IACnB;AAAA,EAAA,GACE,CAAC,cAAc,cAAc,CAAC;AACjC,QAAM,cAAc,CAAC,CAAC,kBAAkB,CAAC;AAEzC,YAAU,MAAM;AACf,QAAI,CAAC,aAAa;AACjB;AAAA,IACD;AACM,UAAA,SAAS,YAAY,cAAc,eAAe;AACjD,WAAA,MAAM,cAAc,MAAM;AAAA,EAC/B,GAAA,CAAC,iBAAiB,cAAc,WAAW,CAAC;AAE/C,YAAU,MAAM;AACf,QAAI,CAAC,aAAa;AACjB;AAAA,IACD;AACS,aAAA,iBAAiB,oBAAoB,YAAY;AAC1D,WAAO,MAAM,SAAS,oBAAoB,oBAAoB,YAAY;AAAA,EAAA,GACxE,CAAC,cAAc,WAAW,CAAC;AAEvB,SAAA;AACR;AAEA,MAAM,yBAAyB,CAAC,SAAqB;AAC9C,QAAA,OAAO,KAAK,cAA+B,oCAAoC;AACrF,SAAO,MAAM;AACd;AAEA,MAAM,kBAAkB,MAAM;AAC7B,SAAO,YAAY,YAAY;AAC1B,QAAA;AACG,YAAA,SAAS,OAAO,MAAM,MAAM,OAAO,SAAS,IAAI,GAAG;AACnD,YAAA,OAAO,SAAS,cAAc,MAAM;AAC1C,WAAK,YAAY;AACjB,aAAO,uBAAuB,IAAI;AAAA,aAC1B,GAAG;AACX,cAAQ,MAAM,CAAC;AACR,aAAA;AAAA,IACR;AAAA,EACD,GAAG,CAAE,CAAA;AACN;"}
@@ -11,6 +11,7 @@ const DisconnectEntityTrigger = require("./components/binding/DisconnectEntityTr
11
11
  const PersistTrigger = require("./components/binding/PersistTrigger.cjs");
12
12
  const EntityBeforePersist = require("./components/binding/EntityBeforePersist.cjs");
13
13
  const RedirectOnPersist = require("./components/binding/RedirectOnPersist.cjs");
14
+ const useIsApplicationOutdated = require("./hooks/useIsApplicationOutdated.cjs");
14
15
  Object.defineProperty(exports, "createErrorHandler", {
15
16
  enumerable: true,
16
17
  get: () => reactDevbar.createErrorHandler
@@ -22,6 +23,7 @@ exports.DisconnectEntityTrigger = DisconnectEntityTrigger.DisconnectEntityTrigge
22
23
  exports.PersistTrigger = PersistTrigger.PersistTrigger;
23
24
  exports.EntityBeforePersist = EntityBeforePersist.EntityBeforePersist;
24
25
  exports.RedirectOnPersist = RedirectOnPersist.RedirectOnPersist;
26
+ exports.useIsApplicationOutdated = useIsApplicationOutdated.useIsApplicationOutdated;
25
27
  Object.keys(reactRouting).forEach((k) => {
26
28
  if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports, k))
27
29
  Object.defineProperty(exports, k, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -9,6 +9,7 @@ import { DisconnectEntityTrigger } from "./components/binding/DisconnectEntityTr
9
9
  import { PersistTrigger } from "./components/binding/PersistTrigger.js";
10
10
  import { EntityBeforePersist } from "./components/binding/EntityBeforePersist.js";
11
11
  import { RedirectOnPersist } from "./components/binding/RedirectOnPersist.js";
12
+ import { useIsApplicationOutdated } from "./hooks/useIsApplicationOutdated.js";
12
13
  export {
13
14
  ApplicationEntrypoint,
14
15
  ClearFieldTrigger,
@@ -17,6 +18,7 @@ export {
17
18
  EntityBeforePersist,
18
19
  PersistTrigger,
19
20
  RedirectOnPersist,
20
- createErrorHandler
21
+ createErrorHandler,
22
+ useIsApplicationOutdated
21
23
  };
22
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -19,7 +19,7 @@ const ApplicationEntrypoint = (props) => {
19
19
  routes: props.routes ?? { index: { path: "/" } },
20
20
  defaultDimensions: rootEnv.getAllDimensions()
21
21
  };
22
- return /* @__PURE__ */ jsxRuntime.jsx(reactBinding.EnvironmentContext.Provider, { value: rootEnv, children: /* @__PURE__ */ jsxRuntime.jsx(reactRouting.RoutingContext.Provider, { value: routing, children: /* @__PURE__ */ jsxRuntime.jsx(reactRouting.RequestProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(
22
+ return /* @__PURE__ */ jsxRuntime.jsx(reactBinding.EnvironmentContext.Provider, { value: rootEnv, children: /* @__PURE__ */ jsxRuntime.jsx(reactRouting.RoutingProvider, { ...routing, children: /* @__PURE__ */ jsxRuntime.jsx(
23
23
  reactClient.ContemberClient,
24
24
  {
25
25
  apiBaseUrl: props.apiBaseUrl,
@@ -27,9 +27,9 @@ const ApplicationEntrypoint = (props) => {
27
27
  loginToken: props.loginToken,
28
28
  project: props.project,
29
29
  stage: props.stage,
30
- children: /* @__PURE__ */ jsxRuntime.jsx(reactBinding.EnvironmentExtensionProvider, { extension: reactIdentity.projectEnvironmentExtension, state: props.project ?? null, children: /* @__PURE__ */ jsxRuntime.jsx(DataViewPageNameKeyProvider.DataViewPageNameKeyProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(reactIdentity.IdentityProvider, { children: props.children }) }) })
30
+ children: /* @__PURE__ */ jsxRuntime.jsx(reactBinding.EnvironmentExtensionProvider, { extension: reactIdentity.projectEnvironmentExtension, state: props.project ?? null, children: /* @__PURE__ */ jsxRuntime.jsx(DataViewPageNameKeyProvider.DataViewPageNameKeyProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(reactIdentity.IdentityProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(reactIdentity.IdentityEnvironmentProvider, { children: props.children }) }) }) })
31
31
  }
32
- ) }) }) });
32
+ ) }) });
33
33
  };
34
34
  exports.ApplicationEntrypoint = ApplicationEntrypoint;
35
35
  //# sourceMappingURL=ApplicationEntrypoint.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApplicationEntrypoint.cjs","sources":["../../../src/bootstrap/ApplicationEntrypoint.tsx"],"sourcesContent":["import { Environment, EnvironmentContext, EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { ContemberClient, ContemberClientProps } from '@contember/react-client'\nimport { ReactNode } from 'react'\nimport { RequestProvider, RouteMap, RoutingContext, RoutingContextValue, SelectedDimension } from '@contember/react-routing'\nimport { DataViewPageNameKeyProvider } from './DataViewPageNameKeyProvider'\nimport { IdentityProvider, projectEnvironmentExtension } from '@contember/react-identity'\n\nexport interface ApplicationEntrypointProps extends ContemberClientProps {\n\tbasePath: string\n\tsessionToken?: string\n\troutes?: RouteMap\n\tchildren: ReactNode\n\tenvironment?: Environment\n}\n\nconst validateProps = (props: Partial<ApplicationEntrypointProps>) => {\n\tif (typeof props.apiBaseUrl !== 'string') {\n\t\tthrow new Error(`The ENV variables haven't been set. Check your \\`.env.development.local\\` file.`) // TODO: better message\n\t}\n}\n\n/**\n * @group Entrypoints\n */\nexport const ApplicationEntrypoint = (props: ApplicationEntrypointProps) => {\n\tvalidateProps(props)\n\n\tconst rootEnv = props.environment ?? Environment.create()\n\n\tconst routing: RoutingContextValue = {\n\t\tbasePath: props.basePath,\n\t\troutes: props.routes ?? { index: { path: '/' } },\n\t\tdefaultDimensions: rootEnv.getAllDimensions(),\n\t}\n\n\n\treturn (\n\t\t<EnvironmentContext.Provider value={rootEnv}>\n\t\t\t<RoutingContext.Provider value={routing}>\n\t\t\t\t<RequestProvider>\n\t\t\t\t\t<ContemberClient\n\t\t\t\t\t\tapiBaseUrl={props.apiBaseUrl}\n\t\t\t\t\t\tsessionToken={props.sessionToken}\n\t\t\t\t\t\tloginToken={props.loginToken}\n\t\t\t\t\t\tproject={props.project}\n\t\t\t\t\t\tstage={props.stage}\n\t\t\t\t\t>\n\t\t\t\t\t\t<EnvironmentExtensionProvider extension={projectEnvironmentExtension} state={props.project ?? null}>\n\t\t\t\t\t\t\t<DataViewPageNameKeyProvider>\n\t\t\t\t\t\t\t\t<IdentityProvider>\n\t\t\t\t\t\t\t\t\t{props.children}\n\t\t\t\t\t\t\t\t</IdentityProvider>\n\t\t\t\t\t\t\t</DataViewPageNameKeyProvider>\n\t\t\t\t\t\t</EnvironmentExtensionProvider>\n\t\t\t\t\t</ContemberClient>\n\t\t\t\t</RequestProvider>\n\t\t\t</RoutingContext.Provider>\n\t\t</EnvironmentContext.Provider>\n\t)\n}\n"],"names":["Environment","jsx","EnvironmentContext","RoutingContext","RequestProvider","ContemberClient","EnvironmentExtensionProvider","projectEnvironmentExtension","DataViewPageNameKeyProvider","IdentityProvider"],"mappings":";;;;;;;;AAeA,MAAM,gBAAgB,CAAC,UAA+C;AACjE,MAAA,OAAO,MAAM,eAAe,UAAU;AACnC,UAAA,IAAI,MAAM,iFAAiF;AAAA,EAClG;AACD;AAKa,MAAA,wBAAwB,CAAC,UAAsC;AAC3E,gBAAc,KAAK;AAEnB,QAAM,UAAU,MAAM,eAAeA,aAAA,YAAY,OAAO;AAExD,QAAM,UAA+B;AAAA,IACpC,UAAU,MAAM;AAAA,IAChB,QAAQ,MAAM,UAAU,EAAE,OAAO,EAAE,MAAM,MAAM;AAAA,IAC/C,mBAAmB,QAAQ,iBAAiB;AAAA,EAAA;AAI7C,SACEC,2BAAAA,IAAAC,aAAAA,mBAAmB,UAAnB,EAA4B,OAAO,SACnC,UAACD,+BAAAE,aAAAA,eAAe,UAAf,EAAwB,OAAO,SAC/B,yCAACC,aACA,iBAAA,EAAA,UAAAH,2BAAA;AAAA,IAACI,YAAA;AAAA,IAAA;AAAA,MACA,YAAY,MAAM;AAAA,MAClB,cAAc,MAAM;AAAA,MACpB,YAAY,MAAM;AAAA,MAClB,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,MAEb,UAACJ,2BAAAA,IAAAK,aAAA,8BAAA,EAA6B,WAAWC,2CAA6B,OAAO,MAAM,WAAW,MAC7F,UAAAN,+BAACO,4BAAAA,+BACA,UAACP,2BAAA,IAAAQ,gCAAA,EACC,UAAM,MAAA,SAAA,CACR,EACD,CAAA,GACD;AAAA,IAAA;AAAA,EAAA,GAEF,GACD,EACD,CAAA;AAEF;;"}
1
+ {"version":3,"file":"ApplicationEntrypoint.cjs","sources":["../../../src/bootstrap/ApplicationEntrypoint.tsx"],"sourcesContent":["import { Environment, EnvironmentContext, EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { ContemberClient, ContemberClientProps } from '@contember/react-client'\nimport { ReactNode } from 'react'\nimport { RequestProvider, RouteMap, RoutingContext, RoutingContextValue, RoutingProvider, SelectedDimension } from '@contember/react-routing'\nimport { DataViewPageNameKeyProvider } from './DataViewPageNameKeyProvider'\nimport { IdentityEnvironmentProvider, IdentityProvider, projectEnvironmentExtension } from '@contember/react-identity'\n\nexport interface ApplicationEntrypointProps extends ContemberClientProps {\n\tbasePath: string\n\tsessionToken?: string\n\troutes?: RouteMap\n\tchildren: ReactNode\n\tenvironment?: Environment\n}\n\nconst validateProps = (props: Partial<ApplicationEntrypointProps>) => {\n\tif (typeof props.apiBaseUrl !== 'string') {\n\t\tthrow new Error(`The ENV variables haven't been set. Check your \\`.env.development.local\\` file.`) // TODO: better message\n\t}\n}\n\n/**\n * @group Entrypoints\n */\nexport const ApplicationEntrypoint = (props: ApplicationEntrypointProps) => {\n\tvalidateProps(props)\n\n\tconst rootEnv = props.environment ?? Environment.create()\n\n\tconst routing: RoutingContextValue = {\n\t\tbasePath: props.basePath,\n\t\troutes: props.routes ?? { index: { path: '/' } },\n\t\tdefaultDimensions: rootEnv.getAllDimensions(),\n\t}\n\n\n\treturn (\n\t\t<EnvironmentContext.Provider value={rootEnv}>\n\t\t\t<RoutingProvider {...routing}>\n\t\t\t\t<ContemberClient\n\t\t\t\t\tapiBaseUrl={props.apiBaseUrl}\n\t\t\t\t\tsessionToken={props.sessionToken}\n\t\t\t\t\tloginToken={props.loginToken}\n\t\t\t\t\tproject={props.project}\n\t\t\t\t\tstage={props.stage}\n\t\t\t\t>\n\t\t\t\t\t<EnvironmentExtensionProvider extension={projectEnvironmentExtension} state={props.project ?? null}>\n\t\t\t\t\t\t<DataViewPageNameKeyProvider>\n\t\t\t\t\t\t\t<IdentityProvider>\n\t\t\t\t\t\t\t\t<IdentityEnvironmentProvider>\n\t\t\t\t\t\t\t\t\t{props.children}\n\t\t\t\t\t\t\t\t</IdentityEnvironmentProvider>\n\t\t\t\t\t\t\t</IdentityProvider>\n\t\t\t\t\t\t</DataViewPageNameKeyProvider>\n\t\t\t\t\t</EnvironmentExtensionProvider>\n\t\t\t\t</ContemberClient>\n\t\t\t</RoutingProvider>\n\t\t</EnvironmentContext.Provider>\n\t)\n}\n"],"names":["Environment","jsx","EnvironmentContext","RoutingProvider","ContemberClient","EnvironmentExtensionProvider","projectEnvironmentExtension","DataViewPageNameKeyProvider","IdentityProvider","IdentityEnvironmentProvider"],"mappings":";;;;;;;;AAeA,MAAM,gBAAgB,CAAC,UAA+C;AACjE,MAAA,OAAO,MAAM,eAAe,UAAU;AACnC,UAAA,IAAI,MAAM,iFAAiF;AAAA,EAClG;AACD;AAKa,MAAA,wBAAwB,CAAC,UAAsC;AAC3E,gBAAc,KAAK;AAEnB,QAAM,UAAU,MAAM,eAAeA,aAAA,YAAY,OAAO;AAExD,QAAM,UAA+B;AAAA,IACpC,UAAU,MAAM;AAAA,IAChB,QAAQ,MAAM,UAAU,EAAE,OAAO,EAAE,MAAM,MAAM;AAAA,IAC/C,mBAAmB,QAAQ,iBAAiB;AAAA,EAAA;AAK5C,SAAAC,2BAAA,IAACC,gCAAmB,UAAnB,EAA4B,OAAO,SACnC,UAAAD,2BAAAA,IAACE,aAAAA,iBAAiB,EAAA,GAAG,SACpB,UAAAF,2BAAA;AAAA,IAACG,YAAA;AAAA,IAAA;AAAA,MACA,YAAY,MAAM;AAAA,MAClB,cAAc,MAAM;AAAA,MACpB,YAAY,MAAM;AAAA,MAClB,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,MAEb,yCAACC,aAAAA,8BAA6B,EAAA,WAAWC,cAAAA,6BAA6B,OAAO,MAAM,WAAW,MAC7F,UAAAL,2BAAAA,IAACM,4BAAAA,6BACA,EAAA,UAAAN,2BAAAA,IAACO,cAAAA,oBACA,UAACP,2BAAAA,IAAAQ,cAAAA,6BAAA,EACC,gBAAM,SACR,CAAA,GACD,GACD,EACD,CAAA;AAAA,IAAA;AAAA,EAAA,EAEF,CAAA,EACD,CAAA;AAEF;;"}
@@ -1,9 +1,9 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { Environment, EnvironmentContext, EnvironmentExtensionProvider } from "@contember/react-binding";
3
3
  import { ContemberClient } from "@contember/react-client";
4
- import { RoutingContext, RequestProvider } from "@contember/react-routing";
4
+ import { RoutingProvider } from "@contember/react-routing";
5
5
  import { DataViewPageNameKeyProvider } from "./DataViewPageNameKeyProvider.js";
6
- import { projectEnvironmentExtension, IdentityProvider } from "@contember/react-identity";
6
+ import { projectEnvironmentExtension, IdentityProvider, IdentityEnvironmentProvider } from "@contember/react-identity";
7
7
  const validateProps = (props) => {
8
8
  if (typeof props.apiBaseUrl !== "string") {
9
9
  throw new Error(`The ENV variables haven't been set. Check your \`.env.development.local\` file.`);
@@ -17,7 +17,7 @@ const ApplicationEntrypoint = (props) => {
17
17
  routes: props.routes ?? { index: { path: "/" } },
18
18
  defaultDimensions: rootEnv.getAllDimensions()
19
19
  };
20
- return /* @__PURE__ */ jsx(EnvironmentContext.Provider, { value: rootEnv, children: /* @__PURE__ */ jsx(RoutingContext.Provider, { value: routing, children: /* @__PURE__ */ jsx(RequestProvider, { children: /* @__PURE__ */ jsx(
20
+ return /* @__PURE__ */ jsx(EnvironmentContext.Provider, { value: rootEnv, children: /* @__PURE__ */ jsx(RoutingProvider, { ...routing, children: /* @__PURE__ */ jsx(
21
21
  ContemberClient,
22
22
  {
23
23
  apiBaseUrl: props.apiBaseUrl,
@@ -25,9 +25,9 @@ const ApplicationEntrypoint = (props) => {
25
25
  loginToken: props.loginToken,
26
26
  project: props.project,
27
27
  stage: props.stage,
28
- children: /* @__PURE__ */ jsx(EnvironmentExtensionProvider, { extension: projectEnvironmentExtension, state: props.project ?? null, children: /* @__PURE__ */ jsx(DataViewPageNameKeyProvider, { children: /* @__PURE__ */ jsx(IdentityProvider, { children: props.children }) }) })
28
+ children: /* @__PURE__ */ jsx(EnvironmentExtensionProvider, { extension: projectEnvironmentExtension, state: props.project ?? null, children: /* @__PURE__ */ jsx(DataViewPageNameKeyProvider, { children: /* @__PURE__ */ jsx(IdentityProvider, { children: /* @__PURE__ */ jsx(IdentityEnvironmentProvider, { children: props.children }) }) }) })
29
29
  }
30
- ) }) }) });
30
+ ) }) });
31
31
  };
32
32
  export {
33
33
  ApplicationEntrypoint
@@ -1 +1 @@
1
- {"version":3,"file":"ApplicationEntrypoint.js","sources":["../../../src/bootstrap/ApplicationEntrypoint.tsx"],"sourcesContent":["import { Environment, EnvironmentContext, EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { ContemberClient, ContemberClientProps } from '@contember/react-client'\nimport { ReactNode } from 'react'\nimport { RequestProvider, RouteMap, RoutingContext, RoutingContextValue, SelectedDimension } from '@contember/react-routing'\nimport { DataViewPageNameKeyProvider } from './DataViewPageNameKeyProvider'\nimport { IdentityProvider, projectEnvironmentExtension } from '@contember/react-identity'\n\nexport interface ApplicationEntrypointProps extends ContemberClientProps {\n\tbasePath: string\n\tsessionToken?: string\n\troutes?: RouteMap\n\tchildren: ReactNode\n\tenvironment?: Environment\n}\n\nconst validateProps = (props: Partial<ApplicationEntrypointProps>) => {\n\tif (typeof props.apiBaseUrl !== 'string') {\n\t\tthrow new Error(`The ENV variables haven't been set. Check your \\`.env.development.local\\` file.`) // TODO: better message\n\t}\n}\n\n/**\n * @group Entrypoints\n */\nexport const ApplicationEntrypoint = (props: ApplicationEntrypointProps) => {\n\tvalidateProps(props)\n\n\tconst rootEnv = props.environment ?? Environment.create()\n\n\tconst routing: RoutingContextValue = {\n\t\tbasePath: props.basePath,\n\t\troutes: props.routes ?? { index: { path: '/' } },\n\t\tdefaultDimensions: rootEnv.getAllDimensions(),\n\t}\n\n\n\treturn (\n\t\t<EnvironmentContext.Provider value={rootEnv}>\n\t\t\t<RoutingContext.Provider value={routing}>\n\t\t\t\t<RequestProvider>\n\t\t\t\t\t<ContemberClient\n\t\t\t\t\t\tapiBaseUrl={props.apiBaseUrl}\n\t\t\t\t\t\tsessionToken={props.sessionToken}\n\t\t\t\t\t\tloginToken={props.loginToken}\n\t\t\t\t\t\tproject={props.project}\n\t\t\t\t\t\tstage={props.stage}\n\t\t\t\t\t>\n\t\t\t\t\t\t<EnvironmentExtensionProvider extension={projectEnvironmentExtension} state={props.project ?? null}>\n\t\t\t\t\t\t\t<DataViewPageNameKeyProvider>\n\t\t\t\t\t\t\t\t<IdentityProvider>\n\t\t\t\t\t\t\t\t\t{props.children}\n\t\t\t\t\t\t\t\t</IdentityProvider>\n\t\t\t\t\t\t\t</DataViewPageNameKeyProvider>\n\t\t\t\t\t\t</EnvironmentExtensionProvider>\n\t\t\t\t\t</ContemberClient>\n\t\t\t\t</RequestProvider>\n\t\t\t</RoutingContext.Provider>\n\t\t</EnvironmentContext.Provider>\n\t)\n}\n"],"names":[],"mappings":";;;;;;AAeA,MAAM,gBAAgB,CAAC,UAA+C;AACjE,MAAA,OAAO,MAAM,eAAe,UAAU;AACnC,UAAA,IAAI,MAAM,iFAAiF;AAAA,EAClG;AACD;AAKa,MAAA,wBAAwB,CAAC,UAAsC;AAC3E,gBAAc,KAAK;AAEnB,QAAM,UAAU,MAAM,eAAe,YAAY,OAAO;AAExD,QAAM,UAA+B;AAAA,IACpC,UAAU,MAAM;AAAA,IAChB,QAAQ,MAAM,UAAU,EAAE,OAAO,EAAE,MAAM,MAAM;AAAA,IAC/C,mBAAmB,QAAQ,iBAAiB;AAAA,EAAA;AAI7C,SACE,oBAAA,mBAAmB,UAAnB,EAA4B,OAAO,SACnC,UAAC,oBAAA,eAAe,UAAf,EAAwB,OAAO,SAC/B,8BAAC,iBACA,EAAA,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,YAAY,MAAM;AAAA,MAClB,cAAc,MAAM;AAAA,MACpB,YAAY,MAAM;AAAA,MAClB,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,MAEb,UAAC,oBAAA,8BAAA,EAA6B,WAAW,6BAA6B,OAAO,MAAM,WAAW,MAC7F,UAAA,oBAAC,+BACA,UAAC,oBAAA,kBAAA,EACC,UAAM,MAAA,SAAA,CACR,EACD,CAAA,GACD;AAAA,IAAA;AAAA,EAAA,GAEF,GACD,EACD,CAAA;AAEF;"}
1
+ {"version":3,"file":"ApplicationEntrypoint.js","sources":["../../../src/bootstrap/ApplicationEntrypoint.tsx"],"sourcesContent":["import { Environment, EnvironmentContext, EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { ContemberClient, ContemberClientProps } from '@contember/react-client'\nimport { ReactNode } from 'react'\nimport { RequestProvider, RouteMap, RoutingContext, RoutingContextValue, RoutingProvider, SelectedDimension } from '@contember/react-routing'\nimport { DataViewPageNameKeyProvider } from './DataViewPageNameKeyProvider'\nimport { IdentityEnvironmentProvider, IdentityProvider, projectEnvironmentExtension } from '@contember/react-identity'\n\nexport interface ApplicationEntrypointProps extends ContemberClientProps {\n\tbasePath: string\n\tsessionToken?: string\n\troutes?: RouteMap\n\tchildren: ReactNode\n\tenvironment?: Environment\n}\n\nconst validateProps = (props: Partial<ApplicationEntrypointProps>) => {\n\tif (typeof props.apiBaseUrl !== 'string') {\n\t\tthrow new Error(`The ENV variables haven't been set. Check your \\`.env.development.local\\` file.`) // TODO: better message\n\t}\n}\n\n/**\n * @group Entrypoints\n */\nexport const ApplicationEntrypoint = (props: ApplicationEntrypointProps) => {\n\tvalidateProps(props)\n\n\tconst rootEnv = props.environment ?? Environment.create()\n\n\tconst routing: RoutingContextValue = {\n\t\tbasePath: props.basePath,\n\t\troutes: props.routes ?? { index: { path: '/' } },\n\t\tdefaultDimensions: rootEnv.getAllDimensions(),\n\t}\n\n\n\treturn (\n\t\t<EnvironmentContext.Provider value={rootEnv}>\n\t\t\t<RoutingProvider {...routing}>\n\t\t\t\t<ContemberClient\n\t\t\t\t\tapiBaseUrl={props.apiBaseUrl}\n\t\t\t\t\tsessionToken={props.sessionToken}\n\t\t\t\t\tloginToken={props.loginToken}\n\t\t\t\t\tproject={props.project}\n\t\t\t\t\tstage={props.stage}\n\t\t\t\t>\n\t\t\t\t\t<EnvironmentExtensionProvider extension={projectEnvironmentExtension} state={props.project ?? null}>\n\t\t\t\t\t\t<DataViewPageNameKeyProvider>\n\t\t\t\t\t\t\t<IdentityProvider>\n\t\t\t\t\t\t\t\t<IdentityEnvironmentProvider>\n\t\t\t\t\t\t\t\t\t{props.children}\n\t\t\t\t\t\t\t\t</IdentityEnvironmentProvider>\n\t\t\t\t\t\t\t</IdentityProvider>\n\t\t\t\t\t\t</DataViewPageNameKeyProvider>\n\t\t\t\t\t</EnvironmentExtensionProvider>\n\t\t\t\t</ContemberClient>\n\t\t\t</RoutingProvider>\n\t\t</EnvironmentContext.Provider>\n\t)\n}\n"],"names":[],"mappings":";;;;;;AAeA,MAAM,gBAAgB,CAAC,UAA+C;AACjE,MAAA,OAAO,MAAM,eAAe,UAAU;AACnC,UAAA,IAAI,MAAM,iFAAiF;AAAA,EAClG;AACD;AAKa,MAAA,wBAAwB,CAAC,UAAsC;AAC3E,gBAAc,KAAK;AAEnB,QAAM,UAAU,MAAM,eAAe,YAAY,OAAO;AAExD,QAAM,UAA+B;AAAA,IACpC,UAAU,MAAM;AAAA,IAChB,QAAQ,MAAM,UAAU,EAAE,OAAO,EAAE,MAAM,MAAM;AAAA,IAC/C,mBAAmB,QAAQ,iBAAiB;AAAA,EAAA;AAK5C,SAAA,oBAAC,mBAAmB,UAAnB,EAA4B,OAAO,SACnC,UAAA,oBAAC,iBAAiB,EAAA,GAAG,SACpB,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,YAAY,MAAM;AAAA,MAClB,cAAc,MAAM;AAAA,MACpB,YAAY,MAAM;AAAA,MAClB,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,MAEb,8BAAC,8BAA6B,EAAA,WAAW,6BAA6B,OAAO,MAAM,WAAW,MAC7F,UAAA,oBAAC,6BACA,EAAA,UAAA,oBAAC,oBACA,UAAC,oBAAA,6BAAA,EACC,gBAAM,SACR,CAAA,GACD,GACD,EACD,CAAA;AAAA,IAAA;AAAA,EAAA,EAEF,CAAA,EACD,CAAA;AAEF;"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const react = require("react");
4
+ const defaultCheckIntervalMs = 3e4;
5
+ const useIsApplicationOutdated = ({ checkIntervalMs = defaultCheckIntervalMs } = {}) => {
6
+ const [initialVersion] = react.useState(() => {
7
+ return getVersionFromDocument(document.head);
8
+ });
9
+ const [isOutdated, setIsOutdated] = react.useState(false);
10
+ const fetchVersion = useFetchVersion();
11
+ const checkVersion = react.useCallback(async () => {
12
+ if (document.hidden) {
13
+ return;
14
+ }
15
+ const version = await fetchVersion();
16
+ if (version !== initialVersion) {
17
+ setIsOutdated(true);
18
+ }
19
+ }, [fetchVersion, initialVersion]);
20
+ const shouldCheck = !!initialVersion && !isOutdated;
21
+ react.useEffect(() => {
22
+ if (!shouldCheck) {
23
+ return;
24
+ }
25
+ const handle = setInterval(checkVersion, checkIntervalMs);
26
+ return () => clearInterval(handle);
27
+ }, [checkIntervalMs, checkVersion, shouldCheck]);
28
+ react.useEffect(() => {
29
+ if (!shouldCheck) {
30
+ return;
31
+ }
32
+ document.addEventListener("visibilitychange", checkVersion);
33
+ return () => document.removeEventListener("visibilitychange", checkVersion);
34
+ }, [checkVersion, shouldCheck]);
35
+ return isOutdated;
36
+ };
37
+ const getVersionFromDocument = (node) => {
38
+ const meta = node.querySelector("meta[name=contember-build-version]");
39
+ return meta?.content;
40
+ };
41
+ const useFetchVersion = () => {
42
+ return react.useCallback(async () => {
43
+ try {
44
+ const result = await (await fetch(window.location.href)).text();
45
+ const html = document.createElement("html");
46
+ html.innerHTML = result;
47
+ return getVersionFromDocument(html);
48
+ } catch (e) {
49
+ console.error(e);
50
+ return void 0;
51
+ }
52
+ }, []);
53
+ };
54
+ exports.useIsApplicationOutdated = useIsApplicationOutdated;
55
+ //# sourceMappingURL=useIsApplicationOutdated.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsApplicationOutdated.cjs","sources":["../../../src/hooks/useIsApplicationOutdated.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nconst defaultCheckIntervalMs = 30_000\n\n\nexport const useIsApplicationOutdated = ({ checkIntervalMs = defaultCheckIntervalMs }: {\n\tcheckIntervalMs?: number\n} = {}) => {\n\tconst [initialVersion] = useState(() => {\n\t\treturn getVersionFromDocument(document.head)\n\t})\n\tconst [isOutdated, setIsOutdated] = useState(false)\n\tconst fetchVersion = useFetchVersion()\n\n\tconst checkVersion = useCallback(async () => {\n\t\tif (document.hidden) {\n\t\t\treturn\n\t\t}\n\t\tconst version = await fetchVersion()\n\t\tif (version !== initialVersion) {\n\t\t\tsetIsOutdated(true)\n\t\t}\n\t}, [fetchVersion, initialVersion])\n\tconst shouldCheck = !!initialVersion && !isOutdated\n\n\tuseEffect(() => {\n\t\tif (!shouldCheck) {\n\t\t\treturn\n\t\t}\n\t\tconst handle = setInterval(checkVersion, checkIntervalMs)\n\t\treturn () => clearInterval(handle)\n\t}, [checkIntervalMs, checkVersion, shouldCheck])\n\n\tuseEffect(() => {\n\t\tif (!shouldCheck) {\n\t\t\treturn\n\t\t}\n\t\tdocument.addEventListener('visibilitychange', checkVersion)\n\t\treturn () => document.removeEventListener('visibilitychange', checkVersion)\n\t}, [checkVersion, shouldCheck])\n\n\treturn isOutdated\n}\n\nconst getVersionFromDocument = (node: ParentNode) => {\n\tconst meta = node.querySelector<HTMLMetaElement>('meta[name=contember-build-version]')\n\treturn meta?.content\n}\n\nconst useFetchVersion = () => {\n\treturn useCallback(async () => {\n\t\ttry {\n\t\t\tconst result = await (await fetch(window.location.href)).text()\n\t\t\tconst html = document.createElement('html')\n\t\t\thtml.innerHTML = result\n\t\t\treturn getVersionFromDocument(html)\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\treturn undefined\n\t\t}\n\t}, [])\n}\n"],"names":["useState","useCallback","useEffect"],"mappings":";;;AAEA,MAAM,yBAAyB;AAGxB,MAAM,2BAA2B,CAAC,EAAE,kBAAkB,uBAAuB,IAEhF,CAAA,MAAO;AACV,QAAM,CAAC,cAAc,IAAIA,MAAAA,SAAS,MAAM;AAChC,WAAA,uBAAuB,SAAS,IAAI;AAAA,EAAA,CAC3C;AACD,QAAM,CAAC,YAAY,aAAa,IAAIA,eAAS,KAAK;AAClD,QAAM,eAAe;AAEf,QAAA,eAAeC,MAAAA,YAAY,YAAY;AAC5C,QAAI,SAAS,QAAQ;AACpB;AAAA,IACD;AACM,UAAA,UAAU,MAAM;AACtB,QAAI,YAAY,gBAAgB;AAC/B,oBAAc,IAAI;AAAA,IACnB;AAAA,EAAA,GACE,CAAC,cAAc,cAAc,CAAC;AACjC,QAAM,cAAc,CAAC,CAAC,kBAAkB,CAAC;AAEzCC,QAAAA,UAAU,MAAM;AACf,QAAI,CAAC,aAAa;AACjB;AAAA,IACD;AACM,UAAA,SAAS,YAAY,cAAc,eAAe;AACjD,WAAA,MAAM,cAAc,MAAM;AAAA,EAC/B,GAAA,CAAC,iBAAiB,cAAc,WAAW,CAAC;AAE/CA,QAAAA,UAAU,MAAM;AACf,QAAI,CAAC,aAAa;AACjB;AAAA,IACD;AACS,aAAA,iBAAiB,oBAAoB,YAAY;AAC1D,WAAO,MAAM,SAAS,oBAAoB,oBAAoB,YAAY;AAAA,EAAA,GACxE,CAAC,cAAc,WAAW,CAAC;AAEvB,SAAA;AACR;AAEA,MAAM,yBAAyB,CAAC,SAAqB;AAC9C,QAAA,OAAO,KAAK,cAA+B,oCAAoC;AACrF,SAAO,MAAM;AACd;AAEA,MAAM,kBAAkB,MAAM;AAC7B,SAAOD,kBAAY,YAAY;AAC1B,QAAA;AACG,YAAA,SAAS,OAAO,MAAM,MAAM,OAAO,SAAS,IAAI,GAAG;AACnD,YAAA,OAAO,SAAS,cAAc,MAAM;AAC1C,WAAK,YAAY;AACjB,aAAO,uBAAuB,IAAI;AAAA,aAC1B,GAAG;AACX,cAAQ,MAAM,CAAC;AACR,aAAA;AAAA,IACR;AAAA,EACD,GAAG,CAAE,CAAA;AACN;;"}
@@ -0,0 +1,55 @@
1
+ import { useState, useCallback, useEffect } from "react";
2
+ const defaultCheckIntervalMs = 3e4;
3
+ const useIsApplicationOutdated = ({ checkIntervalMs = defaultCheckIntervalMs } = {}) => {
4
+ const [initialVersion] = useState(() => {
5
+ return getVersionFromDocument(document.head);
6
+ });
7
+ const [isOutdated, setIsOutdated] = useState(false);
8
+ const fetchVersion = useFetchVersion();
9
+ const checkVersion = useCallback(async () => {
10
+ if (document.hidden) {
11
+ return;
12
+ }
13
+ const version = await fetchVersion();
14
+ if (version !== initialVersion) {
15
+ setIsOutdated(true);
16
+ }
17
+ }, [fetchVersion, initialVersion]);
18
+ const shouldCheck = !!initialVersion && !isOutdated;
19
+ useEffect(() => {
20
+ if (!shouldCheck) {
21
+ return;
22
+ }
23
+ const handle = setInterval(checkVersion, checkIntervalMs);
24
+ return () => clearInterval(handle);
25
+ }, [checkIntervalMs, checkVersion, shouldCheck]);
26
+ useEffect(() => {
27
+ if (!shouldCheck) {
28
+ return;
29
+ }
30
+ document.addEventListener("visibilitychange", checkVersion);
31
+ return () => document.removeEventListener("visibilitychange", checkVersion);
32
+ }, [checkVersion, shouldCheck]);
33
+ return isOutdated;
34
+ };
35
+ const getVersionFromDocument = (node) => {
36
+ const meta = node.querySelector("meta[name=contember-build-version]");
37
+ return meta?.content;
38
+ };
39
+ const useFetchVersion = () => {
40
+ return useCallback(async () => {
41
+ try {
42
+ const result = await (await fetch(window.location.href)).text();
43
+ const html = document.createElement("html");
44
+ html.innerHTML = result;
45
+ return getVersionFromDocument(html);
46
+ } catch (e) {
47
+ console.error(e);
48
+ return void 0;
49
+ }
50
+ }, []);
51
+ };
52
+ export {
53
+ useIsApplicationOutdated
54
+ };
55
+ //# sourceMappingURL=useIsApplicationOutdated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsApplicationOutdated.js","sources":["../../../src/hooks/useIsApplicationOutdated.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nconst defaultCheckIntervalMs = 30_000\n\n\nexport const useIsApplicationOutdated = ({ checkIntervalMs = defaultCheckIntervalMs }: {\n\tcheckIntervalMs?: number\n} = {}) => {\n\tconst [initialVersion] = useState(() => {\n\t\treturn getVersionFromDocument(document.head)\n\t})\n\tconst [isOutdated, setIsOutdated] = useState(false)\n\tconst fetchVersion = useFetchVersion()\n\n\tconst checkVersion = useCallback(async () => {\n\t\tif (document.hidden) {\n\t\t\treturn\n\t\t}\n\t\tconst version = await fetchVersion()\n\t\tif (version !== initialVersion) {\n\t\t\tsetIsOutdated(true)\n\t\t}\n\t}, [fetchVersion, initialVersion])\n\tconst shouldCheck = !!initialVersion && !isOutdated\n\n\tuseEffect(() => {\n\t\tif (!shouldCheck) {\n\t\t\treturn\n\t\t}\n\t\tconst handle = setInterval(checkVersion, checkIntervalMs)\n\t\treturn () => clearInterval(handle)\n\t}, [checkIntervalMs, checkVersion, shouldCheck])\n\n\tuseEffect(() => {\n\t\tif (!shouldCheck) {\n\t\t\treturn\n\t\t}\n\t\tdocument.addEventListener('visibilitychange', checkVersion)\n\t\treturn () => document.removeEventListener('visibilitychange', checkVersion)\n\t}, [checkVersion, shouldCheck])\n\n\treturn isOutdated\n}\n\nconst getVersionFromDocument = (node: ParentNode) => {\n\tconst meta = node.querySelector<HTMLMetaElement>('meta[name=contember-build-version]')\n\treturn meta?.content\n}\n\nconst useFetchVersion = () => {\n\treturn useCallback(async () => {\n\t\ttry {\n\t\t\tconst result = await (await fetch(window.location.href)).text()\n\t\t\tconst html = document.createElement('html')\n\t\t\thtml.innerHTML = result\n\t\t\treturn getVersionFromDocument(html)\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\treturn undefined\n\t\t}\n\t}, [])\n}\n"],"names":[],"mappings":";AAEA,MAAM,yBAAyB;AAGxB,MAAM,2BAA2B,CAAC,EAAE,kBAAkB,uBAAuB,IAEhF,CAAA,MAAO;AACV,QAAM,CAAC,cAAc,IAAI,SAAS,MAAM;AAChC,WAAA,uBAAuB,SAAS,IAAI;AAAA,EAAA,CAC3C;AACD,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAClD,QAAM,eAAe;AAEf,QAAA,eAAe,YAAY,YAAY;AAC5C,QAAI,SAAS,QAAQ;AACpB;AAAA,IACD;AACM,UAAA,UAAU,MAAM;AACtB,QAAI,YAAY,gBAAgB;AAC/B,oBAAc,IAAI;AAAA,IACnB;AAAA,EAAA,GACE,CAAC,cAAc,cAAc,CAAC;AACjC,QAAM,cAAc,CAAC,CAAC,kBAAkB,CAAC;AAEzC,YAAU,MAAM;AACf,QAAI,CAAC,aAAa;AACjB;AAAA,IACD;AACM,UAAA,SAAS,YAAY,cAAc,eAAe;AACjD,WAAA,MAAM,cAAc,MAAM;AAAA,EAC/B,GAAA,CAAC,iBAAiB,cAAc,WAAW,CAAC;AAE/C,YAAU,MAAM;AACf,QAAI,CAAC,aAAa;AACjB;AAAA,IACD;AACS,aAAA,iBAAiB,oBAAoB,YAAY;AAC1D,WAAO,MAAM,SAAS,oBAAoB,oBAAoB,YAAY;AAAA,EAAA,GACxE,CAAC,cAAc,WAAW,CAAC;AAEvB,SAAA;AACR;AAEA,MAAM,yBAAyB,CAAC,SAAqB;AAC9C,QAAA,OAAO,KAAK,cAA+B,oCAAoC;AACrF,SAAO,MAAM;AACd;AAEA,MAAM,kBAAkB,MAAM;AAC7B,SAAO,YAAY,YAAY;AAC1B,QAAA;AACG,YAAA,SAAS,OAAO,MAAM,MAAM,OAAO,SAAS,IAAI,GAAG;AACnD,YAAA,OAAO,SAAS,cAAc,MAAM;AAC1C,WAAK,YAAY;AACjB,aAAO,uBAAuB,IAAI;AAAA,aAC1B,GAAG;AACX,cAAQ,MAAM,CAAC;AACR,aAAA;AAAA,IACR;AAAA,EACD,GAAG,CAAE,CAAA;AACN;"}
@@ -11,6 +11,7 @@ const DisconnectEntityTrigger = require("./components/binding/DisconnectEntityTr
11
11
  const PersistTrigger = require("./components/binding/PersistTrigger.cjs");
12
12
  const EntityBeforePersist = require("./components/binding/EntityBeforePersist.cjs");
13
13
  const RedirectOnPersist = require("./components/binding/RedirectOnPersist.cjs");
14
+ const useIsApplicationOutdated = require("./hooks/useIsApplicationOutdated.cjs");
14
15
  Object.defineProperty(exports, "createErrorHandler", {
15
16
  enumerable: true,
16
17
  get: () => reactDevbar.createErrorHandler
@@ -22,6 +23,7 @@ exports.DisconnectEntityTrigger = DisconnectEntityTrigger.DisconnectEntityTrigge
22
23
  exports.PersistTrigger = PersistTrigger.PersistTrigger;
23
24
  exports.EntityBeforePersist = EntityBeforePersist.EntityBeforePersist;
24
25
  exports.RedirectOnPersist = RedirectOnPersist.RedirectOnPersist;
26
+ exports.useIsApplicationOutdated = useIsApplicationOutdated.useIsApplicationOutdated;
25
27
  Object.keys(reactRouting).forEach((k) => {
26
28
  if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports, k))
27
29
  Object.defineProperty(exports, k, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -9,6 +9,7 @@ import { DisconnectEntityTrigger } from "./components/binding/DisconnectEntityTr
9
9
  import { PersistTrigger } from "./components/binding/PersistTrigger.js";
10
10
  import { EntityBeforePersist } from "./components/binding/EntityBeforePersist.js";
11
11
  import { RedirectOnPersist } from "./components/binding/RedirectOnPersist.js";
12
+ import { useIsApplicationOutdated } from "./hooks/useIsApplicationOutdated.js";
12
13
  export {
13
14
  ApplicationEntrypoint,
14
15
  ClearFieldTrigger,
@@ -17,6 +18,7 @@ export {
17
18
  EntityBeforePersist,
18
19
  PersistTrigger,
19
20
  RedirectOnPersist,
20
- createErrorHandler
21
+ createErrorHandler,
22
+ useIsApplicationOutdated
21
23
  };
22
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ApplicationEntrypoint.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/ApplicationEntrypoint.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAoD,MAAM,0BAA0B,CAAA;AACxG,OAAO,EAAmB,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAmB,QAAQ,EAA0D,MAAM,0BAA0B,CAAA;AAI5H,MAAM,WAAW,0BAA2B,SAAQ,oBAAoB;IACvE,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,CAAC,EAAE,WAAW,CAAA;CACzB;AAQD;;GAEG;AACH,eAAO,MAAM,qBAAqB,UAAW,0BAA0B,4CAmCtE,CAAA"}
1
+ {"version":3,"file":"ApplicationEntrypoint.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/ApplicationEntrypoint.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAoD,MAAM,0BAA0B,CAAA;AACxG,OAAO,EAAmB,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAmB,QAAQ,EAA2E,MAAM,0BAA0B,CAAA;AAI7I,MAAM,WAAW,0BAA2B,SAAQ,oBAAoB;IACvE,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,CAAC,EAAE,WAAW,CAAA;CACzB;AAQD;;GAEG;AACH,eAAO,MAAM,qBAAqB,UAAW,0BAA0B,4CAmCtE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataViewPageNameKeyProvider.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/DataViewPageNameKeyProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,eAAO,MAAM,2BAA2B;cAA8B,SAAS;6CAQ9E,CAAA"}
1
+ {"version":3,"file":"DataViewPageNameKeyProvider.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/DataViewPageNameKeyProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,eAAO,MAAM,2BAA2B,iBAAkB;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,4CAQhF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityBeforePersist.d.ts","sourceRoot":"","sources":["../../../../src/components/binding/EntityBeforePersist.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA0B,MAAM,0BAA0B,CAAA;AAEjF,eAAO,MAAM,mBAAmB;cAA8B,eAAe,sBAAsB,CAAC,eAAe,CAAC;UAGnH,CAAA"}
1
+ {"version":3,"file":"EntityBeforePersist.d.ts","sourceRoot":"","sources":["../../../../src/components/binding/EntityBeforePersist.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA0B,MAAM,0BAA0B,CAAA;AAEjF,eAAO,MAAM,mBAAmB,iBAAkB;IAAE,QAAQ,EAAE,eAAe,sBAAsB,CAAC,eAAe,CAAC,CAAA;CAAC,SAGpH,CAAA"}