Compare commits
3 commits
bf4f2fab6e
...
944043d873
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
944043d873 | ||
|
|
60f1c5a0de | ||
|
|
e66da38cb1 |
88
lib/plankton/plankton.d.ts
vendored
88
lib/plankton/plankton.d.ts
vendored
|
|
@ -3100,6 +3100,50 @@ declare namespace lib_plankton.session {
|
|||
clear?: boolean;
|
||||
}): Promise<void>;
|
||||
}
|
||||
declare namespace lib_plankton.base64 {
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
type type_source = string;
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
type type_target = string;
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
export function encode(source: type_source): type_target;
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
export function decode(target: type_target): type_source;
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
export function implementation_code(): lib_plankton.code.type_code<type_source, type_target>;
|
||||
export {};
|
||||
}
|
||||
declare namespace lib_plankton.base64 {
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
class class_base64 implements lib_plankton.code.interface_code<string, string> {
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
constructor();
|
||||
/**
|
||||
* @implementation
|
||||
* @author fenris
|
||||
*/
|
||||
encode(x: string): string;
|
||||
/**
|
||||
* @implementation
|
||||
* @author fenris
|
||||
*/
|
||||
decode(x: string): string;
|
||||
}
|
||||
}
|
||||
declare namespace lib_plankton {
|
||||
namespace order {
|
||||
/**
|
||||
|
|
@ -4508,50 +4552,6 @@ declare namespace lib_plankton.map.collatemap {
|
|||
export function implementation_map<type_key, type_value>(subject: type_subject<type_key, type_value>): type_map<type_key, type_value>;
|
||||
export {};
|
||||
}
|
||||
declare namespace lib_plankton.base64 {
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
type type_source = string;
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
type type_target = string;
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
export function encode(source: type_source): type_target;
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
export function decode(target: type_target): type_source;
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
export function implementation_code(): lib_plankton.code.type_code<type_source, type_target>;
|
||||
export {};
|
||||
}
|
||||
declare namespace lib_plankton.base64 {
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
class class_base64 implements lib_plankton.code.interface_code<string, string> {
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
constructor();
|
||||
/**
|
||||
* @implementation
|
||||
* @author fenris
|
||||
*/
|
||||
encode(x: string): string;
|
||||
/**
|
||||
* @implementation
|
||||
* @author fenris
|
||||
*/
|
||||
decode(x: string): string;
|
||||
}
|
||||
}
|
||||
declare namespace lib_plankton.auth {
|
||||
/**
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -10537,6 +10537,105 @@ var lib_plankton;
|
|||
})(session = lib_plankton.session || (lib_plankton.session = {}));
|
||||
})(lib_plankton || (lib_plankton = {}));
|
||||
/*
|
||||
This file is part of »bacterio-plankton:base64«.
|
||||
|
||||
Copyright 2016-2024 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
||||
<info@greenscale.de>
|
||||
|
||||
»bacterio-plankton:base64« is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
»bacterio-plankton:base64« 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with »bacterio-plankton:base64«. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
var lib_plankton;
|
||||
(function (lib_plankton) {
|
||||
var base64;
|
||||
(function (base64) {
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
function encode(source) {
|
||||
return Buffer.from(source, "utf-8").toString("base64");
|
||||
}
|
||||
base64.encode = encode;
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
function decode(target) {
|
||||
return Buffer.from(target, "base64").toString("utf-8");
|
||||
}
|
||||
base64.decode = decode;
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
function implementation_code() {
|
||||
return {
|
||||
"encode": encode,
|
||||
"decode": decode,
|
||||
};
|
||||
}
|
||||
base64.implementation_code = implementation_code;
|
||||
})(base64 = lib_plankton.base64 || (lib_plankton.base64 = {}));
|
||||
})(lib_plankton || (lib_plankton = {}));
|
||||
/*
|
||||
This file is part of »bacterio-plankton:base64«.
|
||||
|
||||
Copyright 2016-2024 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
||||
<info@greenscale.de>
|
||||
|
||||
»bacterio-plankton:base64« is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
»bacterio-plankton:base64« 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with »bacterio-plankton:base64«. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
var lib_plankton;
|
||||
(function (lib_plankton) {
|
||||
var base64;
|
||||
(function (base64) {
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
class class_base64 {
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
constructor() {
|
||||
}
|
||||
/**
|
||||
* @implementation
|
||||
* @author fenris
|
||||
*/
|
||||
encode(x) {
|
||||
return base64.encode(x);
|
||||
}
|
||||
/**
|
||||
* @implementation
|
||||
* @author fenris
|
||||
*/
|
||||
decode(x) {
|
||||
return base64.decode(x);
|
||||
}
|
||||
}
|
||||
base64.class_base64 = class_base64;
|
||||
})(base64 = lib_plankton.base64 || (lib_plankton.base64 = {}));
|
||||
})(lib_plankton || (lib_plankton = {}));
|
||||
/*
|
||||
This file is part of »bacterio-plankton:order«.
|
||||
|
||||
Copyright 2016-2024 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
||||
|
|
@ -15785,105 +15884,6 @@ var lib_plankton;
|
|||
})(map = lib_plankton.map || (lib_plankton.map = {}));
|
||||
})(lib_plankton || (lib_plankton = {}));
|
||||
/*
|
||||
This file is part of »bacterio-plankton:base64«.
|
||||
|
||||
Copyright 2016-2024 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
||||
<info@greenscale.de>
|
||||
|
||||
»bacterio-plankton:base64« is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
»bacterio-plankton:base64« 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with »bacterio-plankton:base64«. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
var lib_plankton;
|
||||
(function (lib_plankton) {
|
||||
var base64;
|
||||
(function (base64) {
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
function encode(source) {
|
||||
return Buffer.from(source, "utf-8").toString("base64");
|
||||
}
|
||||
base64.encode = encode;
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
function decode(target) {
|
||||
return Buffer.from(target, "base64").toString("utf-8");
|
||||
}
|
||||
base64.decode = decode;
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
function implementation_code() {
|
||||
return {
|
||||
"encode": encode,
|
||||
"decode": decode,
|
||||
};
|
||||
}
|
||||
base64.implementation_code = implementation_code;
|
||||
})(base64 = lib_plankton.base64 || (lib_plankton.base64 = {}));
|
||||
})(lib_plankton || (lib_plankton = {}));
|
||||
/*
|
||||
This file is part of »bacterio-plankton:base64«.
|
||||
|
||||
Copyright 2016-2024 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
||||
<info@greenscale.de>
|
||||
|
||||
»bacterio-plankton:base64« is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
»bacterio-plankton:base64« 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with »bacterio-plankton:base64«. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
var lib_plankton;
|
||||
(function (lib_plankton) {
|
||||
var base64;
|
||||
(function (base64) {
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
class class_base64 {
|
||||
/**
|
||||
* @author fenris
|
||||
*/
|
||||
constructor() {
|
||||
}
|
||||
/**
|
||||
* @implementation
|
||||
* @author fenris
|
||||
*/
|
||||
encode(x) {
|
||||
return base64.encode(x);
|
||||
}
|
||||
/**
|
||||
* @implementation
|
||||
* @author fenris
|
||||
*/
|
||||
decode(x) {
|
||||
return base64.decode(x);
|
||||
}
|
||||
}
|
||||
base64.class_base64 = class_base64;
|
||||
})(base64 = lib_plankton.base64 || (lib_plankton.base64 = {}));
|
||||
})(lib_plankton || (lib_plankton = {}));
|
||||
/*
|
||||
This file is part of »bacterio-plankton:auth«.
|
||||
|
||||
Copyright 2016-2024 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
|
||||
|
|
|
|||
13
misc/data-minimal.json
Normal file
13
misc/data-minimal.json
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"users": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "user",
|
||||
"email_address": "user@example.org",
|
||||
"dav_token": null,
|
||||
"password": "user"
|
||||
}
|
||||
],
|
||||
"calendars": [
|
||||
]
|
||||
}
|
||||
|
|
@ -32,6 +32,7 @@ namespace _zeitbild.api
|
|||
(
|
||||
Array<
|
||||
{
|
||||
hash : _zeitbild.type_event_hash;
|
||||
calendar_id : int;
|
||||
calendar_name : string;
|
||||
hue : float;
|
||||
|
|
@ -73,6 +74,10 @@ namespace _zeitbild.api
|
|||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"hash": {
|
||||
"nullable": false,
|
||||
"type": "string",
|
||||
},
|
||||
"calendar_id": {
|
||||
"nullable": false,
|
||||
"type": "number",
|
||||
|
|
@ -191,6 +196,8 @@ namespace _zeitbild.api
|
|||
data
|
||||
.map(
|
||||
(entry) => ({
|
||||
// todo
|
||||
"hash": entry.hash,
|
||||
"calendar_id": entry.calendar_id,
|
||||
"calendar_name": entry.calendar_name,
|
||||
"hue": entry.hue,
|
||||
|
|
|
|||
|
|
@ -298,13 +298,14 @@ namespace _zeitbild.service.calendar
|
|||
Array<
|
||||
{
|
||||
id : (null | _zeitbild.type_local_resource_event_id);
|
||||
hash : _zeitbild.type_event_hash;
|
||||
object : _zeitbild.type_event_object;
|
||||
}
|
||||
>
|
||||
>
|
||||
{
|
||||
const calendar_object : _zeitbild.type_calendar_object = await _zeitbild.repository.calendar.read(calendar_id);
|
||||
return wrap_check_access_level<Array<{id : (null | _zeitbild.type_local_resource_event_id); object : _zeitbild.type_event_object;}>>(
|
||||
return wrap_check_access_level<Array<{id : (null | _zeitbild.type_local_resource_event_id); hash : _zeitbild.type_event_hash; object : _zeitbild.type_event_object;}>>(
|
||||
calendar_object,
|
||||
user_id,
|
||||
_zeitbild.enum_access_level.view,
|
||||
|
|
@ -325,6 +326,13 @@ namespace _zeitbild.service.calendar
|
|||
(event_object) => Promise.resolve(
|
||||
{
|
||||
"id": event_id,
|
||||
"hash": lib_plankton.string.coin(
|
||||
"{{calendar_id}}:{{event_id}}",
|
||||
{
|
||||
"calendar_id": calendar_id.toFixed(0),
|
||||
"event_id": event_id.toFixed(0),
|
||||
}
|
||||
),
|
||||
"object": event_object,
|
||||
}
|
||||
)
|
||||
|
|
@ -449,6 +457,19 @@ namespace _zeitbild.service.calendar
|
|||
.map(
|
||||
(event) => ({
|
||||
"id": null,
|
||||
"hash": lib_plankton.string.coin(
|
||||
"{{calendar_id}}~{{hash}}",
|
||||
{
|
||||
"calendar_id": calendar_id.toFixed(0),
|
||||
"hash": lib_plankton.call.convey(
|
||||
event,
|
||||
[
|
||||
(x : any) => lib_plankton.json.encode(x),
|
||||
(x : string) => lib_plankton.base64.encode(x),
|
||||
]
|
||||
)
|
||||
}
|
||||
),
|
||||
"object": event,
|
||||
})
|
||||
)
|
||||
|
|
@ -531,6 +552,7 @@ namespace _zeitbild.service.calendar
|
|||
const events : Array<
|
||||
{
|
||||
id : (null | _zeitbild.type_local_resource_event_id);
|
||||
hash : _zeitbild.type_event_hash;
|
||||
object : _zeitbild.type_event_object;
|
||||
}
|
||||
> = await get_events(
|
||||
|
|
@ -543,6 +565,7 @@ namespace _zeitbild.service.calendar
|
|||
events
|
||||
.map(
|
||||
(event_entry) => ({
|
||||
"hash": event_entry.hash,
|
||||
"calendar_id": calendar_id,
|
||||
"calendar_name": calendar_object.name,
|
||||
"hue": calendar_object.hue,
|
||||
|
|
|
|||
|
|
@ -140,9 +140,15 @@ namespace _zeitbild
|
|||
};
|
||||
|
||||
|
||||
/**
|
||||
*/
|
||||
export type type_event_hash = string;
|
||||
|
||||
|
||||
/**
|
||||
*/
|
||||
export type type_event_extended = {
|
||||
hash : type_event_hash;
|
||||
calendar_id : type_calendar_id;
|
||||
calendar_name : string;
|
||||
hue : float;
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ modules="${modules} session"
|
|||
modules="${modules} file"
|
||||
modules="${modules} string"
|
||||
modules="${modules} json"
|
||||
modules="${modules} base64"
|
||||
modules="${modules} list"
|
||||
modules="${modules} order"
|
||||
modules="${modules} ical"
|
||||
|
|
|
|||
Loading…
Reference in a new issue