@gxp-dev/tools 2.0.63 → 2.0.64
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/README.md +32 -31
- package/bin/gx-devtools.js +74 -54
- package/bin/lib/cli.js +23 -21
- package/bin/lib/commands/add-dependency.js +366 -325
- package/bin/lib/commands/assets.js +137 -139
- package/bin/lib/commands/build.js +169 -174
- package/bin/lib/commands/datastore.js +181 -183
- package/bin/lib/commands/dev.js +127 -131
- package/bin/lib/commands/extensions.js +147 -149
- package/bin/lib/commands/extract-config.js +73 -67
- package/bin/lib/commands/index.js +12 -12
- package/bin/lib/commands/init.js +342 -240
- package/bin/lib/commands/publish.js +69 -75
- package/bin/lib/commands/socket.js +69 -69
- package/bin/lib/commands/ssl.js +14 -14
- package/bin/lib/constants.js +10 -24
- package/bin/lib/tui/App.tsx +761 -705
- package/bin/lib/tui/components/AIPanel.tsx +191 -171
- package/bin/lib/tui/components/CommandInput.tsx +394 -343
- package/bin/lib/tui/components/GeminiPanel.tsx +175 -151
- package/bin/lib/tui/components/Header.tsx +23 -21
- package/bin/lib/tui/components/LogPanel.tsx +244 -220
- package/bin/lib/tui/components/TabBar.tsx +50 -48
- package/bin/lib/tui/components/WelcomeScreen.tsx +126 -71
- package/bin/lib/tui/index.tsx +37 -39
- package/bin/lib/tui/services/AIService.ts +518 -462
- package/bin/lib/tui/services/ExtensionService.ts +140 -129
- package/bin/lib/tui/services/GeminiService.ts +367 -337
- package/bin/lib/tui/services/ServiceManager.ts +344 -322
- package/bin/lib/tui/services/SocketService.ts +168 -168
- package/bin/lib/tui/services/ViteService.ts +88 -88
- package/bin/lib/tui/services/index.ts +47 -22
- package/bin/lib/utils/ai-scaffold.js +291 -280
- package/bin/lib/utils/extract-config.js +157 -140
- package/bin/lib/utils/files.js +82 -86
- package/bin/lib/utils/index.js +7 -7
- package/bin/lib/utils/paths.js +34 -34
- package/bin/lib/utils/prompts.js +194 -169
- package/bin/lib/utils/ssl.js +79 -81
- package/browser-extensions/README.md +0 -1
- package/browser-extensions/chrome/background.js +244 -237
- package/browser-extensions/chrome/content.js +32 -29
- package/browser-extensions/chrome/devtools.html +7 -7
- package/browser-extensions/chrome/devtools.js +19 -19
- package/browser-extensions/chrome/inspector.js +802 -767
- package/browser-extensions/chrome/manifest.json +71 -63
- package/browser-extensions/chrome/panel.html +674 -636
- package/browser-extensions/chrome/panel.js +722 -712
- package/browser-extensions/chrome/popup.html +586 -543
- package/browser-extensions/chrome/popup.js +282 -244
- package/browser-extensions/chrome/rules.json +1 -1
- package/browser-extensions/chrome/test-chrome.html +216 -136
- package/browser-extensions/chrome/test-mixed-content.html +284 -189
- package/browser-extensions/chrome/test-uri-pattern.html +221 -198
- package/browser-extensions/firefox/README.md +9 -6
- package/browser-extensions/firefox/background.js +221 -218
- package/browser-extensions/firefox/content.js +55 -52
- package/browser-extensions/firefox/debug-errors.html +386 -228
- package/browser-extensions/firefox/debug-https.html +153 -105
- package/browser-extensions/firefox/devtools.html +7 -7
- package/browser-extensions/firefox/devtools.js +23 -20
- package/browser-extensions/firefox/inspector.js +802 -767
- package/browser-extensions/firefox/manifest.json +68 -68
- package/browser-extensions/firefox/panel.html +674 -636
- package/browser-extensions/firefox/panel.js +722 -712
- package/browser-extensions/firefox/popup.html +572 -535
- package/browser-extensions/firefox/popup.js +281 -236
- package/browser-extensions/firefox/test-gramercy.html +170 -125
- package/browser-extensions/firefox/test-imports.html +59 -55
- package/browser-extensions/firefox/test-masking.html +231 -140
- package/browser-extensions/firefox/test-uri-pattern.html +221 -198
- package/dist/tui/App.d.ts +1 -1
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +154 -150
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/components/AIPanel.d.ts.map +1 -1
- package/dist/tui/components/AIPanel.js +42 -35
- package/dist/tui/components/AIPanel.js.map +1 -1
- package/dist/tui/components/CommandInput.d.ts +1 -1
- package/dist/tui/components/CommandInput.d.ts.map +1 -1
- package/dist/tui/components/CommandInput.js +92 -62
- package/dist/tui/components/CommandInput.js.map +1 -1
- package/dist/tui/components/GeminiPanel.d.ts.map +1 -1
- package/dist/tui/components/GeminiPanel.js +37 -30
- package/dist/tui/components/GeminiPanel.js.map +1 -1
- package/dist/tui/components/Header.d.ts.map +1 -1
- package/dist/tui/components/Header.js +1 -1
- package/dist/tui/components/Header.js.map +1 -1
- package/dist/tui/components/LogPanel.d.ts +1 -1
- package/dist/tui/components/LogPanel.d.ts.map +1 -1
- package/dist/tui/components/LogPanel.js +26 -24
- package/dist/tui/components/LogPanel.js.map +1 -1
- package/dist/tui/components/TabBar.d.ts +2 -2
- package/dist/tui/components/TabBar.d.ts.map +1 -1
- package/dist/tui/components/TabBar.js +11 -11
- package/dist/tui/components/TabBar.js.map +1 -1
- package/dist/tui/components/WelcomeScreen.d.ts.map +1 -1
- package/dist/tui/components/WelcomeScreen.js +6 -6
- package/dist/tui/components/WelcomeScreen.js.map +1 -1
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js +8 -8
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/services/AIService.d.ts +2 -2
- package/dist/tui/services/AIService.d.ts.map +1 -1
- package/dist/tui/services/AIService.js +165 -125
- package/dist/tui/services/AIService.js.map +1 -1
- package/dist/tui/services/ExtensionService.d.ts +1 -1
- package/dist/tui/services/ExtensionService.d.ts.map +1 -1
- package/dist/tui/services/ExtensionService.js +33 -26
- package/dist/tui/services/ExtensionService.js.map +1 -1
- package/dist/tui/services/GeminiService.d.ts +1 -1
- package/dist/tui/services/GeminiService.d.ts.map +1 -1
- package/dist/tui/services/GeminiService.js +87 -76
- package/dist/tui/services/GeminiService.js.map +1 -1
- package/dist/tui/services/ServiceManager.d.ts +3 -3
- package/dist/tui/services/ServiceManager.d.ts.map +1 -1
- package/dist/tui/services/ServiceManager.js +72 -58
- package/dist/tui/services/ServiceManager.js.map +1 -1
- package/dist/tui/services/SocketService.d.ts.map +1 -1
- package/dist/tui/services/SocketService.js +32 -32
- package/dist/tui/services/SocketService.js.map +1 -1
- package/dist/tui/services/ViteService.d.ts.map +1 -1
- package/dist/tui/services/ViteService.js +26 -28
- package/dist/tui/services/ViteService.js.map +1 -1
- package/dist/tui/services/index.d.ts +6 -6
- package/dist/tui/services/index.d.ts.map +1 -1
- package/dist/tui/services/index.js +6 -6
- package/dist/tui/services/index.js.map +1 -1
- package/mcp/gxp-api-server.js +83 -81
- package/package.json +109 -93
- package/runtime/PortalContainer.vue +258 -234
- package/runtime/dev-tools/DevToolsModal.vue +153 -155
- package/runtime/dev-tools/LayoutSwitcher.vue +144 -140
- package/runtime/dev-tools/MockDataEditor.vue +456 -433
- package/runtime/dev-tools/SocketSimulator.vue +379 -371
- package/runtime/dev-tools/StoreInspector.vue +517 -455
- package/runtime/dev-tools/index.js +5 -5
- package/runtime/fallback-layouts/PrivateLayout.vue +2 -2
- package/runtime/fallback-layouts/PublicLayout.vue +2 -2
- package/runtime/fallback-layouts/SystemLayout.vue +2 -2
- package/runtime/gxpStringsPlugin.js +159 -134
- package/runtime/index.html +17 -19
- package/runtime/main.js +24 -22
- package/runtime/mock-api/auth-middleware.js +15 -15
- package/runtime/mock-api/image-generator.js +46 -46
- package/runtime/mock-api/index.js +55 -55
- package/runtime/mock-api/response-generator.js +116 -105
- package/runtime/mock-api/route-generator.js +107 -84
- package/runtime/mock-api/socket-triggers.js +94 -93
- package/runtime/mock-api/spec-loader.js +79 -80
- package/runtime/package.json +3 -0
- package/runtime/server.js +68 -68
- package/runtime/stores/gxpPortalConfigStore.js +204 -186
- package/runtime/stores/index.js +2 -2
- package/runtime/vite-inspector-plugin.js +858 -707
- package/runtime/vite-source-tracker-plugin.js +132 -113
- package/runtime/vite.config.js +191 -139
- package/scripts/launch-chrome.js +41 -41
- package/scripts/pack-chrome.js +38 -39
- package/socket-events/AiSessionMessageCreated.json +17 -17
- package/socket-events/SocialStreamPostCreated.json +23 -23
- package/socket-events/SocialStreamPostVariantCompleted.json +22 -22
- package/template/.claude/agents/gxp-developer.md +100 -99
- package/template/.claude/settings.json +7 -7
- package/template/AGENTS.md +30 -23
- package/template/GEMINI.md +20 -20
- package/template/README.md +70 -53
- package/template/app-manifest.json +2 -4
- package/template/configuration.json +10 -10
- package/template/default-styling.css +1 -1
- package/template/index.html +18 -20
- package/template/main.js +24 -22
- package/template/src/DemoPage.vue +415 -362
- package/template/src/Plugin.vue +76 -85
- package/template/src/stores/index.js +3 -3
- package/template/src/stores/test-data.json +164 -172
- package/template/theme-layouts/AdditionalStyling.css +50 -50
- package/template/theme-layouts/PrivateLayout.vue +8 -12
- package/template/theme-layouts/PublicLayout.vue +8 -12
- package/template/theme-layouts/SystemLayout.vue +8 -12
- package/template/vite.extend.js +45 -0
- package/template/vite.config.js +0 -409
package/scripts/launch-chrome.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
const path = require("path")
|
|
4
|
-
const fs = require("fs")
|
|
3
|
+
const path = require("path")
|
|
4
|
+
const fs = require("fs")
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Get the dev server URL from environment variables
|
|
@@ -10,15 +10,15 @@ const fs = require("fs");
|
|
|
10
10
|
function getDevServerUrl() {
|
|
11
11
|
// Check for explicit START_URL first
|
|
12
12
|
if (process.env.START_URL) {
|
|
13
|
-
return process.env.START_URL
|
|
13
|
+
return process.env.START_URL
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
// Build URL from environment variables
|
|
17
|
-
const useHttps = process.env.USE_HTTPS !== "false"
|
|
18
|
-
const protocol = useHttps ? "https" : "http"
|
|
19
|
-
const port = process.env.NODE_PORT || 3060
|
|
17
|
+
const useHttps = process.env.USE_HTTPS !== "false"
|
|
18
|
+
const protocol = useHttps ? "https" : "http"
|
|
19
|
+
const port = process.env.NODE_PORT || 3060
|
|
20
20
|
|
|
21
|
-
return `${protocol}://localhost:${port}
|
|
21
|
+
return `${protocol}://localhost:${port}`
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
/**
|
|
@@ -26,10 +26,10 @@ function getDevServerUrl() {
|
|
|
26
26
|
* This creates a defaults.json file that the popup.js reads on load
|
|
27
27
|
*/
|
|
28
28
|
function generateExtensionDefaults(extensionPath) {
|
|
29
|
-
const useHttps = process.env.USE_HTTPS !== "false"
|
|
30
|
-
const protocol = useHttps ? "https" : "http"
|
|
31
|
-
const port = process.env.NODE_PORT || 3060
|
|
32
|
-
const baseUrl = `${protocol}://localhost:${port}
|
|
29
|
+
const useHttps = process.env.USE_HTTPS !== "false"
|
|
30
|
+
const protocol = useHttps ? "https" : "http"
|
|
31
|
+
const port = process.env.NODE_PORT || 3060
|
|
32
|
+
const baseUrl = `${protocol}://localhost:${port}`
|
|
33
33
|
|
|
34
34
|
const defaults = {
|
|
35
35
|
// Extension should be enabled by default when launched from CLI
|
|
@@ -48,13 +48,13 @@ function generateExtensionDefaults(extensionPath) {
|
|
|
48
48
|
// Cache settings
|
|
49
49
|
clearCacheOnEnable: true,
|
|
50
50
|
disableCacheForRedirects: true,
|
|
51
|
-
}
|
|
51
|
+
}
|
|
52
52
|
|
|
53
|
-
const defaultsPath = path.join(extensionPath, "defaults.json")
|
|
54
|
-
fs.writeFileSync(defaultsPath, JSON.stringify(defaults, null, 2))
|
|
55
|
-
console.log("📝 Generated extension defaults:", defaultsPath)
|
|
53
|
+
const defaultsPath = path.join(extensionPath, "defaults.json")
|
|
54
|
+
fs.writeFileSync(defaultsPath, JSON.stringify(defaults, null, 2))
|
|
55
|
+
console.log("📝 Generated extension defaults:", defaultsPath)
|
|
56
56
|
|
|
57
|
-
return defaults
|
|
57
|
+
return defaults
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
/**
|
|
@@ -62,34 +62,34 @@ function generateExtensionDefaults(extensionPath) {
|
|
|
62
62
|
*/
|
|
63
63
|
async function launchChromeWithExtension() {
|
|
64
64
|
// Dynamic import for chrome-launcher (ES module)
|
|
65
|
-
const { launch } = await import("chrome-launcher")
|
|
65
|
+
const { launch } = await import("chrome-launcher")
|
|
66
66
|
// Use environment variable if set (from CLI), otherwise use default path
|
|
67
67
|
const extensionPath =
|
|
68
68
|
process.env.CHROME_EXTENSION_PATH ||
|
|
69
|
-
path.resolve(__dirname, "../browser-extensions/chrome")
|
|
69
|
+
path.resolve(__dirname, "../browser-extensions/chrome")
|
|
70
70
|
|
|
71
71
|
// Verify extension directory exists
|
|
72
72
|
if (!fs.existsSync(extensionPath)) {
|
|
73
|
-
console.error("❌ Chrome extension directory not found:", extensionPath)
|
|
74
|
-
process.exit(1)
|
|
73
|
+
console.error("❌ Chrome extension directory not found:", extensionPath)
|
|
74
|
+
process.exit(1)
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
// Verify manifest.json exists
|
|
78
|
-
const manifestPath = path.join(extensionPath, "manifest.json")
|
|
78
|
+
const manifestPath = path.join(extensionPath, "manifest.json")
|
|
79
79
|
if (!fs.existsSync(manifestPath)) {
|
|
80
|
-
console.error("❌ Chrome extension manifest.json not found")
|
|
81
|
-
process.exit(1)
|
|
80
|
+
console.error("❌ Chrome extension manifest.json not found")
|
|
81
|
+
process.exit(1)
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
// Generate extension defaults based on environment
|
|
85
|
-
generateExtensionDefaults(extensionPath)
|
|
85
|
+
generateExtensionDefaults(extensionPath)
|
|
86
86
|
|
|
87
87
|
// Get the starting URL
|
|
88
|
-
const startingUrl = getDevServerUrl()
|
|
88
|
+
const startingUrl = getDevServerUrl()
|
|
89
89
|
|
|
90
|
-
console.log("🚀 Launching Chrome with extension...")
|
|
91
|
-
console.log("📁 Extension path:", extensionPath)
|
|
92
|
-
console.log("🌐 Opening URL:", startingUrl)
|
|
90
|
+
console.log("🚀 Launching Chrome with extension...")
|
|
91
|
+
console.log("📁 Extension path:", extensionPath)
|
|
92
|
+
console.log("🌐 Opening URL:", startingUrl)
|
|
93
93
|
|
|
94
94
|
try {
|
|
95
95
|
const chrome = await launch({
|
|
@@ -103,27 +103,27 @@ async function launchChromeWithExtension() {
|
|
|
103
103
|
"--no-default-browser-check",
|
|
104
104
|
],
|
|
105
105
|
startingUrl: startingUrl,
|
|
106
|
-
})
|
|
106
|
+
})
|
|
107
107
|
|
|
108
|
-
console.log("✅ Chrome launched successfully!")
|
|
109
|
-
console.log("🔧 Chrome debugging port:", chrome.port)
|
|
110
|
-
console.log("📋 Extension should be loaded in developer mode")
|
|
111
|
-
console.log("🌐 Navigate to chrome://extensions/ to see your extension")
|
|
108
|
+
console.log("✅ Chrome launched successfully!")
|
|
109
|
+
console.log("🔧 Chrome debugging port:", chrome.port)
|
|
110
|
+
console.log("📋 Extension should be loaded in developer mode")
|
|
111
|
+
console.log("🌐 Navigate to chrome://extensions/ to see your extension")
|
|
112
112
|
|
|
113
113
|
// Keep the process alive
|
|
114
114
|
process.on("SIGINT", async () => {
|
|
115
|
-
console.log("\n🛑 Shutting down Chrome...")
|
|
116
|
-
await chrome.kill()
|
|
117
|
-
process.exit(0)
|
|
118
|
-
})
|
|
115
|
+
console.log("\n🛑 Shutting down Chrome...")
|
|
116
|
+
await chrome.kill()
|
|
117
|
+
process.exit(0)
|
|
118
|
+
})
|
|
119
119
|
} catch (error) {
|
|
120
|
-
console.error("❌ Failed to launch Chrome:", error.message)
|
|
121
|
-
process.exit(1)
|
|
120
|
+
console.error("❌ Failed to launch Chrome:", error.message)
|
|
121
|
+
process.exit(1)
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
if (require.main === module) {
|
|
126
|
-
launchChromeWithExtension()
|
|
126
|
+
launchChromeWithExtension()
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
module.exports = launchChromeWithExtension
|
|
129
|
+
module.exports = launchChromeWithExtension
|
package/scripts/pack-chrome.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
const path = require("path")
|
|
4
|
-
const fs = require("fs")
|
|
5
|
-
const shell = require("shelljs")
|
|
3
|
+
const path = require("path")
|
|
4
|
+
const fs = require("fs")
|
|
5
|
+
const shell = require("shelljs")
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Packages Chrome extension into a distributable format
|
|
@@ -10,82 +10,81 @@ const shell = require("shelljs");
|
|
|
10
10
|
function packChromeExtension() {
|
|
11
11
|
const extensionPath =
|
|
12
12
|
process.env.CHROME_EXTENSION_PATH ||
|
|
13
|
-
path.resolve(__dirname, "../browser-extensions/chrome")
|
|
13
|
+
path.resolve(__dirname, "../browser-extensions/chrome")
|
|
14
14
|
const distPath =
|
|
15
|
-
process.env.CHROME_BUILD_OUTPUT ||
|
|
16
|
-
path.resolve(__dirname, "../dist/chrome");
|
|
15
|
+
process.env.CHROME_BUILD_OUTPUT || path.resolve(__dirname, "../dist/chrome")
|
|
17
16
|
|
|
18
|
-
console.log("📦 Packaging Chrome extension...")
|
|
17
|
+
console.log("📦 Packaging Chrome extension...")
|
|
19
18
|
|
|
20
19
|
// Verify extension directory exists
|
|
21
20
|
if (!fs.existsSync(extensionPath)) {
|
|
22
|
-
console.error("❌ Chrome extension directory not found:", extensionPath)
|
|
23
|
-
process.exit(1)
|
|
21
|
+
console.error("❌ Chrome extension directory not found:", extensionPath)
|
|
22
|
+
process.exit(1)
|
|
24
23
|
}
|
|
25
24
|
|
|
26
25
|
// Create dist directory
|
|
27
26
|
if (!fs.existsSync(distPath)) {
|
|
28
|
-
fs.mkdirSync(distPath, { recursive: true })
|
|
27
|
+
fs.mkdirSync(distPath, { recursive: true })
|
|
29
28
|
}
|
|
30
29
|
|
|
31
30
|
// Read manifest to get version
|
|
32
|
-
const manifestPath = path.join(extensionPath, "manifest.json")
|
|
33
|
-
let version = "1.0.0"
|
|
31
|
+
const manifestPath = path.join(extensionPath, "manifest.json")
|
|
32
|
+
let version = "1.0.0"
|
|
34
33
|
|
|
35
34
|
try {
|
|
36
|
-
const manifest = JSON.parse(fs.readFileSync(manifestPath, "utf-8"))
|
|
37
|
-
version = manifest.version || "1.0.0"
|
|
38
|
-
console.log(`📋 Extension version: ${version}`)
|
|
35
|
+
const manifest = JSON.parse(fs.readFileSync(manifestPath, "utf-8"))
|
|
36
|
+
version = manifest.version || "1.0.0"
|
|
37
|
+
console.log(`📋 Extension version: ${version}`)
|
|
39
38
|
} catch (error) {
|
|
40
|
-
console.warn("⚠️ Could not read manifest version, using default")
|
|
39
|
+
console.warn("⚠️ Could not read manifest version, using default")
|
|
41
40
|
}
|
|
42
41
|
|
|
43
42
|
// Create zip file
|
|
44
|
-
const zipName = `gx-chrome-extension-v${version}.zip
|
|
45
|
-
const zipPath = path.join(distPath, zipName)
|
|
43
|
+
const zipName = `gx-chrome-extension-v${version}.zip`
|
|
44
|
+
const zipPath = path.join(distPath, zipName)
|
|
46
45
|
|
|
47
|
-
console.log("🗜️ Creating zip archive...")
|
|
46
|
+
console.log("🗜️ Creating zip archive...")
|
|
48
47
|
|
|
49
48
|
// Change to extension directory and create zip
|
|
50
|
-
const currentDir = process.cwd()
|
|
49
|
+
const currentDir = process.cwd()
|
|
51
50
|
|
|
52
51
|
try {
|
|
53
|
-
process.chdir(extensionPath)
|
|
52
|
+
process.chdir(extensionPath)
|
|
54
53
|
|
|
55
54
|
// Remove existing zip if it exists
|
|
56
55
|
if (fs.existsSync(zipPath)) {
|
|
57
|
-
fs.unlinkSync(zipPath)
|
|
56
|
+
fs.unlinkSync(zipPath)
|
|
58
57
|
}
|
|
59
58
|
|
|
60
59
|
// Create zip using native zip command (works on macOS/Linux)
|
|
61
60
|
const result = shell.exec(
|
|
62
61
|
`zip -r "${zipPath}" . -x "*.DS_Store" "*.git*" "node_modules/*"`,
|
|
63
|
-
{ silent: true }
|
|
64
|
-
)
|
|
62
|
+
{ silent: true },
|
|
63
|
+
)
|
|
65
64
|
|
|
66
65
|
if (result.code === 0) {
|
|
67
|
-
console.log("✅ Chrome extension packaged successfully!")
|
|
68
|
-
console.log("📁 Package location:", zipPath)
|
|
69
|
-
console.log("")
|
|
70
|
-
console.log("📋 Manual installation instructions:")
|
|
71
|
-
console.log("1. Open Chrome and go to chrome://extensions/")
|
|
72
|
-
console.log('2. Enable "Developer mode" (toggle in top right)')
|
|
73
|
-
console.log('3. Click "Load unpacked" and select:', extensionPath)
|
|
74
|
-
console.log("4. Or drag and drop the zip file to install")
|
|
66
|
+
console.log("✅ Chrome extension packaged successfully!")
|
|
67
|
+
console.log("📁 Package location:", zipPath)
|
|
68
|
+
console.log("")
|
|
69
|
+
console.log("📋 Manual installation instructions:")
|
|
70
|
+
console.log("1. Open Chrome and go to chrome://extensions/")
|
|
71
|
+
console.log('2. Enable "Developer mode" (toggle in top right)')
|
|
72
|
+
console.log('3. Click "Load unpacked" and select:', extensionPath)
|
|
73
|
+
console.log("4. Or drag and drop the zip file to install")
|
|
75
74
|
} else {
|
|
76
|
-
console.error("❌ Failed to create zip archive")
|
|
77
|
-
process.exit(1)
|
|
75
|
+
console.error("❌ Failed to create zip archive")
|
|
76
|
+
process.exit(1)
|
|
78
77
|
}
|
|
79
78
|
} catch (error) {
|
|
80
|
-
console.error("❌ Error packaging extension:", error.message)
|
|
81
|
-
process.exit(1)
|
|
79
|
+
console.error("❌ Error packaging extension:", error.message)
|
|
80
|
+
process.exit(1)
|
|
82
81
|
} finally {
|
|
83
|
-
process.chdir(currentDir)
|
|
82
|
+
process.chdir(currentDir)
|
|
84
83
|
}
|
|
85
84
|
}
|
|
86
85
|
|
|
87
86
|
if (require.main === module) {
|
|
88
|
-
packChromeExtension()
|
|
87
|
+
packChromeExtension()
|
|
89
88
|
}
|
|
90
89
|
|
|
91
|
-
module.exports = packChromeExtension
|
|
90
|
+
module.exports = packChromeExtension
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
2
|
+
"event": "AiSessionMessageCreated",
|
|
3
|
+
"channel": "private.AiInterface.ai_interface_background_remover",
|
|
4
|
+
"data": {
|
|
5
|
+
"id": 1234,
|
|
6
|
+
"ai_session_id": 567,
|
|
7
|
+
"message": "Background removal process completed successfully",
|
|
8
|
+
"type": "completion",
|
|
9
|
+
"metadata": {
|
|
10
|
+
"processing_time": 2.3,
|
|
11
|
+
"input_image": "/dev-assets/images/product-placeholder.jpg",
|
|
12
|
+
"output_image": "/dev-assets/images/background-placeholder.jpg",
|
|
13
|
+
"confidence": 0.95
|
|
14
|
+
},
|
|
15
|
+
"created_at": "2024-01-15T10:30:00Z",
|
|
16
|
+
"updated_at": "2024-01-15T10:30:00Z"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
2
|
+
"event": "SocialStreamPostCreated",
|
|
3
|
+
"channel": "private.SocialStream.social_stream",
|
|
4
|
+
"data": {
|
|
5
|
+
"id": 789,
|
|
6
|
+
"social_stream_id": 123,
|
|
7
|
+
"content": "Check out this amazing photo from our event!",
|
|
8
|
+
"author": {
|
|
9
|
+
"id": 456,
|
|
10
|
+
"name": "John Doe",
|
|
11
|
+
"avatar": "/dev-assets/images/avatar-placeholder.png"
|
|
12
|
+
},
|
|
13
|
+
"media": {
|
|
14
|
+
"type": "image",
|
|
15
|
+
"url": "/dev-assets/images/product-placeholder.jpg",
|
|
16
|
+
"thumbnail": "/dev-assets/images/thumbnail-placeholder.jpg"
|
|
17
|
+
},
|
|
18
|
+
"hashtags": ["#event", "#photography", "#memories"],
|
|
19
|
+
"likes_count": 0,
|
|
20
|
+
"comments_count": 0,
|
|
21
|
+
"created_at": "2024-01-15T10:35:00Z",
|
|
22
|
+
"updated_at": "2024-01-15T10:35:00Z"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
2
|
+
"event": "SocialStreamPostVariantCompleted",
|
|
3
|
+
"channel": "private.SocialStream.social_stream",
|
|
4
|
+
"data": {
|
|
5
|
+
"id": 789,
|
|
6
|
+
"social_stream_post_id": 789,
|
|
7
|
+
"variant_type": "ai_generated_style",
|
|
8
|
+
"variant_data": {
|
|
9
|
+
"style": "vintage",
|
|
10
|
+
"filter": "sepia_tone",
|
|
11
|
+
"processed_image": "http://localhost:3069/dev-assets/images/banner-placeholder.jpg",
|
|
12
|
+
"processing_details": {
|
|
13
|
+
"ai_model": "StyleTransfer-v2.1",
|
|
14
|
+
"processing_time": 4.7,
|
|
15
|
+
"quality_score": 0.89
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"status": "completed",
|
|
19
|
+
"completed_at": "2024-01-15T10:37:30Z",
|
|
20
|
+
"created_at": "2024-01-15T10:35:15Z",
|
|
21
|
+
"updated_at": "2024-01-15T10:37:30Z"
|
|
22
|
+
}
|
|
23
|
+
}
|