@gxp-dev/tools 2.0.6 → 2.0.7

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.
Files changed (99) hide show
  1. package/browser-extensions/README.md +1 -0
  2. package/browser-extensions/chrome/background.js +857 -0
  3. package/browser-extensions/chrome/content.js +51 -0
  4. package/browser-extensions/chrome/devtools.html +9 -0
  5. package/browser-extensions/chrome/devtools.js +23 -0
  6. package/browser-extensions/chrome/icons/gx_off_128.png +0 -0
  7. package/browser-extensions/chrome/icons/gx_off_16.png +0 -0
  8. package/browser-extensions/chrome/icons/gx_off_32.png +0 -0
  9. package/browser-extensions/chrome/icons/gx_off_64.png +0 -0
  10. package/browser-extensions/chrome/icons/gx_on_128.png +0 -0
  11. package/browser-extensions/chrome/icons/gx_on_16.png +0 -0
  12. package/browser-extensions/chrome/icons/gx_on_32.png +0 -0
  13. package/browser-extensions/chrome/icons/gx_on_64.png +0 -0
  14. package/browser-extensions/chrome/inspector.js +1087 -0
  15. package/browser-extensions/chrome/manifest.json +70 -0
  16. package/browser-extensions/chrome/panel.html +638 -0
  17. package/browser-extensions/chrome/panel.js +862 -0
  18. package/browser-extensions/chrome/popup.html +399 -0
  19. package/browser-extensions/chrome/popup.js +515 -0
  20. package/browser-extensions/chrome/rules.json +1 -0
  21. package/browser-extensions/chrome/test-chrome.html +145 -0
  22. package/browser-extensions/chrome/test-mixed-content.html +190 -0
  23. package/browser-extensions/chrome/test-uri-pattern.html +199 -0
  24. package/browser-extensions/firefox/README.md +134 -0
  25. package/browser-extensions/firefox/background.js +804 -0
  26. package/browser-extensions/firefox/content.js +120 -0
  27. package/browser-extensions/firefox/debug-errors.html +229 -0
  28. package/browser-extensions/firefox/debug-https.html +113 -0
  29. package/browser-extensions/firefox/devtools.html +9 -0
  30. package/browser-extensions/firefox/devtools.js +24 -0
  31. package/browser-extensions/firefox/icons/gx_off_128.png +0 -0
  32. package/browser-extensions/firefox/icons/gx_off_16.png +0 -0
  33. package/browser-extensions/firefox/icons/gx_off_32.png +0 -0
  34. package/browser-extensions/firefox/icons/gx_off_64.png +0 -0
  35. package/browser-extensions/firefox/icons/gx_on_128.png +0 -0
  36. package/browser-extensions/firefox/icons/gx_on_16.png +0 -0
  37. package/browser-extensions/firefox/icons/gx_on_32.png +0 -0
  38. package/browser-extensions/firefox/icons/gx_on_64.png +0 -0
  39. package/browser-extensions/firefox/inspector.js +1087 -0
  40. package/browser-extensions/firefox/manifest.json +67 -0
  41. package/browser-extensions/firefox/panel.html +638 -0
  42. package/browser-extensions/firefox/panel.js +862 -0
  43. package/browser-extensions/firefox/popup.html +525 -0
  44. package/browser-extensions/firefox/popup.js +536 -0
  45. package/browser-extensions/firefox/test-gramercy.html +126 -0
  46. package/browser-extensions/firefox/test-imports.html +58 -0
  47. package/browser-extensions/firefox/test-masking.html +147 -0
  48. package/browser-extensions/firefox/test-uri-pattern.html +199 -0
  49. package/package.json +7 -2
  50. package/runtime/PortalContainer.vue +326 -0
  51. package/runtime/dev-tools/DevToolsModal.vue +217 -0
  52. package/runtime/dev-tools/LayoutSwitcher.vue +221 -0
  53. package/runtime/dev-tools/MockDataEditor.vue +621 -0
  54. package/runtime/dev-tools/SocketSimulator.vue +562 -0
  55. package/runtime/dev-tools/StoreInspector.vue +644 -0
  56. package/runtime/dev-tools/index.js +6 -0
  57. package/runtime/gxpStringsPlugin.js +428 -0
  58. package/runtime/index.html +22 -0
  59. package/runtime/main.js +32 -0
  60. package/runtime/mock-api/auth-middleware.js +97 -0
  61. package/runtime/mock-api/image-generator.js +221 -0
  62. package/runtime/mock-api/index.js +197 -0
  63. package/runtime/mock-api/response-generator.js +394 -0
  64. package/runtime/mock-api/route-generator.js +323 -0
  65. package/runtime/mock-api/socket-triggers.js +371 -0
  66. package/runtime/mock-api/spec-loader.js +300 -0
  67. package/runtime/server.js +180 -0
  68. package/runtime/stores/gxpPortalConfigStore.js +554 -0
  69. package/runtime/stores/index.js +6 -0
  70. package/runtime/vite-inspector-plugin.js +749 -0
  71. package/runtime/vite-source-tracker-plugin.js +232 -0
  72. package/runtime/vite.config.js +402 -0
  73. package/scripts/launch-chrome.js +90 -0
  74. package/scripts/pack-chrome.js +91 -0
  75. package/socket-events/AiSessionMessageCreated.json +18 -0
  76. package/socket-events/SocialStreamPostCreated.json +24 -0
  77. package/socket-events/SocialStreamPostVariantCompleted.json +23 -0
  78. package/template/README.md +332 -0
  79. package/template/app-manifest.json +32 -0
  80. package/template/dev-assets/images/avatar-placeholder.png +0 -0
  81. package/template/dev-assets/images/background-placeholder.jpg +0 -0
  82. package/template/dev-assets/images/banner-placeholder.jpg +0 -0
  83. package/template/dev-assets/images/icon-placeholder.png +0 -0
  84. package/template/dev-assets/images/logo-placeholder.png +0 -0
  85. package/template/dev-assets/images/product-placeholder.jpg +0 -0
  86. package/template/dev-assets/images/thumbnail-placeholder.jpg +0 -0
  87. package/template/env.example +51 -0
  88. package/template/gitignore +53 -0
  89. package/template/index.html +22 -0
  90. package/template/main.js +28 -0
  91. package/template/src/DemoPage.vue +459 -0
  92. package/template/src/Plugin.vue +38 -0
  93. package/template/src/stores/index.js +9 -0
  94. package/template/src/stores/test-data.json +173 -0
  95. package/template/theme-layouts/AdditionalStyling.css +0 -0
  96. package/template/theme-layouts/PrivateLayout.vue +39 -0
  97. package/template/theme-layouts/PublicLayout.vue +39 -0
  98. package/template/theme-layouts/SystemLayout.vue +39 -0
  99. package/template/vite.config.js +333 -0
@@ -0,0 +1,180 @@
1
+ const express = require("express");
2
+ const cors = require("cors");
3
+ const fs = require("fs");
4
+ const path = require("path");
5
+ const dotenv = require("dotenv");
6
+
7
+ // Load .env file from project directory (process.cwd())
8
+ const envPath = path.join(process.cwd(), ".env");
9
+ if (fs.existsSync(envPath)) {
10
+ dotenv.config({ path: envPath });
11
+ }
12
+
13
+ const app = express();
14
+
15
+ app.use(
16
+ cors({
17
+ origin: "*",
18
+ })
19
+ );
20
+
21
+ // Middleware to parse JSON
22
+ app.use(express.json());
23
+
24
+ // Serve static development assets
25
+ const devAssetsDir = path.join(process.cwd(), "dev-assets");
26
+ if (fs.existsSync(devAssetsDir)) {
27
+ app.use("/dev-assets", express.static(devAssetsDir));
28
+ console.log("šŸ“ Serving development assets from /dev-assets");
29
+ }
30
+
31
+ /**
32
+ * Finds existing SSL certificates in the certs directory, including those with suffixes
33
+ */
34
+ function findExistingCertificates(certsDir) {
35
+ if (!fs.existsSync(certsDir)) {
36
+ return null;
37
+ }
38
+
39
+ const files = fs.readdirSync(certsDir);
40
+
41
+ // Look for localhost certificates (with or without suffixes)
42
+ const certFile = files.find(
43
+ (f) =>
44
+ f.startsWith("localhost") && f.endsWith(".pem") && !f.includes("-key")
45
+ );
46
+ const keyFile = files.find(
47
+ (f) => f.startsWith("localhost") && f.endsWith("-key.pem")
48
+ );
49
+
50
+ if (certFile && keyFile) {
51
+ const certPath = path.join(certsDir, certFile);
52
+ const keyPath = path.join(certsDir, keyFile);
53
+
54
+ // Verify files actually exist and have content
55
+ try {
56
+ const certStats = fs.statSync(certPath);
57
+ const keyStats = fs.statSync(keyPath);
58
+
59
+ if (certStats.size > 0 && keyStats.size > 0) {
60
+ return { certPath, keyPath };
61
+ }
62
+ } catch (error) {
63
+ // Files don't exist or can't be read
64
+ }
65
+ }
66
+
67
+ return null;
68
+ }
69
+
70
+ // Check for SSL certificates using improved detection
71
+ const certsDir = path.join(process.cwd(), ".certs");
72
+ const existingCerts = findExistingCertificates(certsDir);
73
+
74
+ let server;
75
+ let protocol = "HTTP";
76
+
77
+ if (existingCerts) {
78
+ // Use HTTPS if certificates are available
79
+ const https = require("https");
80
+ const options = {
81
+ cert: fs.readFileSync(existingCerts.certPath),
82
+ key: fs.readFileSync(existingCerts.keyPath),
83
+ };
84
+ server = https.createServer(options, app);
85
+ protocol = "HTTPS";
86
+ console.log(`šŸ“ Using certificate: ${path.basename(existingCerts.certPath)}`);
87
+ console.log(`šŸ”‘ Using key: ${path.basename(existingCerts.keyPath)}`);
88
+ } else {
89
+ // Fall back to HTTP if no certificates
90
+ const http = require("http");
91
+ server = http.createServer(app);
92
+ }
93
+
94
+ const { Server } = require("socket.io");
95
+
96
+ const io = new Server(server, {
97
+ cors: {
98
+ origin: "*",
99
+ },
100
+ });
101
+
102
+ io.on("connection", (socket) => {
103
+ socket.onAny((event, data) => {
104
+ socket.broadcast.emit(event, data);
105
+ });
106
+ });
107
+
108
+ // HTTP endpoint for CLI to send socket events
109
+ app.post("/emit", (req, res) => {
110
+ const { event, channel, data } = req.body;
111
+
112
+ if (!event) {
113
+ return res.status(400).json({ error: "Event name is required" });
114
+ }
115
+
116
+ console.log(`šŸ“” CLI triggered socket event: ${event}`);
117
+ console.log(`šŸ“ŗ Channel: ${channel}`);
118
+ console.log(`šŸ“¦ Data:`, data);
119
+
120
+ // Emit to all connected clients
121
+ io.emit(event, data);
122
+
123
+ res.json({
124
+ success: true,
125
+ message: `Event ${event} sent to all connected clients`,
126
+ event,
127
+ channel,
128
+ data,
129
+ });
130
+ });
131
+
132
+ // Basic health check endpoint
133
+ app.get("/health", (req, res) => {
134
+ res.json({
135
+ status: "ok",
136
+ protocol,
137
+ mockApiEnabled: process.env.MOCK_API_ENABLED === "true",
138
+ timestamp: new Date().toISOString(),
139
+ });
140
+ });
141
+
142
+ /**
143
+ * Initialize and start the server
144
+ */
145
+ async function startServer() {
146
+ // Mount Mock API if enabled
147
+ if (process.env.MOCK_API_ENABLED === "true") {
148
+ try {
149
+ const { createMockApiRouter } = require("./mock-api");
150
+ const mockRouter = await createMockApiRouter(io, {
151
+ projectRoot: process.cwd(),
152
+ });
153
+ app.use(mockRouter);
154
+ } catch (error) {
155
+ console.error("āŒ Failed to initialize Mock API:", error.message);
156
+ console.log(" Continuing without Mock API...");
157
+ }
158
+ }
159
+
160
+ const socketIoPort = process.env.SOCKET_IO_PORT || 3069;
161
+
162
+ server.listen(socketIoPort, () => {
163
+ console.log(
164
+ `\nšŸ”— Socket.IO server running on ${protocol} at port ${socketIoPort}`
165
+ );
166
+ if (protocol === "HTTPS") {
167
+ console.log("šŸ”’ Using SSL certificates for secure WebSocket connections");
168
+ }
169
+ console.log("šŸ“” Socket event simulation available at POST /emit");
170
+ if (process.env.MOCK_API_ENABLED === "true") {
171
+ console.log("šŸŽ­ Mock API enabled - routes available under /api/*");
172
+ }
173
+ });
174
+ }
175
+
176
+ // Start the server
177
+ startServer().catch((error) => {
178
+ console.error("Failed to start server:", error);
179
+ process.exit(1);
180
+ });