feat(smart-app): implement complete mobile app MVP

- App.tsx: full navigation (Auth stack + Main tabs with 5 screens)
- Auth: LoginScreen, RegisterScreen, ForgotPasswordScreen
- HomeScreen: dashboard with IoT metrics, weather widget, alerts, quick actions, sensors
- MapScreen: interactive map with layer toggles (6 layers)
- MarketplaceScreen: categories (6), products (5), search
- ChatScreen: AI chat with quick prompts (4), bot responses
- ProfileScreen: user info, stats, menu (9 items), logout
- AlertsScreen: alert list with severity, acknowledge
- SensorsScreen: sensor list with type filters (6 types), search
- ZonesScreen: zone cards with stats
- SettingsScreen: language picker (FR/EN/ES/DE), privacy, about
- Stores: iotStore (sensors, zones, alerts), notificationStore, uiStore + i18n
- Hooks: useSensors, useAlerts, useNotifications, useLocation
- Components: Card, Button, LoadingSpinner, ErrorBoundary, Header
- Services: iotService, notificationService (with axios API client)
- Utils: formatters (temp, AQI, noise, dates), validators (email, password, IBAN)
- Theme: colors.ts with full design system (Blue Ocean palette)
- Ditto: fixed MongoDB connection, new JWT secrets, official gateway image
This commit is contained in:
Eric FELIXINE
2026-06-01 18:00:35 -04:00
parent 08ca495bde
commit e30ae8ed09
35578 changed files with 3703534 additions and 43 deletions

View File

@@ -0,0 +1,6 @@
export * from './helpers/pipe';
export * from './Wonka_sources.gen';
export * from './Wonka_operators.gen';
export * from './Wonka_sinks.gen';
export * from './web/WonkaJs.gen';
export { sinkT as Sink, sourceT as Source, operatorT as Operator, subscriptionT as Subscription, observerT as Observer, subjectT as Subject } from './Wonka_types.gen';

View File

@@ -0,0 +1,15 @@
// @flow
declare export * from "./helpers/pipe"
declare export * from "./Wonka_sources.gen"
declare export * from "./Wonka_operators.gen"
declare export * from "./Wonka_sinks.gen"
declare export * from "./web/WonkaJs.gen"
declare export {
sinkT as Sink,
sourceT as Source,
operatorT as Operator,
subscriptionT as Subscription,
observerT as Observer,
subjectT as Subject
} from "./Wonka_types.gen";

View File

@@ -0,0 +1,29 @@
import { operatorT as Wonka_types_operatorT } from './Wonka_types.gen';
import { sourceT as Wonka_types_sourceT } from './Wonka_types.gen';
export declare const buffer: <a, b>(notifier: Wonka_types_sourceT<a>) => Wonka_types_operatorT<b, b[]>;
export declare const combine: <a, b>(sourceA: Wonka_types_sourceT<a>, sourceB: Wonka_types_sourceT<b>) => Wonka_types_sourceT<[a, b]>;
export declare const concatMap: <a, b>(f: ((_1: a) => Wonka_types_sourceT<b>)) => Wonka_types_operatorT<a, b>;
export declare const concatAll: <a>(source: Wonka_types_sourceT<Wonka_types_sourceT<a>>) => Wonka_types_sourceT<a>;
export declare const concat: <a>(sources: Wonka_types_sourceT<a>[]) => Wonka_types_sourceT<a>;
export declare const filter: <a>(f: ((_1: a) => boolean)) => Wonka_types_operatorT<a, a>;
export declare const map: <a, b>(f: ((_1: a) => b)) => Wonka_types_operatorT<a, b>;
export declare const mergeMap: <a, b>(f: ((_1: a) => Wonka_types_sourceT<b>)) => Wonka_types_operatorT<a, b>;
export declare const merge: <a>(sources: Wonka_types_sourceT<a>[]) => Wonka_types_sourceT<a>;
export declare const mergeAll: <a>(source: Wonka_types_sourceT<Wonka_types_sourceT<a>>) => Wonka_types_sourceT<a>;
export declare const flatten: <T1>(_1: Wonka_types_sourceT<Wonka_types_sourceT<T1>>) => Wonka_types_sourceT<T1>;
export declare const onEnd: <a>(f: (() => void)) => Wonka_types_operatorT<a, a>;
export declare const onPush: <a>(f: ((_1: a) => void)) => Wonka_types_operatorT<a, a>;
export declare const tap: <T1>(_1: ((_1: T1) => void)) => Wonka_types_operatorT<T1, T1>;
export declare const onStart: <a>(f: (() => void)) => Wonka_types_operatorT<a, a>;
export declare const sample: <a, b>(notifier: Wonka_types_sourceT<a>) => Wonka_types_operatorT<b, b>;
export declare const scan: <a, acc>(f: ((_1: acc, _2: a) => acc), seed: acc) => Wonka_types_operatorT<a, acc>;
export declare const share: <a>(source: Wonka_types_sourceT<a>) => Wonka_types_sourceT<a>;
export declare const skip: <a>(wait: number) => Wonka_types_operatorT<a, a>;
export declare const skipUntil: <a, b>(notifier: Wonka_types_sourceT<a>) => Wonka_types_operatorT<b, b>;
export declare const skipWhile: <a>(f: ((_1: a) => boolean)) => Wonka_types_operatorT<a, a>;
export declare const switchMap: <a, b>(f: ((_1: a) => Wonka_types_sourceT<b>)) => Wonka_types_operatorT<a, b>;
export declare const switchAll: <a>(source: Wonka_types_sourceT<Wonka_types_sourceT<a>>) => Wonka_types_sourceT<a>;
export declare const take: <a>(max: number) => Wonka_types_operatorT<a, a>;
export declare const takeLast: <a>(max: number) => Wonka_types_operatorT<a, a>;
export declare const takeUntil: <a, b>(notifier: Wonka_types_sourceT<a>) => Wonka_types_operatorT<b, b>;
export declare const takeWhile: <a>(f: ((_1: a) => boolean)) => Wonka_types_operatorT<a, a>;

View File

@@ -0,0 +1,75 @@
// @flow
import type { operatorT as Wonka_types_operatorT } from "./Wonka_types.gen";
import type { sourceT as Wonka_types_sourceT } from "./Wonka_types.gen";
declare export var buffer: <a, b>(
notifier: Wonka_types_sourceT<a>
) => Wonka_types_operatorT<b, b[]>;
declare export var combine: <a, b>(
sourceA: Wonka_types_sourceT<a>,
sourceB: Wonka_types_sourceT<b>
) => Wonka_types_sourceT<[a, b]>;
declare export var concatMap: <a, b>(
f: (_1: a) => Wonka_types_sourceT<b>
) => Wonka_types_operatorT<a, b>;
declare export var concatAll: <a>(
source: Wonka_types_sourceT<Wonka_types_sourceT<a>>
) => Wonka_types_sourceT<a>;
declare export var concat: <a>(
sources: Wonka_types_sourceT<a>[]
) => Wonka_types_sourceT<a>;
declare export var filter: <a>(
f: (_1: a) => boolean
) => Wonka_types_operatorT<a, a>;
declare export var map: <a, b>(f: (_1: a) => b) => Wonka_types_operatorT<a, b>;
declare export var mergeMap: <a, b>(
f: (_1: a) => Wonka_types_sourceT<b>
) => Wonka_types_operatorT<a, b>;
declare export var merge: <a>(
sources: Wonka_types_sourceT<a>[]
) => Wonka_types_sourceT<a>;
declare export var mergeAll: <a>(
source: Wonka_types_sourceT<Wonka_types_sourceT<a>>
) => Wonka_types_sourceT<a>;
declare export var flatten: <T1>(
_1: Wonka_types_sourceT<Wonka_types_sourceT<T1>>
) => Wonka_types_sourceT<T1>;
declare export var onEnd: <a>(f: () => void) => Wonka_types_operatorT<a, a>;
declare export var onPush: <a>(
f: (_1: a) => void
) => Wonka_types_operatorT<a, a>;
declare export var tap: <T1>(
_1: (_1: T1) => void
) => Wonka_types_operatorT<T1, T1>;
declare export var onStart: <a>(f: () => void) => Wonka_types_operatorT<a, a>;
declare export var sample: <a, b>(
notifier: Wonka_types_sourceT<a>
) => Wonka_types_operatorT<b, b>;
declare export var scan: <a, acc>(
f: (_1: acc, _2: a) => acc,
seed: acc
) => Wonka_types_operatorT<a, acc>;
declare export var share: <a>(
source: Wonka_types_sourceT<a>
) => Wonka_types_sourceT<a>;
declare export var skip: <a>(wait: number) => Wonka_types_operatorT<a, a>;
declare export var skipUntil: <a, b>(
notifier: Wonka_types_sourceT<a>
) => Wonka_types_operatorT<b, b>;
declare export var skipWhile: <a>(
f: (_1: a) => boolean
) => Wonka_types_operatorT<a, a>;
declare export var switchMap: <a, b>(
f: (_1: a) => Wonka_types_sourceT<b>
) => Wonka_types_operatorT<a, b>;
declare export var switchAll: <a>(
source: Wonka_types_sourceT<Wonka_types_sourceT<a>>
) => Wonka_types_sourceT<a>;
declare export var take: <a>(max: number) => Wonka_types_operatorT<a, a>;
declare export var takeLast: <a>(max: number) => Wonka_types_operatorT<a, a>;
declare export var takeUntil: <a, b>(
notifier: Wonka_types_sourceT<a>
) => Wonka_types_operatorT<b, b>;
declare export var takeWhile: <a>(
f: (_1: a) => boolean
) => Wonka_types_operatorT<a, a>;

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,3 @@
// @flow
declare export {};

View File

@@ -0,0 +1,8 @@
import { sourceT as Wonka_types_sourceT } from './Wonka_types.gen';
import { subscriptionT as Wonka_types_subscriptionT } from './Wonka_types.gen';
export declare type subscribeConsumerT<a> = (_1: Wonka_types_sourceT<a>) => Wonka_types_subscriptionT;
export declare type forEachConsumerT<a> = (_1: Wonka_types_sourceT<a>) => void;
export declare const subscribe: <a>(f: ((_1: a) => void)) => subscribeConsumerT<a>;
export declare const forEach: <a>(f: ((_1: a) => void)) => forEachConsumerT<a>;
export declare const publish: <a>(source: Wonka_types_sourceT<a>) => Wonka_types_subscriptionT;
export declare const toArray: <a>(source: Wonka_types_sourceT<a>) => a[];

View File

@@ -0,0 +1,14 @@
// @flow
import type { sourceT as Wonka_types_sourceT } from "./Wonka_types.gen";
import type { subscriptionT as Wonka_types_subscriptionT } from "./Wonka_types.gen";
export type subscribeConsumerT<a> = (
_1: Wonka_types_sourceT<a>
) => Wonka_types_subscriptionT;
export type forEachConsumerT<a> = (_1: Wonka_types_sourceT<a>) => void;
declare export var subscribe: <a>(f: (_1: a) => void) => subscribeConsumerT<a>;
declare export var forEach: <a>(f: (_1: a) => void) => forEachConsumerT<a>;
declare export var publish: <a>(
source: Wonka_types_sourceT<a>
) => Wonka_types_subscriptionT;
declare export var toArray: <a>(source: Wonka_types_sourceT<a>) => a[];

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,3 @@
// @flow
declare export {};

View File

@@ -0,0 +1,13 @@
import { list } from '../src/shims/ReasonPervasives.shim';
import { observerT as Wonka_types_observerT } from './Wonka_types.gen';
import { sinkT as Wonka_types_sinkT } from './Wonka_types.gen';
import { sourceT as Wonka_types_sourceT } from './Wonka_types.gen';
import { subjectT as Wonka_types_subjectT } from './Wonka_types.gen';
import { teardownT as Wonka_types_teardownT } from './Wonka_types.gen';
export declare const fromArray: <a>(arr: a[]) => Wonka_types_sourceT<a>;
export declare const fromList: <a>(ls: list<a>) => Wonka_types_sourceT<a>;
export declare const fromValue: <a>(x: a) => Wonka_types_sourceT<a>;
export declare const make: <a>(f: ((_1: Wonka_types_observerT<a>) => Wonka_types_teardownT)) => Wonka_types_sourceT<a>;
export declare const makeSubject: <a>() => Wonka_types_subjectT<a>;
export declare const empty: <a>(sink: Wonka_types_sinkT<a>) => void;
export declare const never: <a>(sink: Wonka_types_sinkT<a>) => void;

View File

@@ -0,0 +1,17 @@
// @flow
import type { list } from "../src/shims/ReasonPervasives.shim";
import type { observerT as Wonka_types_observerT } from "./Wonka_types.gen";
import type { sinkT as Wonka_types_sinkT } from "./Wonka_types.gen";
import type { sourceT as Wonka_types_sourceT } from "./Wonka_types.gen";
import type { subjectT as Wonka_types_subjectT } from "./Wonka_types.gen";
import type { teardownT as Wonka_types_teardownT } from "./Wonka_types.gen";
declare export var fromArray: <a>(arr: a[]) => Wonka_types_sourceT<a>;
declare export var fromList: <a>(ls: list<a>) => Wonka_types_sourceT<a>;
declare export var fromValue: <a>(x: a) => Wonka_types_sourceT<a>;
declare export var make: <a>(
f: (_1: Wonka_types_observerT<a>) => Wonka_types_teardownT
) => Wonka_types_sourceT<a>;
declare export var makeSubject: <a>() => Wonka_types_subjectT<a>;
declare export var empty: <a>(sink: Wonka_types_sinkT<a>) => void;
declare export var never: <a>(sink: Wonka_types_sinkT<a>) => void;

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,3 @@
// @flow
declare export {};

View File

@@ -0,0 +1,20 @@
import { signalT as $$signalT } from './shims/Js.shim';
import { talkbackT as $$talkbackT } from './shims/Js.shim';
export declare type talkbackT = $$talkbackT;
export declare type signalT<a> = $$signalT<a>;
export declare type sinkT<a> = (_1: signalT<a>) => void;
export declare type sourceT<a> = (_1: sinkT<a>) => void;
export declare type operatorT<a, b> = (_1: sourceT<a>) => sourceT<b>;
export declare type teardownT = () => void;
export declare type subscriptionT = {
readonly unsubscribe: () => void;
};
export declare type observerT<a> = {
readonly next: (_1: a) => void;
readonly complete: () => void;
};
export declare type subjectT<a> = {
readonly source: sourceT<a>;
readonly next: (_1: a) => void;
readonly complete: () => void;
};

View File

@@ -0,0 +1,25 @@
// @flow
import type { signalT as $$signalT } from "./shims/Js.shim";
import type { talkbackT as $$talkbackT } from "./shims/Js.shim";
export type talkbackT = $$talkbackT;
export type signalT<a> = $$signalT<a>;
export type sinkT<a> = (_1: signalT<a>) => void;
export type sourceT<a> = (_1: sinkT<a>) => void;
export type operatorT<a, b> = (_1: sourceT<a>) => sourceT<b>;
export type teardownT = () => void;
export type subscriptionT = {
+unsubscribe: () => void,
...
};
export type observerT<a> = {
+next: (_1: a) => void,
+complete: () => void,
...
};
export type subjectT<a> = {
+source: sourceT<a>,
+next: (_1: a) => void,
+complete: () => void,
...
};

View File

@@ -0,0 +1,13 @@
import { talkbackT, signalT } from '../Wonka_types.gen';
declare type talkbackCb = (tb: talkbackT) => void;
export declare const pull: import("../shims/Js.shim").talkbackT;
export declare const close: import("../shims/Js.shim").talkbackT;
export declare const start: <a>(tb: talkbackCb) => import("../shims/Js.shim").signalT<a>;
export declare const push: <a>(x: a) => import("../shims/Js.shim").signalT<a>;
export declare const end: <a>() => import("../shims/Js.shim").signalT<a>;
export declare const isStart: <a>(s: import("../shims/Js.shim").signalT<a>) => boolean;
export declare const isPush: <a>(s: import("../shims/Js.shim").signalT<a>) => boolean;
export declare const isEnd: <a>(s: import("../shims/Js.shim").signalT<a>) => boolean;
export declare const unboxPush: <a>(s: import("../shims/Js.shim").signalT<a>) => a;
export declare const unboxStart: <a>(s: import("../shims/Js.shim").signalT<a>) => talkbackCb;
export {};

View File

@@ -0,0 +1,38 @@
// @flow
import type { talkbackT, signalT } from "../Wonka_types.gen";
declare type talkbackCb = (tb: talkbackT) => void;
declare export var pull: $PropertyType<
$Exports<"../shims/Js.shim">,
"talkbackT"
>;
declare export var close: $PropertyType<
$Exports<"../shims/Js.shim">,
"talkbackT"
>;
declare export var start: <a>(
tb: talkbackCb
) => $PropertyType<$Exports<"../shims/Js.shim">, "signalT">;
declare export var push: <a>(
x: a
) => $PropertyType<$Exports<"../shims/Js.shim">, "signalT">;
declare export var end: <a>() => $PropertyType<
$Exports<"../shims/Js.shim">,
"signalT"
>;
declare export var isStart: <a>(
s: $PropertyType<$Exports<"../shims/Js.shim">, "signalT">
) => boolean;
declare export var isPush: <a>(
s: $PropertyType<$Exports<"../shims/Js.shim">, "signalT">
) => boolean;
declare export var isEnd: <a>(
s: $PropertyType<$Exports<"../shims/Js.shim">, "signalT">
) => boolean;
declare export var unboxPush: <a>(
s: $PropertyType<$Exports<"../shims/Js.shim">, "signalT">
) => a;
declare export var unboxStart: <a>(
s: $PropertyType<$Exports<"../shims/Js.shim">, "signalT">
) => talkbackCb;
declare export {};

View File

@@ -0,0 +1,22 @@
import { sourceT as Source } from '../Wonka_types.gen';
interface UnaryFn<T, R> {
(source: T): R;
}
declare function pipe<T, A>(source: Source<T>, op1: UnaryFn<Source<T>, Source<A>>): Source<A>;
declare function pipe<T, A, B>(source: Source<T>, op1: UnaryFn<Source<T>, Source<A>>, op2: UnaryFn<Source<A>, Source<B>>): Source<B>;
declare function pipe<T, A, B, C>(source: Source<T>, op1: UnaryFn<Source<T>, Source<A>>, op2: UnaryFn<Source<A>, Source<B>>, op3: UnaryFn<Source<B>, Source<C>>): Source<C>;
declare function pipe<T, A, B, C, D>(source: Source<T>, op1: UnaryFn<Source<T>, Source<A>>, op2: UnaryFn<Source<A>, Source<B>>, op3: UnaryFn<Source<B>, Source<C>>, op4: UnaryFn<Source<C>, Source<D>>): Source<D>;
declare function pipe<T, A, B, C, D, E>(source: Source<T>, op1: UnaryFn<Source<T>, Source<A>>, op2: UnaryFn<Source<A>, Source<B>>, op3: UnaryFn<Source<B>, Source<C>>, op4: UnaryFn<Source<C>, Source<D>>, op5: UnaryFn<Source<D>, Source<E>>): Source<E>;
declare function pipe<T, A, B, C, D, E, F>(source: Source<T>, op1: UnaryFn<Source<T>, Source<A>>, op2: UnaryFn<Source<A>, Source<B>>, op3: UnaryFn<Source<B>, Source<C>>, op4: UnaryFn<Source<C>, Source<D>>, op5: UnaryFn<Source<D>, Source<E>>, op6: UnaryFn<Source<E>, Source<F>>): Source<F>;
declare function pipe<T, A, B, C, D, E, F, G>(source: Source<T>, op1: UnaryFn<Source<T>, Source<A>>, op2: UnaryFn<Source<A>, Source<B>>, op3: UnaryFn<Source<B>, Source<C>>, op4: UnaryFn<Source<C>, Source<D>>, op5: UnaryFn<Source<D>, Source<E>>, op6: UnaryFn<Source<E>, Source<F>>, op7: UnaryFn<Source<F>, Source<G>>): Source<G>;
declare function pipe<T, A, B, C, D, E, F, G, H>(source: Source<T>, op1: UnaryFn<Source<T>, Source<A>>, op2: UnaryFn<Source<A>, Source<B>>, op3: UnaryFn<Source<B>, Source<C>>, op4: UnaryFn<Source<C>, Source<D>>, op5: UnaryFn<Source<D>, Source<E>>, op6: UnaryFn<Source<E>, Source<F>>, op7: UnaryFn<Source<F>, Source<G>>, op8: UnaryFn<Source<G>, Source<H>>): Source<H>;
declare function pipe<T, R>(source: Source<T>, consumer: UnaryFn<Source<T>, R>): R;
declare function pipe<T, A, R>(source: Source<T>, op1: UnaryFn<Source<T>, Source<A>>, consumer: UnaryFn<Source<A>, R>): R;
declare function pipe<T, A, B, R>(source: Source<T>, op1: UnaryFn<Source<T>, Source<A>>, op2: UnaryFn<Source<A>, Source<B>>, consumer: UnaryFn<Source<B>, R>): R;
declare function pipe<T, A, B, C, R>(source: Source<T>, op1: UnaryFn<Source<T>, Source<A>>, op2: UnaryFn<Source<A>, Source<B>>, op3: UnaryFn<Source<B>, Source<C>>, consumer: UnaryFn<Source<C>, R>): R;
declare function pipe<T, A, B, C, D, R>(source: Source<T>, op1: UnaryFn<Source<T>, Source<A>>, op2: UnaryFn<Source<A>, Source<B>>, op3: UnaryFn<Source<B>, Source<C>>, op4: UnaryFn<Source<C>, Source<D>>, consumer: UnaryFn<Source<D>, R>): R;
declare function pipe<T, A, B, C, D, E, R>(source: Source<T>, op1: UnaryFn<Source<T>, Source<A>>, op2: UnaryFn<Source<A>, Source<B>>, op3: UnaryFn<Source<B>, Source<C>>, op4: UnaryFn<Source<C>, Source<D>>, op5: UnaryFn<Source<D>, Source<E>>, consumer: UnaryFn<Source<E>, R>): R;
declare function pipe<T, A, B, C, D, E, F, R>(source: Source<T>, op1: UnaryFn<Source<T>, Source<A>>, op2: UnaryFn<Source<A>, Source<B>>, op3: UnaryFn<Source<B>, Source<C>>, op4: UnaryFn<Source<C>, Source<D>>, op5: UnaryFn<Source<D>, Source<E>>, op6: UnaryFn<Source<E>, Source<F>>, consumer: UnaryFn<Source<F>, R>): R;
declare function pipe<T, A, B, C, D, E, F, G, R>(source: Source<T>, op1: UnaryFn<Source<T>, Source<A>>, op2: UnaryFn<Source<A>, Source<B>>, op3: UnaryFn<Source<B>, Source<C>>, op4: UnaryFn<Source<C>, Source<D>>, op5: UnaryFn<Source<D>, Source<E>>, op6: UnaryFn<Source<E>, Source<F>>, op7: UnaryFn<Source<F>, Source<G>>, consumer: UnaryFn<Source<G>, R>): R;
declare function pipe<T, A, B, C, D, E, F, G, H, R>(source: Source<T>, op1: UnaryFn<Source<T>, Source<A>>, op2: UnaryFn<Source<A>, Source<B>>, op3: UnaryFn<Source<B>, Source<C>>, op4: UnaryFn<Source<C>, Source<D>>, op5: UnaryFn<Source<D>, Source<E>>, op6: UnaryFn<Source<E>, Source<F>>, op7: UnaryFn<Source<F>, Source<G>>, op8: UnaryFn<Source<G>, Source<H>>, consumer: UnaryFn<Source<H>, R>): R;
export { pipe };

View File

@@ -0,0 +1,139 @@
// @flow
import type { sourceT as Source } from "../Wonka_types.gen";
declare interface UnaryFn<T, R> {
(source: T): R;
}
declare function pipe<T, A>(
source: Source<T>,
op1: UnaryFn<Source<T>, Source<A>>
): Source<A>;
declare function pipe<T, A, B>(
source: Source<T>,
op1: UnaryFn<Source<T>, Source<A>>,
op2: UnaryFn<Source<A>, Source<B>>
): Source<B>;
declare function pipe<T, A, B, C>(
source: Source<T>,
op1: UnaryFn<Source<T>, Source<A>>,
op2: UnaryFn<Source<A>, Source<B>>,
op3: UnaryFn<Source<B>, Source<C>>
): Source<C>;
declare function pipe<T, A, B, C, D>(
source: Source<T>,
op1: UnaryFn<Source<T>, Source<A>>,
op2: UnaryFn<Source<A>, Source<B>>,
op3: UnaryFn<Source<B>, Source<C>>,
op4: UnaryFn<Source<C>, Source<D>>
): Source<D>;
declare function pipe<T, A, B, C, D, E>(
source: Source<T>,
op1: UnaryFn<Source<T>, Source<A>>,
op2: UnaryFn<Source<A>, Source<B>>,
op3: UnaryFn<Source<B>, Source<C>>,
op4: UnaryFn<Source<C>, Source<D>>,
op5: UnaryFn<Source<D>, Source<E>>
): Source<E>;
declare function pipe<T, A, B, C, D, E, F>(
source: Source<T>,
op1: UnaryFn<Source<T>, Source<A>>,
op2: UnaryFn<Source<A>, Source<B>>,
op3: UnaryFn<Source<B>, Source<C>>,
op4: UnaryFn<Source<C>, Source<D>>,
op5: UnaryFn<Source<D>, Source<E>>,
op6: UnaryFn<Source<E>, Source<F>>
): Source<F>;
declare function pipe<T, A, B, C, D, E, F, G>(
source: Source<T>,
op1: UnaryFn<Source<T>, Source<A>>,
op2: UnaryFn<Source<A>, Source<B>>,
op3: UnaryFn<Source<B>, Source<C>>,
op4: UnaryFn<Source<C>, Source<D>>,
op5: UnaryFn<Source<D>, Source<E>>,
op6: UnaryFn<Source<E>, Source<F>>,
op7: UnaryFn<Source<F>, Source<G>>
): Source<G>;
declare function pipe<T, A, B, C, D, E, F, G, H>(
source: Source<T>,
op1: UnaryFn<Source<T>, Source<A>>,
op2: UnaryFn<Source<A>, Source<B>>,
op3: UnaryFn<Source<B>, Source<C>>,
op4: UnaryFn<Source<C>, Source<D>>,
op5: UnaryFn<Source<D>, Source<E>>,
op6: UnaryFn<Source<E>, Source<F>>,
op7: UnaryFn<Source<F>, Source<G>>,
op8: UnaryFn<Source<G>, Source<H>>
): Source<H>;
declare function pipe<T, R>(
source: Source<T>,
consumer: UnaryFn<Source<T>, R>
): R;
declare function pipe<T, A, R>(
source: Source<T>,
op1: UnaryFn<Source<T>, Source<A>>,
consumer: UnaryFn<Source<A>, R>
): R;
declare function pipe<T, A, B, R>(
source: Source<T>,
op1: UnaryFn<Source<T>, Source<A>>,
op2: UnaryFn<Source<A>, Source<B>>,
consumer: UnaryFn<Source<B>, R>
): R;
declare function pipe<T, A, B, C, R>(
source: Source<T>,
op1: UnaryFn<Source<T>, Source<A>>,
op2: UnaryFn<Source<A>, Source<B>>,
op3: UnaryFn<Source<B>, Source<C>>,
consumer: UnaryFn<Source<C>, R>
): R;
declare function pipe<T, A, B, C, D, R>(
source: Source<T>,
op1: UnaryFn<Source<T>, Source<A>>,
op2: UnaryFn<Source<A>, Source<B>>,
op3: UnaryFn<Source<B>, Source<C>>,
op4: UnaryFn<Source<C>, Source<D>>,
consumer: UnaryFn<Source<D>, R>
): R;
declare function pipe<T, A, B, C, D, E, R>(
source: Source<T>,
op1: UnaryFn<Source<T>, Source<A>>,
op2: UnaryFn<Source<A>, Source<B>>,
op3: UnaryFn<Source<B>, Source<C>>,
op4: UnaryFn<Source<C>, Source<D>>,
op5: UnaryFn<Source<D>, Source<E>>,
consumer: UnaryFn<Source<E>, R>
): R;
declare function pipe<T, A, B, C, D, E, F, R>(
source: Source<T>,
op1: UnaryFn<Source<T>, Source<A>>,
op2: UnaryFn<Source<A>, Source<B>>,
op3: UnaryFn<Source<B>, Source<C>>,
op4: UnaryFn<Source<C>, Source<D>>,
op5: UnaryFn<Source<D>, Source<E>>,
op6: UnaryFn<Source<E>, Source<F>>,
consumer: UnaryFn<Source<F>, R>
): R;
declare function pipe<T, A, B, C, D, E, F, G, R>(
source: Source<T>,
op1: UnaryFn<Source<T>, Source<A>>,
op2: UnaryFn<Source<A>, Source<B>>,
op3: UnaryFn<Source<B>, Source<C>>,
op4: UnaryFn<Source<C>, Source<D>>,
op5: UnaryFn<Source<D>, Source<E>>,
op6: UnaryFn<Source<E>, Source<F>>,
op7: UnaryFn<Source<F>, Source<G>>,
consumer: UnaryFn<Source<G>, R>
): R;
declare function pipe<T, A, B, C, D, E, F, G, H, R>(
source: Source<T>,
op1: UnaryFn<Source<T>, Source<A>>,
op2: UnaryFn<Source<A>, Source<B>>,
op3: UnaryFn<Source<B>, Source<C>>,
op4: UnaryFn<Source<C>, Source<D>>,
op5: UnaryFn<Source<D>, Source<E>>,
op6: UnaryFn<Source<E>, Source<F>>,
op7: UnaryFn<Source<F>, Source<G>>,
op8: UnaryFn<Source<G>, Source<H>>,
consumer: UnaryFn<Source<H>, R>
): R;
declare export { pipe };

View File

@@ -0,0 +1,2 @@
export declare type element = HTMLElement;
export declare type event = Event;

View File

@@ -0,0 +1,4 @@
// @flow
export type element = HTMLElement;
export type event = Event;

View File

@@ -0,0 +1,26 @@
export declare type Exn_t = Error;
export declare type Internal_meth<_T, R> = () => R;
export declare type talkbackT = 0 | 1;
export declare type signalT<a> = ({
tag: 0;
} & [(talkback: talkbackT) => void]) | ({
tag: 1;
} & [a]) | 0;
export interface observableSubscriptionT {
unsubscribe(): void;
}
export interface observableObserverT<a> {
next(value: a): void;
error(error: any): void;
complete(): void;
}
export interface observableT<a> {
subscribe(observer: observableObserverT<a>): observableSubscriptionT;
}
interface Callbag<I, O> {
(t: 0, d: Callbag<O, I>): void;
(t: 1, d: I): void;
(t: 2, d?: any): void;
}
export declare type callbagT<a> = Callbag<void, a>;
export {};

View File

@@ -0,0 +1,33 @@
// @flow
export type Exn_t = Error;
export type Internal_meth<_T, R> = () => R;
export type talkbackT = 0 | 1;
export type signalT<a> =
| ({
tag: 0,
...
} & [(talkback: talkbackT) => void])
| ({
tag: 1,
...
} & [a])
| 0;
export interface observableSubscriptionT {
unsubscribe(): void;
}
export interface observableObserverT<a> {
next(value: a): void;
error(error: any): void;
complete(): void;
}
export interface observableT<a> {
subscribe(observer: observableObserverT<a>): observableSubscriptionT;
}
declare interface Callbag<I, O> {
(t: 0, d: Callbag<O, I>): void;
(t: 1, d: I): void;
(t: 2, d?: any): void;
}
export type callbagT<a> = Callbag<void, a>;
declare export {};

View File

@@ -0,0 +1,7 @@
export declare abstract class EmptyList {
protected opaque: any;
}
export declare abstract class Cons<T> {
protected opaque: T;
}
export declare type list<T> = Cons<T> | EmptyList;

View File

@@ -0,0 +1,9 @@
// @flow
declare export class EmptyList {
opaque: any;
}
declare export class Cons<T> {
opaque: T;
}
export type list<T> = Cons<T> | EmptyList;

View File

@@ -0,0 +1,17 @@
import { callbagT as Wonka_callbag_callbagT } from './Wonka_callbag.gen';
import { element as Dom_element } from '../../src/shims/Dom.shim';
import { event as Dom_event } from '../../src/shims/Dom.shim';
import { observableT as Wonka_observable_observableT } from './Wonka_observable.gen';
import { operatorT as Wonka_types_operatorT } from '../../src/Wonka_types.gen';
import { sourceT as Wonka_types_sourceT } from '../../src/Wonka_types.gen';
export declare const fromObservable: <T1>(_1: Wonka_observable_observableT<T1>) => Wonka_types_sourceT<T1>;
export declare const toObservable: <T1>(_1: Wonka_types_sourceT<T1>) => Wonka_observable_observableT<T1>;
export declare const fromCallbag: <T1>(_1: Wonka_callbag_callbagT<T1>) => Wonka_types_sourceT<T1>;
export declare const toCallbag: <T1>(_1: Wonka_types_sourceT<T1>) => Wonka_callbag_callbagT<T1>;
export declare const debounce: <a>(f: ((_1: a) => number)) => Wonka_types_operatorT<a, a>;
export declare const delay: <a>(wait: number) => Wonka_types_operatorT<a, a>;
export declare const throttle: <a>(f: ((_1: a) => number)) => Wonka_types_operatorT<a, a>;
export declare const toPromise: <a>(source: Wonka_types_sourceT<a>) => Promise<a>;
export declare const interval: (p: number) => Wonka_types_sourceT<number>;
export declare const fromDomEvent: (element: Dom_element, event: string) => Wonka_types_sourceT<Dom_event>;
export declare const fromPromise: <a>(promise: Promise<a>) => Wonka_types_sourceT<a>;

View File

@@ -0,0 +1,36 @@
// @flow
import type { callbagT as Wonka_callbag_callbagT } from "./Wonka_callbag.gen";
import type { element as Dom_element } from "../../src/shims/Dom.shim";
import type { event as Dom_event } from "../../src/shims/Dom.shim";
import type { observableT as Wonka_observable_observableT } from "./Wonka_observable.gen";
import type { operatorT as Wonka_types_operatorT } from "../../src/Wonka_types.gen";
import type { sourceT as Wonka_types_sourceT } from "../../src/Wonka_types.gen";
declare export var fromObservable: <T1>(
_1: Wonka_observable_observableT<T1>
) => Wonka_types_sourceT<T1>;
declare export var toObservable: <T1>(
_1: Wonka_types_sourceT<T1>
) => Wonka_observable_observableT<T1>;
declare export var fromCallbag: <T1>(
_1: Wonka_callbag_callbagT<T1>
) => Wonka_types_sourceT<T1>;
declare export var toCallbag: <T1>(
_1: Wonka_types_sourceT<T1>
) => Wonka_callbag_callbagT<T1>;
declare export var debounce: <a>(
f: (_1: a) => number
) => Wonka_types_operatorT<a, a>;
declare export var delay: <a>(wait: number) => Wonka_types_operatorT<a, a>;
declare export var throttle: <a>(
f: (_1: a) => number
) => Wonka_types_operatorT<a, a>;
declare export var toPromise: <a>(source: Wonka_types_sourceT<a>) => Promise<a>;
declare export var interval: (p: number) => Wonka_types_sourceT<number>;
declare export var fromDomEvent: (
element: Dom_element,
event: string
) => Wonka_types_sourceT<Dom_event>;
declare export var fromPromise: <a>(
promise: Promise<a>
) => Wonka_types_sourceT<a>;

View File

@@ -0,0 +1,10 @@
import { callbagT as $$callbagT } from '../shims/Js.shim';
import { sourceT as Wonka_types_sourceT } from '../../src/Wonka_types.gen';
export declare type callbagSignal = 0 | 1 | 2;
export declare abstract class callbagData<a> {
protected opaque: a;
}
export declare type callbagTalkback = (_1: callbagSignal) => void;
export declare type callbagT<a> = $$callbagT<a>;
export declare const fromCallbag: <a>(callbag: callbagT<a>) => Wonka_types_sourceT<a>;
export declare const toCallbag: <a>(source: Wonka_types_sourceT<a>) => callbagT<a>;

View File

@@ -0,0 +1,16 @@
// @flow
import type { callbagT as $$callbagT } from "../shims/Js.shim";
import type { sourceT as Wonka_types_sourceT } from "../../src/Wonka_types.gen";
export type callbagSignal = 0 | 1 | 2;
declare export class callbagData<a> {
opaque: a;
}
export type callbagTalkback = (_1: callbagSignal) => void;
export type callbagT<a> = $$callbagT<a>;
declare export var fromCallbag: <a>(
callbag: callbagT<a>
) => Wonka_types_sourceT<a>;
declare export var toCallbag: <a>(
source: Wonka_types_sourceT<a>
) => callbagT<a>;

View File

@@ -0,0 +1,9 @@
import { observableObserverT as $$observableObserverT } from '../shims/Js.shim';
import { observableSubscriptionT as $$observableSubscriptionT } from '../shims/Js.shim';
import { observableT as $$observableT } from '../shims/Js.shim';
import { sourceT as Wonka_types_sourceT } from '../../src/Wonka_types.gen';
export declare type observableSubscriptionT = $$observableSubscriptionT;
export declare type observableObserverT<a> = $$observableObserverT<a>;
export declare type observableT<a> = $$observableT<a>;
export declare const fromObservable: <a>(input: observableT<a>) => Wonka_types_sourceT<a>;
export declare const toObservable: <a>(source: Wonka_types_sourceT<a>) => observableT<a>;

View File

@@ -0,0 +1,15 @@
// @flow
import type { observableObserverT as $$observableObserverT } from "../shims/Js.shim";
import type { observableSubscriptionT as $$observableSubscriptionT } from "../shims/Js.shim";
import type { observableT as $$observableT } from "../shims/Js.shim";
import type { sourceT as Wonka_types_sourceT } from "../../src/Wonka_types.gen";
export type observableSubscriptionT = $$observableSubscriptionT;
export type observableObserverT<a> = $$observableObserverT<a>;
export type observableT<a> = $$observableT<a>;
declare export var fromObservable: <a>(
input: observableT<a>
) => Wonka_types_sourceT<a>;
declare export var toObservable: <a>(
source: Wonka_types_sourceT<a>
) => observableT<a>;

1271
smart-app-city/frontend/node_modules/wonka/dist/wonka.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
// @flow
declare export * from "./types/src/Wonka.js.flow"

File diff suppressed because one or more lines are too long

1182
smart-app-city/frontend/node_modules/wonka/dist/wonka.mjs generated vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
// @flow
declare export * from "./types/src/Wonka.js.flow"