baraqex 1.0.48 → 1.0.49

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,6 +15,100 @@ 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
+
18
112
  // src/server/templates.ts
19
113
  var templates_exports = {};
20
114
  __export(templates_exports, {
@@ -895,7 +989,7 @@ async function loadGoWasmFromFile(wasmFilePath, options = {}) {
895
989
  }
896
990
  }
897
991
  var initialized;
898
- var init_wasm = __esm({
992
+ var init_wasm2 = __esm({
899
993
  "src/server/wasm.ts"() {
900
994
  "use strict";
901
995
  initialized = false;
@@ -931,7 +1025,6 @@ __export(server_exports, {
931
1025
  rateLimit: () => rateLimit,
932
1026
  readJsonFile: () => readJsonFile,
933
1027
  renderComponent: () => renderComponent,
934
- renderToString: () => renderToString,
935
1028
  requestLogger: () => requestLogger,
936
1029
  safeJsonParse: () => safeJsonParse,
937
1030
  sendError: () => sendError,
@@ -942,7 +1035,7 @@ __export(server_exports, {
942
1035
  });
943
1036
  import path4 from "path";
944
1037
  import fs4 from "fs";
945
- import { renderToString } from "frontend-hamroun";
1038
+ import { pathToFileURL as pathToFileURL3 } from "url";
946
1039
  function getComponentName(filePath, pagesDir) {
947
1040
  try {
948
1041
  const relativePath = path4.relative(pagesDir, filePath);
@@ -991,14 +1084,15 @@ var Server, renderComponent, server_default;
991
1084
  var init_server = __esm({
992
1085
  "src/server/index.ts"() {
993
1086
  "use strict";
1087
+ init_src();
994
1088
  init_database();
995
1089
  init_auth();
996
1090
  init_api_router();
997
1091
  init_middleware();
998
1092
  init_utils();
999
1093
  init_templates();
1000
- init_wasm();
1001
- init_wasm();
1094
+ init_wasm2();
1095
+ init_wasm2();
1002
1096
  init_utils();
1003
1097
  init_templates();
1004
1098
  init_database();
@@ -1177,7 +1271,10 @@ var init_server = __esm({
1177
1271
  };
1178
1272
  }
1179
1273
  try {
1180
- const pageModule = await import(pagePath);
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);
1181
1278
  if (!pageModule || !pageModule.default) {
1182
1279
  throw new Error(`No default export found in ${pagePath}`);
1183
1280
  }
@@ -1412,207 +1509,6 @@ var init_server_renderer = __esm({
1412
1509
  });
1413
1510
 
1414
1511
  // src/index.ts
1415
- export * from "frontend-hamroun";
1416
-
1417
- // src/wasm.ts
1418
- async function loadGoWasm(wasmUrl, options = {}) {
1419
- if (typeof window === "undefined") {
1420
- throw new Error("loadGoWasm() is for browser use only. Use loadGoWasmFromFile() in Node.js.");
1421
- }
1422
- try {
1423
- if (!window.Go) {
1424
- throw new Error("Go WASM runtime not available. Make sure wasm_exec.js is loaded.");
1425
- }
1426
- if (options.debug) {
1427
- console.log("[WASM] Loading WASM from:", wasmUrl);
1428
- }
1429
- const response = await fetch(wasmUrl);
1430
- if (!response.ok) {
1431
- throw new Error(`Failed to fetch WASM file: ${response.status}`);
1432
- }
1433
- const wasmBytes = await response.arrayBuffer();
1434
- const go = new window.Go();
1435
- const wasmModule = await WebAssembly.instantiate(wasmBytes, go.importObject);
1436
- go.run(wasmModule.instance);
1437
- await new Promise((resolve) => setTimeout(resolve, 100));
1438
- if (options.debug) {
1439
- console.log("[WASM] Go program started, checking for registered functions...");
1440
- }
1441
- const functions = {};
1442
- for (const key in window) {
1443
- if (typeof window[key] === "function" && key.startsWith("go")) {
1444
- functions[key] = window[key];
1445
- if (options.debug) {
1446
- console.log(`[WASM] Found function: ${key}`);
1447
- }
1448
- }
1449
- }
1450
- const wasmInstance = {
1451
- instance: wasmModule.instance,
1452
- module: wasmModule,
1453
- exports: wasmModule.instance.exports,
1454
- functions
1455
- };
1456
- if (options.onLoad) {
1457
- options.onLoad(wasmInstance);
1458
- }
1459
- if (options.debug) {
1460
- console.log(`[WASM] Module loaded successfully with ${Object.keys(functions).length} functions`);
1461
- }
1462
- return wasmInstance;
1463
- } catch (error) {
1464
- console.error("[WASM] Error loading Go WASM module:", error);
1465
- throw error;
1466
- }
1467
- }
1468
- function callWasmFunction(funcName, ...args) {
1469
- if (typeof window === "undefined") {
1470
- throw new Error("callWasmFunction() is for browser use only.");
1471
- }
1472
- const func = window[funcName];
1473
- if (typeof func !== "function") {
1474
- throw new Error(`Function ${funcName} not found. Make sure the WASM module is loaded.`);
1475
- }
1476
- return func(...args);
1477
- }
1478
- function isWasmReady() {
1479
- if (typeof window === "undefined") {
1480
- return false;
1481
- }
1482
- return !!(window.Go && Object.keys(window).some(
1483
- (key) => key.startsWith("go") && typeof window[key] === "function"
1484
- ));
1485
- }
1486
- function getWasmFunctions() {
1487
- if (typeof window === "undefined") {
1488
- return [];
1489
- }
1490
- return Object.keys(window).filter(
1491
- (key) => key.startsWith("go") && typeof window[key] === "function"
1492
- );
1493
- }
1494
- function useGoWasm(wasmUrl, options = {}) {
1495
- if (typeof window === "undefined") {
1496
- throw new Error("useGoWasm() is for browser use only.");
1497
- }
1498
- return {
1499
- loadWasm: () => loadGoWasm(wasmUrl, options),
1500
- callFunction: callWasmFunction,
1501
- isReady: isWasmReady,
1502
- getFunctions: getWasmFunctions
1503
- };
1504
- }
1505
-
1506
- // src/index.ts
1507
- init_templates();
1508
- var isNode = typeof process !== "undefined" && process.versions?.node;
1509
- var isBrowser = typeof window !== "undefined";
1510
- var BaraqexServer = null;
1511
- var createServer2 = null;
1512
- var createDevServer2 = null;
1513
- var createProductionServer2 = null;
1514
- var renderComponent2 = null;
1515
- var Database2 = null;
1516
- var AuthService2 = null;
1517
- var ApiRouter2 = null;
1518
- var requestLogger2 = null;
1519
- var errorHandler2 = null;
1520
- var notFoundHandler2 = null;
1521
- var rateLimit2 = null;
1522
- var initNodeWasm3 = null;
1523
- var loadGoWasmFromFile2 = null;
1524
- var safeJsonParse2 = (json, fallback) => {
1525
- try {
1526
- return JSON.parse(json);
1527
- } catch {
1528
- return fallback;
1529
- }
1530
- };
1531
- var generateToken2 = (length = 32) => {
1532
- const array = new Uint8Array(length);
1533
- if (typeof crypto !== "undefined" && crypto.getRandomValues) {
1534
- crypto.getRandomValues(array);
1535
- } else {
1536
- for (let i = 0; i < array.length; i++) {
1537
- array[i] = Math.floor(Math.random() * 256);
1538
- }
1539
- }
1540
- return Array.from(array, (byte) => byte.toString(16).padStart(2, "0")).join("");
1541
- };
1542
- var hashString2 = null;
1543
- var getPagination2 = null;
1544
- var sendSuccess2 = null;
1545
- var sendError2 = null;
1546
- var validateFields2 = null;
1547
- var validateFileUpload2 = null;
1548
- var getEnvironmentInfo2 = null;
1549
- var isDirectoryEmpty2 = null;
1550
- var ensureDirectory2 = null;
1551
- var writeJsonFile2 = null;
1552
- var readJsonFile2 = null;
1553
- var baraqexRenderToString = null;
1554
- if (isNode && !isBrowser) {
1555
- Promise.resolve().then(async () => {
1556
- try {
1557
- try {
1558
- await import("express");
1559
- } catch {
1560
- console.warn("Express not available - server functionality disabled");
1561
- return;
1562
- }
1563
- const serverModule = await Promise.resolve().then(() => (init_server(), server_exports));
1564
- Object.assign(exports, {
1565
- BaraqexServer: serverModule.Server,
1566
- createServer: serverModule.createServer,
1567
- createDevServer: serverModule.createDevServer,
1568
- createProductionServer: serverModule.createProductionServer,
1569
- renderComponent: serverModule.renderComponent,
1570
- Database: serverModule.Database,
1571
- AuthService: serverModule.AuthService,
1572
- ApiRouter: serverModule.ApiRouter,
1573
- requestLogger: serverModule.requestLogger,
1574
- errorHandler: serverModule.errorHandler,
1575
- notFoundHandler: serverModule.notFoundHandler,
1576
- rateLimit: serverModule.rateLimit,
1577
- initNodeWasm: serverModule.initNodeWasm,
1578
- loadGoWasmFromFile: serverModule.loadGoWasmFromFile
1579
- });
1580
- BaraqexServer = serverModule.Server;
1581
- createServer2 = serverModule.createServer;
1582
- createDevServer2 = serverModule.createDevServer;
1583
- createProductionServer2 = serverModule.createProductionServer;
1584
- renderComponent2 = serverModule.renderComponent;
1585
- Database2 = serverModule.Database;
1586
- AuthService2 = serverModule.AuthService;
1587
- ApiRouter2 = serverModule.ApiRouter;
1588
- requestLogger2 = serverModule.requestLogger;
1589
- errorHandler2 = serverModule.errorHandler;
1590
- notFoundHandler2 = serverModule.notFoundHandler;
1591
- rateLimit2 = serverModule.rateLimit;
1592
- initNodeWasm3 = serverModule.initNodeWasm;
1593
- loadGoWasmFromFile2 = serverModule.loadGoWasmFromFile;
1594
- const utilsModule = await Promise.resolve().then(() => (init_utils(), utils_exports));
1595
- safeJsonParse2 = utilsModule.safeJsonParse;
1596
- generateToken2 = utilsModule.generateToken;
1597
- hashString2 = utilsModule.hashString;
1598
- getPagination2 = utilsModule.getPagination;
1599
- sendSuccess2 = utilsModule.sendSuccess;
1600
- sendError2 = utilsModule.sendError;
1601
- validateFields2 = utilsModule.validateFields;
1602
- validateFileUpload2 = utilsModule.validateFileUpload;
1603
- getEnvironmentInfo2 = utilsModule.getEnvironmentInfo;
1604
- isDirectoryEmpty2 = utilsModule.isDirectoryEmpty;
1605
- ensureDirectory2 = utilsModule.ensureDirectory;
1606
- writeJsonFile2 = utilsModule.writeJsonFile;
1607
- readJsonFile2 = utilsModule.readJsonFile;
1608
- const rendererModule = await Promise.resolve().then(() => (init_server_renderer(), server_renderer_exports));
1609
- baraqexRenderToString = rendererModule.renderToString;
1610
- console.log("\u2705 Baraqex server modules loaded successfully");
1611
- } catch (error) {
1612
- console.warn("Server modules not available:", error.message);
1613
- }
1614
- });
1615
- }
1616
1512
  function createBaraqexServer(options = {}) {
1617
1513
  return new Promise((resolve, reject) => {
1618
1514
  const checkServer = () => {
@@ -1627,7 +1523,124 @@ function createBaraqexServer(options = {}) {
1627
1523
  checkServer();
1628
1524
  });
1629
1525
  }
1630
- console.log("Baraqex - powered by Frontend Hamroun Framework with additional utilities");
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) => {
1549
+ try {
1550
+ return JSON.parse(json);
1551
+ } 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
+ }
1563
+ }
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
+ });
1639
+ }
1640
+ console.log("Baraqex - powered by Frontend Hamroun Framework with additional utilities");
1641
+ }
1642
+ });
1643
+ init_src();
1631
1644
  export {
1632
1645
  ApiRouter2 as ApiRouter,
1633
1646
  AuthService2 as AuthService,