baraqex 1.0.49 → 1.0.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -15,100 +15,6 @@ var __export = (target, all) => {
15
15
  __defProp(target, name, { get: all[name], enumerable: true });
16
16
  };
17
17
 
18
- // src/wasm.ts
19
- async function loadGoWasm(wasmUrl, options = {}) {
20
- if (typeof window === "undefined") {
21
- throw new Error("loadGoWasm() is for browser use only. Use loadGoWasmFromFile() in Node.js.");
22
- }
23
- try {
24
- if (!window.Go) {
25
- throw new Error("Go WASM runtime not available. Make sure wasm_exec.js is loaded.");
26
- }
27
- if (options.debug) {
28
- console.log("[WASM] Loading WASM from:", wasmUrl);
29
- }
30
- const response = await fetch(wasmUrl);
31
- if (!response.ok) {
32
- throw new Error(`Failed to fetch WASM file: ${response.status}`);
33
- }
34
- const wasmBytes = await response.arrayBuffer();
35
- const go = new window.Go();
36
- const wasmModule = await WebAssembly.instantiate(wasmBytes, go.importObject);
37
- go.run(wasmModule.instance);
38
- await new Promise((resolve) => setTimeout(resolve, 100));
39
- if (options.debug) {
40
- console.log("[WASM] Go program started, checking for registered functions...");
41
- }
42
- const functions = {};
43
- for (const key in window) {
44
- if (typeof window[key] === "function" && key.startsWith("go")) {
45
- functions[key] = window[key];
46
- if (options.debug) {
47
- console.log(`[WASM] Found function: ${key}`);
48
- }
49
- }
50
- }
51
- const wasmInstance = {
52
- instance: wasmModule.instance,
53
- module: wasmModule,
54
- exports: wasmModule.instance.exports,
55
- functions
56
- };
57
- if (options.onLoad) {
58
- options.onLoad(wasmInstance);
59
- }
60
- if (options.debug) {
61
- console.log(`[WASM] Module loaded successfully with ${Object.keys(functions).length} functions`);
62
- }
63
- return wasmInstance;
64
- } catch (error) {
65
- console.error("[WASM] Error loading Go WASM module:", error);
66
- throw error;
67
- }
68
- }
69
- function callWasmFunction(funcName, ...args) {
70
- if (typeof window === "undefined") {
71
- throw new Error("callWasmFunction() is for browser use only.");
72
- }
73
- const func = window[funcName];
74
- if (typeof func !== "function") {
75
- throw new Error(`Function ${funcName} not found. Make sure the WASM module is loaded.`);
76
- }
77
- return func(...args);
78
- }
79
- function isWasmReady() {
80
- if (typeof window === "undefined") {
81
- return false;
82
- }
83
- return !!(window.Go && Object.keys(window).some(
84
- (key) => key.startsWith("go") && typeof window[key] === "function"
85
- ));
86
- }
87
- function getWasmFunctions() {
88
- if (typeof window === "undefined") {
89
- return [];
90
- }
91
- return Object.keys(window).filter(
92
- (key) => key.startsWith("go") && typeof window[key] === "function"
93
- );
94
- }
95
- function useGoWasm(wasmUrl, options = {}) {
96
- if (typeof window === "undefined") {
97
- throw new Error("useGoWasm() is for browser use only.");
98
- }
99
- return {
100
- loadWasm: () => loadGoWasm(wasmUrl, options),
101
- callFunction: callWasmFunction,
102
- isReady: isWasmReady,
103
- getFunctions: getWasmFunctions
104
- };
105
- }
106
- var init_wasm = __esm({
107
- "src/wasm.ts"() {
108
- "use strict";
109
- }
110
- });
111
-
112
18
  // src/server/templates.ts
113
19
  var templates_exports = {};
114
20
  __export(templates_exports, {
@@ -989,7 +895,7 @@ async function loadGoWasmFromFile(wasmFilePath, options = {}) {
989
895
  }
990
896
  }
991
897
  var initialized;
992
- var init_wasm2 = __esm({
898
+ var init_wasm = __esm({
993
899
  "src/server/wasm.ts"() {
994
900
  "use strict";
995
901
  initialized = false;
@@ -1025,6 +931,7 @@ __export(server_exports, {
1025
931
  rateLimit: () => rateLimit,
1026
932
  readJsonFile: () => readJsonFile,
1027
933
  renderComponent: () => renderComponent,
934
+ renderToString: () => renderToString,
1028
935
  requestLogger: () => requestLogger,
1029
936
  safeJsonParse: () => safeJsonParse,
1030
937
  sendError: () => sendError,
@@ -1035,7 +942,7 @@ __export(server_exports, {
1035
942
  });
1036
943
  import path4 from "path";
1037
944
  import fs4 from "fs";
1038
- import { pathToFileURL as pathToFileURL3 } from "url";
945
+ import { renderToString } from "frontend-hamroun";
1039
946
  function getComponentName(filePath, pagesDir) {
1040
947
  try {
1041
948
  const relativePath = path4.relative(pagesDir, filePath);
@@ -1061,6 +968,7 @@ function createDevServer(options = {}) {
1061
968
  function createProductionServer(config) {
1062
969
  const server = new Server({
1063
970
  ...config,
971
+ // Fix the PORT parsing
1064
972
  port: config.port || (process.env.PORT ? parseInt(process.env.PORT) : 8080)
1065
973
  });
1066
974
  server.addShutdownHandler();
@@ -1084,15 +992,14 @@ var Server, renderComponent, server_default;
1084
992
  var init_server = __esm({
1085
993
  "src/server/index.ts"() {
1086
994
  "use strict";
1087
- init_src();
1088
995
  init_database();
1089
996
  init_auth();
1090
997
  init_api_router();
1091
998
  init_middleware();
1092
999
  init_utils();
1093
1000
  init_templates();
1094
- init_wasm2();
1095
- init_wasm2();
1001
+ init_wasm();
1002
+ init_wasm();
1096
1003
  init_utils();
1097
1004
  init_templates();
1098
1005
  init_database();
@@ -1104,7 +1011,6 @@ var init_server = __esm({
1104
1011
  this.server = null;
1105
1012
  this.db = null;
1106
1013
  this.auth = null;
1107
- this.initialized = false;
1108
1014
  this.config = {
1109
1015
  port: 3e3,
1110
1016
  apiDir: "./api",
@@ -1113,14 +1019,9 @@ var init_server = __esm({
1113
1019
  enableCors: true,
1114
1020
  ...config
1115
1021
  };
1116
- this.initializeApp().catch((error) => {
1117
- console.error("Failed to initialize server:", error);
1118
- });
1022
+ this.initializeApp();
1119
1023
  }
1120
1024
  async initializeApp() {
1121
- if (this.initialized) {
1122
- return;
1123
- }
1124
1025
  try {
1125
1026
  const express = await import("express");
1126
1027
  this.app = express.default();
@@ -1152,8 +1053,6 @@ var init_server = __esm({
1152
1053
  this.setupPageRoutes();
1153
1054
  this.app.use(notFoundHandler);
1154
1055
  this.app.use(errorHandler);
1155
- this.initialized = true;
1156
- console.log("\u2705 Baraqex server initialized successfully");
1157
1056
  } catch (error) {
1158
1057
  if (error.code === "MODULE_NOT_FOUND" && error.message.includes("express")) {
1159
1058
  throw new Error("Express not installed. Run: npm install express @types/express");
@@ -1271,10 +1170,7 @@ var init_server = __esm({
1271
1170
  };
1272
1171
  }
1273
1172
  try {
1274
- const absolutePath = path4.resolve(pagePath);
1275
- const fileUrl = pathToFileURL3(absolutePath).href;
1276
- const urlWithTimestamp = `${fileUrl}?t=${Date.now()}`;
1277
- const pageModule = await import(urlWithTimestamp);
1173
+ const pageModule = await import(pagePath);
1278
1174
  if (!pageModule || !pageModule.default) {
1279
1175
  throw new Error(`No default export found in ${pagePath}`);
1280
1176
  }
@@ -1344,22 +1240,12 @@ var init_server = __esm({
1344
1240
  getAuth() {
1345
1241
  return this.auth;
1346
1242
  }
1347
- async start() {
1348
- while (!this.initialized) {
1349
- await new Promise((resolve) => setTimeout(resolve, 50));
1350
- }
1351
- return new Promise((resolve, reject) => {
1352
- if (!this.app) {
1353
- reject(new Error("Server not initialized. Express app is missing."));
1354
- return;
1355
- }
1243
+ start() {
1244
+ return new Promise((resolve) => {
1356
1245
  this.server = this.app.listen(this.config.port, () => {
1357
- console.log(`\u{1F680} Server running at http://localhost:${this.config.port}`);
1246
+ console.log(`Server running at http://localhost:${this.config.port}`);
1358
1247
  resolve();
1359
1248
  });
1360
- this.server.on("error", (error) => {
1361
- reject(error);
1362
- });
1363
1249
  });
1364
1250
  }
1365
1251
  stop() {
@@ -1509,138 +1395,191 @@ var init_server_renderer = __esm({
1509
1395
  });
1510
1396
 
1511
1397
  // src/index.ts
1512
- function createBaraqexServer(options = {}) {
1513
- return new Promise((resolve, reject) => {
1514
- const checkServer = () => {
1515
- if (createDevServer2 && typeof createDevServer2 === "function") {
1516
- resolve(createDevServer2(options));
1517
- } else if (isNode) {
1518
- setTimeout(checkServer, 100);
1519
- } else {
1520
- reject(new Error("Server functionality not available in browser environment"));
1398
+ export * from "frontend-hamroun";
1399
+
1400
+ // src/wasm.ts
1401
+ async function loadGoWasm(wasmUrl, options = {}) {
1402
+ if (typeof window === "undefined") {
1403
+ throw new Error("loadGoWasm() is for browser use only. Use loadGoWasmFromFile() in Node.js.");
1404
+ }
1405
+ try {
1406
+ if (!window.Go) {
1407
+ throw new Error("Go WASM runtime not available. Make sure wasm_exec.js is loaded.");
1408
+ }
1409
+ if (options.debug) {
1410
+ console.log("[WASM] Loading WASM from:", wasmUrl);
1411
+ }
1412
+ const response = await fetch(wasmUrl);
1413
+ if (!response.ok) {
1414
+ throw new Error(`Failed to fetch WASM file: ${response.status}`);
1415
+ }
1416
+ const wasmBytes = await response.arrayBuffer();
1417
+ const go = new window.Go();
1418
+ const wasmModule = await WebAssembly.instantiate(wasmBytes, go.importObject);
1419
+ go.run(wasmModule.instance);
1420
+ await new Promise((resolve) => setTimeout(resolve, 100));
1421
+ if (options.debug) {
1422
+ console.log("[WASM] Go program started, checking for registered functions...");
1423
+ }
1424
+ const functions = {};
1425
+ for (const key in window) {
1426
+ if (typeof window[key] === "function" && key.startsWith("go")) {
1427
+ functions[key] = window[key];
1428
+ if (options.debug) {
1429
+ console.log(`[WASM] Found function: ${key}`);
1430
+ }
1521
1431
  }
1432
+ }
1433
+ const wasmInstance = {
1434
+ instance: wasmModule.instance,
1435
+ module: wasmModule,
1436
+ exports: wasmModule.instance.exports,
1437
+ functions
1522
1438
  };
1523
- checkServer();
1524
- });
1439
+ if (options.onLoad) {
1440
+ options.onLoad(wasmInstance);
1441
+ }
1442
+ if (options.debug) {
1443
+ console.log(`[WASM] Module loaded successfully with ${Object.keys(functions).length} functions`);
1444
+ }
1445
+ return wasmInstance;
1446
+ } catch (error) {
1447
+ console.error("[WASM] Error loading Go WASM module:", error);
1448
+ throw error;
1449
+ }
1525
1450
  }
1526
- var isNode, isBrowser, BaraqexServer, createServer2, createDevServer2, createProductionServer2, renderComponent2, Database2, AuthService2, ApiRouter2, requestLogger2, errorHandler2, notFoundHandler2, rateLimit2, initNodeWasm3, loadGoWasmFromFile2, safeJsonParse2, generateToken2, hashString2, getPagination2, sendSuccess2, sendError2, validateFields2, validateFileUpload2, getEnvironmentInfo2, isDirectoryEmpty2, ensureDirectory2, writeJsonFile2, readJsonFile2, baraqexRenderToString;
1527
- var init_src = __esm({
1528
- "src/index.ts"() {
1529
- init_wasm();
1530
- init_templates();
1531
- export * from "frontend-hamroun";
1532
- isNode = typeof process !== "undefined" && process.versions?.node;
1533
- isBrowser = typeof window !== "undefined";
1534
- BaraqexServer = null;
1535
- createServer2 = null;
1536
- createDevServer2 = null;
1537
- createProductionServer2 = null;
1538
- renderComponent2 = null;
1539
- Database2 = null;
1540
- AuthService2 = null;
1541
- ApiRouter2 = null;
1542
- requestLogger2 = null;
1543
- errorHandler2 = null;
1544
- notFoundHandler2 = null;
1545
- rateLimit2 = null;
1546
- initNodeWasm3 = null;
1547
- loadGoWasmFromFile2 = null;
1548
- safeJsonParse2 = (json, fallback) => {
1451
+ function callWasmFunction(funcName, ...args) {
1452
+ if (typeof window === "undefined") {
1453
+ throw new Error("callWasmFunction() is for browser use only.");
1454
+ }
1455
+ const func = window[funcName];
1456
+ if (typeof func !== "function") {
1457
+ throw new Error(`Function ${funcName} not found. Make sure the WASM module is loaded.`);
1458
+ }
1459
+ return func(...args);
1460
+ }
1461
+ function isWasmReady() {
1462
+ if (typeof window === "undefined") {
1463
+ return false;
1464
+ }
1465
+ return !!(window.Go && Object.keys(window).some(
1466
+ (key) => key.startsWith("go") && typeof window[key] === "function"
1467
+ ));
1468
+ }
1469
+ function getWasmFunctions() {
1470
+ if (typeof window === "undefined") {
1471
+ return [];
1472
+ }
1473
+ return Object.keys(window).filter(
1474
+ (key) => key.startsWith("go") && typeof window[key] === "function"
1475
+ );
1476
+ }
1477
+ function useGoWasm(wasmUrl, options = {}) {
1478
+ if (typeof window === "undefined") {
1479
+ throw new Error("useGoWasm() is for browser use only.");
1480
+ }
1481
+ return {
1482
+ loadWasm: () => loadGoWasm(wasmUrl, options),
1483
+ callFunction: callWasmFunction,
1484
+ isReady: isWasmReady,
1485
+ getFunctions: getWasmFunctions
1486
+ };
1487
+ }
1488
+
1489
+ // src/index.ts
1490
+ init_templates();
1491
+ var isNode = typeof process !== "undefined" && process.versions?.node;
1492
+ var isBrowser = typeof window !== "undefined";
1493
+ var BaraqexServer = null;
1494
+ var createServer2 = null;
1495
+ var createDevServer2 = null;
1496
+ var createProductionServer2 = null;
1497
+ var renderComponent2 = null;
1498
+ var Database2 = null;
1499
+ var AuthService2 = null;
1500
+ var ApiRouter2 = null;
1501
+ var requestLogger2 = null;
1502
+ var errorHandler2 = null;
1503
+ var notFoundHandler2 = null;
1504
+ var rateLimit2 = null;
1505
+ var initNodeWasm3 = null;
1506
+ var loadGoWasmFromFile2 = null;
1507
+ var safeJsonParse2 = (json, fallback) => {
1508
+ try {
1509
+ return JSON.parse(json);
1510
+ } catch {
1511
+ return fallback;
1512
+ }
1513
+ };
1514
+ var generateToken2 = (length = 32) => {
1515
+ const array = new Uint8Array(length);
1516
+ if (typeof crypto !== "undefined" && crypto.getRandomValues) {
1517
+ crypto.getRandomValues(array);
1518
+ } else {
1519
+ for (let i = 0; i < array.length; i++) {
1520
+ array[i] = Math.floor(Math.random() * 256);
1521
+ }
1522
+ }
1523
+ return Array.from(array, (byte) => byte.toString(16).padStart(2, "0")).join("");
1524
+ };
1525
+ var hashString2 = null;
1526
+ var getPagination2 = null;
1527
+ var sendSuccess2 = null;
1528
+ var sendError2 = null;
1529
+ var validateFields2 = null;
1530
+ var validateFileUpload2 = null;
1531
+ var getEnvironmentInfo2 = null;
1532
+ var isDirectoryEmpty2 = null;
1533
+ var ensureDirectory2 = null;
1534
+ var writeJsonFile2 = null;
1535
+ var readJsonFile2 = null;
1536
+ var baraqexRenderToString = null;
1537
+ if (isNode && !isBrowser) {
1538
+ Promise.resolve().then(async () => {
1539
+ try {
1549
1540
  try {
1550
- return JSON.parse(json);
1541
+ await import("express");
1551
1542
  } catch {
1552
- return fallback;
1553
- }
1554
- };
1555
- generateToken2 = (length = 32) => {
1556
- const array = new Uint8Array(length);
1557
- if (typeof crypto !== "undefined" && crypto.getRandomValues) {
1558
- crypto.getRandomValues(array);
1559
- } else {
1560
- for (let i = 0; i < array.length; i++) {
1561
- array[i] = Math.floor(Math.random() * 256);
1562
- }
1543
+ console.warn("Express not available - server functionality disabled");
1544
+ return;
1563
1545
  }
1564
- return Array.from(array, (byte) => byte.toString(16).padStart(2, "0")).join("");
1565
- };
1566
- hashString2 = null;
1567
- getPagination2 = null;
1568
- sendSuccess2 = null;
1569
- sendError2 = null;
1570
- validateFields2 = null;
1571
- validateFileUpload2 = null;
1572
- getEnvironmentInfo2 = null;
1573
- isDirectoryEmpty2 = null;
1574
- ensureDirectory2 = null;
1575
- writeJsonFile2 = null;
1576
- readJsonFile2 = null;
1577
- baraqexRenderToString = null;
1578
- if (isNode && !isBrowser) {
1579
- Promise.resolve().then(async () => {
1580
- try {
1581
- try {
1582
- await import("express");
1583
- } catch {
1584
- console.warn("Express not available - server functionality disabled");
1585
- return;
1586
- }
1587
- const serverModule = await Promise.resolve().then(() => (init_server(), server_exports));
1588
- Object.assign(exports, {
1589
- BaraqexServer: serverModule.Server,
1590
- createServer: serverModule.createServer,
1591
- createDevServer: serverModule.createDevServer,
1592
- createProductionServer: serverModule.createProductionServer,
1593
- renderComponent: serverModule.renderComponent,
1594
- Database: serverModule.Database,
1595
- AuthService: serverModule.AuthService,
1596
- ApiRouter: serverModule.ApiRouter,
1597
- requestLogger: serverModule.requestLogger,
1598
- errorHandler: serverModule.errorHandler,
1599
- notFoundHandler: serverModule.notFoundHandler,
1600
- rateLimit: serverModule.rateLimit,
1601
- initNodeWasm: serverModule.initNodeWasm,
1602
- loadGoWasmFromFile: serverModule.loadGoWasmFromFile
1603
- });
1604
- BaraqexServer = serverModule.Server;
1605
- createServer2 = serverModule.createServer;
1606
- createDevServer2 = serverModule.createDevServer;
1607
- createProductionServer2 = serverModule.createProductionServer;
1608
- renderComponent2 = serverModule.renderComponent;
1609
- Database2 = serverModule.Database;
1610
- AuthService2 = serverModule.AuthService;
1611
- ApiRouter2 = serverModule.ApiRouter;
1612
- requestLogger2 = serverModule.requestLogger;
1613
- errorHandler2 = serverModule.errorHandler;
1614
- notFoundHandler2 = serverModule.notFoundHandler;
1615
- rateLimit2 = serverModule.rateLimit;
1616
- initNodeWasm3 = serverModule.initNodeWasm;
1617
- loadGoWasmFromFile2 = serverModule.loadGoWasmFromFile;
1618
- const utilsModule = await Promise.resolve().then(() => (init_utils(), utils_exports));
1619
- safeJsonParse2 = utilsModule.safeJsonParse;
1620
- generateToken2 = utilsModule.generateToken;
1621
- hashString2 = utilsModule.hashString;
1622
- getPagination2 = utilsModule.getPagination;
1623
- sendSuccess2 = utilsModule.sendSuccess;
1624
- sendError2 = utilsModule.sendError;
1625
- validateFields2 = utilsModule.validateFields;
1626
- validateFileUpload2 = utilsModule.validateFileUpload;
1627
- getEnvironmentInfo2 = utilsModule.getEnvironmentInfo;
1628
- isDirectoryEmpty2 = utilsModule.isDirectoryEmpty;
1629
- ensureDirectory2 = utilsModule.ensureDirectory;
1630
- writeJsonFile2 = utilsModule.writeJsonFile;
1631
- readJsonFile2 = utilsModule.readJsonFile;
1632
- const rendererModule = await Promise.resolve().then(() => (init_server_renderer(), server_renderer_exports));
1633
- baraqexRenderToString = rendererModule.renderToString;
1634
- console.log("\u2705 Baraqex server modules loaded successfully");
1635
- } catch (error) {
1636
- console.warn("Server modules not available:", error.message);
1637
- }
1638
- });
1546
+ const serverModule = await Promise.resolve().then(() => (init_server(), server_exports));
1547
+ BaraqexServer = serverModule.Server;
1548
+ createServer2 = serverModule.createServer;
1549
+ createDevServer2 = serverModule.createDevServer;
1550
+ createProductionServer2 = serverModule.createProductionServer;
1551
+ renderComponent2 = serverModule.renderComponent;
1552
+ Database2 = serverModule.Database;
1553
+ AuthService2 = serverModule.AuthService;
1554
+ ApiRouter2 = serverModule.ApiRouter;
1555
+ requestLogger2 = serverModule.requestLogger;
1556
+ errorHandler2 = serverModule.errorHandler;
1557
+ notFoundHandler2 = serverModule.notFoundHandler;
1558
+ rateLimit2 = serverModule.rateLimit;
1559
+ initNodeWasm3 = serverModule.initNodeWasm;
1560
+ loadGoWasmFromFile2 = serverModule.loadGoWasmFromFile;
1561
+ const utilsModule = await Promise.resolve().then(() => (init_utils(), utils_exports));
1562
+ safeJsonParse2 = utilsModule.safeJsonParse;
1563
+ generateToken2 = utilsModule.generateToken;
1564
+ hashString2 = utilsModule.hashString;
1565
+ getPagination2 = utilsModule.getPagination;
1566
+ sendSuccess2 = utilsModule.sendSuccess;
1567
+ sendError2 = utilsModule.sendError;
1568
+ validateFields2 = utilsModule.validateFields;
1569
+ validateFileUpload2 = utilsModule.validateFileUpload;
1570
+ getEnvironmentInfo2 = utilsModule.getEnvironmentInfo;
1571
+ isDirectoryEmpty2 = utilsModule.isDirectoryEmpty;
1572
+ ensureDirectory2 = utilsModule.ensureDirectory;
1573
+ writeJsonFile2 = utilsModule.writeJsonFile;
1574
+ readJsonFile2 = utilsModule.readJsonFile;
1575
+ const rendererModule = await Promise.resolve().then(() => (init_server_renderer(), server_renderer_exports));
1576
+ baraqexRenderToString = rendererModule.renderToString;
1577
+ } catch (error) {
1578
+ console.warn("Server modules not available:", error.message);
1639
1579
  }
1640
- console.log("Baraqex - powered by Frontend Hamroun Framework with additional utilities");
1641
- }
1642
- });
1643
- init_src();
1580
+ });
1581
+ }
1582
+ console.log("Baraqex - powered by Frontend Hamroun Framework with additional utilities");
1644
1583
  export {
1645
1584
  ApiRouter2 as ApiRouter,
1646
1585
  AuthService2 as AuthService,
@@ -1648,7 +1587,6 @@ export {
1648
1587
  Database2 as Database,
1649
1588
  baraqexRenderToString,
1650
1589
  callWasmFunction,
1651
- createBaraqexServer,
1652
1590
  createDevServer2 as createDevServer,
1653
1591
  createProductionServer2 as createProductionServer,
1654
1592
  createServer2 as createServer,