@gxp-dev/tools 2.0.63 → 2.0.65

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 (182) hide show
  1. package/README.md +32 -31
  2. package/bin/gx-devtools.js +74 -54
  3. package/bin/lib/cli.js +23 -21
  4. package/bin/lib/commands/add-dependency.js +366 -325
  5. package/bin/lib/commands/assets.js +137 -139
  6. package/bin/lib/commands/build.js +169 -174
  7. package/bin/lib/commands/datastore.js +181 -183
  8. package/bin/lib/commands/dev.js +127 -131
  9. package/bin/lib/commands/extensions.js +147 -149
  10. package/bin/lib/commands/extract-config.js +73 -67
  11. package/bin/lib/commands/index.js +12 -12
  12. package/bin/lib/commands/init.js +342 -240
  13. package/bin/lib/commands/publish.js +69 -75
  14. package/bin/lib/commands/socket.js +69 -69
  15. package/bin/lib/commands/ssl.js +14 -14
  16. package/bin/lib/constants.js +10 -24
  17. package/bin/lib/tui/App.tsx +761 -705
  18. package/bin/lib/tui/components/AIPanel.tsx +191 -171
  19. package/bin/lib/tui/components/CommandInput.tsx +394 -343
  20. package/bin/lib/tui/components/GeminiPanel.tsx +175 -151
  21. package/bin/lib/tui/components/Header.tsx +23 -21
  22. package/bin/lib/tui/components/LogPanel.tsx +244 -220
  23. package/bin/lib/tui/components/TabBar.tsx +50 -48
  24. package/bin/lib/tui/components/WelcomeScreen.tsx +126 -71
  25. package/bin/lib/tui/index.tsx +37 -39
  26. package/bin/lib/tui/services/AIService.ts +518 -462
  27. package/bin/lib/tui/services/ExtensionService.ts +140 -129
  28. package/bin/lib/tui/services/GeminiService.ts +367 -337
  29. package/bin/lib/tui/services/ServiceManager.ts +344 -322
  30. package/bin/lib/tui/services/SocketService.ts +168 -168
  31. package/bin/lib/tui/services/ViteService.ts +88 -88
  32. package/bin/lib/tui/services/index.ts +47 -22
  33. package/bin/lib/utils/ai-scaffold.js +291 -280
  34. package/bin/lib/utils/extract-config.js +157 -140
  35. package/bin/lib/utils/files.js +82 -86
  36. package/bin/lib/utils/index.js +7 -7
  37. package/bin/lib/utils/paths.js +34 -34
  38. package/bin/lib/utils/prompts.js +194 -169
  39. package/bin/lib/utils/ssl.js +79 -81
  40. package/browser-extensions/README.md +0 -1
  41. package/browser-extensions/chrome/background.js +244 -237
  42. package/browser-extensions/chrome/content.js +32 -29
  43. package/browser-extensions/chrome/devtools.html +7 -7
  44. package/browser-extensions/chrome/devtools.js +19 -19
  45. package/browser-extensions/chrome/inspector.js +802 -767
  46. package/browser-extensions/chrome/manifest.json +71 -63
  47. package/browser-extensions/chrome/panel.html +674 -636
  48. package/browser-extensions/chrome/panel.js +722 -712
  49. package/browser-extensions/chrome/popup.html +586 -543
  50. package/browser-extensions/chrome/popup.js +282 -244
  51. package/browser-extensions/chrome/rules.json +1 -1
  52. package/browser-extensions/chrome/test-chrome.html +216 -136
  53. package/browser-extensions/chrome/test-mixed-content.html +284 -189
  54. package/browser-extensions/chrome/test-uri-pattern.html +221 -198
  55. package/browser-extensions/firefox/README.md +9 -6
  56. package/browser-extensions/firefox/background.js +221 -218
  57. package/browser-extensions/firefox/content.js +55 -52
  58. package/browser-extensions/firefox/debug-errors.html +386 -228
  59. package/browser-extensions/firefox/debug-https.html +153 -105
  60. package/browser-extensions/firefox/devtools.html +7 -7
  61. package/browser-extensions/firefox/devtools.js +23 -20
  62. package/browser-extensions/firefox/inspector.js +802 -767
  63. package/browser-extensions/firefox/manifest.json +68 -68
  64. package/browser-extensions/firefox/panel.html +674 -636
  65. package/browser-extensions/firefox/panel.js +722 -712
  66. package/browser-extensions/firefox/popup.html +572 -535
  67. package/browser-extensions/firefox/popup.js +281 -236
  68. package/browser-extensions/firefox/test-gramercy.html +170 -125
  69. package/browser-extensions/firefox/test-imports.html +59 -55
  70. package/browser-extensions/firefox/test-masking.html +231 -140
  71. package/browser-extensions/firefox/test-uri-pattern.html +221 -198
  72. package/dist/tui/App.d.ts +1 -1
  73. package/dist/tui/App.d.ts.map +1 -1
  74. package/dist/tui/App.js +154 -150
  75. package/dist/tui/App.js.map +1 -1
  76. package/dist/tui/components/AIPanel.d.ts.map +1 -1
  77. package/dist/tui/components/AIPanel.js +42 -35
  78. package/dist/tui/components/AIPanel.js.map +1 -1
  79. package/dist/tui/components/CommandInput.d.ts +1 -1
  80. package/dist/tui/components/CommandInput.d.ts.map +1 -1
  81. package/dist/tui/components/CommandInput.js +92 -62
  82. package/dist/tui/components/CommandInput.js.map +1 -1
  83. package/dist/tui/components/GeminiPanel.d.ts.map +1 -1
  84. package/dist/tui/components/GeminiPanel.js +37 -30
  85. package/dist/tui/components/GeminiPanel.js.map +1 -1
  86. package/dist/tui/components/Header.d.ts.map +1 -1
  87. package/dist/tui/components/Header.js +1 -1
  88. package/dist/tui/components/Header.js.map +1 -1
  89. package/dist/tui/components/LogPanel.d.ts +1 -1
  90. package/dist/tui/components/LogPanel.d.ts.map +1 -1
  91. package/dist/tui/components/LogPanel.js +26 -24
  92. package/dist/tui/components/LogPanel.js.map +1 -1
  93. package/dist/tui/components/TabBar.d.ts +2 -2
  94. package/dist/tui/components/TabBar.d.ts.map +1 -1
  95. package/dist/tui/components/TabBar.js +11 -11
  96. package/dist/tui/components/TabBar.js.map +1 -1
  97. package/dist/tui/components/WelcomeScreen.d.ts.map +1 -1
  98. package/dist/tui/components/WelcomeScreen.js +6 -6
  99. package/dist/tui/components/WelcomeScreen.js.map +1 -1
  100. package/dist/tui/index.d.ts.map +1 -1
  101. package/dist/tui/index.js +8 -8
  102. package/dist/tui/index.js.map +1 -1
  103. package/dist/tui/services/AIService.d.ts +2 -2
  104. package/dist/tui/services/AIService.d.ts.map +1 -1
  105. package/dist/tui/services/AIService.js +165 -125
  106. package/dist/tui/services/AIService.js.map +1 -1
  107. package/dist/tui/services/ExtensionService.d.ts +1 -1
  108. package/dist/tui/services/ExtensionService.d.ts.map +1 -1
  109. package/dist/tui/services/ExtensionService.js +33 -26
  110. package/dist/tui/services/ExtensionService.js.map +1 -1
  111. package/dist/tui/services/GeminiService.d.ts +1 -1
  112. package/dist/tui/services/GeminiService.d.ts.map +1 -1
  113. package/dist/tui/services/GeminiService.js +87 -76
  114. package/dist/tui/services/GeminiService.js.map +1 -1
  115. package/dist/tui/services/ServiceManager.d.ts +3 -3
  116. package/dist/tui/services/ServiceManager.d.ts.map +1 -1
  117. package/dist/tui/services/ServiceManager.js +72 -58
  118. package/dist/tui/services/ServiceManager.js.map +1 -1
  119. package/dist/tui/services/SocketService.d.ts.map +1 -1
  120. package/dist/tui/services/SocketService.js +32 -32
  121. package/dist/tui/services/SocketService.js.map +1 -1
  122. package/dist/tui/services/ViteService.d.ts.map +1 -1
  123. package/dist/tui/services/ViteService.js +26 -28
  124. package/dist/tui/services/ViteService.js.map +1 -1
  125. package/dist/tui/services/index.d.ts +6 -6
  126. package/dist/tui/services/index.d.ts.map +1 -1
  127. package/dist/tui/services/index.js +6 -6
  128. package/dist/tui/services/index.js.map +1 -1
  129. package/mcp/gxp-api-server.js +83 -81
  130. package/package.json +109 -93
  131. package/runtime/PortalContainer.vue +258 -234
  132. package/runtime/dev-tools/DevToolsModal.vue +153 -155
  133. package/runtime/dev-tools/LayoutSwitcher.vue +144 -140
  134. package/runtime/dev-tools/MockDataEditor.vue +456 -433
  135. package/runtime/dev-tools/SocketSimulator.vue +379 -371
  136. package/runtime/dev-tools/StoreInspector.vue +517 -455
  137. package/runtime/dev-tools/index.js +5 -5
  138. package/runtime/fallback-layouts/PrivateLayout.vue +2 -2
  139. package/runtime/fallback-layouts/PublicLayout.vue +2 -2
  140. package/runtime/fallback-layouts/SystemLayout.vue +2 -2
  141. package/runtime/gxpStringsPlugin.js +159 -134
  142. package/runtime/index.html +17 -19
  143. package/runtime/main.js +24 -22
  144. package/runtime/mock-api/auth-middleware.js +15 -15
  145. package/runtime/mock-api/image-generator.js +46 -46
  146. package/runtime/mock-api/index.js +55 -55
  147. package/runtime/mock-api/response-generator.js +116 -105
  148. package/runtime/mock-api/route-generator.js +107 -84
  149. package/runtime/mock-api/socket-triggers.js +94 -93
  150. package/runtime/mock-api/spec-loader.js +79 -80
  151. package/runtime/package.json +3 -0
  152. package/runtime/server.js +68 -68
  153. package/runtime/stores/gxpPortalConfigStore.js +204 -186
  154. package/runtime/stores/index.js +2 -2
  155. package/runtime/vite-inspector-plugin.js +858 -707
  156. package/runtime/vite-source-tracker-plugin.js +132 -113
  157. package/runtime/vite.config.js +191 -139
  158. package/scripts/launch-chrome.js +41 -41
  159. package/scripts/pack-chrome.js +38 -39
  160. package/socket-events/AiSessionMessageCreated.json +17 -17
  161. package/socket-events/SocialStreamPostCreated.json +23 -23
  162. package/socket-events/SocialStreamPostVariantCompleted.json +22 -22
  163. package/template/.claude/agents/gxp-developer.md +100 -99
  164. package/template/.claude/settings.json +7 -7
  165. package/template/AGENTS.md +30 -23
  166. package/template/GEMINI.md +20 -20
  167. package/template/README.md +70 -53
  168. package/template/app-manifest.json +2 -4
  169. package/template/configuration.json +10 -10
  170. package/template/default-styling.css +1 -1
  171. package/template/index.html +18 -20
  172. package/template/main.js +24 -22
  173. package/template/src/DemoPage.vue +415 -362
  174. package/template/src/Plugin.vue +76 -85
  175. package/template/src/stores/index.js +3 -3
  176. package/template/src/stores/test-data.json +164 -172
  177. package/template/theme-layouts/AdditionalStyling.css +50 -50
  178. package/template/theme-layouts/PrivateLayout.vue +8 -12
  179. package/template/theme-layouts/PublicLayout.vue +8 -12
  180. package/template/theme-layouts/SystemLayout.vue +8 -12
  181. package/template/vite.extend.js +45 -0
  182. package/template/vite.config.js +0 -409
@@ -1,100 +1,91 @@
1
1
  <template>
2
- <!-- Your Custom Plugin Content -->
3
- <DemoPage
4
- :router="mockRouter"
5
- />
6
- </template>
7
-
8
-
9
-
10
- <script setup>
11
- import { ref, shallowRef } from "vue";
12
- import DemoPage from "@/DemoPage.vue";
2
+ <!-- Your Custom Plugin Content -->
3
+ <DemoPage :router="mockRouter" />
4
+ </template>
13
5
 
14
- // Initialize the GxP store
15
- // This import is externalized to window.useGxpStore during build for platform compatibility
16
- import { useGxpStore } from "@/stores/gxpPortalConfigStore";
17
-
18
-
19
- const gxpStore = useGxpStore();
20
- gxpStore.sockets?.primary.listenForStateChange((event) => {
21
- console.log('🔗 GXP Store: State change event received', event);
22
- })
23
-
6
+ <script setup>
7
+ import { ref, shallowRef } from "vue"
8
+ import DemoPage from "@/DemoPage.vue"
24
9
 
10
+ // Initialize the GxP store
11
+ // This import is externalized to window.useGxpStore during build for platform compatibility
12
+ import { useGxpStore } from "@/stores/gxpPortalConfigStore"
25
13
 
26
- </script>
14
+ const gxpStore = useGxpStore()
15
+ gxpStore.sockets?.primary.listenForStateChange((event) => {
16
+ console.log("🔗 GXP Store: State change event received", event)
17
+ })
18
+ </script>
27
19
 
28
- <style>
29
- #app {
30
- font-family: Avenir, Helvetica, Arial, sans-serif;
31
- -webkit-font-smoothing: antialiased;
32
- -moz-osx-font-smoothing: grayscale;
33
- }
34
-
35
- /* Primary Color */
36
- .primary {
37
- color: var(--primary, #000000);
38
- }
20
+ <style>
21
+ #app {
22
+ font-family: Avenir, Helvetica, Arial, sans-serif;
23
+ -webkit-font-smoothing: antialiased;
24
+ -moz-osx-font-smoothing: grayscale;
25
+ }
39
26
 
40
- /* Page Styles */
41
- .page {
42
- background-color: var(--page_background_color, #000466);
43
- color: var(--page_text_color, #FFFFFF);
44
- }
27
+ /* Primary Color */
28
+ .primary {
29
+ color: var(--primary, #000000);
30
+ }
45
31
 
46
- /* Input Field Styles */
47
- .input-field {
48
- background-color: var(--input_field_background_color, #03054a);
49
- color: var(--input_field_text_color, #FFFFFF);
50
- border-color: var(--input_field_border_color, #888C92);
51
- }
32
+ /* Page Styles */
33
+ .page {
34
+ background-color: var(--page_background_color, #000466);
35
+ color: var(--page_text_color, #ffffff);
36
+ }
52
37
 
53
- /* Primary Button Styles */
54
- .primary-button {
55
- background-color: var(--primary_button_background_color, #FFFFFF);
56
- color: var(--primary_button_text_color, #000596);
57
- border-color: var(--primary_button_border_color, #FFFFFF);
58
- }
38
+ /* Input Field Styles */
39
+ .input-field {
40
+ background-color: var(--input_field_background_color, #03054a);
41
+ color: var(--input_field_text_color, #ffffff);
42
+ border-color: var(--input_field_border_color, #888c92);
43
+ }
59
44
 
60
- /* Secondary Button Styles */
61
- .secondary-button {
62
- background-color: var(--secondary_button_background_color, #000466);
63
- color: var(--secondary_button_text_color, #FFFFFF);
64
- border-color: var(--secondary_button_border_color, #FFFFFF);
65
- }
45
+ /* Primary Button Styles */
46
+ .primary-button {
47
+ background-color: var(--primary_button_background_color, #ffffff);
48
+ color: var(--primary_button_text_color, #000596);
49
+ border-color: var(--primary_button_border_color, #ffffff);
50
+ }
66
51
 
67
- /* Tertiary Button Styles */
68
- .tertiary-button {
69
- background-color: var(--tertiary_button_background_color, #FFFFFF00);
70
- color: var(--tertiary_button_text_color, #FFFFFF);
71
- border-color: var(--tertiary_button_border_color, #FFFFFF00);
72
- }
52
+ /* Secondary Button Styles */
53
+ .secondary-button {
54
+ background-color: var(--secondary_button_background_color, #000466);
55
+ color: var(--secondary_button_text_color, #ffffff);
56
+ border-color: var(--secondary_button_border_color, #ffffff);
57
+ }
73
58
 
74
- /* Spinner Styles */
75
- .spinner {
76
- background-color: var(--spinner_background_color, #03054A);
77
- color: var(--spinner_color, #FFFFFF);
78
- }
59
+ /* Tertiary Button Styles */
60
+ .tertiary-button {
61
+ background-color: var(--tertiary_button_background_color, #ffffff00);
62
+ color: var(--tertiary_button_text_color, #ffffff);
63
+ border-color: var(--tertiary_button_border_color, #ffffff00);
64
+ }
79
65
 
80
- /* Modal Styles */
81
- .modal {
82
- background-color: var(--modal_background_color, #FFFFFF);
83
- color: var(--modal_text_color, #222222);
84
- }
66
+ /* Spinner Styles */
67
+ .spinner {
68
+ background-color: var(--spinner_background_color, #03054a);
69
+ color: var(--spinner_color, #ffffff);
70
+ }
85
71
 
86
- /* Modal Primary Button Styles */
87
- .modal-primary-button {
88
- background-color: var(--modal_primary_button_background_color, #000596);
89
- color: var(--modal_primary_button_text_color, #FFFFFF);
90
- border-color: var(--modal_primary_button_border_color, #000596);
91
- }
72
+ /* Modal Styles */
73
+ .modal {
74
+ background-color: var(--modal_background_color, #ffffff);
75
+ color: var(--modal_text_color, #222222);
76
+ }
92
77
 
93
- /* Modal Secondary Button Styles */
94
- .modal-secondary-button {
95
- background-color: var(--modal_secondary_button_background_color, #FFFFFF);
96
- color: var(--modal_secondary_button_text_color, #000596);
97
- border-color: var(--modal_secondary_button_border_color, #000596);
98
- }
78
+ /* Modal Primary Button Styles */
79
+ .modal-primary-button {
80
+ background-color: var(--modal_primary_button_background_color, #000596);
81
+ color: var(--modal_primary_button_text_color, #ffffff);
82
+ border-color: var(--modal_primary_button_border_color, #000596);
83
+ }
99
84
 
100
- </style>
85
+ /* Modal Secondary Button Styles */
86
+ .modal-secondary-button {
87
+ background-color: var(--modal_secondary_button_background_color, #ffffff);
88
+ color: var(--modal_secondary_button_text_color, #000596);
89
+ border-color: var(--modal_secondary_button_border_color, #000596);
90
+ }
91
+ </style>
@@ -1,9 +1,9 @@
1
1
  // Import from package runtime directory by default
2
2
  // To customize, run: gxdev publish gxpPortalConfigStore.js
3
3
  // Then update this import to: import { useGxpStore } from './gxpPortalConfigStore.js';
4
- import { useGxpStore } from "@gxp-dev/tools/runtime/stores/gxpPortalConfigStore";
4
+ import { useGxpStore } from "@gxp-dev/tools/runtime/stores/gxpPortalConfigStore"
5
5
 
6
6
  // Expose to window for platform compatibility and externalized imports
7
- window.useGxpStore = useGxpStore;
7
+ window.useGxpStore = useGxpStore
8
8
 
9
- export { useGxpStore };
9
+ export { useGxpStore }
@@ -1,173 +1,165 @@
1
1
  {
2
- "pluginVars": {
3
- "primary_color": "#FFD600",
4
- "projectId": 39,
5
- "apiPageAuthId": "46|j7vCLmx2KG70Ig8R5mtUcNMFcHExvFPZEOv31kKGe1033f2b",
6
- "apiBaseUrl": "https://api.efcloud.app",
7
- "idle_timeout": "30",
8
- "background_color": "#ffffff",
9
- "text_color": "#333333",
10
- "start_background_color": "#000596",
11
- "start_text_color": "#FFFFFF",
12
- "final_background_color": "#4CAF50",
13
- "final_text_color": "#ffffff",
14
- "loading_spinner_color": "#dedede",
15
- "loading_spinner_accent_color": "#000596",
16
- "error_modal_background_color": "#FFFFFF",
17
- "error_modal_text_color": "#000596",
18
- "line_1": "Welcome to Your App!",
19
- "line_2": "Touch to begin your experience",
20
- "line_3": "Get started by touching the button below"
21
- },
22
- "stringsList": {
23
- "line_1": "Welcome to Your App!",
24
- "line_2": "Touch to begin your experience",
25
- "line_3": "Get started by touching the button below",
26
- "start_line_one": "Welcome to Your App!",
27
- "start_line_two": "Touch to begin your experience",
28
- "start_touch_start": "Get started by touching the button below",
29
- "final_line_one": "Thank You!",
30
- "final_line_two": "Your experience has been completed successfully",
31
- "final_line_three": "Touch anywhere to start over",
32
- "welcome_text": "Hello World",
33
- "loading_text": "Loading...",
34
- "error_title": "Oops!",
35
- "error_message": "Something went wrong. Please try again.",
36
- "continue_button": "Continue",
37
- "back_button": "Back",
38
- "retry_button": "Try Again"
39
- },
40
- "assetList": {
41
- "main_logo": "/dev-assets/images/logo-placeholder.png",
42
- "background_image": "/dev-assets/images/background-placeholder.jpg",
43
- "product_image": "/dev-assets/images/product-placeholder.jpg",
44
- "avatar_placeholder": "/dev-assets/images/avatar-placeholder.png",
45
- "icon_placeholder": "/dev-assets/images/icon-placeholder.png",
46
- "thumbnail": "/dev-assets/images/thumbnail-placeholder.jpg",
47
- "banner_image": "/dev-assets/images/banner-placeholder.jpg"
48
- },
49
- "dependencyList": [
50
- {
51
- "model": "AiInterface",
52
- "events": {
53
- "created": "AiSessionMessageCreated",
54
- "updated": "AiSessionMessageUpdated"
55
- },
56
- "identifier": "ai_interface_background_remover",
57
- "permissions": [
58
- "manage_ai_interfaces",
59
- "view_ai_interfaces",
60
- "view_ai_sessions",
61
- "view_ai_session_messages"
62
- ]
63
- },
64
- {
65
- "model": "AiInterface",
66
- "events": {
67
- "created": "AiSessionMessageCreated",
68
- "updated": "AiSessionMessageUpdated"
69
- },
70
- "identifier": "ai_interface_background_generator",
71
- "permissions": [
72
- "manage_ai_interfaces",
73
- "view_ai_interfaces",
74
- "view_ai_sessions",
75
- "view_ai_session_messages"
76
- ]
77
- },
78
- {
79
- "model": "AiInterface",
80
- "events": {
81
- "created": "AiSessionMessageCreated",
82
- "updated": "AiSessionMessageUpdated"
83
- },
84
- "identifier": "ai_interface",
85
- "permissions": [
86
- "manage_ai_interfaces",
87
- "view_ai_interfaces",
88
- "view_ai_sessions",
89
- "view_ai_session_messages"
90
- ]
91
- },
92
- {
93
- "model": "SocialStream",
94
- "events": {
95
- "created": "SocialStreamPostCreated",
96
- "deleted": "SocialStreamPostDeleted",
97
- "updated": "SocialStreamPostUpdated",
98
- "variantCompleted": "SocialStreamPostVariantCompleted"
99
- },
100
- "identifier": "social_stream",
101
- "permissions": [
102
- "view_social_streams",
103
- "view_social_stream_posts",
104
- "create_social_stream_posts",
105
- "manage_social_stream_posts"
106
- ]
107
- },
108
- {
109
- "model": "SocialStreamPost",
110
- "identifier": "social_stream_posts",
111
- "permissions": [
112
- "view_social_stream_posts:viewAny"
113
- ]
114
- },
115
- {
116
- "key": "slug",
117
- "model": "Group",
118
- "events": [],
119
- "identifier": "groups",
120
- "permissions": [
121
- "view_groups",
122
- "view_attendees"
123
- ]
124
- },
125
- {
126
- "model": "Attendee",
127
- "identifier": "attendees",
128
- "permissions": [
129
- "create_attendees:viewAny",
130
- "view_attendees:viewAny"
131
- ]
132
- }
133
- ],
134
- "permissionFlags": [
135
- "can_access_camera",
136
- "can_save_data",
137
- "can_share_content"
138
- ],
139
- "auth": {
140
- "token": "test-token-12345",
141
- "user_id": "test-user-67890",
142
- "expires_at": "2024-12-31T23:59:59Z"
143
- },
144
- "userSession": {
145
- "session_id": "session-abc123",
146
- "started_at": "2024-01-01T00:00:00Z",
147
- "ip_address": "127.0.0.1",
148
- "user_agent": "Test Browser"
149
- },
150
- "pluginData": {
151
- "plugin_id": "test-plugin-123",
152
- "version": "1.0.0",
153
- "environment": "development"
154
- },
155
- "portalAssets": {
156
- "favicon": "/portal/favicon.ico",
157
- "logo": "/portal/logo.png",
158
- "theme_css": "/portal/theme.css"
159
- },
160
- "portal": {
161
- "name": "Test Portal",
162
- "theme_colors": {
163
- "primary": "#FFD600",
164
- "secondary": "#000596",
165
- "accent": "#4CAF50"
166
- },
167
- "custom_settings": {
168
- "allow_guest_access": true,
169
- "session_timeout": 1800,
170
- "max_file_size": "10MB"
171
- }
172
- }
173
- }
2
+ "pluginVars": {
3
+ "primary_color": "#FFD600",
4
+ "projectId": 39,
5
+ "apiPageAuthId": "46|j7vCLmx2KG70Ig8R5mtUcNMFcHExvFPZEOv31kKGe1033f2b",
6
+ "apiBaseUrl": "https://api.efcloud.app",
7
+ "idle_timeout": "30",
8
+ "background_color": "#ffffff",
9
+ "text_color": "#333333",
10
+ "start_background_color": "#000596",
11
+ "start_text_color": "#FFFFFF",
12
+ "final_background_color": "#4CAF50",
13
+ "final_text_color": "#ffffff",
14
+ "loading_spinner_color": "#dedede",
15
+ "loading_spinner_accent_color": "#000596",
16
+ "error_modal_background_color": "#FFFFFF",
17
+ "error_modal_text_color": "#000596",
18
+ "line_1": "Welcome to Your App!",
19
+ "line_2": "Touch to begin your experience",
20
+ "line_3": "Get started by touching the button below"
21
+ },
22
+ "stringsList": {
23
+ "line_1": "Welcome to Your App!",
24
+ "line_2": "Touch to begin your experience",
25
+ "line_3": "Get started by touching the button below",
26
+ "start_line_one": "Welcome to Your App!",
27
+ "start_line_two": "Touch to begin your experience",
28
+ "start_touch_start": "Get started by touching the button below",
29
+ "final_line_one": "Thank You!",
30
+ "final_line_two": "Your experience has been completed successfully",
31
+ "final_line_three": "Touch anywhere to start over",
32
+ "welcome_text": "Hello World",
33
+ "loading_text": "Loading...",
34
+ "error_title": "Oops!",
35
+ "error_message": "Something went wrong. Please try again.",
36
+ "continue_button": "Continue",
37
+ "back_button": "Back",
38
+ "retry_button": "Try Again"
39
+ },
40
+ "assetList": {
41
+ "main_logo": "/dev-assets/images/logo-placeholder.png",
42
+ "background_image": "/dev-assets/images/background-placeholder.jpg",
43
+ "product_image": "/dev-assets/images/product-placeholder.jpg",
44
+ "avatar_placeholder": "/dev-assets/images/avatar-placeholder.png",
45
+ "icon_placeholder": "/dev-assets/images/icon-placeholder.png",
46
+ "thumbnail": "/dev-assets/images/thumbnail-placeholder.jpg",
47
+ "banner_image": "/dev-assets/images/banner-placeholder.jpg"
48
+ },
49
+ "dependencyList": [
50
+ {
51
+ "model": "AiInterface",
52
+ "events": {
53
+ "created": "AiSessionMessageCreated",
54
+ "updated": "AiSessionMessageUpdated"
55
+ },
56
+ "identifier": "ai_interface_background_remover",
57
+ "permissions": [
58
+ "manage_ai_interfaces",
59
+ "view_ai_interfaces",
60
+ "view_ai_sessions",
61
+ "view_ai_session_messages"
62
+ ]
63
+ },
64
+ {
65
+ "model": "AiInterface",
66
+ "events": {
67
+ "created": "AiSessionMessageCreated",
68
+ "updated": "AiSessionMessageUpdated"
69
+ },
70
+ "identifier": "ai_interface_background_generator",
71
+ "permissions": [
72
+ "manage_ai_interfaces",
73
+ "view_ai_interfaces",
74
+ "view_ai_sessions",
75
+ "view_ai_session_messages"
76
+ ]
77
+ },
78
+ {
79
+ "model": "AiInterface",
80
+ "events": {
81
+ "created": "AiSessionMessageCreated",
82
+ "updated": "AiSessionMessageUpdated"
83
+ },
84
+ "identifier": "ai_interface",
85
+ "permissions": [
86
+ "manage_ai_interfaces",
87
+ "view_ai_interfaces",
88
+ "view_ai_sessions",
89
+ "view_ai_session_messages"
90
+ ]
91
+ },
92
+ {
93
+ "model": "SocialStream",
94
+ "events": {
95
+ "created": "SocialStreamPostCreated",
96
+ "deleted": "SocialStreamPostDeleted",
97
+ "updated": "SocialStreamPostUpdated",
98
+ "variantCompleted": "SocialStreamPostVariantCompleted"
99
+ },
100
+ "identifier": "social_stream",
101
+ "permissions": [
102
+ "view_social_streams",
103
+ "view_social_stream_posts",
104
+ "create_social_stream_posts",
105
+ "manage_social_stream_posts"
106
+ ]
107
+ },
108
+ {
109
+ "model": "SocialStreamPost",
110
+ "identifier": "social_stream_posts",
111
+ "permissions": ["view_social_stream_posts:viewAny"]
112
+ },
113
+ {
114
+ "key": "slug",
115
+ "model": "Group",
116
+ "events": [],
117
+ "identifier": "groups",
118
+ "permissions": ["view_groups", "view_attendees"]
119
+ },
120
+ {
121
+ "model": "Attendee",
122
+ "identifier": "attendees",
123
+ "permissions": ["create_attendees:viewAny", "view_attendees:viewAny"]
124
+ }
125
+ ],
126
+ "permissionFlags": [
127
+ "can_access_camera",
128
+ "can_save_data",
129
+ "can_share_content"
130
+ ],
131
+ "auth": {
132
+ "token": "test-token-12345",
133
+ "user_id": "test-user-67890",
134
+ "expires_at": "2024-12-31T23:59:59Z"
135
+ },
136
+ "userSession": {
137
+ "session_id": "session-abc123",
138
+ "started_at": "2024-01-01T00:00:00Z",
139
+ "ip_address": "127.0.0.1",
140
+ "user_agent": "Test Browser"
141
+ },
142
+ "pluginData": {
143
+ "plugin_id": "test-plugin-123",
144
+ "version": "1.0.0",
145
+ "environment": "development"
146
+ },
147
+ "portalAssets": {
148
+ "favicon": "/portal/favicon.ico",
149
+ "logo": "/portal/logo.png",
150
+ "theme_css": "/portal/theme.css"
151
+ },
152
+ "portal": {
153
+ "name": "Test Portal",
154
+ "theme_colors": {
155
+ "primary": "#FFD600",
156
+ "secondary": "#000596",
157
+ "accent": "#4CAF50"
158
+ },
159
+ "custom_settings": {
160
+ "allow_guest_access": true,
161
+ "session_timeout": 1800,
162
+ "max_file_size": "10MB"
163
+ }
164
+ }
165
+ }