gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] branch master updated (e7971ba0a -> 5f2ea2633)


From: gnunet
Subject: [taler-wallet-core] branch master updated (e7971ba0a -> 5f2ea2633)
Date: Mon, 19 Aug 2024 16:54:56 +0200

This is an automated email from the git hooks/post-receive script.

sebasjm pushed a change to branch master
in repository wallet-core.

    from e7971ba0a wallet-core: update KYC implementation for peer-push, add 
test
     new 63eb59ce1 first kyc ui
     new 0f22f0073 to the latest pnpm version 8
     new 5f2ea2633 kyc ui deps

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 package.json                                       |  2 +-
 packages/{aml-backoffice-ui => kyc-ui}/.gitignore  |  0
 packages/{aml-backoffice-ui => kyc-ui}/Makefile    |  0
 packages/kyc-ui/README.md                          |  4 +
 packages/{challenger-ui => kyc-ui}/build.mjs       |  0
 .../copyleft-header.js                             |  0
 packages/{challenger-ui => kyc-ui}/dev.mjs         |  0
 packages/{challenger-ui => kyc-ui}/package.json    |  6 +-
 packages/{bank-ui => kyc-ui}/postcss.config.js     |  0
 packages/kyc-ui/src/Routing.tsx                    | 99 ++++++++++++++++++++++
 packages/{challenger-ui => kyc-ui}/src/app.tsx     | 42 ++++-----
 .../src/assets/home.svg                            |  0
 .../src/assets/logo-2021.svg                       |  0
 .../src/assets/people.svg                          |  0
 .../src/context/preferences.ts                     |  8 +-
 .../{bank-ui => kyc-ui}/src/context/settings.ts    |  8 +-
 packages/{bank-ui => kyc-ui}/src/declaration.d.ts  |  0
 .../hooks/challenge.ts => kyc-ui/src/hooks/kyc.ts} | 22 ++---
 packages/kyc-ui/src/hooks/session.ts               | 65 ++++++++++++++
 .../src/i18n/challenger-ui.pot                     |  2 +-
 .../src/i18n/poheader                              |  2 +-
 .../{challenger-ui => kyc-ui}/src/i18n/strings.ts  |  0
 packages/{challenger-ui => kyc-ui}/src/index.html  |  2 +-
 packages/{bank-ui => kyc-ui}/src/index.tsx         |  0
 packages/{challenger-ui => kyc-ui}/src/main.js     |  0
 .../src/pages/CallengeCompleted.tsx                |  6 +-
 .../{challenger-ui => kyc-ui}/src/pages/Frame.tsx  |  8 +-
 .../src/pages/MissingParams.tsx                    |  0
 .../src/pages/NonceNotFound.tsx                    |  0
 .../pages/Setup.tsx => kyc-ui/src/pages/Start.tsx} | 74 +++++++++++-----
 .../src/scss/main.css                              |  0
 packages/kyc-ui/src/settings.json                  |  3 +
 packages/{challenger-ui => kyc-ui}/src/settings.ts | 16 ++--
 packages/{bank-ui => kyc-ui}/tailwind.config.js    |  0
 .../{aml-backoffice-ui => kyc-ui}/tsconfig.json    |  0
 pnpm-lock.yaml                                     | 77 ++++++++++++++++-
 36 files changed, 349 insertions(+), 97 deletions(-)
 copy packages/{aml-backoffice-ui => kyc-ui}/.gitignore (100%)
 copy packages/{aml-backoffice-ui => kyc-ui}/Makefile (100%)
 create mode 100644 packages/kyc-ui/README.md
 copy packages/{challenger-ui => kyc-ui}/build.mjs (100%)
 copy packages/{aml-backoffice-ui => kyc-ui}/copyleft-header.js (100%)
 copy packages/{challenger-ui => kyc-ui}/dev.mjs (100%)
 copy packages/{challenger-ui => kyc-ui}/package.json (93%)
 copy packages/{bank-ui => kyc-ui}/postcss.config.js (100%)
 create mode 100644 packages/kyc-ui/src/Routing.tsx
 copy packages/{challenger-ui => kyc-ui}/src/app.tsx (82%)
 copy packages/{aml-backoffice-ui => kyc-ui}/src/assets/home.svg (100%)
 copy packages/{aml-backoffice-ui => kyc-ui}/src/assets/logo-2021.svg (100%)
 copy packages/{aml-backoffice-ui => kyc-ui}/src/assets/people.svg (100%)
 copy packages/{challenger-ui => kyc-ui}/src/context/preferences.ts (89%)
 copy packages/{bank-ui => kyc-ui}/src/context/settings.ts (89%)
 copy packages/{bank-ui => kyc-ui}/src/declaration.d.ts (100%)
 copy packages/{challenger-ui/src/hooks/challenge.ts => 
kyc-ui/src/hooks/kyc.ts} (70%)
 create mode 100644 packages/kyc-ui/src/hooks/session.ts
 copy packages/{challenger-ui => kyc-ui}/src/i18n/challenger-ui.pot (99%)
 copy packages/{aml-backoffice-ui => kyc-ui}/src/i18n/poheader (96%)
 copy packages/{challenger-ui => kyc-ui}/src/i18n/strings.ts (100%)
 copy packages/{challenger-ui => kyc-ui}/src/index.html (99%)
 copy packages/{bank-ui => kyc-ui}/src/index.tsx (100%)
 copy packages/{challenger-ui => kyc-ui}/src/main.js (100%)
 copy packages/{challenger-ui => kyc-ui}/src/pages/CallengeCompleted.tsx (86%)
 copy packages/{challenger-ui => kyc-ui}/src/pages/Frame.tsx (96%)
 copy packages/{challenger-ui => kyc-ui}/src/pages/MissingParams.tsx (100%)
 copy packages/{challenger-ui => kyc-ui}/src/pages/NonceNotFound.tsx (100%)
 copy packages/{challenger-ui/src/pages/Setup.tsx => 
kyc-ui/src/pages/Start.tsx} (80%)
 copy packages/{aml-backoffice-ui => kyc-ui}/src/scss/main.css (100%)
 create mode 100644 packages/kyc-ui/src/settings.json
 copy packages/{challenger-ui => kyc-ui}/src/settings.ts (82%)
 copy packages/{bank-ui => kyc-ui}/tailwind.config.js (100%)
 copy packages/{aml-backoffice-ui => kyc-ui}/tsconfig.json (100%)

diff --git a/package.json b/package.json
index 0da09cb59..69a6a5997 100644
--- a/package.json
+++ b/package.json
@@ -17,5 +17,5 @@
     "typedoc": "^0.25.4",
     "typescript": "^5.3.3"
   },
-  "packageManager": "pnpm@9.7.0"
+  "packageManager": "pnpm@8.15.9"
 }
diff --git a/packages/aml-backoffice-ui/.gitignore b/packages/kyc-ui/.gitignore
similarity index 100%
copy from packages/aml-backoffice-ui/.gitignore
copy to packages/kyc-ui/.gitignore
diff --git a/packages/aml-backoffice-ui/Makefile b/packages/kyc-ui/Makefile
similarity index 100%
copy from packages/aml-backoffice-ui/Makefile
copy to packages/kyc-ui/Makefile
diff --git a/packages/kyc-ui/README.md b/packages/kyc-ui/README.md
new file mode 100644
index 000000000..d876aaf2b
--- /dev/null
+++ b/packages/kyc-ui/README.md
@@ -0,0 +1,4 @@
+# KYC UI
+
+Web-based user interface for the exchange kyc.
+
diff --git a/packages/challenger-ui/build.mjs b/packages/kyc-ui/build.mjs
similarity index 100%
copy from packages/challenger-ui/build.mjs
copy to packages/kyc-ui/build.mjs
diff --git a/packages/aml-backoffice-ui/copyleft-header.js 
b/packages/kyc-ui/copyleft-header.js
similarity index 100%
copy from packages/aml-backoffice-ui/copyleft-header.js
copy to packages/kyc-ui/copyleft-header.js
diff --git a/packages/challenger-ui/dev.mjs b/packages/kyc-ui/dev.mjs
similarity index 100%
copy from packages/challenger-ui/dev.mjs
copy to packages/kyc-ui/dev.mjs
diff --git a/packages/challenger-ui/package.json b/packages/kyc-ui/package.json
similarity index 93%
copy from packages/challenger-ui/package.json
copy to packages/kyc-ui/package.json
index 5166ef06d..e02c88fe0 100644
--- a/packages/challenger-ui/package.json
+++ b/packages/kyc-ui/package.json
@@ -1,10 +1,10 @@
 {
   "private": true,
-  "name": "@gnu-taler/challenger-ui",
+  "name": "@gnu-taler/kyc-ui",
   "version": "0.12.12",
   "author": "sebasjm",
   "license": "AGPL-3.0-OR-LATER",
-  "description": "UI for GNU Challenger.",
+  "description": "UI for GNU Exchange KYC.",
   "type": "module",
   "scripts": {
     "build": "./build.mjs",
@@ -53,7 +53,7 @@
     "typescript": "5.3.3"
   },
   "pogen": {
-    "domain": "challenger-ui"
+    "domain": "kyc-ui"
   },
   "dependencies": {
     "swr": "2.0.3",
diff --git a/packages/bank-ui/postcss.config.js 
b/packages/kyc-ui/postcss.config.js
similarity index 100%
copy from packages/bank-ui/postcss.config.js
copy to packages/kyc-ui/postcss.config.js
diff --git a/packages/kyc-ui/src/Routing.tsx b/packages/kyc-ui/src/Routing.tsx
new file mode 100644
index 000000000..54bec1404
--- /dev/null
+++ b/packages/kyc-ui/src/Routing.tsx
@@ -0,0 +1,99 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022-2024 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
+import {
+  urlPattern,
+  useCurrentLocation,
+  useNavigationContext
+} from "@gnu-taler/web-util/browser";
+import { Fragment, VNode, h } from "preact";
+
+import { assertUnreachable } from "@gnu-taler/taler-util";
+import { useErrorBoundary } from "preact/hooks";
+import { CallengeCompleted } from "./pages/CallengeCompleted.js";
+import { Frame } from "./pages/Frame.js";
+import { Start } from "./pages/Start.js";
+
+export function Routing(): VNode {
+  // check session and defined if this is
+  // public routing or private
+  return (
+    <Frame>
+      <PublicRounting />
+    </Frame>
+  );
+}
+
+const publicPages = {
+  completed: urlPattern(/\/completed/, () => `#/completed`),
+  start: urlPattern<{ token: string }>(
+    /\/start\/(?<token>[0-9A-Za-z]+)/,
+    ({ token }) => `#/start/${token}`,
+  ),
+};
+
+function safeGetParam(
+  ps: Record<string, string[]>,
+  n: string,
+): string | undefined {
+  if (!ps[n] || ps[n].length == 0) return undefined;
+  return ps[n][0];
+}
+
+export function safeToURL(s: string | undefined): URL | undefined {
+  if (s === undefined) return undefined;
+  try {
+    return new URL(s);
+  } catch (e) {
+    return undefined;
+  }
+}
+
+function PublicRounting(): VNode {
+  const location = useCurrentLocation(publicPages);
+  const { navigateTo } = useNavigationContext();
+  useErrorBoundary((e) => {
+    console.log("error", e);
+  });
+  console.log("ASD", location.name)
+  switch (location.name) {
+    case undefined: {
+      return <div>not found</div>
+    }
+    case "start": {
+      const secret = safeGetParam(location.params, "secret");
+      const redirectURL = safeToURL(
+        safeGetParam(location.params, "redirect_uri"),
+      );
+
+      return (
+        <Start
+          clientId={location.values.token}
+          secret={secret}
+          redirectURL={redirectURL}
+          onCreated={() => {
+            navigateTo(publicPages.completed.url({}));
+          }}
+        />
+      );
+    }
+    case "completed": {
+      return <CallengeCompleted />;
+    }
+    default:
+      assertUnreachable(location);
+  }
+}
diff --git a/packages/challenger-ui/src/app.tsx b/packages/kyc-ui/src/app.tsx
similarity index 82%
copy from packages/challenger-ui/src/app.tsx
copy to packages/kyc-ui/src/app.tsx
index 655e46a5c..7bee7b11a 100644
--- a/packages/challenger-ui/src/app.tsx
+++ b/packages/kyc-ui/src/app.tsx
@@ -16,51 +16,41 @@
 
 import {
   CacheEvictor,
-  ChallengerCacheEviction,
-  assertUnreachable,
+  TalerExchangeCacheEviction,
   canonicalizeBaseUrl,
   getGlobalLogLevel,
-  setGlobalLogLevelFromString,
+  setGlobalLogLevelFromString
 } from "@gnu-taler/taler-util";
 import {
   BrowserHashNavigationProvider,
-  ChallengerApiProvider,
+  ExchangeApiProvider,
   Loading,
   TalerWalletIntegrationBrowserProvider,
-  TranslationProvider,
+  TranslationProvider
 } from "@gnu-taler/web-util/browser";
 import { VNode, h } from "preact";
 import { useEffect, useState } from "preact/hooks";
 import { SWRConfig } from "swr";
 import { Routing } from "./Routing.js";
 import { SettingsProvider } from "./context/settings.js";
-import { revalidateChallengeSession } from "./hooks/challenge.js";
 import { strings } from "./i18n/strings.js";
 import { Frame } from "./pages/Frame.js";
-import { ChallengerUiSettings, fetchSettings } from "./settings.js";
+import { KycUiSettings, fetchSettings } from "./settings.js";
 
 const WITH_LOCAL_STORAGE_CACHE = false;
 
-const evictBankSwrCache: CacheEvictor<ChallengerCacheEviction> = {
+const evictExchangeSwrCache: CacheEvictor<TalerExchangeCacheEviction> = {
   async notifySuccess(op) {
-    switch (op) {
-      case ChallengerCacheEviction.CREATE_CHALLENGE: {
-        await Promise.all([revalidateChallengeSession()]);
-        return;
-      }
-      case ChallengerCacheEviction.SOLVE_CHALLENGE: {
-        await Promise.all([revalidateChallengeSession()]);
-        return;
-      }
-      default: {
-        assertUnreachable(op);
-      }
-    }
+    // switch (op) {
+    //   default: {
+    //     assertUnreachable(op);
+    //   }
+    // }
   },
 };
 
 export function App(): VNode {
-  const [settings, setSettings] = useState<ChallengerUiSettings>();
+  const [settings, setSettings] = useState<KycUiSettings>();
   useEffect(() => {
     fetchSettings(setSettings);
   }, []);
@@ -77,11 +67,11 @@ export function App(): VNode {
           de: strings["de"].completeness,
         }}
       >
-        <ChallengerApiProvider
+        <ExchangeApiProvider
           baseUrl={new URL("/", baseUrl)}
           frameOnError={Frame}
           evictors={{
-            challenger: evictBankSwrCache,
+            exchange: evictExchangeSwrCache
           }}
         >
           <SWRConfig
@@ -117,7 +107,7 @@ export function App(): VNode {
               </BrowserHashNavigationProvider>
             </TalerWalletIntegrationBrowserProvider>
           </SWRConfig>
-        </ChallengerApiProvider>
+        </ExchangeApiProvider>
       </TranslationProvider>
     </SettingsProvider>
   );
@@ -143,7 +133,7 @@ function getInitialBackendBaseURL(
 ): string {
   const overrideUrl =
     typeof localStorage !== "undefined"
-      ? localStorage.getItem("challenger-base-url")
+      ? localStorage.getItem("kyc-base-url")
       : undefined;
   let result: string;
 
diff --git a/packages/aml-backoffice-ui/src/assets/home.svg 
b/packages/kyc-ui/src/assets/home.svg
similarity index 100%
copy from packages/aml-backoffice-ui/src/assets/home.svg
copy to packages/kyc-ui/src/assets/home.svg
diff --git a/packages/aml-backoffice-ui/src/assets/logo-2021.svg 
b/packages/kyc-ui/src/assets/logo-2021.svg
similarity index 100%
copy from packages/aml-backoffice-ui/src/assets/logo-2021.svg
copy to packages/kyc-ui/src/assets/logo-2021.svg
diff --git a/packages/aml-backoffice-ui/src/assets/people.svg 
b/packages/kyc-ui/src/assets/people.svg
similarity index 100%
copy from packages/aml-backoffice-ui/src/assets/people.svg
copy to packages/kyc-ui/src/assets/people.svg
diff --git a/packages/challenger-ui/src/context/preferences.ts 
b/packages/kyc-ui/src/context/preferences.ts
similarity index 89%
copy from packages/challenger-ui/src/context/preferences.ts
copy to packages/kyc-ui/src/context/preferences.ts
index 3188bd71c..3dc4294cb 100644
--- a/packages/challenger-ui/src/context/preferences.ts
+++ b/packages/kyc-ui/src/context/preferences.ts
@@ -27,23 +27,20 @@ import {
 } from "@gnu-taler/web-util/browser";
 
 interface Preferences {
-  showChallangeSetup: boolean;
   showDebugInfo: boolean;
 }
 
 export const codecForPreferences = (): Codec<Preferences> =>
   buildCodecForObject<Preferences>()
-    .property("showChallangeSetup", codecForBoolean())
     .property("showDebugInfo", codecForBoolean())
     .build("Preferences");
 
 const defaultPreferences: Preferences = {
-  showChallangeSetup: false,
   showDebugInfo: false,
 };
 
 const PREFERENCES_KEY = buildStorageKey(
-  "challenger-preferences",
+  "kyc-preferences",
   codecForPreferences(),
 );
 /**
@@ -69,7 +66,6 @@ export function usePreferences(): [
 
 export function getAllBooleanPreferences(): Array<keyof Preferences> {
   return [
-    "showChallangeSetup",
     "showDebugInfo",
   ];
 }
@@ -79,8 +75,6 @@ export function getLabelForPreferences(
   i18n: ReturnType<typeof useTranslationContext>["i18n"],
 ): TranslatedString {
   switch (k) {
-    case "showChallangeSetup":
-      return i18n.str`Show challenger setup screen`;
     case "showDebugInfo":
       return i18n.str`Show debug info`;
   }
diff --git a/packages/bank-ui/src/context/settings.ts 
b/packages/kyc-ui/src/context/settings.ts
similarity index 89%
copy from packages/bank-ui/src/context/settings.ts
copy to packages/kyc-ui/src/context/settings.ts
index 6c61a7b4a..1b4b6576d 100644
--- a/packages/bank-ui/src/context/settings.ts
+++ b/packages/kyc-ui/src/context/settings.ts
@@ -16,16 +16,16 @@
 
 import { ComponentChildren, createContext, h, VNode } from "preact";
 import { useContext } from "preact/hooks";
-import { UiSettings } from "../settings.js";
+import { KycUiSettings } from "../settings.js";
 
 /**
  *
  * @author Sebastian Javier Marchano (sebasjm)
  */
 
-export type Type = UiSettings;
+export type Type = KycUiSettings;
 
-const initial: UiSettings = {};
+const initial: KycUiSettings = {};
 const Context = createContext<Type>(initial);
 
 export const useSettingsContext = (): Type => useContext(Context);
@@ -34,7 +34,7 @@ export const SettingsProvider = ({
   children,
   value,
 }: {
-  value: UiSettings;
+  value: KycUiSettings;
   children: ComponentChildren;
 }): VNode => {
   return h(Context.Provider, {
diff --git a/packages/bank-ui/src/declaration.d.ts 
b/packages/kyc-ui/src/declaration.d.ts
similarity index 100%
copy from packages/bank-ui/src/declaration.d.ts
copy to packages/kyc-ui/src/declaration.d.ts
diff --git a/packages/challenger-ui/src/hooks/challenge.ts 
b/packages/kyc-ui/src/hooks/kyc.ts
similarity index 70%
copy from packages/challenger-ui/src/hooks/challenge.ts
copy to packages/kyc-ui/src/hooks/kyc.ts
index 81cceec3f..564eef13b 100644
--- a/packages/challenger-ui/src/hooks/challenge.ts
+++ b/packages/kyc-ui/src/hooks/kyc.ts
@@ -14,34 +14,34 @@
  GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 import {
-  ChallengerResultByMethod,
-  TalerHttpError,
+  TalerExchangeResultByMethod,
+  TalerHttpError
 } from "@gnu-taler/taler-util";
-import { useChallengerApiContext } from "@gnu-taler/web-util/browser";
+import { useExchangeApiContext } from "@gnu-taler/web-util/browser";
 import _useSWR, { SWRHook, mutate } from "swr";
 import { SessionId } from "./session.js";
 const useSWR = _useSWR as unknown as SWRHook;
 
-export function revalidateChallengeSession() {
+export function revalidateKycInfo() {
   return mutate(
-    (key) => Array.isArray(key) && key[key.length - 1] === "login",
+    (key) => Array.isArray(key) && key[key.length - 1] === "checkKycInfo",
     undefined,
     { revalidate: true },
   );
 }
 
-export function useChallengeSession(session: SessionId) {
+export function useKycInfo(session: SessionId) {
   const {
-    lib: { challenger: api },
-  } = useChallengerApiContext();
+    lib: { exchange: api },
+  } = useExchangeApiContext();
 
   async function fetcher([s]: [SessionId]) {
-    return await api.login(s.nonce, s.clientId, s.redirectURL, s.state);
+    return await api.checkKycInfo(s.accessToken, [], { timeout: 1000 });
   }
   const { data, error } = useSWR<
-    ChallengerResultByMethod<"login">,
+    TalerExchangeResultByMethod<"checkKycInfo">,
     TalerHttpError
-  >(!session ? undefined : [session, "login"], fetcher, {
+  >(!session ? undefined : [session, "checkKycInfo"], fetcher, {
     revalidateIfStale: false,
     errorRetryCount: 0,
     errorRetryInterval: 1,
diff --git a/packages/kyc-ui/src/hooks/session.ts 
b/packages/kyc-ui/src/hooks/session.ts
new file mode 100644
index 000000000..33ebed804
--- /dev/null
+++ b/packages/kyc-ui/src/hooks/session.ts
@@ -0,0 +1,65 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022-2024 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
+import {
+  AccessToken,
+  Codec,
+  buildCodecForObject
+} from "@gnu-taler/taler-util";
+import { buildStorageKey, useLocalStorage } from "@gnu-taler/web-util/browser";
+
+/**
+ * Has the information to reach and
+ * authenticate at the bank's backend.
+ */
+export type SessionId = {
+  accessToken: AccessToken;
+};
+
+
+export type SessionState = {
+};
+
+export const codecForSessionState = (): Codec<SessionState> =>
+  buildCodecForObject<SessionState>()
+//     .property("completedURL", codecOptional(codecForStringURL()))
+//     .property("lastAddress", 
codecOptional(codecForList(codecForLastAddress())))
+    .build("SessionState");
+
+export interface SessionStateHandler {
+  state: SessionState | undefined;
+  start(s: SessionId): void;
+}
+
+const SESSION_STATE_KEY = buildStorageKey(
+  "kyc-session",
+  codecForSessionState(),
+);
+
+/**
+ * Return getters and setters for
+ * login credentials and backend's
+ * base URL.
+ */
+export function useSessionState(): SessionStateHandler {
+  const { value: state, update } = useLocalStorage(SESSION_STATE_KEY);
+
+  return {
+    state,
+    start() {
+    },
+  };
+}
diff --git a/packages/challenger-ui/src/i18n/challenger-ui.pot 
b/packages/kyc-ui/src/i18n/challenger-ui.pot
similarity index 99%
copy from packages/challenger-ui/src/i18n/challenger-ui.pot
copy to packages/kyc-ui/src/i18n/challenger-ui.pot
index c1501192f..494fbfb8f 100644
--- a/packages/challenger-ui/src/i18n/challenger-ui.pot
+++ b/packages/kyc-ui/src/i18n/challenger-ui.pot
@@ -15,7 +15,7 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: Challenger\n"
+"Project-Id-Version: Kyc UI\n"
 "Report-Msgid-Bugs-To: taler@gnu.org\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
diff --git a/packages/aml-backoffice-ui/src/i18n/poheader 
b/packages/kyc-ui/src/i18n/poheader
similarity index 96%
copy from packages/aml-backoffice-ui/src/i18n/poheader
copy to packages/kyc-ui/src/i18n/poheader
index d7a371934..ed65f25e2 100644
--- a/packages/aml-backoffice-ui/src/i18n/poheader
+++ b/packages/kyc-ui/src/i18n/poheader
@@ -15,7 +15,7 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: Taler Bank\n"
+"Project-Id-Version: Kyc UI\n"
 "Report-Msgid-Bugs-To: taler@gnu.org\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
diff --git a/packages/challenger-ui/src/i18n/strings.ts 
b/packages/kyc-ui/src/i18n/strings.ts
similarity index 100%
copy from packages/challenger-ui/src/i18n/strings.ts
copy to packages/kyc-ui/src/i18n/strings.ts
diff --git a/packages/challenger-ui/src/index.html 
b/packages/kyc-ui/src/index.html
similarity index 99%
copy from packages/challenger-ui/src/index.html
copy to packages/kyc-ui/src/index.html
index 18f472045..cbbf6addf 100644
--- a/packages/challenger-ui/src/index.html
+++ b/packages/kyc-ui/src/index.html
@@ -29,7 +29,7 @@
       
href="data:;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABILAAASCwAAAAAAAAAAAAD///////////////////////////////////////////////////////////////////////////////////////////////////7//v38//78/P/+/fz//vz7///+/v/+/f3//vz7///+/v/+/fz//v38///////////////////////+/v3///7+/////////////////////////////////////////////////////////v3//v79///////+/v3///////r28v/ct5//06SG/9Gffv/Xqo7/7N/V/9e2nf/bsJb/6uDW/9Sskf/euKH/+/j2///////+/v3//////+3azv+/eE3/2rWd/9Kkhv/Vr5T/48i2/8J+VP/
 [...]
     />
     <link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon" />
-    <title>Challenger</title>
+    <title>KYC</title>
     <!-- Entry point for the SPA. -->
     <script type="module" src="index.js"></script>
     <link rel="stylesheet" href="index.css" />
diff --git a/packages/bank-ui/src/index.tsx b/packages/kyc-ui/src/index.tsx
similarity index 100%
copy from packages/bank-ui/src/index.tsx
copy to packages/kyc-ui/src/index.tsx
diff --git a/packages/challenger-ui/src/main.js b/packages/kyc-ui/src/main.js
similarity index 100%
copy from packages/challenger-ui/src/main.js
copy to packages/kyc-ui/src/main.js
diff --git a/packages/challenger-ui/src/pages/CallengeCompleted.tsx 
b/packages/kyc-ui/src/pages/CallengeCompleted.tsx
similarity index 86%
copy from packages/challenger-ui/src/pages/CallengeCompleted.tsx
copy to packages/kyc-ui/src/pages/CallengeCompleted.tsx
index f99e1ee32..c17ec540d 100644
--- a/packages/challenger-ui/src/pages/CallengeCompleted.tsx
+++ b/packages/kyc-ui/src/pages/CallengeCompleted.tsx
@@ -25,13 +25,11 @@ export function CallengeCompleted(): VNode {
   return (
     <div class="m-4">
       <Attention
-        title={i18n.str`Challenge completed`}
+        title={i18n.str`Kyc completed`}
         type="success"
       >
         <i18n.Translate>
-          You will be redirected to <a href={state?.completedURL} 
class="break-all">&quot;
-          {state?.completedURL}
-          &quot;</a>
+          You will be redirected to nowhere
         </i18n.Translate>
       </Attention>
     </div>
diff --git a/packages/challenger-ui/src/pages/Frame.tsx 
b/packages/kyc-ui/src/pages/Frame.tsx
similarity index 96%
copy from packages/challenger-ui/src/pages/Frame.tsx
copy to packages/kyc-ui/src/pages/Frame.tsx
index 7f81b9d77..a45fd129b 100644
--- a/packages/challenger-ui/src/pages/Frame.tsx
+++ b/packages/kyc-ui/src/pages/Frame.tsx
@@ -63,12 +63,10 @@ export function Frame({ children }: { children: 
ComponentChildren }): VNode {
       style="min-height: 100vh;"
     >
       <Header
-        title="Challenger"
+        title="KYC"
         onLogout={undefined}
         iconLinkURL="#"
-        sites={preferences.showChallangeSetup ? [
-          ["New challenge","#/setup/1"]
-        ] :[]}
+        sites={[]}
         supportedLangs={["en"]}
       >
         <li>
@@ -125,7 +123,7 @@ export function Frame({ children }: { children: 
ComponentChildren }): VNode {
       <main class="flex-1">{children}</main>
 
       <Footer
-        testingUrlKey="challenger-base-url"
+        testingUrlKey="kyc-base-url"
         GIT_HASH={GIT_HASH}
         VERSION={VERSION}
       />
diff --git a/packages/challenger-ui/src/pages/MissingParams.tsx 
b/packages/kyc-ui/src/pages/MissingParams.tsx
similarity index 100%
copy from packages/challenger-ui/src/pages/MissingParams.tsx
copy to packages/kyc-ui/src/pages/MissingParams.tsx
diff --git a/packages/challenger-ui/src/pages/NonceNotFound.tsx 
b/packages/kyc-ui/src/pages/NonceNotFound.tsx
similarity index 100%
copy from packages/challenger-ui/src/pages/NonceNotFound.tsx
copy to packages/kyc-ui/src/pages/NonceNotFound.tsx
diff --git a/packages/challenger-ui/src/pages/Setup.tsx 
b/packages/kyc-ui/src/pages/Start.tsx
similarity index 80%
copy from packages/challenger-ui/src/pages/Setup.tsx
copy to packages/kyc-ui/src/pages/Start.tsx
index c7395f605..2b97641e0 100644
--- a/packages/challenger-ui/src/pages/Setup.tsx
+++ b/packages/kyc-ui/src/pages/Start.tsx
@@ -15,16 +15,15 @@
  */
 import {
   HttpStatusCode,
-  createClientSecretAccessToken,
   createRFC8959AccessTokenEncoded,
   encodeCrock,
-  randomBytes,
+  randomBytes
 } from "@gnu-taler/taler-util";
 import {
   Button,
   LocalNotificationBanner,
   ShowInputErrorLabel,
-  useChallengerApiContext,
+  useExchangeApiContext,
   useLocalNotificationHandler,
   useTranslationContext,
 } from "@gnu-taler/web-util/browser";
@@ -32,7 +31,6 @@ import { Fragment, VNode, h } from "preact";
 import { useState } from "preact/hooks";
 import { safeToURL } from "../Routing.js";
 import { useSessionState } from "../hooks/session.js";
-import { doAutoFocus, undefinedIfEmpty } from "./AnswerChallenge.js";
 
 type Props = {
   clientId: string;
@@ -41,7 +39,7 @@ type Props = {
   onCreated: () => void;
   focus?: boolean;
 };
-export function Setup({
+export function Start({
   clientId,
   secret,
   redirectURL,
@@ -50,7 +48,7 @@ export function Setup({
 }: Props): VNode {
   const { i18n } = useTranslationContext();
   const [notification, withErrorHandler] = useLocalNotificationHandler();
-  const { lib } = useChallengerApiContext();
+  const { lib } = useExchangeApiContext();
   const { start } = useSessionState();
   const [password, setPassword] = useState<string | undefined>(secret);
   const [url, setUrl] = useState<string | undefined>(redirectURL?.href);
@@ -69,27 +67,31 @@ export function Setup({
       ? undefined
       : withErrorHandler(
           async () => {
-            return lib.challenger.setup(
-              clientId,
-              createRFC8959AccessTokenEncoded(password),
-            );
+            return {
+              type: "ok",
+              body: {},
+            }
+            // return lib.exchange.uploadKycForm(
+            //   "clientId",
+            //   createRFC8959AccessTokenEncoded(password),
+            // );
           },
           (ok) => {
-            start({
-              nonce: ok.body.nonce,
-              clientId,
-              redirectURL: url,
-              state: encodeCrock(randomBytes(32)),
-            });
+            // start({
+            //   nonce: ok.body.nonce,
+            //   clientId,
+            //   redirectURL: url,
+            //   state: encodeCrock(randomBytes(32)),
+            // });
 
             onCreated();
           },
-          (fail) => {
-            switch (fail.case) {
-              case HttpStatusCode.NotFound:
-                return i18n.str`Client doesn't exist.`;
-            }
-          },
+          // () => {
+          //   // switch (fail.case) {
+          //   //   case HttpStatusCode.NotFound:
+          //   //     return i18n.str`Client doesn't exist.`;
+          //   // }
+          // },
         );
 
   return (
@@ -172,7 +174,7 @@ export function Setup({
         <div class="mt-10">
           <Button
             type="submit"
-            disabled={!onStart}
+            // disabled={!onStart}
             class="block w-full disabled:bg-gray-300 rounded-md bg-indigo-600 
px-3.5 py-2.5 text-center text-sm font-semibold text-white shadow-sm 
hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 
focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
             handler={onStart}
           >
@@ -183,3 +185,29 @@ export function Setup({
     </Fragment>
   );
 }
+
+
+/**
+ * Show the element when the load ended
+ * @param element
+ */
+export function doAutoFocus(element: HTMLElement | null): void {
+  if (element) {
+    setTimeout(() => {
+      element.focus({ preventScroll: true });
+      element.scrollIntoView({
+        behavior: "smooth",
+        block: "center",
+        inline: "center",
+      });
+    }, 100);
+  }
+}
+
+export function undefinedIfEmpty<T extends object>(obj: T): T | undefined {
+  return Object.keys(obj).some(
+    (k) => (obj as Record<string, T>)[k] !== undefined,
+  )
+    ? obj
+    : undefined;
+}
diff --git a/packages/aml-backoffice-ui/src/scss/main.css 
b/packages/kyc-ui/src/scss/main.css
similarity index 100%
copy from packages/aml-backoffice-ui/src/scss/main.css
copy to packages/kyc-ui/src/scss/main.css
diff --git a/packages/kyc-ui/src/settings.json 
b/packages/kyc-ui/src/settings.json
new file mode 100644
index 000000000..c43967a16
--- /dev/null
+++ b/packages/kyc-ui/src/settings.json
@@ -0,0 +1,3 @@
+{
+  "backendBaseURL": "http://exchange.taler.test:1180/";
+}
diff --git a/packages/challenger-ui/src/settings.ts 
b/packages/kyc-ui/src/settings.ts
similarity index 82%
copy from packages/challenger-ui/src/settings.ts
copy to packages/kyc-ui/src/settings.ts
index 61d2117fa..7db986806 100644
--- a/packages/challenger-ui/src/settings.ts
+++ b/packages/kyc-ui/src/settings.ts
@@ -22,8 +22,8 @@ import {
   codecOptional
 } from "@gnu-taler/taler-util";
 
-export interface ChallengerUiSettings {
-  // Where challenger backend is localted
+export interface KycUiSettings {
+  // Where exchange backend is localted
   // default: window.origin without "webui/"
   backendBaseURL?: string;
 
@@ -32,14 +32,14 @@ export interface ChallengerUiSettings {
 /**
  * Global settings for the bank UI.
  */
-const defaultSettings: ChallengerUiSettings = {
+const defaultSettings: KycUiSettings = {
   backendBaseURL: buildDefaultBackendBaseURL(),
 };
 
-const codecForChallengerUISettings = (): Codec<ChallengerUiSettings> =>
-  buildCodecForObject<ChallengerUiSettings>()
+const codecForKycUiSettings = (): Codec<KycUiSettings> =>
+  buildCodecForObject<KycUiSettings>()
     .property("backendBaseURL", codecOptional(codecForString()))
-    .build("codecForChallengerUISettings");
+    .build("codecForKycUiSettings");
 
 function removeUndefineField<T extends object>(obj: T): T {
   const keys = Object.keys(obj) as Array<keyof T>;
@@ -51,10 +51,10 @@ function removeUndefineField<T extends object>(obj: T): T {
   }, obj);
 }
 
-export function fetchSettings(listener: (s: ChallengerUiSettings) => void): 
void {
+export function fetchSettings(listener: (s: KycUiSettings) => void): void {
   fetch("./settings.json")
     .then((resp) => resp.json())
-    .then((json) => codecForChallengerUISettings().decode(json))
+    .then((json) => codecForKycUiSettings().decode(json))
     .then((result) =>
       listener({
         ...defaultSettings,
diff --git a/packages/bank-ui/tailwind.config.js 
b/packages/kyc-ui/tailwind.config.js
similarity index 100%
copy from packages/bank-ui/tailwind.config.js
copy to packages/kyc-ui/tailwind.config.js
diff --git a/packages/aml-backoffice-ui/tsconfig.json 
b/packages/kyc-ui/tsconfig.json
similarity index 100%
copy from packages/aml-backoffice-ui/tsconfig.json
copy to packages/kyc-ui/tsconfig.json
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2a52759d3..e3646f041 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -531,6 +531,79 @@ importers:
         specifier: ^5.3.3
         version: 5.3.3
 
+  packages/kyc-ui:
+    dependencies:
+      '@gnu-taler/taler-util':
+        specifier: workspace:*
+        version: link:../taler-util
+      '@gnu-taler/web-util':
+        specifier: workspace:*
+        version: link:../web-util
+      preact:
+        specifier: 10.11.3
+        version: 10.11.3
+      swr:
+        specifier: 2.0.3
+        version: 2.0.3(react@18.3.1)
+    devDependencies:
+      '@gnu-taler/pogen':
+        specifier: workspace:*
+        version: link:../pogen
+      '@tailwindcss/forms':
+        specifier: ^0.5.3
+        version: 0.5.3(tailwindcss@3.3.2)
+      '@tailwindcss/typography':
+        specifier: ^0.5.9
+        version: 0.5.9(tailwindcss@3.3.2)
+      '@types/chai':
+        specifier: ^4.3.0
+        version: 4.3.3
+      '@types/history':
+        specifier: ^4.7.8
+        version: 4.7.11
+      '@types/mocha':
+        specifier: ^10.0.1
+        version: 10.0.1
+      '@types/node':
+        specifier: ^18.11.17
+        version: 18.11.17
+      '@typescript-eslint/eslint-plugin':
+        specifier: ^6.19.0
+        version: 
6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3)
+      '@typescript-eslint/parser':
+        specifier: ^6.19.0
+        version: 6.19.0(eslint@8.56.0)(typescript@5.3.3)
+      autoprefixer:
+        specifier: ^10.4.14
+        version: 10.4.14(postcss@8.4.38)
+      chai:
+        specifier: ^4.3.6
+        version: 4.3.6
+      esbuild:
+        specifier: ^0.19.9
+        version: 0.19.9
+      eslint:
+        specifier: ^8.56.0
+        version: 8.56.0
+      eslint-config-prettier:
+        specifier: ^9.1.0
+        version: 9.1.0(eslint@8.56.0)
+      eslint-plugin-react:
+        specifier: ^7.33.2
+        version: 7.33.2(eslint@8.56.0)
+      mocha:
+        specifier: 9.2.0
+        version: 9.2.0
+      po2json:
+        specifier: ^0.4.5
+        version: 0.4.5
+      tailwindcss:
+        specifier: ^3.3.2
+        version: 3.3.2
+      typescript:
+        specifier: 5.3.3
+        version: 5.3.3
+
   packages/merchant-backend-ui:
     dependencies:
       date-fns:
@@ -7484,10 +7557,10 @@ packages:
       postcss: ^8.1.0
     dependencies:
       browserslist: 4.22.2
-      caniuse-lite: 1.0.30001482
+      caniuse-lite: 1.0.30001570
       fraction.js: 4.2.0
       normalize-range: 0.1.2
-      picocolors: 1.0.0
+      picocolors: 1.0.1
       postcss: 8.4.38
       postcss-value-parser: 4.2.0
     dev: true

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]