- 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
119 lines
3.3 KiB
JavaScript
119 lines
3.3 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.graphql = graphql;
|
|
exports.graphqlSync = graphqlSync;
|
|
|
|
var _isPromise = _interopRequireDefault(require("./jsutils/isPromise.js"));
|
|
|
|
var _parser = require("./language/parser.js");
|
|
|
|
var _validate = require("./validation/validate.js");
|
|
|
|
var _validate2 = require("./type/validate.js");
|
|
|
|
var _execute = require("./execution/execute.js");
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
function graphql(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {
|
|
var _arguments = arguments;
|
|
|
|
/* eslint-enable no-redeclare */
|
|
// Always return a Promise for a consistent API.
|
|
return new Promise(function (resolve) {
|
|
return resolve( // Extract arguments from object args if provided.
|
|
_arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({
|
|
schema: argsOrSchema,
|
|
source: source,
|
|
rootValue: rootValue,
|
|
contextValue: contextValue,
|
|
variableValues: variableValues,
|
|
operationName: operationName,
|
|
fieldResolver: fieldResolver,
|
|
typeResolver: typeResolver
|
|
}));
|
|
});
|
|
}
|
|
/**
|
|
* The graphqlSync function also fulfills GraphQL operations by parsing,
|
|
* validating, and executing a GraphQL document along side a GraphQL schema.
|
|
* However, it guarantees to complete synchronously (or throw an error) assuming
|
|
* that all field resolvers are also synchronous.
|
|
*/
|
|
|
|
|
|
function graphqlSync(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {
|
|
/* eslint-enable no-redeclare */
|
|
// Extract arguments from object args if provided.
|
|
var result = arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({
|
|
schema: argsOrSchema,
|
|
source: source,
|
|
rootValue: rootValue,
|
|
contextValue: contextValue,
|
|
variableValues: variableValues,
|
|
operationName: operationName,
|
|
fieldResolver: fieldResolver,
|
|
typeResolver: typeResolver
|
|
}); // Assert that the execution was synchronous.
|
|
|
|
if ((0, _isPromise.default)(result)) {
|
|
throw new Error('GraphQL execution failed to complete synchronously.');
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
function graphqlImpl(args) {
|
|
var schema = args.schema,
|
|
source = args.source,
|
|
rootValue = args.rootValue,
|
|
contextValue = args.contextValue,
|
|
variableValues = args.variableValues,
|
|
operationName = args.operationName,
|
|
fieldResolver = args.fieldResolver,
|
|
typeResolver = args.typeResolver; // Validate Schema
|
|
|
|
var schemaValidationErrors = (0, _validate2.validateSchema)(schema);
|
|
|
|
if (schemaValidationErrors.length > 0) {
|
|
return {
|
|
errors: schemaValidationErrors
|
|
};
|
|
} // Parse
|
|
|
|
|
|
var document;
|
|
|
|
try {
|
|
document = (0, _parser.parse)(source);
|
|
} catch (syntaxError) {
|
|
return {
|
|
errors: [syntaxError]
|
|
};
|
|
} // Validate
|
|
|
|
|
|
var validationErrors = (0, _validate.validate)(schema, document);
|
|
|
|
if (validationErrors.length > 0) {
|
|
return {
|
|
errors: validationErrors
|
|
};
|
|
} // Execute
|
|
|
|
|
|
return (0, _execute.execute)({
|
|
schema: schema,
|
|
document: document,
|
|
rootValue: rootValue,
|
|
contextValue: contextValue,
|
|
variableValues: variableValues,
|
|
operationName: operationName,
|
|
fieldResolver: fieldResolver,
|
|
typeResolver: typeResolver
|
|
});
|
|
}
|