diff --git a/docu b/docu index a42e107..4bf700b 100644 --- a/docu +++ b/docu @@ -34,3 +34,6 @@ Key: 478cba26-f265-4e17-b8a8-679e0e8a855b DO Choosy-Battering-Lash + + +f7qr6S2g9P%ZyA* diff --git a/imports/input/contacts.csv b/imports/input/contacts.csv new file mode 100644 index 0000000..bf2f913 --- /dev/null +++ b/imports/input/contacts.csv @@ -0,0 +1,92 @@ +Kundennummer;Lieferantennummer;Firmenname;Anrede;Kontakt;Vorname;Nachname;Steuernummer;Umsatzsteuer ID;Adresszusatz 1;Straße 1;PLZ 1;Ort 1;Land 1;Adresszusatz 2;Straße 2;PLZ 2;Ort 2;Land 2;Telefon 1;Telefon 2;E-Mail 1;E-Mail 2;Ansprechpartner 1;Ansprechpartner 1 Anrede;Ansprechpartner 1 Vorname;Ansprechpartner 1 Nachname;Ansprechpartner 1 E-Mail;Ansprechpartner 1 Telefon;Ansprechpartner 2;Ansprechpartner 2 Anrede;Ansprechpartner 2 Vorname;Ansprechpartner 2 Nachname;Ansprechpartner 2 E-Mail;Ansprechpartner 2 Telefon +;70096;Allknow GmbH;;;;;;DE304748974;;Prenzlauer Allee 173;10409;Berlin;DE;;;;;;;;;;;;;;;;;;;;; +;70050;Amazon EU S.� r.l.;;;;;;DE814584193;;Marcel-Breuer-Str. 12;80807;M�nchen;DE;;;;;;;;;;;;;;;;;;;;; +;70069;Antratek Electronics;;;;;;;;'s-Gravenweg 318-G;2911BK;Nieuwerkerk;NL;;;;;;;;info@antratek.de;;;;;;;;;;;;; +;70040;B&W Handelsgesellschaft mbH / Electropapa;;;;;;DE251356088;;Thormeyerstr. 1;01877;Bischofswerda;DE;;;;;;498853847;;support@electropapa.com;;;;;;;;;;;;; +;70062;Batna anteny 24;;;;;;PL5732901461;;;;;;;;;;;;;sales@anteny24.pl;;;;;;;;;;;;; +;70060;Baugrund Ammerland GmbH;;;;;;DE279105744;;Robert-Bosch-Str. 12;26683;Saterland;DE;;;;;;04405/9250140;;info@baugrund-ammerland.de;;;;;;;;;;;;; +;70042;Besserladen.de;;;;;;DE329409987;;An den H�hner�ckern 3;97456;Dittelbrunn;DE;;;;;;'+4997257055807;;christian.fickert@besserladen.de;;;;;;;;;;;;; +;70031;Bocksberger Maschinenbau;;;;;;DE343404399;;Berliner Str. 3;26419;Schortens;DE;;;;;;017643480652;;Bocksberger.Maschinenbau@web.de;;;;;;;;;;;;; +;70084;B�ttcher AG;;;;;;DE219636488;;Stadtrodaer Landstr. 1;07751;Jena;DE;;;;;;;;;;;;;;;;;;;;; +;70032;Brune-Mettcker Druck- und Verlags-GmbH;;;;;;;;Am Markt 18;26409;Wittmund;DE;;;;;;;;;;;;;;;;;;;;; +;70012;BZN Hagebau Wittmund GmbH 8 Co. KG;;;;;54/202/08160;DE256602901;;Eggelinger Str. 18;26409;Wittmund;DE;;;;;;04462/8803-0;;;;;;;;;;;;;;; +;70074;Cafe Bar Celona;;;;;;;;Markt 4;26122;Oldenburg;DE;;;;;;;;;;;;;;;;;;;;; +;70077;Combi Verbrauchermarkt Einkaufsst�tte GmbH & Co. KG;;;;;;;;Hauptstra�e 121;26446;Friedeburg;DE;;;;;;;;;;;;;;;;;;;;; +;70059;Conrad Electronic SE;;;;;;DE131832937;;Klaus-Conrad-Str. 1;92242;Hirschau;DE;;;;;;004146869;;;;;;;;;;;;;;; +;70018;Digital Charging Solutions GmbH;;;;;;DE331008729;;Mies-van-der-Rohe-Stra�e 6;80807;M�nchen;DE;;;;;;;;;;;;;;;;;;;;; +;70036;Diversitas Hamburg GmbH;;;;;;DE311539541;;Von-Bargen-Str. 34;22041;Hamburg;DE;;;;;;'+49-40-20906700;;info@wlan-shop24.de;;;;;;;;;;;;; +;70087;dynamic SHIELD GmbH (Conrad);;;;;;;;Bessemerstr. 38-42;12103;Berlin;DE;;;;;;;;;;;;;;;;;;;;; +;70052;ebay;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;70071;eBay GmbH;;;;;;DE200081785;;Albert-Einstein-Ring 2-6;14532;Kleinmachnow;DE;;;;;;09831-89135;;;;;;;;;;;;;;; +;70083;Egon Senger GmbH (Mercedes);;;;;;DE331008729;;Bremer Heerstr. 401-4051;26135;Oldenburg;DE;;;;;;'+4944623231;;;;;;;;;;;;;;; +;70027;Elektor-Verlag GmbH;;;;;;DE121677814;;Kackertstr. 10;52072;Aachen;DE;;;;;;044629232831;;service@elektor.de;;;;;;;;;;;;; +;70037;Elektrohandel Wandelt GmbH;;;;;;;;Askay 28;57439;Attendorn;DE;;;;;;0162/2351848;;kundenservice@elektro-wandelt.de;;;;;;;;;;;;; +;70073;enercab Handel & Technik GmbH;;;;;;ATU77486515;;;;;;;;;;;'+432236318131;;info@enercab.at;;;;;;;;;;;;; +;70082;EngelbertStrauss GmbH & Co. KG;;;;;;DE112494262;;Frankfurter Str. 93-108;63599;Biebergem�nd;DE;;;;;;'+4960509710-12;;info@strauss.de;;;;;;;;;;;;; +;70005;eSmart GmbH;;;;;;DE253485445;;Dat Middelfeld 21;19065;Pinnow;DE;;;;;;491883654;;;;;;;;;;;;;;; +;70015;EWE Go GmbH;;;;;;DE315640644;;;;;;;;;;;'+4944136152-0;;info@ewe-go.de;;;;;;;;;;;;; +;70020;EWE TEL GmbH;;;;;23/64/200/00622;DE184286895;;Postfach 25 09;26015;Oldenburg;DE;;;;;;;;;;;;;;;;;;;;; +;70043;expert e-Commerce GmbH;;;;;27/200/14642;;;Bayernstr. 4;30855;Langenhagen;DE;;;;;;0203-80481842;;kundenservice@expert-commerce.de;;;;;;;;;;;;; +;70094;Fa. Mikando;;;;;;DE323933342;;B�rschlingstr. 15;92224;Amberg;DE;;;;;;;;;;;;;;;;;;;;; +;70048;Federspiel Technology UG haftungsbeschr�nkt;;;;;;;;Am Schwarzen Brack 14;26452;Sande;DE;;;;;;'+4944227928890;;f.federspiel@federspiel.tech;;;;;;;;;;;;; +;70047;Gerken GmbH;;;;;;DE291874572;;Flutstra�e 88;26386;Wilhelmshaven;DE;;;;;;0211-97476-712;;info@gerken-arbeitsbuehnen.de;;;;;;;;;;;;; +;70039;GETIC SIA;;;;;;DE331008729;;Satiksmes str. 6;LV3401;Liepaja;LV;;;;;;;;;;;;;;;;;;;;; +;70058;greenDOT.IT;;;;;;DE316712474;;Selztalstr. 3;55270;Schwabenheim;DE;;;;;;'+49(0)6130-9495-416;;info@greenDOT.IT;;Christoph Gutheil;Herr;Christoph;Gutheil;;;;;;;; +;70001;Haufe Service Center GmbH;;;;;;;;Postfach;79091;Freiburg;DE;;;;;;;;;;;;;;;;;;;;; +;70006;Hetzner Online GmbH;;;;;;DE812871812;;Industriestr. 25;91710;Gunzenhausen;DE;;;;;;'+499831505-0;;info@hetzner.com;;;;;;;;;;;;; +;70068;HORNBACH Baumarkt AG;;;;;24/652/3000/5;;;Heuweg;26389;Wilhelmshaven;DE;;;;;;0442175511-0;;;;;;;;;;;;;;; +;70011;IKEA Deutschland GmbH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;70095;Ingenieurb�ro Gerdes GmbH;;;;;;DE323296725;;Erster Dwarsweg 7;26607;Aurich;DE;;;;;;;;;;Manfred Gerdes;Herr;Manfred;Gerdes;;;;;;;; +;70004;IT-BUDGET GmbH;;;;;;DE254288894;;Idsteiner Str. 81a;65232;Taunusstein;DE;;;;;;'+49(0)6128/48955-12;;v.jung@it-budget.de;;;;;;;;;;;;; +;70023;Jabben & Werdermann Steuerberatungsgesellschaft PartGmbB;;;;;70/205/53401;;;Schlosserstra�e 40;26441;Jever;DE;;;;;;;;;;;;;;;;;;;;; +;70030;JACOB Elektronik GmbH;;;;;;DE261441153;;An der Ro�weid 5;76229;Karlsruhe;DE;;;;;;0721/94176-170;;b2b@jacob.de;;;;;;;;;;;;; +;70061;Janzen's Autow�sche GmbH & Co. KG;;;;;;;;Posthalterweg 10;26129;Oldenburg;DE;;;;;;;;;;;;;;;;;;;;; +;70021;J. Siebels GmbH & Co. KG;;;;;71/201/03106;DE177387347;;An der Feuerwehr 2;26409;Wittmund;DE;;;;;;04462-8806-0;;info@johann-siebels.de;;;;;;;;;;;;; +;70026;Kamm Lautsprecher;;;;;;DE313610859;;Chauvignystr. 27;65366;Geisenheim;DE;;;;;;;;versand@ehighend.de;;;;;;;;;;;;; +;70072;Landesamt f�r Geoinformation und Landesvermessung Niedersachsen;;;;;;;Regionaldirektion Oldenburg-Cloppenburg;Stau 3;26122;Oldenburg;DE;;;;;;0441-9215-596;;katasterkarten-online@lgln.niedersachsen.de;;;;;;;;;;;;; +;70093;Landkreis Wittmund;;;;;;;;Am Markt 9;26409;Wittmund;DE;;;;;;;;;;Jann Gerdes;Herr;Jann;Gerdes;bauamt@lk.wittmund.de;;;;;;; +;70078;Ledger SAS;;;;;;FR03529991119;;;;;;;;;;;;;;;;;;;;;;;;;; +;70064;LGLN Niedersachsen;;;;;;;Regionaldirektion Oldenburg-Cloppenburg;Stau 3;26122;Oldenburg;DE;;;;;;0441-9215-596;;katasterkarten-online@lgln.niedersachsen.de;;;;;;;;;;;;; +;70014;Lizenzguru UG (haftungsbeschr�nkt);;;;;133/5848/3942;DE323771566;;K�nigsallee 27;40212;D�sseldorf;DE;;;;;;0800404068;;hallo@lizenzguru.de;;;;;;;;;;;;; +;70044;Manuel Rauch, itechnik24;;;;;;DE329407684;;Storchenweg 1;91737;Ornbau;DE;;;;;;08385-47643;;service@itechnik24.de;;;;;;;;;;;;; +;70028;MD Sound GmbH & Co. KG;;;;;;DE815321024;;Wiesgarten 5;97783;Karsbach;DE;;;;;;093589700110;;info@md-sound.de;;;;;;;;;;;;; +;70035;medienkraftwerk GmbH;;;;;;DE813072672;;Felix-Wankel-Str. 13-15;53881;Euskirchen;DE;;;;;;'+49(0)2251148934;;info@medienkraftwerk.de;;;;;;;;;;;;; +;70013;meerfarbig GmbH & Co. KG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;70008;Mercedes-Benz Leasing GmbH;;;;;;DE811121012;;Service Center Berlin;10841;Berlin;DE;;;;;;0121625071;;kundenservice@mercedes-bertz-bank.com;;;;;;;;;;;;; +;70017;Microsoft Ireland Operations Ltd;;;;;;DE192876773;;;;;;;;;;;;;;;;;;;;;;;;;; +;70092;MMS E-COMMERCE GMBH;;;;;;DE233830101;;Media-Saturn-Stra�e 1;85053;Ingolstadt;DE;;;;;;;;;;;;;;;;;;;;; +;70088;MultiOceans GmbH (ebay);;;;;;;;Hermann-Seger-Str. 18b;50226;Frechen;DE;;;;;;02234/6897850;;multioceans@hotmail.com;;;;;;;;;;;;; +;70046;MUSIC STORE professional GmbH;;;;;;DE311029942;;Istanbulstr. 22-26;51103;K�ln;DE;;;;;;'+49(0)2218884-0;;;;;;;;;;;;;;; +;70089;NCC Design GmbH;;;;;;DE274595817;;Veit-Sto�-Str. 20;90579;Langenzenn;DE;;;;;;091019040040;;info@ncc-licht.de;;;;;;;;;;;;; +;70041;Nico's Baumdienst;;;;;;DE334472979;;Uhlandstr. 2;26409;Wittmund;DE;;;;;;017620723169;;nicoeilts@hotmail.com;;;;;;;;;;;;; +;70091;NT-SAT - Eugen Krais;;;;;;DE206681918;;Gewerbestr. 53;78054;Villingen-Schwenningen;DE;;;;;;077209592877;;e.krais@gmx.de;;;;;;;;;;;;; +;70034;OBI Bargen Heimwerkermarkt GmbH;;;;;;;;Am B�llhamm 1;26441;Jever;DE;;;;;;;;;;;;;;;;;;;;; +;70063;OBI GmbH & Co. KG, Filiale Oldenburg;;;;;;;;Ammerl�nder Heerstra�e 23-29;26129;Oldenburg;DE;;;;;;;;;;;;;;;;;;;;; +;70065;�bVI Nooitrust (Vermessungsb�ro);;;;;;DE308624021;;Sch�tzenhofstr. 25;26441;Jever;DE;;;;;;044617468030;;info@vermessung-jever.de;;;;;;;;;;;;; +;70085;oli.k computer und internetservice e.K.;;;;;;DE190622868;;Ulrichstr. 5;01326;Dresden;DE;;;;;;'+493518988045;;service@okluge.de;;;;;;;;;;;;; +;70003;OMG.de GmbH;;;;;;DE213870514;;Kornkamp;26605;Aurich;DE;;;;;;04941-60445-0;;info@omg.de;;;;;;;;;;;;; +;70038;Projektor AG;;;;;;DE815496863;;Moltkestr. 123-131;50674;K�ln;DE;;;;;;'+49221-719981-0;;vertrieb@projektor.ag;;;;;;;;;;;;; +;70016;reichelt elektronik GmbH & Co. KG;;;;;;DE259817039;;Elektroring 1;26452;Sande;DE;;;;;;;;;;;;;;;;;;;;; +;70054;Re-In Retail International GmbH;;;;;;DE257660883;;Nordring 98a;90409;N�rnberg;DE;;;;;;0911-32689888;;info@voelkner.de;;;;;;;;;;;;; +;70045;Schrauben.Expert Michael Kr�ger;;;;;32/096/6053/1;DE287167597;;Hauptstr. 129;53557;Bad H�nningen;DE;;;;;;'+49263578869081;;info@schrauben-expert.de;;;;;;;;;;;;; +;70067;Score SB Station Wittmund;;;;;;;;Isumser Stra�e 9;26409;Wittmund;DE;;;;;;;;;;;;;;;;;;;;; +;70053;SeneticGmbH;;;;;;;;Kronstadter Str. 4;81677;M�nchen;DE;;;;;;;;customerservice@senetic.com;;;;;;;;;;;;; +;70090;ServiceNet EDV-Vertriebs GmbH;;;;;;DE812203871;;Provinzialstr. 40;53859;Niederkassel;DE;;;;;;;;shop@lichtleiterkabel.com;;;;;;;;;;;;; +;70024;Shenzhen Nanxing Technology Co.,Ltd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;70086;Smartphoneklinik M�nchen;;;;;;DE319972027;;Herzog-Wilhelm-Str. 1;80331;M�nchen;DE;;;;;;'+49(0)8941111585;;info@smartphoneklinik-muenchen.de;;;;;;;;;;;;; +;70066;SMS.to Intergo Telecom Ltd;;;;;;CY10352115X;;Nikolaou Nikolaidi 3;8010;Paphos;CY;;;;;;;;;;;;;;;;;;;;; +;70057;Software-Monkeyz e.K.;;;;;20927305136;DE311594614;;Gro�enhainer Stra�e 4A;01609;Gr�ditz;DE;;;;;;;;;;;;;;;;;;;;; +;70056;Stadt Wittmund;;;;;;;;Kurt-Schwitters-Platz 1;26409;Wittmund;DE;;;;;;044621983-0;;rathaus@stadt.wittmund.de;;;;;;;;;;;;; +;70051;star-Tankstelle;;;;;;;;Bloherfelder Stra�e 126;26129;Oldenburg;DE;;;;;;0441-53717;;;;;;;;;;;;;;; +;70009;TecDev Germany;;;;;70/144/08969;;;Insterburger Str. 11;26316;Varel;DE;;;;;;;;thommy.taube@tecdev-germany.de;;;;;;;;;;;;; +;70075;Telef�nica Germany GmbH & Co. OHG;;;;;;DE811889638;;Georg-Brauchle-Ring 50;80992;M�nchen;DE;;;;;;;;business-team@telefonica.com;;;;;;;;;;;;; +;70002;Telekom DE GmbH;;;;;;DE122265872;;Landgrabenweg 151;53227;Bonn;DE;;;;;;08003302202;;;;;;;;;;;;;;; +;70055;TEQTRADER GmbH;;;;;;DE351057424;;Scheveninger Str. 9A;12359;Berlin;DE;;;;;;'+49(0)30220136580;;info@teqtrader.de;;;;;;;;;;;;; +;70022;Thomann GmbH;;;;;;DE257375233;;Hans-Thomann-Str. 1;96138;Burgebrach;DE;;;;;;09546/922366;;info@thomann.de;;;;;;;;;;;;; +;70070;TS Wittmund GmbH;;;;;;;;Esenser Str. 58;26409;Wittmund;DE;;;;;;04462-2210;;;;;;;;;;;;;;; +;70007;Varia System GmbH;;;;;;DE279278184;;Dr.-Salvador-Allende-Str. 191;09119;Chemnitz;DE;;;;;;'+49(371)4007682;;info@varia.org;;;;;;;;;;;;; +;70080;VBG Unfallversicherung;;;;;;;;;22281;Hamburg;DE;;;;;;;;;;;;;;;;;;;;; +;70081;WallboxCenter GmbH;;;;;;DE351498210;;Heegstr. 55c;45356;Essen;DE;;;;;;'+49(0)20184672470;;sales@wallboxcenter.de;;;;;;;;;;;;; +;70019;WILTAnet GmbH;;;;;;DE326933718;;Lisa-Meitner-Str. 5;52511;Geilenkirchen;DE;;;;;;02451-4823635;;info@willisat.de;;;;;;;;;;;;; +;70029;WIRmachenDRUCK GmbH;;;;;;DE261317770;;M�hlbachstr. 7;71522;Backnang;DE;;;;;;'+49(0)711/995982-20;;info@wir-machen-druck.de;;;;;;;;;;;;; +;70033;WLAN-Discount24.de;;;;;;;;Von-Bargen-Stra�e 34;22041;Hamburg;DE;;;;;;;;;;;;;;;;;;;;; \ No newline at end of file diff --git a/imports/input/customers.csv b/imports/input/customers.csv new file mode 100644 index 0000000..0578501 --- /dev/null +++ b/imports/input/customers.csv @@ -0,0 +1,107 @@ +Kundennummer;Lieferantennummer;Firmenname;Anrede;Kontakt;Vorname;Nachname;Steuernummer;Umsatzsteuer ID;Adresszusatz 1;Straße 1;PLZ 1;Ort 1;Land 1;Adresszusatz 2;Straße 2;PLZ 2;Ort 2;Land 2;Telefon 1;Telefon 2;E-Mail 1;E-Mail 2;Ansprechpartner 1;Ansprechpartner 1 Anrede;Ansprechpartner 1 Vorname;Ansprechpartner 1 Nachname;Ansprechpartner 1 E-Mail;Ansprechpartner 1 Telefon;Ansprechpartner 2;Ansprechpartner 2 Anrede;Ansprechpartner 2 Vorname;Ansprechpartner 2 Nachname;Ansprechpartner 2 E-Mail;Ansprechpartner 2 Telefon +10128;;;Herr;Sven Ahlhorn;Sven;Ahlhorn;;;;Sandelerm�ns 89;26441;Jever;DE;;;;;;;;rechnung@sandelcom.de;;;;;;;;;;;;; +10115;;;Herr;Ewald Albers;Ewald;Albers;;;;Sandelerm�ns 99;26441;Jever;DE;;;;;;;;;;;;;;;;;;;;; +10050;;;Herr;Jan Albers;Jan;Albers;;;;Sandelerm�ns 76;26441;Jever;DE;;Sandelerm�ns 76;26441;Jever;DE;;;;;;;;;;;;;;;; +10095;;;Frau;Julia Albers;Julia;Albers;;;;Sandelerm�ns 99;26441;Jever;DE;;;;;;;;rechnung@sandelcom.de;;;;;;;;;;;;; +10102;;;Herr;Andreas Altenhofen;Andreas;Altenhofen;;;;Neu Augustengroden 4;26434;Wangerland;DE;;;;;;01701860034;;rechnung@sandelcom.de;andreas.altenhofen@freenet.de;;;;;;;;;;;; +10101;;(ALT) Nordseebad Carolinensiel-Harlesiel GmbH;;;;;;;;Bahnhofstra�e 40;26409;Wittmund-Carolinensiel;DE;;;;;;;;buchhaltung@carolinensiel.de;;Stephan J�rgens;Herr;Stephan;J�rgens;stephan.juergens@carolinensiel.de;04464 949386;;;;;; +10054;;Anke und Hinrich Schild GbR;;;;;;;;Elisabethgroden 3;26434;Wangerland;DE;;;;;;;;;;;;;;;;;;;;; +10073;;;Herr;Hans-Hermann Backhaus;Hans-Hermann;Backhaus;;;;Carolinsieler Stra�e 20;26409;Wittmund;DE;;;;;;;;rechnung@sandelcom.de;;;;;;;;;;;;; +10090;;;Herr;Jan Backhaus;Jan;Backhaus;;;;Frederieken-Vorwerk 2;26434;Wangerland;DE;;;;;;;;jan.backhaus007@googlemail.com;rechnung@sandelcom.de;;;;;;;;;;;; +10019;;Baller-Ina e.V.;;;;;;;;Baumstra�e 3;26409;Wittmund;DE;;;;;;;;;;;;;;;;;;;;; +10071;;;Herr;Andreas Balz;Andreas;Balz;;;;Auricher Stra�e 92;26409;Wittmund;DE;;;;;;;;;;;;;;;;;;;;; +10135;;;Herr;Andre Becker;Andre;Becker;;;;Tammhausen 1;26434;Wangerland;DE;;;;;;?+49 170 9247251?;;becker-tammhausen@t-online.de;rechnung@sandelcom.de;;;;;;;;;;;; +10116;;;Herr;Wiard Becker;Wiard;Becker;;;;Quanens 1;26434;Wangerland;DE;;;;;;015231885695;;rechnung@sandelcom.de;beckwia@gmail.com;;;;;;;;;;;; +10105;;;Herr;Alfred Bischoff;Alfred;Bischoff;;;;Kantstra�e 66;44627;Herne;DE;;Am Yachthafen 23b;26409;Wittmund;DE;;;alfred_bischoff@t-online.de;rechnung@sandelcom.de;;;;;;;;;;;; +10145;;BlueNodes GmbH;;;;;;;Benjamin Munkhart;Kreuzgasse 34;65510;Idstein;DE;;;;;;;;b.munkhart@blue-nodes.de;;;;;;;;;;;;; +10064;;;Herr;Hergen Bocksberger;Hergen;Bocksberger;;;;Kreuzweg 36;26419;Schortens;DE;;;;;;;;;;;;;;;;;;;;; +10108;;;Herr;Reinhard Bocksberger;Reinhard;Bocksberger;;;;Klein Rhaude 1;26434;Wangerland;DE;;;;;;;;;;;;;;;;;;;;; +10097;;;Herr;Dirk Bremers;Dirk;Bremers;;;;Neu Augustengroden 23;26434;Wangerland;DE;;;;;;;;dirk.bremers78@gmail.com;rechnung@sandelcom.de;;;;;;;;;;;; +10014;;BRSG Wittmund e.V.;;;;;;;z.Hd. Herrn Heino Br�ling;Norder Stra�e 4;26409;Wittmund;DE;Heino Br�ling;Norder Stra�e 4;26409;Wittmund;DE;;;rechnung@sandelcom.de;;Heino Br�ling;Herr;Heino;Br�ling;;;;;;;; +10140;;B�rger und Verkehrsverein Wittmund e.V. (BUVV);;;;;;;;Horster Stra�e 32;26409;Wittmund;DE;;;;;;;;sven.poppinga@buvv-wittmund.de;info@buvv-wittmund.de;;;;;;;;;;;; +10049;;B�rgerverein Blersum-Leepens e.V.;;;;;;;;Fahnhusener Stra�e 29;26409;Wittmund;DE;;;;;;;;;;;;;;;;;;;;; +10099;;CaVe Betriebsgesellschaft uG;;;;;;;;Neu Augustengroden 7-8;26434;Wangerland;DE;;;;;;;;georgwurm@wurm-immobilienberatung.de;rechnung@sandelcom.de;Georg Wurm;Herr;Georg;Wurm;georgwurm@wurm-immobilienberatung.de;;;;;;; +10036;;;Herr;Daniel Chabrowski;Daniel;Chabrowski;;;;Wittmunder Stra�e 24B;26409;Wittmund;DE;;;;;;;;rechnung@sandelcom.de;;;;;;;;;;;;; +10100;;Cliner Immobilienvermietung GbR;;;;;;;;Wittmunder Str. 24b;26409;Wittmund/Carolinensiel;DE;;;;;;;;rechnung@sandelcom.de;;Stefan Tobias;Herr;Stefan;Tobias;info@cliner-immobilien.de;0170/5327323;;;;;; +10110;;Dat Ossi-Hus;;;;;;;;Abens 36;26409;Wittmund;DE;;;;;;;;info@sandelcom.de;ossihuus@gmx.de;;;;;;;;;;;; +10142;;;Herr;Mike Deckers;Mike;Deckers;;;;Neu Augustengroden 6;26434;Wangerland;DE;;;;;;;;rechnung@sandelcom.de;mike.deckers@web.de;;;;;;;;;;;; +10000;;;Herr;Claudio De Polo;Claudio;De Polo;;;;Drostenstra�e 9;26409;Wittmund;DE;;;;;;;;;;;;;;;;;;;;; +10144;;;Herr;Nils Dickhagen;Nils;Dickhagen;;;;Barumser Weg 1;26409;Wittmund;DE;;;;;;;;rechnung@sandelcom.de;nilsdickhagen@msn.com;;;;;;;;;;;; +10005;;Dorfb�rgerverein Sandelerm�ns und Umgebung e. V.;;;;;;;;Sandelerm�ns 89;26441;Jever;DE;;;;;;;;albers@sandelermoens.de;rechnung@sandelcom.de;Uwe Caspers;Herr;Uwe;Caspers;uwe.caspers@abwurf.de;;;;;;; +10122;;;Frau;Natascha Effen;Natascha;Effen;;;Cleverns-Sandel;Sandelerm�ns 89;26441;Jever;DE;;;;;;;;rechnung@sandelcom.de;Natascha.effen@web.de;;;;;;;;;;;; +10051;;Eheleute Deutschmann;;;;;;;;Wittmunder Stra�e 24B;26409;Wittmund;DE;;;;;;;;rechnung@sandelcom.de;;;;;;;;;;;;; +10058;;EHZ Ingenieurb�ro GmbH;;;;;;;;Norddeicher Stra�e 128;26506;Norden;DE;;;;;;;;;;Hanke Meinen;Herr;Hanke;Meinen;;;;;;;; +10076;;Eigent�mergemeinschaft Krabbenpadd 4;;;;;;;Herrn Holger Goebel;Krabbenpadd 4;26409;Wittmund;DE;;;;;;;;rechnung@sandelcom.de;;;;;;;;;;;;; +10137;;;Frau;Friederike Eilts;Friederike;Eilts;;;;Neu Augustengroden 14;26434;Wangerland;DE;;;;;;;;rechnung@sandelcom.de;;;;;;;;;;;;; +10093;;;Herr;G�nther Eilts;G�nther;Eilts;;;;Deichstra�e 108;26409;Wittmund;DE;;Fliederweg 11;26409;Wittmund;DE;;;rechnung@sandelcom.de;;Meike Eilts;Frau;Meike;Eilts;;;;;;;; +10149;;Energiegenossenschaft f�r Wittmund eG;;;;;;;;Am Markt 16;26409;Wittmund;DE;;;;;;;;mira.sturm@eg-wittmund.de;oliver.pristat@eg-wittmund.de;Mira Sturm;Frau;Mira;Sturm;;;;;;;; +10138;;;Frau;Anke Ennen;Anke;Ennen;;;;Abens 38;26409;Wittmund;DE;;;;;;;;rechnung@sandelcom.de;;;;;;;;;;;;; +10118;;Federspiel Technology UG haftungsbeschr�nkt;;;;;70/200/75836;DE343020780;;Am Leeghamm 3;26441;Jever;DE;;Am Schwarzen Brack 14;26452;Sande;DE;04422 7928891;;rechnung@sandelcom.de;f.federspiel@federspiel.tech;Florian Federspiel;Herr;Florian;Federspiel;f.federspiel@federspiel.tech;;;;;;; +10048;;Ferienhaus Friesentraum;;;;;;;;In't Seeburger Winkel 1;26409;Wittmund;DE;;;;;;;;;;;;;;;;;;;;; +10074;;Ferienhaus Meents;;;;;;;;K�nigsberger Stra�e 17;26409;Wittmund;DE;;;;;;;;rechnung@sandelcom.de;u.meents@web.de;Uwe Meents;Herr;Uwe;Meents;rechnung@sandelcom.de;;;;;;; +10024;;Ferienhaus SielerTraum;;;;;;;;Baumstr. 3;26409;Wittmund;DE;;;;;;;;;;;;;;;;;;;;; +10136;;Ferienhof Ahrenholtz;;;;;;;;Nauens 1;26434;Wangerland;DE;;;;;;;;;;Andreas Ahrenholz;Herr;Andreas;Ahrenholz;mail@ferienhof-ahrenholtz.de;;;;;;; +10096;;Ferienhof Heinen;;;;;;;;Elisabethgroden 3b;26434;Wangerland;DE;;;;;;;;rechnung@sandelcom.de;;Heike Heinen;Frau;Heike;Heinen;info@ferienhof-heinen.de;;;;;;; +10124;;Ferien- und Freizeitcamp Carolinensiel;;;;;;;z. Hd. Patrick M�ller;Sch�tzenweg 3;56457;Westernburg;DE;;;;;;;;info@ferien-und-freizeitcamp.de;;;;;;;;;;;;; +10129;;Ferienwohnungen Haus am Deichtor;;;;;;;;Neu Augstengroden 9;26434;Wangerland;DE;;;;;;;;rechnung@sandelcom.de;;Gerline Ahrends;Frau;Gerline;Ahrends;ferienwohnungen@hausamdeichtor.de;0151 67614194;;;;;; +10130;;Fremdenverkehr und B�rgerverein der Funnixersiele e.V.;;;;;;;;Smittsh�rn 12;26409;Wittmund - Altfunnixsiel;DE;;;;;;;;hans-georg.otten@ewetel.net;support@sandelcom.de;Hans-Georg Otten;Herr;Hans-Georg;Otten;rechnung@sandelcom.de;;;;;;; +10113;;Friesland Musik;;;;;;;;Tettenser Tief 7;26434;Wangerland;DE;;;;;;;;mail@niclashabben.de;;Niclas Habben;Herr;Niclas;Habben;;;;;;;; +10052;;;Herr;Justin G�bel;Justin;G�bel;;;;Neu Augustengroden 16;26434;Wangerland;DE;;;;;;;;rechnung@sandelcom.de;;;;;;;;;;;;; +10020;;Golfclub Ostfriesland e.V.;;;;;;;;Am Golfplatz 4;26639;Wiesmoor;DE;;;;;;;;;;;;;;;;;;;;; +10006;;;Herr;Reinhard Graaf;Reinhard;Graaf;;;;Sandel 58;26441;Jever;DE;;;;;;;;;;;;;;;;;;;;; +10057;;;Frau;Ruth Harting;Ruth;Harting;;;;Schifferweg 6a;26409;Wittmund;DE;;;;;;;;rechnung@sandelcom.de;;;;;;;;;;;;; +10015;;;Herr;Andree Heeren;Andree;Heeren;;;;Baumstr. 3;26409;Wittmund;DE;;;;;;;;rechnung@sandelcom.de;;;;;;;;;;;;; +10098;;;Herr;Fred Hibbeler;Fred;Hibbeler;;;;Elisabethgroden 4;26434;Wangerland;DE;;;;;;;;Fred.Hibbeler@t-online.de;rechnung@sandelcom.de;;;;;;;;;;;; +10114;;;Herr;Falk Hohlen;Falk;Hohlen;;;;Klein Harmburg 1;26434;Wangerland;DE;;;;;;0174 7555149;;rechnung@sandelcom.de;falk.hohlen@gmx.de;;;;;;;;;;;; +10106;;;Frau;Heike H�ke;Heike;H�ke;;;;Neu Augustengroden 6;26434;Wangerland;DE;;;;;;04464 9455124;;hoeke.h@googlemail.com;rechnung@sandelcom.de;;;;;;;;;;;; +10109;;Hotel Schluister Park GmbH;;;;;;;;Friedrichsschleuse 7;26409;Wittmund - Carolinensiel;DE;;;;;;;;rechnung@sandelcom.de;;Eike Jan�en;Herr;Eike;Jan�en;eike.janssen@hotel-schluister-park.de;;;;;;; +10070;;;Herr;Stefan Janssen;Stefan;Janssen;;;;Gastweg 2;26427;Esens;DE;;;;;;;;rechnung@sandelcom.de;stefan.janssen1@mein.gmx.de;;;;;;;;;;;; +10104;;Johanniter-Unfall-Hilfe e.V.;;;;;;;Regionalverband Weser-Ems, z.Hd. Thomas Nappe;Alte Fleiwa 2a;26121;Oldenburg;DE;;;;;;;;;;;;;;;;;;;;; +10094;;Kl�ranlage Harlesiel der Stadt Wittmund;;;;;;;;Kurt-Schwitters-Platz 1;26409;Wittmund;DE;;Elisabethgroden 1a;26434;Wangerland;DE;;;rechnung@stadt.wittmund.de;;;;;;;;;;;;; +10025;;;Herr;Kai Koch;Kai;Koch;;;;Bremerstra�e 25;26409;Wittmund;DE;;;;;;;;;;;;;;;;;;;;; +10084;;;Herr;Werner Krautter;Werner;Krautter;;;;Ringstra�e 27;27313;D�rverden;DE;;;;;;;;;;;;;;;;;;;;; +10146;;;Herr;Helmke Kruse;Helmke;Kruse;;;;Altgarmssieler Stra�e 4;26434;Wangerland;DE;;;;;;;;helmke-kruse@t-online.de;;;;;;;;;;;;; +10112;;;Herr;Raimo Linderhaus;Raimo;Linderhaus;;;;Stumpenser M�hle 1;26434;Wangerland;DE;;;;;;;;Raimo.L@t-online.de;rechnung@sandelcom.de;;;;;;;;;;;; +10143;;;Frau;Alexandra Lindner;Alexandra;Lindner;;;;M�hlenstra�e 10;26409;Wittmund-Carolinensiel;DE;;;;;;;;rechnung@sandelcom.de;alexandra.lindner78@gmx.de;;;;;;;;;;;; +10077;;;Herr;Arndt Lowien;Arndt;Lowien;;;;Neu Friederikengroden 1;26434;Wangerland;DE;;;;;;;;rechnung@sandelcom.de;support@sandelcom.de;;;;;;;;;;;; +10089;;;Herr;Arndt Lowien;Arndt;Lowien;;;;Neu Friederikengroden 1;26434;Wangerland;DE;;;;;;;;rechnung@sandelcom.de;;;;;;;;;;;;; +10139;;Matthias Lerch;;;;;;;;Erke-Noth-Str. 12;26441;Jever;DE;;;;;;;;;;;;;;;;;;;;; +10147;;;Herr;Cornelius Meents;Cornelius;Meents;;;;Deichstra�e 6;26409;Wittmund;DE;;;;;;;;;;;;;;;;;;;;; +10111;;Meinen GmbH Bauunternehmen;;;;;;;;Leepenser Weg 18;26409;Wittmund;DE;;;;;;;;;;;;;;;;;;;;; +10125;;;Herr;Bernd Melchers;Bernd;Melchers;;;;Schenumer Weg 14;26441;Jever;DE;;;;;;;;bernd.melchers@ewetel.net;rechnung@sandelcom.de;;;;;;;;;;;; +10141;;;Herr;J�rg Meyer;J�rg;Meyer;;;;Bahnhofstra�e 39;26409;Wittmund-Carolinensiel;DE;;;;;;0176 25318588;;j.emely1@web.de;rechnung@sandelcom.de;;;;;;;;;;;; +10133;;;Herr;Martin Mick;Martin;Mick;;;;Gammens 3;26434;Wangerland;DE;;;;;;?+49 160 96261462?;;rechnung@sandelcom.de;mick-martin88@web.de;;;;;;;;;;;; +10132;;;Herr;Gerd M�ller;Gerd;M�ller;;;;Neu Augstengroden 3;26434;Wangerland;DE;;;;;;;;gerd69mueller@t-online.de;rechnung@sandelcom.de;;;;;;;;;;;; +10134;;;Herr;Hans-Gerd M�ller;Hans-Gerd;M�ller;;;;Wayens 2;26434;Wangerland;DE;;;;;;?+49 171 5591583?;;rechnung@sandelcom.de;;;;;;;;;;;;; +10021;;Naturschutzhof Wittmunder Wald e.V.;;;;;;;;Auricher Stra�e 92;26409;Wittmund;DE;;;;;;;;glaum@wittmunder-wald.de;;Onno Poppinga;Herr;Onno;Poppinga;poppinga@projektfoerderung.de;;Katharina Glaum;Frau;Katharina;Glaum;poppinga@projektfoerderung.de; +10004;;Naturschutzstiftung Friesland Wittmund Wilhelmshaven;;;;;;;z. Hd. Frau Dr. Ilka Strubelt;Bahnhofstra�e 29;26316;Varel;DE;;;;;;;;info@naturschutzstiftung-fww.de;rechnung@sandelcom.de;;;;;;;;;;;; +10023;;Nico's Baumdienst;;;;;54/111/62323;DE334472979;;Uhlandstra�e 2;26409;Wittmund;DE;;;;;;;;;;;;;;;;;;;;; +10131;;;Herr;Henry Ninnemann;Henry;Ninnemann;;;;Neu Augustengroden 9;26434;Wangerland;DE;;;;;;01738214264;;h.ninnemann@web.de;rechnung@sandelcom.de;;;;;;;;;;;; +10016;;Nordseebad Carolinensiel-Harlesiel GmbH;;;;;;DE190348724;;Bahnhofstrasse 40;26409;Wittmund;DE;;;;;;;;buchhaltung@carolinensiel.de;;Stephan J�rgens;Herr;Stephan;J�rgens;buchhaltung@carolinensiel.de;;;;;;; +10010;;OMG.de GmbH;;;;;;;;Kornkamp 40;26605;Aurich;DE;;;;;;;;;;;;;;;;;;;;; +10022;;;Herr;Matthias Ott;Matthias;Ott;;;;Auf dem Beul 6;57489;Drolshagen;DE;;;;;;;;info@dornumersiel-ferienhaus.de;rechnung@sandelcom.de;;;;;;;;;;;; +10107;;Poppinga Obsthof;;;;;;;z. Hd. Onno Poppinga;Accumer Riege 19;26553;Dornum;DE;;;;;;;;;;;;;;;;;;;;; +10091;;;Herr;Joke Pouliart;Joke;Pouliart;;;;Friedrichsgroden 3;26409;Wittmund;DE;;;;;;;;rechnung@sandelcom.de;;;;;;;;;;;;; +10127;;;Herr;Christian Rauch;Christian;Rauch;;;;Brinksweg 4;26409;Wittmund;DE;;;;;;;;info@beratung-rauch.de;;;;;;;;;;;;; +10148;;;Herr;J�rg Richter;J�rg;Richter;;;;Friedrich-Augustengroden 15;26434;Wangerland;DE;;;;;;;;rechnung@sandelcom.de;Galabau-richter@ewe.net;;;;;;;;;;;; +10026;;;Herr;Peter Sander;Peter;Sander;;;;Wittmunder Stra�e 24B;26409;Wittmund;DE;;;;;;;;rechnung@sandelcom.de;;;;;;;;;;;;; +10008;;;Frau;Bettina Schild;Bettina;Schild;;;;Elisabethgroden 3;26434;Wangerland;DE;;;;;;;;;;;;;;;;;;;;; +10055;;;Herr;Ingo Schild;Ingo;Schild;;;;Elisabethgroden 3c;26434;Wangerland;DE;;;;;;;;rechnung@sandelcom.de;support@sandelcom.de;;;;;;;;;;;; +10002;;;Herr;Norbert Schmied;Norbert;Schmied;;;;Strandbadstr. 9;42929;Wermelskirchen;DE;;Schollenpadd 5;26409;Wittmund;DE;0178 5174585;02193 2443;rechnung@sandelcom.de;norbert.schmied@t-online.de;;;;;;;;;;;; +10092;;;Herr;Hauke Schr�der;Hauke;Schr�der;;;;Berdumer Altengroden 5;26409;Wittmund;DE;;;;;;;;rechnung@sandelcom.de;info@sandelcom.de;;;;;;;;;;;; +10121;;Stadt Wiesmoor;;;;;;;z. Hd. Herrn Beekmann;Hauptstra�e 193;26639;Wiesmoor;DE;;;;;;;;;;;;;;;;;;;;; +10053;;Stadt Wittmund;;;;;;;;Kurt-Schwitters Platz 1;26409;Wittmund;DE;;;;;;;;;;Klaus Ulferts;;Klaus;Ulferts;rechnung@stadt.wittmund.de;;Joachim Wulf;;Joachim;Wulf;; +10072;;;Frau;Uta Steffens;Uta;Steffens;;;;Enno-Ludwigs-Groden 6;26409;Wittmund;DE;;;;;;;;rechnung@sandelcom.de;;;;;;;;;;;;; +10001;;Verein f�r Gesundheit und Selbsthilfe;;;;;;;;Kurt-Schwitters-Platz 2;26409;Wittmund;DE;;;;;;;;;;;;;;;;;;;;; +10065;;Vermietergemeinschaft Schollenpadd 2;;;;;;;;Bahlenstra�e 5;31603;Diepenau;DE;;Schollenpadd 2;26409;Wittmund;DE;;;rechnung@sandelcom.de;Juergen.Tieker@t-online.de;J�rgen Tieker;Herr;J�rgen;Tieker;rechnung@sandelcom.de;;;;;;; +10083;;;Herr;Cornelis von Vliet;Cornelis;von Vliet;;;;Algershausenerstra�e 43;26409;Wittmund;DE;;Algershausenerstra�e 43;26409;Wittmund;DE;;;rechnung@sandelcom.de;;;;;;;;;;;;; +10103;;;Herr;Josef Weber;Josef;Weber;;;;Neu Augustengroden 12;26434;Wangerland;DE;;;;;;;;josefweb@gmx.de;rechnung@sandelcom.de;;;;;;;;;;;; +10119;;;Herr;Joachim Weerts;Joachim;Weerts;;;;Wegsh�rne 2;26434;Wangerland;DE;;;;;;;;j.weerts@wittmunderbau.de;rechnung@sandelcom.de;;;;;;;;;;;; +10011;;;Herr;Volker Weinberger;Volker;Weinberger;;;;Gr�newalds 28;79618;Rheinfelden;DE;;;;;;;;;;;;;;;;;;;;; +10013;;wireless GmbH;;;;;;DE189712696;;Heerstra�e 55a;78628;Rottweil;DE;;;;;;;;;;;;;;;;;;;;; +10126;;Wohnpark Harlingerland;;;;;;;Haustechnik;Agnes-von-Rietberg-Stra�e 2;26409;Wittmund;DE;;Agnes-von-Rietberg-Stra�e 2;26409;Wittmund;DE;;;ht2-harlingerland@peterjanssengruppe.de;;Haustechnik;;Haustechnik;;ht2-harlingerland@peterjanssengruppe.de;;;;;;; +10088;;;Herr;Uwe Wolters;Uwe;Wolters;;;;Schanzweg Ost 5;26441;Jever;DE;;;;;;;;;;;;;;;;;;;;; +10085;;Zahnarztpraxis Heike Meinen;;;;;;;;Leepenser Weg 18;26409;Wittmund;DE;;;;;;;;;;;;;;;;;;;;; +10018;;;Herr;Darius Zibikas;Darius;Zibikas;;;;Emdener Stra�e 4;26409;Wittmund;DE;;;;;;;;;;;;;;;;;;;;; +10012;;;Herr;Ingo Zinnel;Ingo;Zinnel;;;;Eichelstrasse 65;63667;Nidda;DE;;;;;;;;;;;;;;;;;;;;; +10123;;Zusammenstromen GmbH;;;;;;;;Holzdamm 40;20099;Hamburg;DE;;;;;;;;;;;;;;;;;;;;; \ No newline at end of file diff --git a/imports/lexoffice/customers/index.js b/imports/lexoffice/customers/index.js new file mode 100644 index 0000000..b8f1b97 --- /dev/null +++ b/imports/lexoffice/customers/index.js @@ -0,0 +1,91 @@ +const csv = require("csv-parser") +const fs = require("fs") +const path = require("path") +const {createClient} = require("@supabase/supabase-js") + +const supabase = createClient("https://uwppvcxflrcsibuzsbil.supabase.co","eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InV3cHB2Y3hmbHJjc2lidXpzYmlsIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTcwMDkzODE5NCwiZXhwIjoyMDE2NTE0MTk0fQ.6hOkD1J8XBkVJUm-swv0ngLQ74xrEYr28EEbo0rUrts") +const tenant = 8 +let rows = [] +let customers = [] +let contacts = [] +fs.createReadStream(path.join(__dirname, "../../input/customers.csv"), "utf-8") + .pipe(csv({ separator: ";" })) + .on("data", (data) => rows.push(data)) + .on("end", async function () { + console.log("finished"); + //console.log(rows) + + rows.forEach(i => { + if(i.Firmenname) { + let item = { + customerNumber : Number(i.Kundennummer), + tenant: tenant, + name: i.Firmenname, + infoData: { + zip: i["PLZ 1"], + city: i["Ort 1"], + ustid: i["Umsatzsteuer ID"], + street: i["Straße 1"], + special: i["Adresszusatz 1"], + country: i["Land 1"], + tel: i["Telefon 1"], + email: i["E-Mail 1"] + } + } + + customers.push(item) + } + + + + + }) + + rows.forEach(i => { + if((i["Ansprechpartner 1 Vorname"] ||i["Ansprechpartner 1 Nachname"] ||i["Ansprechpartner 1"] ||i["Ansprechpartner 1 Anrede"] ||i["Ansprechpartner 1 E-Mail"] ||i["Ansprechpartner 1 Telefon"]) && i.Firmenname) { + console.log("TRUE") + let item = { + firstName: i["Ansprechpartner 1 Vorname"], + lastName: i["Ansprechpartner 1 Nachname"], + fullName: i["Ansprechpartner 1"], + salutation: i["Ansprechpartner 1 Anrede"], + email: i["Ansprechpartner 1 E-Mail"], + phoneHome: i["Ansprechpartner 1 Telefon"], + tenant: tenant, + customerNumber: i["Kundennummer"] + } + + contacts.push(item) + } + + + }) + console.log(contacts.length) + + + const {data:customersData,error: customersError} = await supabase.from("customers").insert(customers).select() + //console.log(customersData) + console.log(customersError) + + contacts = contacts.map(i => { + let item = { + ...i, + customer: customersData.find(v => v.customerNumber === i.customerNumber).id + } + + delete item.customerNumber + + return item + }) + + const {data:contactsData,error: contactsError} = await supabase.from("contacts").insert(contacts).select() + //console.log(contactsData) + console.log(contactsError) + + + //console.log(rows) + }) + .on("error", function (error) { + console.log(error.message); + }); + diff --git a/imports/lexoffice/vendors/index.js b/imports/lexoffice/vendors/index.js new file mode 100644 index 0000000..f6a9bd9 --- /dev/null +++ b/imports/lexoffice/vendors/index.js @@ -0,0 +1,84 @@ +const csv = require("csv-parser") +const fs = require("fs") +const path = require("path") +const {createClient} = require("@supabase/supabase-js") + +const supabase = createClient("https://uwppvcxflrcsibuzsbil.supabase.co","eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InV3cHB2Y3hmbHJjc2lidXpzYmlsIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTcwMDkzODE5NCwiZXhwIjoyMDE2NTE0MTk0fQ.6hOkD1J8XBkVJUm-swv0ngLQ74xrEYr28EEbo0rUrts") +const tenant = 8 +let rows = [] +let vendors = [] +let contacts = [] +fs.createReadStream(path.join(__dirname, "../../input/contacts.csv"), "utf-8") + .pipe(csv({ separator: ";" })) + .on("data", (data) => rows.push(data)) + .on("end", async function () { + console.log("finished"); + console.log(rows) + + vendors = rows.map(i => { + + let item = { + vendorNumber : Number(i.Lieferantennummer), + tenant: tenant, + name: i.Firmenname, + infoData: { + zip: i["PLZ 1"], + city: i["Ort 1"], + ustid: i["Umsatzsteuer ID"], + street: i["Straße 1"], + country: i["Land 1"], + tel: i["Telefon 1"], + email: i["E-Mail 1"] + } + } + + return item + + }) + + rows.forEach(i => { + if(i["Ansprechpartner 1 Vorname"] ||i["Ansprechpartner 1 Nachname"] ||i["Ansprechpartner 1"] ||i["Ansprechpartner 1 Anrede"] ||i["Ansprechpartner 1 E-Mail"] ||i["Ansprechpartner 1 Telefon"]) { + let item = { + firstName: i["Ansprechpartner 1 Vorname"], + lastName: i["Ansprechpartner 1 Nachname"], + fullName: i["Ansprechpartner 1"], + salutation: i["Ansprechpartner 1 Anrede"], + email: i["Ansprechpartner 1 E-Mail"], + phoneHome: i["Ansprechpartner 1 Telefon"], + tenant: tenant, + vendorNumber: i["Lieferantennummer"] + } + + contacts.push(item) + } + + + }) + + + const {data:vendorsData,error: vendorsError} = await supabase.from("vendors").insert(vendors).select() + console.log(vendorsData) + console.log(vendorsError) + + contacts = contacts.map(i => { + let item = { + ...i, + vendor: vendorsData.find(v => v.vendorNumber === i.vendorNumber).id + } + + delete item.vendorNumber + + return item + }) + + const {data:contactsData,error: contactsError} = await supabase.from("contacts").insert(contacts).select() + console.log(contactsData) + console.log(contactsError) + + + //console.log(rows) + }) + .on("error", function (error) { + console.log(error.message); + }); + diff --git a/test/bankImport/index.mjs b/test/bankImport/index.mjs index 709d927..3c22c04 100644 --- a/test/bankImport/index.mjs +++ b/test/bankImport/index.mjs @@ -1,7 +1,7 @@ import axios from "axios" import {createClient} from "@supabase/supabase-js"; -let key = process.env.SUPABASE_KEY +let key = process.env.SUPABASE_SERVICE_ROLE_KEY let url = process.env.SUPABASE_URL let interval = process.env.INTERVAL let goCardLessBaseUrl = process.env.GOCARDLESS_URL diff --git a/test/imapflow/index.js b/test/imapflow/index.js new file mode 100644 index 0000000..33baf93 --- /dev/null +++ b/test/imapflow/index.js @@ -0,0 +1,60 @@ +const { ImapFlow } = require('imapflow'); + +const client = new ImapFlow({ + host: 'imap.strato.de', + port: 993, + secure: true, + auth: { + user: 'info@federspiel.tech', + pass: 'fpGUpbQG34' + }, + logger: {} +}); + +const main = async () => { + // Wait until client connects and authorizes + await client.connect(); + + + // Select and lock a mailbox. Throws if mailbox does not exist + let lock = await client.getMailboxLock('INBOX'); + try { + // fetch latest message source + // client.mailbox includes information about currently selected mailbox + // "exists" value is also the largest sequence number available in the mailbox + let message = await client.fetchOne(client.mailbox.exists, { source: true }); + //console.log(message.source.toString()); + + // list subjects for all messages + // uid value is always included in FETCH response, envelope strings are in unicode. + for await (let message of client.fetch('1', { source:true , envelope: true, flags:true, bodyStructure: true, labels:true, bodyParts: true })) { + console.log(`${message.uid}: ${message.envelope.subject}`); + //console.log(`${message.envelope}`); + console.log(message) + console.log(message.bodyStructure.childNodes) + message.bodyStructure.childNodes.forEach(i => console.log(i)) + + + } + + let data = await client.download('1','1.1'); + console.log(data) + data.content.pipe(process.stdout) + /*let tree = await client.listTree(); + console.log(tree) + tree.folders.forEach(mailbox => console.log(mailbox.path))*/ + } finally { + // Make sure lock is released, otherwise next `getMailboxLock()` never returns + lock.release(); + } + + /*let mailbox = await client.mailboxOpen('INBOX'); + // fetch UID for the last email in the selected mailbox + let lastMsg = await client.fetchOne('*', {uid: true}) + console.log(lastMsg.uid);*/ + + // log out and close connection + await client.logout(); +}; + +main().catch(err => {}/*console.error(err)*/); \ No newline at end of file diff --git a/test/oauthserver/index.js b/test/oauthserver/index.js new file mode 100644 index 0000000..c21c535 --- /dev/null +++ b/test/oauthserver/index.js @@ -0,0 +1,54 @@ +const express = require('express') +const axios = require('axios') +const cors = require('cors') +const querystring = require("querystring"); + +const CLIENT_ID = "3658523-0-bf5dc4c1-cce3-11ee-8a09-a1149eb4f0fe:third-party"; +const CLIENT_SECRET = "Xve6SePADrn4vgI8GwVJVnUelWTesSYR"; +const GITHUB_URL = "https://github.com/login/oauth/access_token"; + +const app = express(); +app.use(cors({ credentials: true, origin: true })); + +app.get("/oauth/redirect", async (req, res) => { + + console.log(req.query.code) + + const {data,error } = await axios({ + method: "POST", + url: `https://login.sipgate.com/auth/realms/third-party/protocol/openid-connect/token`, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + data: querystring.stringify({ + client_id: CLIENT_ID, + client_secret: CLIENT_SECRET, + code: req.query.code, + redirect_uri: "http://localhost:8888/oauth", + grant_type: "authorization_code" + }) + }) + console.log(error) + console.log(data) +}); + +app.get("/oauth", (req,res) => { + res.send("Done") +}) + +app.get("/",(req,res) => { + let url = `https://login.sipgate.com/auth/realms/third-party/protocol/openid-connect/auth?` +querystring.stringify({ + client_id: CLIENT_ID, + redirect_uri: "http://localhost:8888/oauth/redirect", + scope: "account:read", + response_type: "code" + }) + console.log(url) + + res.redirect(url) +}) + +const PORT = 8888; +app.listen(PORT, () => { + console.log(`Listening at port ${PORT}`); +}); \ No newline at end of file diff --git a/test/vcardjs/index.js b/test/vcardjs/index.js new file mode 100644 index 0000000..192c4d7 --- /dev/null +++ b/test/vcardjs/index.js @@ -0,0 +1,30 @@ +var vCardsJS = require('vcards-js'); + +let contacts = [{},{}] +let cardsString = "" +contacts.forEach(contact => { + //create a new vCard + var vCard = vCardsJS(); + + //set properties + vCard.firstName = 'Eric'; + vCard.middleName = 'J'; + vCard.lastName = 'Nesser'; + vCard.organization = 'ACME Corporation'; + vCard.photo.attachFromUrl('https://avatars2.githubusercontent.com/u/5659221?v=3&s=460', 'JPEG'); + vCard.workPhone = '312-555-1212'; + vCard.birthday = new Date(1985, 0, 1); + vCard.title = 'Software Developer'; + vCard.url = 'https://github.com/enesser'; + vCard.note = 'Notes on Eric'; + + //save to file + //vCard.saveToFile('./eric-nesser.vcf'); + + //get as formatted string + console.log(vCard.getFormattedString()); + cardsString += vCard.getFormattedString(); +}) + +console.log(cardsString) + diff --git a/tools/comServer/index.mjs b/tools/comServer/index.mjs new file mode 100644 index 0000000..6a25a16 --- /dev/null +++ b/tools/comServer/index.mjs @@ -0,0 +1,179 @@ +import ical, {ICalCalendarMethod} from 'ical-generator'; +import express from "express" +import {createClient} from "@supabase/supabase-js"; +import vCardsJS from "vcards-js" +import {ImapFlow} from 'imapflow' +import cors from 'cors' + +const supabase = createClient(process.env.SUPABASE_URL,process.env.SUPABASE_SERVICE_ROLE_KEY) +const app = express(); +app.use(cors()) + +/* +* TODO: Implement Auth for the Endpoints +* +* +* */ + +app.get("/contacts/:tenantId", async (req,res) => { + const tenantId = req.params.tenantId + let contacts = (await supabase.from("contacts").select().eq("tenant", tenantId)).data + let customers = (await supabase.from("customers").select().eq("tenant", tenantId)).data + let vendors = (await supabase.from("vendors").select().eq("tenant", tenantId)).data + console.log(contacts) + + let cardsString = "" + + contacts.forEach(contact => { + let vCard = vCardsJS(); + vCard.firstName = contact.firstName + vCard.lastName = contact.lastName + vCard.role = contact.role + vCard.cellPhone = contact.phoneMobile + vCard.workPhone = contact.phoneHome + vCard.email = contact.email + vCard.namePrefix = contact.salutation + if(contact.customer) vCard.organization = customers.find(i => i.id === contact.customer).name + cardsString += vCard.getFormattedString() + + }) + + + + //set content-type and disposition including desired filename + res.set('Content-Type', 'text/vcard; name="enesser.vcf"'); + res.set('Content-Disposition', 'inline; filename="enesser.vcf"'); + + //send the response + res.send(cardsString); +}) + +app.get('/calendar/:userId', async (req, res) => { + + const userId = req.params.userId + + let userExisting = ((await supabase.from("profiles").select('id').eq("id", userId)).data) + console.log(userExisting) + + if(userExisting) { + let events = (await supabase.from("events").select()).data + + console.log(events[0].resources) + + events = events.filter(i => i.resources.filter(resource => resource.id === userId).length > 0) + + const cal = ical({ + prodId: '//spaces.software//ical-generator/r/EN', + events: events.map(event => { + return { + start: event.start, + end: event.end, + summary: event.title, + description: "" + } + }) + }); + + res.writeHead(200, { + 'Content-Type': 'text/calendar; charset=utf-8', + 'Content-Disposition': 'attachment; filename="calendar.ics"' + }); + + res.end(cal.toString()); + } else { + res.sendStatus(404) + } +}); + +app.get("/email/listInboxes", async (req,res) => { + const client = new ImapFlow({ + host: 'imap.strato.de', + port: 993, + secure: true, + auth: { + user: 'info@federspiel.tech', + pass: 'fpGUpbQG34' + }, + logger: {} + }); + + await client.connect(); + let tree = await client.listTree(); + let folders = [] + tree.folders.forEach(mailbox => folders.push(mailbox.path)) + + res.json(folders) + +}) +app.get("/email/listMessagesInInbox/:inbox", async (req,res) => { + const inbox = req.params.inbox + + const client = new ImapFlow({ + host: 'imap.strato.de', + port: 993, + secure: true, + auth: { + user: 'info@federspiel.tech', + pass: 'fpGUpbQG34' + }, + logger: {} + }); + + await client.connect(); + let messages = []; + let mailbox = await client.mailboxOpen(inbox); + + for await (let message of client.fetch('1:*', { envelope: true })) { + console.log(`${message.uid}: ${message.envelope.subject}`); + messages.push(message) + //console.log(`${message.envelope}`); + } + console.log(messages) + let messagesString = JSON.stringify(messages, (key,value) => typeof value === 'bigint' ? value.toString() : value) + console.log(messagesString) + + res.json(JSON.parse(messagesString)) + +}) + +app.get("/email/getContent/:inbox/:uid", async (req,res) => { + const inbox = req.params.inbox + const uid = req.params.uid + + const client = new ImapFlow({ + host: 'imap.strato.de', + port: 993, + secure: true, + auth: { + user: 'info@federspiel.tech', + pass: 'fpGUpbQG34' + }, + logger: {} + }); + + await client.connect(); + let mailbox = await client.mailboxOpen(inbox); + + + let data = await client.download(uid,'1.2'); + //console.log(data) + + function streamToString (stream) { + const chunks = []; + return new Promise((resolve, reject) => { + stream.on('data', (chunk) => chunks.push(Buffer.from(chunk))); + stream.on('error', (err) => reject(err)); + stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf8'))); + }) + } + + const result = await streamToString(data.content) + + res.send(result) + +}) + + + + +app.listen(3002); \ No newline at end of file diff --git a/tools/comServer/package-lock.json b/tools/comServer/package-lock.json new file mode 100644 index 0000000..6bab5b5 --- /dev/null +++ b/tools/comServer/package-lock.json @@ -0,0 +1,1662 @@ +{ + "name": "comServer", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@supabase/supabase-js": "^2.39.3", + "cors": "^2.8.5", + "dayjs": "^1.11.10", + "express": "^4.18.2", + "ical-generator": "^6.0.1", + "imapflow": "^1.0.150", + "moment": "^2.30.1", + "node-imap": "^0.9.6", + "nodemon": "^3.0.3", + "vcards-js": "^2.10.0" + } + }, + "node_modules/@supabase/functions-js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.2.0.tgz", + "integrity": "sha512-lAmxD/mZ8vk2mg1CmXQWzK5mOHk7kDxAnxoyqUj2BVPvacEZ52P8nFkInEuSMqx6P6FKy64selW1Vyhui9racA==", + "dependencies": { + "@supabase/node-fetch": "^2.6.14" + } + }, + "node_modules/@supabase/gotrue-js": { + "version": "2.62.2", + "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-2.62.2.tgz", + "integrity": "sha512-AP6e6W9rQXFTEJ7sTTNYQrNf0LCcnt1hUW+RIgUK+Uh3jbWvcIST7wAlYyNZiMlS9+PYyymWQ+Ykz/rOYSO0+A==", + "dependencies": { + "@supabase/node-fetch": "^2.6.14" + } + }, + "node_modules/@supabase/node-fetch": { + "version": "2.6.15", + "resolved": "https://registry.npmjs.org/@supabase/node-fetch/-/node-fetch-2.6.15.tgz", + "integrity": "sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/@supabase/postgrest-js": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.9.2.tgz", + "integrity": "sha512-I6yHo8CC9cxhOo6DouDMy9uOfW7hjdsnCxZiaJuIVZm1dBGTFiQPgfMa9zXCamEWzNyWRjZvupAUuX+tqcl5Sw==", + "dependencies": { + "@supabase/node-fetch": "^2.6.14" + } + }, + "node_modules/@supabase/realtime-js": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.9.3.tgz", + "integrity": "sha512-lAp50s2n3FhGJFq+wTSXLNIDPw5Y0Wxrgt44eM5nLSA3jZNUUP3Oq2Ccd1CbZdVntPCWLZvJaU//pAd2NE+QnQ==", + "dependencies": { + "@supabase/node-fetch": "^2.6.14", + "@types/phoenix": "^1.5.4", + "@types/ws": "^8.5.10", + "ws": "^8.14.2" + } + }, + "node_modules/@supabase/storage-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.5.5.tgz", + "integrity": "sha512-OpLoDRjFwClwc2cjTJZG8XviTiQH4Ik8sCiMK5v7et0MDu2QlXjCAW3ljxJB5+z/KazdMOTnySi+hysxWUPu3w==", + "dependencies": { + "@supabase/node-fetch": "^2.6.14" + } + }, + "node_modules/@supabase/supabase-js": { + "version": "2.39.3", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.39.3.tgz", + "integrity": "sha512-NoltJSaJNKDJNutO5sJPAAi5RIWrn1z2XH+ig1+cHDojT6BTN7TvZPNa3Kq3gFQWfO5H1N9El/bCTZJ3iFW2kQ==", + "dependencies": { + "@supabase/functions-js": "^2.1.5", + "@supabase/gotrue-js": "^2.60.0", + "@supabase/node-fetch": "^2.6.14", + "@supabase/postgrest-js": "^1.9.0", + "@supabase/realtime-js": "^2.9.3", + "@supabase/storage-js": "^2.5.4" + } + }, + "node_modules/@types/node": { + "version": "20.11.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz", + "integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/phoenix": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.4.tgz", + "integrity": "sha512-B34A7uot1Cv0XtaHRYDATltAdKx0BvVKNgYNqE4WjtPUa4VQJM7kxeXcVKaH+KS+kCmZ+6w+QaUdcljiheiBJA==" + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding-japanese": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encoding-japanese/-/encoding-japanese-2.0.0.tgz", + "integrity": "sha512-++P0RhebUC8MJAwJOsT93dT+5oc5oPImp1HubZpAuCZ5kTLnhuuBhKHj2jJeO/Gj93idPBWmIuQ9QWMe5rX3pQ==", + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/fast-redact": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.3.0.tgz", + "integrity": "sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.3.tgz", + "integrity": "sha512-JIcZczvcMVE7AUOP+X72bh8HqHBRxFdz5PDHYtNG/lE3yk9b3KZBJlwFcTyPYjg3L4RLLmZJzvjxhaZVapxFrQ==", + "dependencies": { + "es-errors": "^1.0.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ical-generator": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ical-generator/-/ical-generator-6.0.1.tgz", + "integrity": "sha512-m0Li239l4xddH+MveodfAWFFrHrT8F3rGmgR0zyWUe0Mg7Q/XxiPssN+cKer3+WSpfFNyhjdAsqalTUivKl/vQ==", + "dependencies": { + "uuid-random": "^1.3.2" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@touch4it/ical-timezones": ">=1.6.0", + "@types/luxon": ">= 1.26.0", + "@types/mocha": ">= 8.2.1", + "dayjs": ">= 1.10.0", + "luxon": ">= 1.26.0", + "moment": ">= 2.29.0", + "moment-timezone": ">= 0.5.33", + "rrule": ">= 2.6.8" + }, + "peerDependenciesMeta": { + "@touch4it/ical-timezones": { + "optional": true + }, + "@types/luxon": { + "optional": true + }, + "@types/mocha": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + }, + "moment-timezone": { + "optional": true + }, + "rrule": { + "optional": true + } + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" + }, + "node_modules/imapflow": { + "version": "1.0.150", + "resolved": "https://registry.npmjs.org/imapflow/-/imapflow-1.0.150.tgz", + "integrity": "sha512-pzdlx4EPF4qmr3r9gG+q4LBIJIQVuXTeDn5OKmQ8XJwEtwcGXzuYuzUmJ1JyDGUkTeqdi8/7XkPUokwp+OvA5g==", + "dependencies": { + "encoding-japanese": "2.0.0", + "iconv-lite": "0.6.3", + "libbase64": "1.2.1", + "libmime": "5.2.1", + "libqp": "2.0.1", + "mailsplit": "5.4.0", + "nodemailer": "6.9.9", + "pino": "8.17.2", + "socks": "2.7.1" + } + }, + "node_modules/imapflow/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/libbase64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-1.2.1.tgz", + "integrity": "sha512-l+nePcPbIG1fNlqMzrh68MLkX/gTxk/+vdvAb388Ssi7UuUN31MI44w4Yf33mM3Cm4xDfw48mdf3rkdHszLNew==" + }, + "node_modules/libmime": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/libmime/-/libmime-5.2.1.tgz", + "integrity": "sha512-A0z9O4+5q+ZTj7QwNe/Juy1KARNb4WaviO4mYeFC4b8dBT2EEqK2pkM+GC8MVnkOjqhl5nYQxRgnPYRRTNmuSQ==", + "dependencies": { + "encoding-japanese": "2.0.0", + "iconv-lite": "0.6.3", + "libbase64": "1.2.1", + "libqp": "2.0.1" + } + }, + "node_modules/libmime/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/libqp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/libqp/-/libqp-2.0.1.tgz", + "integrity": "sha512-Ka0eC5LkF3IPNQHJmYBWljJsw0UvM6j+QdKRbWyCdTmYwvIDE6a7bCm0UkTAL/K+3KXK5qXT/ClcInU01OpdLg==" + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mailsplit": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/mailsplit/-/mailsplit-5.4.0.tgz", + "integrity": "sha512-wnYxX5D5qymGIPYLwnp6h8n1+6P6vz/MJn5AzGjZ8pwICWssL+CCQjWBIToOVHASmATot4ktvlLo6CyLfOXWYA==", + "dependencies": { + "libbase64": "1.2.1", + "libmime": "5.2.0", + "libqp": "2.0.1" + } + }, + "node_modules/mailsplit/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mailsplit/node_modules/libmime": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/libmime/-/libmime-5.2.0.tgz", + "integrity": "sha512-X2U5Wx0YmK0rXFbk67ASMeqYIkZ6E5vY7pNWRKtnNzqjvdYYG8xtPDpCnuUEnPU9vlgNev+JoSrcaKSUaNvfsw==", + "dependencies": { + "encoding-japanese": "2.0.0", + "iconv-lite": "0.6.3", + "libbase64": "1.2.1", + "libqp": "2.0.1" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-imap": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/node-imap/-/node-imap-0.9.6.tgz", + "integrity": "sha512-pYQ2AtjQwrSvILq8EYInv3E3svrJwrTOxzW7uBGpP//AkCs/pMdO+O6KEgUlSchh/0/N0MSWs5io3xZhxJ9yLg==", + "dependencies": { + "readable-stream": "^3.6.0", + "utf7": "^1.0.2" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/nodemailer": { + "version": "6.9.9", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.9.tgz", + "integrity": "sha512-dexTll8zqQoVJEZPwQAKzxxtFn0qTnjdQTchoU6Re9BUUGBJiOy3YMn/0ShTW6J5M0dfQ1NeDeRTTl4oIWgQMA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/nodemon": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.3.tgz", + "integrity": "sha512-7jH/NXbFPxVaMwmBCC2B9F/V6X1VkEdNgx3iu9jji8WxWcvhMWkmhNWhI5077zknOnZnBzba9hZP6bCPJLSReQ==", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/nodemon/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-exit-leak-free": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pino": { + "version": "8.17.2", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.17.2.tgz", + "integrity": "sha512-LA6qKgeDMLr2ux2y/YiUt47EfgQ+S9LznBWOJdN3q1dx2sv0ziDLUBeVpyVv17TEcGCBuWf0zNtg3M5m1NhhWQ==", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "v1.1.0", + "pino-std-serializers": "^6.0.0", + "process-warning": "^3.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^3.7.0", + "thread-stream": "^2.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz", + "integrity": "sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==", + "dependencies": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + } + }, + "node_modules/pino-abstract-transport/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/pino-std-serializers": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", + "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==" + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", + "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-stable-stringify": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", + "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", + "dependencies": { + "define-data-property": "^1.1.1", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.2", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/sonic-boom": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.0.tgz", + "integrity": "sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/thread-stream": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.4.1.tgz", + "integrity": "sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==", + "dependencies": { + "real-require": "^0.2.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utf7": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/utf7/-/utf7-1.0.2.tgz", + "integrity": "sha512-qQrPtYLLLl12NF4DrM9CvfkxkYI97xOb5dsnGZHE3teFr0tWiEZ9UdgMPczv24vl708cYMpe6mGXGHrotIp3Bw==", + "dependencies": { + "semver": "~5.3.0" + } + }, + "node_modules/utf7/node_modules/semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid-random": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/uuid-random/-/uuid-random-1.3.2.tgz", + "integrity": "sha512-UOzej0Le/UgkbWEO8flm+0y+G+ljUon1QWTEZOq1rnMAsxo2+SckbiZdKzAHHlVh6gJqI1TjC/xwgR50MuCrBQ==" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vcards-js": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/vcards-js/-/vcards-js-2.10.0.tgz", + "integrity": "sha512-nah+xbVInVJaO6+C5PEUqaougmv8BN8aa7ZCtmVQcX6eWIZGRukckFtseXSI7KD7/nXtwkJe624y42T0r+L+AQ==" + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } +} diff --git a/tools/comServer/package.json b/tools/comServer/package.json new file mode 100644 index 0000000..6529c8e --- /dev/null +++ b/tools/comServer/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "start": "nodemon index.mjs" + }, + "dependencies": { + "@supabase/supabase-js": "^2.39.3", + "cors": "^2.8.5", + "dayjs": "^1.11.10", + "express": "^4.18.2", + "ical-generator": "^6.0.1", + "imapflow": "^1.0.150", + "moment": "^2.30.1", + "node-imap": "^0.9.6", + "nodemon": "^3.0.3", + "vcards-js": "^2.10.0" + } +}