copyright headers

This commit is contained in:
Florian Dold 2022-04-12 20:55:34 +02:00
parent 1e92093a50
commit f3d8b44743
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B
8 changed files with 125 additions and 44 deletions

View File

@ -1,3 +1,19 @@
/*
This file is part of GNU Anastasis
(C) 2021-2022 Anastasis SARL
GNU Anastasis is free software; you can redistribute it and/or modify it under the
terms of the GNU Affero General Public License as published by the Free Software
Foundation; either version 3, or (at your option) any later version.
GNU Anastasis 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with
GNU Anastasis; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
import {
canonicalJson,
decodeCrock,

View File

@ -74,6 +74,7 @@ import {
DiscoveryResult,
PolicyMetaInfo,
ChallengeInfo,
AggregatedPolicyMetaInfo,
} from "./reducer-types.js";
import fetchPonyfill from "fetch-ponyfill";
import {
@ -1451,6 +1452,37 @@ async function updateSecretExpiration(
});
}
export function mergeDiscoveryAggregate(
newPolicies: PolicyMetaInfo[],
oldAgg: AggregatedPolicyMetaInfo[],
): AggregatedPolicyMetaInfo[] {
const aggregatedPolicies: AggregatedPolicyMetaInfo[] = [...oldAgg] ?? [];
const polHashToIndex: Record<string, number> = {};
for (const pol of newPolicies) {
const oldIndex = polHashToIndex[pol.policy_hash];
if (oldIndex != null) {
aggregatedPolicies[oldIndex].providers.push({
provider_url: pol.provider_url,
version: pol.version,
});
} else {
aggregatedPolicies.push({
attribute_mask: pol.attribute_mask,
policy_hash: pol.policy_hash,
providers: [
{
provider_url: pol.provider_url,
version: pol.version,
},
],
secret_name: pol.secret_name,
});
polHashToIndex[pol.policy_hash] = aggregatedPolicies.length - 1;
}
}
return aggregatedPolicies;
}
const backupTransitions: Record<
BackupStates,
Transition<ReducerStateBackup>

View File

@ -1,7 +1,21 @@
/*
This file is part of GNU Anastasis
(C) 2021-2022 Anastasis SARL
GNU Anastasis is free software; you can redistribute it and/or modify it under the
terms of the GNU Affero General Public License as published by the Free Software
Foundation; either version 3, or (at your option) any later version.
GNU Anastasis 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with
GNU Anastasis; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
import {
Amounts,
AmountString,
TalerProtocolDuration,
TalerProtocolTimestamp,
} from "@gnu-taler/taler-util";

View File

@ -1,3 +1,19 @@
/*
This file is part of GNU Anastasis
(C) 2021-2022 Anastasis SARL
GNU Anastasis is free software; you can redistribute it and/or modify it under the
terms of the GNU Affero General Public License as published by the Free Software
Foundation; either version 3, or (at your option) any later version.
GNU Anastasis 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with
GNU Anastasis; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
import {
AmountString,
buildCodecForObject,

View File

@ -15,31 +15,31 @@
*/
/**
*
* @author Sebastian Javier Marchano (sebasjm)
*/
*
* @author Sebastian Javier Marchano (sebasjm)
*/
import { DefinePlugin } from 'webpack';
import { DefinePlugin } from "webpack";
import pack from './package.json';
import * as cp from 'child_process';
import pack from "./package.json";
import * as cp from "child_process";
const commitHash = cp.execSync('git rev-parse --short HEAD').toString();
const commitHash = cp.execSync("git rev-parse --short HEAD").toString();
export default {
webpack(config, env, helpers) {
// add __VERSION__ to be use in the html
config.plugins.push(
new DefinePlugin({
'process.env.__VERSION__': JSON.stringify(env.isProd ? pack.version : `dev-${commitHash}`),
"process.env.__VERSION__": JSON.stringify(
env.isProd ? pack.version : `dev-${commitHash}`,
),
}),
);
const crittersWrapper = helpers.getPluginsByName(config, 'Critters')
const crittersWrapper = helpers.getPluginsByName(config, "Critters");
if (crittersWrapper && crittersWrapper.length > 0) {
const [{ index }] = crittersWrapper
config.plugins.splice(index, 1)
const [{ index }] = crittersWrapper;
config.plugins.splice(index, 1);
}
}
}
},
};

View File

@ -51,6 +51,14 @@ export function NavigationBar({ onMobileMenu, title }: Props): VNode {
>
Report a bug
</a>
<a
style={{
alignSelf: "center",
padding: "0.5em",
}}
>
Settings
</a>
{/* <a
role="button"
class="navbar-burger"

View File

@ -6,6 +6,7 @@ import {
DiscoveryCursor,
getBackupStartState,
getRecoveryStartState,
mergeDiscoveryAggregate,
PolicyMetaInfo,
RecoveryStates,
reduceAction,
@ -255,30 +256,7 @@ export function useAnastasisReducer(): AnastasisReducerApi {
},
async discoverStart(): Promise<void> {
const res = await discoverPolicies(this.currentReducerState!, undefined);
const aggregatedPolicies: AggregatedPolicyMetaInfo[] = [];
const polHashToIndex: Record<string, number> = {};
for (const pol of res.policies) {
const oldIndex = polHashToIndex[pol.policy_hash];
if (oldIndex != null) {
aggregatedPolicies[oldIndex].providers.push({
provider_url: pol.provider_url,
version: pol.version,
});
} else {
aggregatedPolicies.push({
attribute_mask: pol.attribute_mask,
policy_hash: pol.policy_hash,
providers: [
{
provider_url: pol.provider_url,
version: pol.version,
},
],
secret_name: pol.secret_name,
});
polHashToIndex[pol.policy_hash] = aggregatedPolicies.length - 1;
}
}
const aggregatedPolicies = mergeDiscoveryAggregate(res.policies, []);
setAnastasisState({
...anastasisState,
discoveryState: {

View File

@ -34,14 +34,31 @@ const Context = createContext<Type>({
export const useDevContext = (): Type => useContext(Context);
export const DevContextProviderForTesting = ({ value, children }: { value: boolean, children: any }): VNode => {
return h(Context.Provider, { value: { devMode: value, toggleDevMode: () => { null } }, children });
export const DevContextProviderForTesting = ({
value,
children,
}: {
value: boolean;
children: any;
}): VNode => {
return h(Context.Provider, {
value: {
devMode: value,
toggleDevMode: () => {
null;
},
},
children,
});
};
export const DevContextProvider = ({ children }: { children: any }): VNode => {
const [value, setter] = useLocalStorage("devMode");
const devMode = value === "true";
const toggleDevMode = (): void => setter((v) => (!v ? "true" : undefined));
children = children.length === 1 && typeof children === "function" ? children({ devMode }) : children;
children =
children.length === 1 && typeof children === "function"
? children({ devMode })
: children;
return h(Context.Provider, { value: { devMode, toggleDevMode }, children });
};