Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cbdebugger vue3 #49

Open
wants to merge 51 commits into
base: cbdebugger-vue
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
ed5a837
Merge branch 'development'
lmajano May 19, 2021
695572d
Merge branch 'development'
lmajano Jun 5, 2021
3dbd156
Merge branch 'development'
lmajano Jul 21, 2021
b79c747
v3.3.0 Release
lmajano Apr 21, 2022
09ad141
Merge branch 'development'
lmajano Apr 21, 2022
9af9403
Merge branch 'development'
lmajano May 2, 2022
af64f00
Merge branch 'development'
lmajano Jun 27, 2022
2fd4e1a
Merge branch 'development'
lmajano Jul 12, 2022
d22ca6e
v4.0 Release
lmajano Nov 22, 2022
20e6480
v4.0
lmajano Nov 22, 2022
f265c4f
Merge branches 'development' and 'master' of github.com:coldbox-modul…
lmajano Nov 22, 2022
c97dabc
Merge branch 'development'
lmajano Apr 17, 2023
5850cd8
Merge branch 'development'
lmajano Apr 17, 2023
b070b77
fix changelog build
lmajano Apr 17, 2023
9bc46a4
Finalized changelog for v4.1.0
Apr 17, 2023
32d096b
Merge branch 'development'
lmajano Jan 10, 2024
cba81c0
Finalized changelog for v4.2.0
Jan 10, 2024
5d34d23
Merge branch 'development'
scottsteinbeck Mar 20, 2024
90071bd
add configuarable menus
scottsteinbeck Apr 28, 2024
386db9e
update interceptors to push all profiler events to a common events st…
scottsteinbeck Apr 28, 2024
e0f7f20
change from webpack to vite and from alpine to vue
scottsteinbeck Apr 28, 2024
cfbc974
start constructing the containers for the vue debugger interface
scottsteinbeck Apr 28, 2024
677dc95
add in vite config helper and event storage for profiler information
scottsteinbeck Apr 28, 2024
cfdd15b
add api endpoints for the ajax requests for the requests and events a…
scottsteinbeck Apr 28, 2024
1c514bb
future forgebox helper for checking for module updates
scottsteinbeck Apr 28, 2024
665f4b1
update timers to use events profiler as well
scottsteinbeck Apr 28, 2024
789e762
vite helper for js bundler
scottsteinbeck Apr 28, 2024
ae00c3b
add in panels
scottsteinbeck May 4, 2024
1f6bdc7
make base changes
scottsteinbeck May 4, 2024
93bc540
add a fetch api call to the page with alpine
scottsteinbeck May 15, 2024
f40ba64
add js build configuration
scottsteinbeck May 15, 2024
2dbfb96
add in api endpoints for requests, cache, and more
scottsteinbeck May 15, 2024
aef8b70
update to use doc component
scottsteinbeck May 15, 2024
ee38af2
move timers to the end of the request to capture the request id as pa…
scottsteinbeck May 15, 2024
38a4396
helper for vite resouces
scottsteinbeck May 15, 2024
62478a4
updated resoruces and some helpers we may or may not use
scottsteinbeck May 15, 2024
c5a94b3
replace with new dock
scottsteinbeck May 15, 2024
557cee6
key formatting for struct, and combinding some of the menus
scottsteinbeck May 15, 2024
5660cdb
update as placeholder
scottsteinbeck May 15, 2024
17af1cc
add in sleep with timer to harness
scottsteinbeck May 15, 2024
f28d84a
add in model for obtaining servrer stats
scottsteinbeck May 15, 2024
b335f0e
Merge branch 'development'
May 16, 2024
e4cee6d
more changes
scottsteinbeck May 16, 2024
5d12452
Worked on formatting the dashboard page
Noah614 May 16, 2024
05d1cf9
add new stores
scottsteinbeck Jun 5, 2024
7744b10
create endpoints for dashboard page
scottsteinbeck Jun 5, 2024
5eaba04
update viisualizer page for vue insert
scottsteinbeck Jun 5, 2024
123f55d
update chart view colors and layout
scottsteinbeck Jun 5, 2024
c0374cf
update dock header with request information
scottsteinbeck Jun 5, 2024
9327820
build initial dashboard layout
scottsteinbeck Jun 5, 2024
41826d7
create dashboard panels
scottsteinbeck Jun 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,11 @@
"directoryPath": "./",
"isPhysicalDirectoryPath": false
}
]
],
"css.customData": [
".vscode/tailwind.json"
],
"css.lint.unknownAtRules": "ignore",
"less.lint.unknownAtRules": "ignore",
"scss.lint.unknownAtRules": "ignore"
}
55 changes: 55 additions & 0 deletions .vscode/tailwind.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"version": 1.1,
"atDirectives": [
{
"name": "@tailwind",
"description": "Use the `@tailwind` directive to insert Tailwind's `base`, `components`, `utilities` and `screens` styles into your CSS.",
"references": [
{
"name": "Tailwind Documentation",
"url": "https://tailwindcss.com/docs/functions-and-directives#tailwind"
}
]
},
{
"name": "@apply",
"description": "Use the `@apply` directive to inline any existing utility classes into your own custom CSS. This is useful when you find a common utility pattern in your HTML that you’d like to extract to a new component.",
"references": [
{
"name": "Tailwind Documentation",
"url": "https://tailwindcss.com/docs/functions-and-directives#apply"
}
]
},
{
"name": "@responsive",
"description": "You can generate responsive variants of your own classes by wrapping their definitions in the `@responsive` directive:\n```css\n@responsive {\n .alert {\n background-color: #E53E3E;\n }\n}\n```\n",
"references": [
{
"name": "Tailwind Documentation",
"url": "https://tailwindcss.com/docs/functions-and-directives#responsive"
}
]
},
{
"name": "@screen",
"description": "The `@screen` directive allows you to create media queries that reference your breakpoints by **name** instead of duplicating their values in your own CSS:\n```css\n@screen sm {\n /* ... */\n}\n```\n…gets transformed into this:\n```css\n@media (min-width: 640px) {\n /* ... */\n}\n```\n",
"references": [
{
"name": "Tailwind Documentation",
"url": "https://tailwindcss.com/docs/functions-and-directives#screen"
}
]
},
{
"name": "@variants",
"description": "Generate `hover`, `focus`, `active` and other **variants** of your own utilities by wrapping their definitions in the `@variants` directive:\n```css\n@variants hover, focus {\n .btn-brand {\n background-color: #3182CE;\n }\n}\n```\n",
"references": [
{
"name": "Tailwind Documentation",
"url": "https://tailwindcss.com/docs/functions-and-directives#variants"
}
]
}
]
}
163 changes: 95 additions & 68 deletions ModuleConfig.cfc
Original file line number Diff line number Diff line change
Expand Up @@ -34,95 +34,95 @@ component {
variables.settings = {
// This flag enables/disables the tracking of request data to our storage facilities
// To disable all tracking, turn this master key off
enabled : true,
"enabled" : true,
// This setting controls if you will activate the debugger for visualizations ONLY
// The debugger will still track requests even in non debug mode.
debugMode : controller.getSetting( name = "environment", defaultValue = "production" ) == "development",
"debugMode" : controller.getSetting( name = "environment", defaultValue = "production" ) == "development",
// The URL password to use to activate it on demand
debugPassword : "cb:null",
"debugPassword" : "cb:null",
// This flag enables/disables the end of request debugger panel docked to the bottem of the page.
// If you disable i, then the only way to visualize the debugger is via the `/cbdebugger` endpoint
requestPanelDock : true,
"requestPanelDock" : true,
// Request Tracker Options
requestTracker : {
"requestTracker" : {
// Store the request profilers in heap memory or in cachebox, default is memory
storage : "memory",
"storage" : "memory",
// Which cache region to store the profilers in
cacheName : "template",
// Track all cbdebugger events, by default this is off, turn on, when actually profiling yourself :) How Meta!
trackDebuggerEvents : false,
"cacheName" : "template",
// Track all cbdebugger events, by default this is off, turn on, when actually profiling yourself" :) How Meta!
"trackDebuggerEvents" : false,
// Slow request threshold in milliseconds, if execution time is above it, we mark those transactions as red
slowExecutionThreshold : 1000,
"slowExecutionThreshold" : 1000,
// How many tracking profilers to keep in stack
maxProfilers : 50,
"maxProfilers" : 50,
// If enabled, the debugger will monitor the creation time of CFC objects via WireBox
profileWireBoxObjectCreation : false,
"profileWireBoxObjectCreation" : false,
// Profile model objects annotated with the `profile` annotation
profileObjects : false,
"profileObjects" : false,
// If enabled, will trace the results of any methods that are being profiled
traceObjectResults : false,
"traceObjectResults" : false,
// Profile Custom or Core interception points
profileInterceptions : false,
"profileInterceptions" : false,
// By default all interception events are excluded, you must include what you want to profile
includedInterceptions : [],
"includedInterceptions" : [],
// Control the execution timers
executionTimers : {
expanded : true,
"executionTimers" : {
"expanded" : true,
// Slow transaction timers in milliseconds, if execution time of the timer is above it, we mark it
slowTimerThreshold : 250
"slowTimerThreshold" : 250
},
// Control the coldbox info reporting
coldboxInfo : { expanded : false },
"coldboxInfo" : { "expanded" : false },
// Control the http request reporting
httpRequest : {
expanded : false,
"httpRequest" : {
"expanded" : false,
// If enabled, we will profile HTTP Body content, disabled by default as it contains lots of data
profileHTTPBody : false
"profileHTTPBody" : false
}
},
// ColdBox Tracer Appender Messages
tracers : { enabled : true, expanded : false },
"tracers" : { "enabled" : false, "expanded" : false },
// Request Collections Reporting
collections : {
"collections" : {
// Enable tracking
enabled : false,
"enabled" : false,
// Expanded panel or not
expanded : false,
"expanded" : false,
// How many rows to dump for object collections
maxQueryRows : 50,
"maxQueryRows" : 50,
// How many levels to output on dumps for objects
maxDumpTop : 5
"maxDumpTop" : 5
},
// CacheBox Reporting
cachebox : { enabled : false, expanded : false },
"cachebox" : { "enabled" : false, "expanded" : false },
// Modules Reporting
modules : { enabled : false, expanded : false },
"modules" : { "enabled" : false, "expanded" : false },
// Quick and QB Reporting
qb : {
enabled : false,
expanded : false,
"qb" : {
"enabled" : false,
"expanded" : false,
// Log the binding parameters
logParams : true
"logParams" : true
},
// cborm Reporting
cborm : {
enabled : false,
expanded : false,
"cborm" : {
"enabled" : false,
"expanded" : false,
// Log the binding parameters
logParams : true
"logParams" : true
},
// Adobe ColdFusion SQL Collector
acfSql : { enabled : false, expanded : false, logParams : true },
"acfSql" : { "enabled" : false, "expanded" : false, "logParams" : true },
// Lucee SQL Collector
luceeSQL : { enabled : false, expanded : false, logParams : true },
"luceeSQL" : { "enabled" : false, "expanded" : false, "logParams" : true },
// Async Manager Collector
async : { enabled : true, expanded : false },
"async" : { "enabled" : true, "expanded" : false },
// Hyper Collector
hyper : {
enabled : false,
expanded : false,
logResponseData : false,
logRequestBody : false
"hyper" : {
"enabled" : false,
"expanded" : false,
"logResponseData" : false,
"logRequestBody" : false
}
};

Expand All @@ -139,7 +139,7 @@ component {
* Custom Interception Points
*/
variables.interceptorSettings = {
customInterceptionPoints : [
"customInterceptionPoints" : [
// Before the debugger panel is rendered
"beforeDebuggerPanel",
// After the last debugger panel is rendered
Expand Down Expand Up @@ -171,6 +171,13 @@ component {
* Load the module
*/
function onLoad(){
variables.settings.menu = [
{"name": 'Request', "enabled": true, 'key':'request'},
{"name": 'Timers', "enabled": true, 'key':'timer'},
{"name": 'Exceptions', "enabled": true, 'key':'exception'},
{"name": 'HTTP', "enabled": true, 'key':'http'},
{"name": 'Tracer', "enabled": true, 'key':'tracer'},
];
// Only activate interceptions and collectors if master switch is on or in test mode disable it
// And you must not be in testing mode
if ( !structKeyExists( controller, "mockController" ) && variables.settings.enabled ) {
Expand Down Expand Up @@ -207,6 +214,7 @@ component {

/******************** WIREBOX COLLECTOR ************************************/


if ( variables.settings.requestTracker.profileWireBoxObjectCreation ) {
interceptorService.registerInterceptor(
interceptorClass = "#moduleMapping#.interceptors.WireBoxCollector",
Expand Down Expand Up @@ -243,69 +251,88 @@ component {
}

/******************** QB COLLECTOR ************************************/

if ( variables.settings.qb.enabled && controller.getModuleService().isModuleRegistered( "qb" ) ) {
interceptorService.registerInterceptor(
interceptorClass = "#moduleMapping#.interceptors.QBCollector",
interceptorName = "QBCollector@cbdebugger"
);
}

/******************** QUICK COLLECTOR ************************************/

if ( variables.settings.qb.enabled && controller.getModuleService().isModuleRegistered( "quick" ) ) {
interceptorService.registerInterceptor(
interceptorClass = "#moduleMapping#.interceptors.QuickCollector",
interceptorName = "QuickCollector@cbdebugger"
);
}

/******************** CBORM COLLECTOR ************************************/

if ( variables.settings.cborm.enabled && controller.getModuleService().isModuleRegistered( "cborm" ) ) {
interceptorService.registerInterceptor(
interceptorClass = "#moduleMapping#.interceptors.CBOrmCollector",
interceptorName = "CBOrmCollector@cbdebugger"
);
}

/******************** ACFSQL COLLECTOR ************************************/

var SqlMenu = {"name": 'Database', "enabled": false, 'key':'cfquery'};
if ( variables.settings.acfSql.enabled && !server.keyExists( "lucee" ) ) {
interceptorService.registerInterceptor(
interceptorClass = "#moduleMapping#.interceptors.ACFSqlCollector",
interceptorName = "ACFSqlCollector@cbdebugger"
);
SqlMenu.enabled = true;
} else {
variables.settings.acfSql.enabled = false;
}

/******************** Lucee SQL COLLECTOR ************************************/

if ( variables.settings.luceeSQL.enabled && server.keyExists( "lucee" ) ) {
SqlMenu.enabled = true;
interceptorService.registerInterceptor(
interceptorClass = "#moduleMapping#.interceptors.LuceeSqlCollector",
interceptorName = "LuceeSqlCollector@cbdebugger"
);
} else {
variables.settings.luceeSQL.enabled = false;
}
variables.settings.menu.append(SqlMenu);

/******************** Hyper COLLECTOR ************************************/

var hyperMenu = {"name": 'Hyper', "enabled": false, 'key':'hyper'};
if ( variables.settings.hyper.enabled ) {
param variables.settings.hyper.logResponseData = false;
param variables.settings.hyper.logRequestBody = false;
interceptorService.registerInterceptor(
interceptorClass = "#moduleMapping#.interceptors.HyperCollector",
interceptorName = "HyperCollector@cbdebugger"
);
luceeSQLMenu.enabled = true;
}
variables.settings.menu.append(hyperMenu);



/******************** QUICK COLLECTOR ************************************/

var quickMenu = {"name": 'Quick', "enabled": false, 'key':'quick'};
if ( variables.settings.qb.enabled && controller.getModuleService().isModuleRegistered( "quick" ) ) {
interceptorService.registerInterceptor(
interceptorClass = "#moduleMapping#.interceptors.QuickCollector",
interceptorName = "QuickCollector@cbdebugger"
);

quickMenu.enabled = true;
}
variables.settings.menu.append(quickMenu);

/******************** CBORM COLLECTOR ************************************/


var cbormMenu = {"name": 'CBORM', "enabled": false, 'key':'cborm'};
if ( variables.settings.cborm.enabled && controller.getModuleService().isModuleRegistered( "cborm" ) ) {
interceptorService.registerInterceptor(
interceptorClass = "#moduleMapping#.interceptors.CBOrmCollector",
interceptorName = "CBOrmCollector@cbdebugger"
);
cbormMenu.enabled = true;
}
variables.settings.menu.append(cbormMenu);

// Announce debugger loaded
interceptorService.announce( "onDebuggerLoad" );
}
// end master switch

variables.settings.menu.append({"name": 'Cache', "enabled": false, 'key':'cache'});
variables.settings.menu.append({"name": 'Modules', "enabled": false, 'key':'modules'});
variables.settings.menu.append({"name": 'Async', "enabled": false, 'key':'async'});
}

/**
Expand Down
Loading