@windwalker-io/core 4.1.12 → 4.2.1

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 (70) hide show
  1. package/dist/debugger/Dashboard-CQHU0d2H.js +1 -0
  2. package/dist/debugger/Database-VIM7Qa1v.js +36 -0
  3. package/dist/debugger/DefaultLayout-B32TQLQX.js +1 -0
  4. package/dist/debugger/Events-CUBbmkGz.js +1 -0
  5. package/dist/debugger/KeyValueTable-CQHDOoM1.js +1 -0
  6. package/dist/debugger/Request-aNwJ2Iha.js +1 -0
  7. package/dist/debugger/Routing-D8BolD7h.js +1 -0
  8. package/dist/debugger/System-DGIjiMcw.js +1 -0
  9. package/dist/debugger/Timeline-Bj8IvPmS.js +1 -0
  10. package/dist/debugger/debugger-ChQADeB6.js +2 -0
  11. package/dist/debugger/debugger.js +564 -3
  12. package/dist/debugger/system.min.js +5 -0
  13. package/dist/debugger/utilities-jMzguz3m.js +1 -0
  14. package/dist/debugger/vue-animate.min-BkEL-t1R.js +9 -0
  15. package/dist/debugger-console.css +6 -2
  16. package/dist/next.d.ts +98 -0
  17. package/dist/next.js +537 -0
  18. package/package.json +74 -56
  19. package/src/app/app.ts +50 -0
  20. package/src/app/index.ts +3 -0
  21. package/src/app/macros/defineJsModules.ts +5 -0
  22. package/src/app/macros/index.ts +1 -0
  23. package/src/asset-bundler.mjs +114 -0
  24. package/src/debugger/Store.vue +1 -1
  25. package/src/debugger/debugger.js +3 -5
  26. package/src/index.mjs +2 -0
  27. package/src/next/fusion/index.ts +2 -0
  28. package/src/next/fusion/plugins/assets.ts +29 -0
  29. package/src/next/fusion/plugins/index.ts +3 -0
  30. package/src/next/fusion/plugins/systemjs.ts +66 -0
  31. package/src/next/fusion/processors/cloneAssets.ts +81 -0
  32. package/src/next/fusion/processors/cssModulize.ts +105 -0
  33. package/src/next/fusion/processors/index.ts +4 -0
  34. package/src/next/fusion/processors/installVendors.ts +178 -0
  35. package/src/next/fusion/processors/jsModulize.ts +296 -0
  36. package/src/next/index.ts +2 -0
  37. package/src/next/utilities/asset-sync.ts +47 -0
  38. package/src/next/utilities/crypto.ts +11 -0
  39. package/src/next/utilities/fs.ts +61 -0
  40. package/src/next/utilities/index.ts +5 -0
  41. package/src/next/utilities/modules.ts +17 -0
  42. package/.gulp.json +0 -7
  43. package/bin/release.js +0 -47
  44. package/dist/debugger/100-a64696bac484f689dc7f.js +0 -2
  45. package/dist/debugger/100.js.map +0 -1
  46. package/dist/debugger/153-2f3366cb4e48e0749485.js +0 -2
  47. package/dist/debugger/153.js.map +0 -1
  48. package/dist/debugger/282-6f9f84a149fc7e52beb5.js +0 -2
  49. package/dist/debugger/282.js.map +0 -1
  50. package/dist/debugger/358-bdcf2ec8126fe2a9a049.js +0 -2
  51. package/dist/debugger/358.js.map +0 -1
  52. package/dist/debugger/416-ac63d360de6c26cab89a.js +0 -2
  53. package/dist/debugger/416.js.map +0 -1
  54. package/dist/debugger/489-e2b77a72f97d9e96f9c0.js +0 -2
  55. package/dist/debugger/489.js.map +0 -1
  56. package/dist/debugger/694-f1f22e67d91a57498639.js +0 -2
  57. package/dist/debugger/694.js.map +0 -1
  58. package/dist/debugger/941-c22b0704c67ca5058678.js +0 -2
  59. package/dist/debugger/941.js.map +0 -1
  60. package/dist/debugger/debugger.js.LICENSE.txt +0 -13
  61. package/dist/debugger/main.js.map +0 -1
  62. package/dist/debugger-console.css.map +0 -1
  63. package/dist/debugger-console.js +0 -2
  64. package/dist/debugger-console.js.map +0 -1
  65. package/dist/images/windwalker-logo-h-w.svg +0 -1
  66. package/fusionfile.mjs +0 -96
  67. package/postcss.config.cjs +0 -12
  68. package/src/debugger/webpack.config.js +0 -9
  69. package/tailwind/console.tailwind.config.cjs +0 -32
  70. package/tailwind.config.cjs +0 -30
@@ -0,0 +1,296 @@
1
+ import { type FindFileResult, findFilesFromGlobArray, stripUrlQuery } from '@/next';
2
+ import {
3
+ type BuildTask,
4
+ type ConfigBuilder,
5
+ type MaybePromise,
6
+ type ProcessorInterface,
7
+ type ProcessorPreview,
8
+ js,
9
+ shortHash,
10
+ plugin as addPlugin,
11
+ } from '@windwalker-io/fusion-next';
12
+ import { WatchTask } from '@windwalker-io/fusion-next/src/types';
13
+ import fs from 'fs-extra';
14
+ import crypto from 'node:crypto';
15
+ import { parse } from 'node-html-parser';
16
+ import { normalize, resolve } from 'node:path';
17
+
18
+ export interface JsModulizeOptions {
19
+ tmpPath?: string;
20
+ cleanTmp?: boolean;
21
+ }
22
+
23
+ export function jsModulize(entry: string, dest: string, options: JsModulizeOptions = {}) {
24
+ return new JsModulizeProcessor(js(entry, dest), options);
25
+ }
26
+
27
+ export class JsModulizeProcessor implements ProcessorInterface {
28
+ protected scriptPatterns: string[] = [];
29
+ protected bladePatterns: string[] = [];
30
+ protected stagePrefix: string = '';
31
+
32
+ constructor(protected processor: ReturnType<typeof js>, protected options: JsModulizeOptions = {}) {
33
+ }
34
+
35
+ config(taskName: string, builder: ConfigBuilder) {
36
+ const tasks = this.processor.config(taskName, builder) as BuildTask[];
37
+ const task = tasks[0];
38
+ const inputFile = resolve(task.input);
39
+ const tmpPath = this.options.tmpPath ?? resolve('./tmp/fusion/jsmodules/').replace(/\\/g, '/');
40
+ const clean = this.options.cleanTmp ?? true;
41
+
42
+ // const appFileName = 'js/' + this.stagePrefix + '/app.js';
43
+ // const appSrcFileName = 'resources/assets/src/' + this.stagePrefix + '/app.js';
44
+ // const task = builder.addTask(appFileName);
45
+
46
+ if (clean) {
47
+ builder.postBuildCallbacks.push((options, bundle) => {
48
+ fs.removeSync(tmpPath);
49
+ });
50
+ }
51
+
52
+ // builder.merge({
53
+ // resolve: {
54
+ // alias: {
55
+ // '@main': task.input
56
+ // }
57
+ // }
58
+ // });
59
+
60
+ // builder.entryFileNamesCallbacks.push((chunkInfo) => {
61
+ // if (chunkInfo.facadeModuleId === appSrcFileName) {
62
+ // return appFileName;
63
+ // }
64
+ // });
65
+ //
66
+ // builder.resolveIdCallbacks.push((id) => {
67
+ // if (id === task.input) {
68
+ // return appSrcFileName;
69
+ // }
70
+ // });
71
+
72
+ this.ignoreMainImport(task);
73
+
74
+ builder.resolveIdCallbacks.push((id) => {
75
+ if (id === '@main') {
76
+ return { id, external: true };
77
+ }
78
+ });
79
+
80
+ const scriptFiles = findFilesFromGlobArray(this.scriptPatterns);
81
+ const bladeFiles = parseScriptsFromBlades(this.bladePatterns);
82
+
83
+ // Watches
84
+ // for (const bladeFile of bladeFiles) {
85
+ // builder.watches.push({
86
+ // file: resolve(bladeFile.file.fullpath),
87
+ // moduleFile: inputFile,
88
+ // updateType: 'full-reload',
89
+ // } satisfies WatchTask);
90
+ // }
91
+
92
+ builder.loadCallbacks.push((src, options) => {
93
+ const srcFile = stripUrlQuery(src);
94
+
95
+ // if (src === appSrcFileName) {
96
+ if (normalize(srcFile) === inputFile) {
97
+ let listJS = "{\n";
98
+
99
+ // Merge standalone ts files
100
+ for (const scriptFile of scriptFiles) {
101
+ let fullpath = scriptFile.fullpath;
102
+
103
+ if (fullpath.endsWith('.d.ts')) {
104
+ continue;
105
+ }
106
+
107
+ let key = scriptFile.relativePath.replace(/assets\//, '').toLowerCase();
108
+ fullpath = resolve(fullpath).replace(/\\/g, '/');
109
+
110
+ key = key.substring(0, key.lastIndexOf('.'));
111
+
112
+ if (this.stagePrefix) {
113
+ key = this.stagePrefix + '/' + key;
114
+ }
115
+
116
+ // md5
117
+ key = 'view:' + crypto.createHash('md5').update(key).digest('hex');
118
+
119
+ listJS += `'${key}': () => import('${fullpath}'),\n`;
120
+ }
121
+
122
+ // Parse from blades
123
+ const listens: string[] = [];
124
+
125
+ fs.ensureDirSync(tmpPath);
126
+
127
+ for (const result of bladeFiles) {
128
+ let key = result.as;
129
+ const tmpFile = tmpPath + '/' + result.path.replace(/\\|\//g, '_') + '-' + shortHash(result.code) + '.ts';
130
+
131
+ if (!fs.existsSync(tmpFile) || fs.readFileSync(tmpFile, 'utf8') !== result.code) {
132
+ fs.writeFileSync(tmpFile, result.code);
133
+ }
134
+
135
+ // if (this.stagePrefix) {
136
+ // key = this.stagePrefix + '/' + key;
137
+ // }
138
+
139
+ listJS += `'inline:${key}': () => import('${tmpFile}'),\n`;
140
+
141
+ const fullpath = resolve(result.file.fullpath).replace(/\\/g, '/');
142
+
143
+ if (!listens.includes(fullpath)) {
144
+ listens.push(fullpath);
145
+ }
146
+ }
147
+
148
+ listJS += "}";
149
+
150
+ // const loaderPath = resolve('./vendor/windwalker/core/assets/core/src/next/app.ts')
151
+ // .replace(/\\/g, '/');
152
+ //
153
+ // const ts = `
154
+ // import { App } from '${loaderPath}';
155
+ //
156
+ // const app = new App();
157
+ // app.registerRoutes(${listJS});
158
+ //
159
+ // export default app;
160
+ // `;
161
+
162
+ // Listen extra files
163
+ builder.watches.push(...listens);
164
+
165
+ let { code, comments } = stripComments(fs.readFileSync(srcFile, 'utf-8'));
166
+
167
+ // Replace `defineJsModules(...)`
168
+ code = code.replace(/defineJsModules\((.*?)\)/g, listJS);
169
+
170
+ return restoreComments(code, comments);
171
+ }
172
+ });
173
+
174
+ return undefined;
175
+ }
176
+
177
+ /**
178
+ * @see https://github.com/vitejs/vite/issues/6393#issuecomment-1006819717
179
+ * @see https://stackoverflow.com/questions/76259677/vite-dev-server-throws-error-when-resolving-external-path-from-importmap
180
+ */
181
+ private ignoreMainImport(task: BuildTask) {
182
+ const VALID_ID_PREFIX = `/@id/`;
183
+ const importKeys = ['@main'];
184
+ const reg = new RegExp(
185
+ `${VALID_ID_PREFIX}(${importKeys.join("|")})`,
186
+ "g"
187
+ );
188
+
189
+ addPlugin({
190
+ name: 'keep-main-external-' + task.id,
191
+ transform(code) {
192
+ return reg.test(code) ? code.replace(reg, (m, s1) => s1) : code;
193
+ }
194
+ });
195
+ }
196
+
197
+ preview(): MaybePromise<ProcessorPreview[]> {
198
+ return [];
199
+ }
200
+
201
+ mergeScripts(...patterns: (string | string[])[]) {
202
+ this.scriptPatterns = this.scriptPatterns.concat(patterns.flat());
203
+
204
+ return this;
205
+ }
206
+
207
+ parseBlades(...bladePatterns: (string[] | string)[]) {
208
+ this.bladePatterns = this.bladePatterns.concat(bladePatterns.flat());
209
+
210
+ return this;
211
+ }
212
+
213
+ stage(stage: string) {
214
+ this.stagePrefix = stage;
215
+
216
+ return this;
217
+ }
218
+ }
219
+
220
+ interface ScriptResult {
221
+ as: string;
222
+ file: FindFileResult;
223
+ path: string;
224
+ code: string;
225
+ }
226
+
227
+ // function parseScriptsFromBlade(file: string, service: Record<string, ParsedModule>): string[] {
228
+ // const bladeText = fs.readFileSync(file, 'utf8');
229
+ //
230
+ // const html = parse(bladeText);
231
+ //
232
+ // return html.querySelectorAll('script[lang]')
233
+ // .filter(
234
+ // (el) => ['ts', 'typescript'].includes(el.getAttribute('lang') || '')
235
+ // )
236
+ // .map((el) => el.innerHTML)
237
+ // .filter((c) => c.trim() !== '');
238
+ // }
239
+
240
+ function parseScriptsFromBlades(patterns: string | string[]): ScriptResult[] {
241
+ let files = findFilesFromGlobArray(Array.isArray(patterns) ? patterns : [patterns]);
242
+
243
+ return files.map((file) => {
244
+ const bladeText = fs.readFileSync(file.fullpath, 'utf8');
245
+
246
+ const html = parse(bladeText);
247
+ // const key = file.relativePath.replace(/.blade.php$/, '').toLowerCase();
248
+
249
+ return html.querySelectorAll('script[lang][data-macro]')
250
+ .filter(
251
+ (el) => ['ts', 'typescript'].includes(el.getAttribute('lang') || '')
252
+ )
253
+ .map((el) => ({
254
+ as: el.getAttribute('data-macro') || '',
255
+ file: file,
256
+ path: file.relativePath.replace(/.blade.php$/, ''),
257
+ code: el.innerHTML
258
+ }))
259
+ .filter((c) => c.code.trim() !== '');
260
+ })
261
+ .flat();
262
+ }
263
+
264
+ type CommentPlaceholder = { key: string; value: string; };
265
+
266
+ function stripComments(code: string): { code: string; comments: CommentPlaceholder[] } {
267
+ const comments: CommentPlaceholder[] = [];
268
+ let i = 0;
269
+
270
+ code = code
271
+ // Multi-line /* */
272
+ .replace(/\/\*[\s\S]*?\*\//g, match => {
273
+ const key = `__COMMENT_BLOCK_${i}__`;
274
+ comments.push({ key, value: match });
275
+ i++;
276
+ return key;
277
+ })
278
+ // Single-line //
279
+ .replace(/\/\/.*$/gm, match => {
280
+ const key = `__COMMENT_LINE_${i}__`;
281
+ comments.push({ key, value: match });
282
+ i++;
283
+ return key;
284
+ });
285
+
286
+ return { code, comments };
287
+ }
288
+
289
+ function restoreComments(code: string, comments: CommentPlaceholder[]): string {
290
+ for (const { key, value } of comments) {
291
+ const re = new RegExp(key, 'g');
292
+ code = code.replace(re, value);
293
+ }
294
+
295
+ return code;
296
+ }
@@ -0,0 +1,2 @@
1
+ export * from './fusion';
2
+ export * from './utilities';
@@ -0,0 +1,47 @@
1
+ import path, { resolve } from 'node:path';
2
+ import { loadJson } from './fs';
3
+
4
+ export function findModules(suffix = '', rootModule: string | null = 'src/Module'): string[] {
5
+ const pkg = path.resolve(process.cwd(), 'composer.json');
6
+
7
+ const pkgJson = loadJson(pkg);
8
+
9
+ const vendors = Object.keys(pkgJson['require'] || {})
10
+ .concat(Object.keys(pkgJson['require-dev'] || {}))
11
+ .map(id => `vendor/${id}/composer.json`)
12
+ .map((file) => loadJson(file))
13
+ .filter(pkgJson => pkgJson?.extra?.windwalker != null)
14
+ .map(pkgJson => {
15
+ return pkgJson?.extra?.windwalker?.modules?.map((module: string) => {
16
+ return `vendor/${pkgJson.name}/${module}/${suffix}`;
17
+ }) || [];
18
+ })
19
+ .flat();
20
+
21
+ if (rootModule) {
22
+ vendors.unshift(rootModule + '/' + suffix);
23
+ }
24
+
25
+ return [...new Set(vendors)];
26
+ }
27
+
28
+ export function findPackages(suffix = '', withRoot = true): string[] {
29
+ const pkg = path.resolve(process.cwd(), 'composer.json');
30
+
31
+ const pkgJson = loadJson(pkg);
32
+
33
+ const vendors = Object.keys(pkgJson['require'] || {})
34
+ .concat(Object.keys(pkgJson['require-dev'] || {}))
35
+ .map(id => `vendor/${id}/composer.json`)
36
+ .map((file) => loadJson(file))
37
+ .filter((pkgJson) => pkgJson?.extra?.windwalker != null)
38
+ .map((pkgJson) => `vendor/${pkgJson.name}/${suffix}`)
39
+ .flat();
40
+
41
+ if (withRoot) {
42
+ vendors.unshift(suffix);
43
+ }
44
+
45
+ return [...new Set(vendors)];
46
+ }
47
+
@@ -0,0 +1,11 @@
1
+ import { randomBytes } from 'node:crypto';
2
+
3
+ export function uniqId(prefix: string = '', size = 16): string {
4
+ let id = randomBytes(size).toString('hex');
5
+
6
+ if (prefix) {
7
+ id = prefix + id;
8
+ }
9
+
10
+ return id;
11
+ }
@@ -0,0 +1,61 @@
1
+ import { getGlobBaseFromPattern } from '@windwalker-io/fusion-next';
2
+ import fs from 'node:fs';
3
+ import fg from 'fast-glob';
4
+ import isGlob from 'is-glob';
5
+ import { relative } from 'node:path';
6
+
7
+ export function loadJson(file: string) {
8
+ if (!fs.existsSync(file)) {
9
+ return null;
10
+ }
11
+
12
+ return JSON.parse(fs.readFileSync(file, 'utf8'));
13
+ }
14
+
15
+ export function containsMiddleGlob(str: string) {
16
+ return isGlob(removeLastGlob(str));
17
+ }
18
+
19
+ export function removeLastGlob(str: string) {
20
+ // Remove `/**` `/*` `/**/*` at the end of the string
21
+ return str.replace(/(\/\*|\/\*\*?|\*\*\/\*?)$/, '');
22
+ }
23
+
24
+ const ds = process.platform === 'win32' ? '\\' : '/';
25
+
26
+ export function ensureDirPath(path: string, slash: '/' | '\\' = ds): string {
27
+ if (!path.endsWith(slash)) {
28
+ return path + slash;
29
+ }
30
+
31
+ return path;
32
+ }
33
+
34
+ export interface FindFileResult {
35
+ fullpath: string;
36
+ relativePath: string;
37
+ }
38
+
39
+ export function findFilesFromGlobArray(sources: string[]): FindFileResult[] {
40
+ let files: FindFileResult[] = [];
41
+
42
+ for (const source of sources) {
43
+ files = [
44
+ ...files,
45
+ ...findFiles(source)
46
+ ];
47
+ }
48
+
49
+ return files;
50
+ }
51
+
52
+ function findFiles(src: string): FindFileResult[] {
53
+ return fg.globSync(src).map((file: string) => {
54
+ file = file.replace(/\\/g, '/');
55
+
56
+ return {
57
+ fullpath: file,
58
+ relativePath: relative(getGlobBaseFromPattern(src), file).replace(/\\/g, '/')
59
+ };
60
+ });
61
+ }
@@ -0,0 +1,5 @@
1
+ export * from './asset-sync';
2
+ export * from './fs';
3
+ export * from './crypto';
4
+ export * from './modules';
5
+
@@ -0,0 +1,17 @@
1
+ import { createRequire } from 'node:module';
2
+
3
+ export function resolveModuleRealpath(url: string, module: string) {
4
+ const require = createRequire(url);
5
+
6
+ return require.resolve(module);
7
+ }
8
+
9
+ export function stripUrlQuery(src: string) {
10
+ const qPos = src.indexOf('?');
11
+
12
+ if (qPos !== -1) {
13
+ return src.substring(0, qPos);
14
+ }
15
+
16
+ return src;
17
+ }
package/.gulp.json DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "description": "Windwalker Fusion",
3
- "flags": {
4
- "gulpfile": "fusionfile.mjs",
5
- "require": "@windwalker-io/fusion/bootstrap.cjs"
6
- }
7
- }
package/bin/release.js DELETED
@@ -1,47 +0,0 @@
1
- import minimist from 'minimist';
2
- import { execSync as exec } from 'child_process';
3
-
4
- const cliInput = minimist(process.argv.slice(2));
5
-
6
- const args = cliInput._;
7
-
8
- if (!args.length) {
9
- console.log('Please provide release type (major | minor | patch | premajor | preminor | prepatch | prerelease)');
10
- process.exit(255);
11
- }
12
-
13
- const help = `
14
- Usage: release.js -- <arguments for "npm version">
15
- -b Branch name to push.
16
- `;
17
-
18
- if (cliInput['help'] || cliInput['h']) {
19
- console.log(help);
20
- process.exit(0);
21
- }
22
-
23
- // console.log(`>>> yarn build:prod`);
24
- // exec(`yarn build:prod`, { stdio: 'inherit' });
25
-
26
- console.log(`>>> npm version ${args.join(' ')}`);
27
- const buffer = exec(`npm version ${args.join(' ')} --no-workspaces-update`);
28
-
29
- const ver = buffer.toString().split("\n")[1];
30
-
31
- console.log('>>> Git commit all');
32
- exec(`git add .`, { stdio: 'inherit' });
33
- try {
34
- exec(`git commit -am "Prepare release JS @windwalker-io/core ${ver}."`, { stdio: 'inherit' });
35
- } catch (e) {
36
- console.log(e.message);
37
- }
38
-
39
- const branch = cliInput['b'] || 'master';
40
-
41
- console.log('>>> Push to git');
42
-
43
- exec(`git push origin ${branch}`, { stdio: 'inherit' });
44
-
45
- console.log('>> Publish to npm');
46
-
47
- exec(`npm publish`, { stdio: 'inherit' });
@@ -1,2 +0,0 @@
1
- (self.webpackChunksrc_debugger_debugger_js=self.webpackChunksrc_debugger_debugger_js||[]).push([[100],{9665:function(t){t.exports=function(){"use strict";var t=6e4,e=36e5,n="millisecond",r="second",s="minute",i="hour",a="day",u="week",c="month",o="quarter",l="year",d="date",f="Invalid Date",h=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,$=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},_={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),s=n%60;return(e<=0?"+":"-")+m(r,2,"0")+":"+m(s,2,"0")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),s=e.clone().add(r,c),i=n-s<0,a=e.clone().add(r+(i?-1:1),c);return+(-(r+(n-s)/(i?s-a:a-s))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:l,w:u,d:a,D:d,h:i,m:s,s:r,ms:n,Q:o}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},v="en",y={};y[v]=g;var M="$isDayjsObject",b=function(t){return t instanceof w||!(!t||!t[M])},D=function t(e,n,r){var s;if(!e)return v;if("string"==typeof e){var i=e.toLowerCase();y[i]&&(s=i),n&&(y[i]=n,s=i);var a=e.split("-");if(!s&&a.length>1)return t(a[0])}else{var u=e.name;y[u]=e,s=u}return!r&&s&&(v=s),s||!r&&v},k=function(t,e){if(b(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new w(n)},p=_;p.l=D,p.i=b,p.w=function(t,e){return k(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var w=function(){function g(t){this.$L=D(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[M]=!0}var m=g.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(p.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match(h);if(r){var s=r[2]-1||0,i=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],s,r[3]||1,r[4]||0,r[5]||0,r[6]||0,i)):new Date(r[1],s,r[3]||1,r[4]||0,r[5]||0,r[6]||0,i)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return p},m.isValid=function(){return!(this.$d.toString()===f)},m.isSame=function(t,e){var n=k(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return k(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<k(t)},m.$g=function(t,e,n){return p.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,o=!!p.u(e)||e,f=p.p(t),h=function(t,e){var r=p.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return o?r:r.endOf(a)},$=function(t,e){return p.w(n.toDate()[t].apply(n.toDate("s"),(o?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},g=this.$W,m=this.$M,_=this.$D,v="set"+(this.$u?"UTC":"");switch(f){case l:return o?h(1,0):h(31,11);case c:return o?h(1,m):h(0,m+1);case u:var y=this.$locale().weekStart||0,M=(g<y?g+7:g)-y;return h(o?_-M:_+(6-M),m);case a:case d:return $(v+"Hours",0);case i:return $(v+"Minutes",1);case s:return $(v+"Seconds",2);case r:return $(v+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var u,o=p.p(t),f="set"+(this.$u?"UTC":""),h=(u={},u[a]=f+"Date",u[d]=f+"Date",u[c]=f+"Month",u[l]=f+"FullYear",u[i]=f+"Hours",u[s]=f+"Minutes",u[r]=f+"Seconds",u[n]=f+"Milliseconds",u)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===l){var g=this.clone().set(d,1);g.$d[h]($),g.init(),this.$d=g.set(d,Math.min(this.$D,g.daysInMonth())).$d}else h&&this.$d[h]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[p.p(t)]()},m.add=function(n,o){var d,f=this;n=Number(n);var h=p.p(o),$=function(t){var e=k(f);return p.w(e.date(e.date()+Math.round(t*n)),f)};if(h===c)return this.set(c,this.$M+n);if(h===l)return this.set(l,this.$y+n);if(h===a)return $(1);if(h===u)return $(7);var g=(d={},d[s]=t,d[i]=e,d[r]=1e3,d)[h]||1,m=this.$d.getTime()+n*g;return p.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||f;var r=t||"YYYY-MM-DDTHH:mm:ssZ",s=p.z(this),i=this.$H,a=this.$m,u=this.$M,c=n.weekdays,o=n.months,l=n.meridiem,d=function(t,n,s,i){return t&&(t[n]||t(e,r))||s[n].slice(0,i)},h=function(t){return p.s(i%12||12,t,"0")},g=l||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace($,(function(t,r){return r||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return p.s(e.$y,4,"0");case"M":return u+1;case"MM":return p.s(u+1,2,"0");case"MMM":return d(n.monthsShort,u,o,3);case"MMMM":return d(o,u);case"D":return e.$D;case"DD":return p.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return d(n.weekdaysMin,e.$W,c,2);case"ddd":return d(n.weekdaysShort,e.$W,c,3);case"dddd":return c[e.$W];case"H":return String(i);case"HH":return p.s(i,2,"0");case"h":return h(1);case"hh":return h(2);case"a":return g(i,a,!0);case"A":return g(i,a,!1);case"m":return String(a);case"mm":return p.s(a,2,"0");case"s":return String(e.$s);case"ss":return p.s(e.$s,2,"0");case"SSS":return p.s(e.$ms,3,"0");case"Z":return s}return null}(t)||s.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(n,d,f){var h,$=this,g=p.p(d),m=k(n),_=(m.utcOffset()-this.utcOffset())*t,v=this-m,y=function(){return p.m($,m)};switch(g){case l:h=y()/12;break;case c:h=y();break;case o:h=y()/3;break;case u:h=(v-_)/6048e5;break;case a:h=(v-_)/864e5;break;case i:h=v/e;break;case s:h=v/t;break;case r:h=v/1e3;break;default:h=v}return f?h:p.a(h)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return y[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=D(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return p.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},g}(),S=w.prototype;return k.prototype=S,[["$ms",n],["$s",r],["$m",s],["$H",i],["$W",a],["$M",c],["$y",l],["$D",d]].forEach((function(t){S[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),k.extend=function(t,e){return t.$i||(t(e,w,k),t.$i=!0),k},k.locale=D,k.isDayjs=b,k.unix=function(t){return k(1e3*t)},k.en=y[v],k.Ls=y,k.p={},k}()},2100:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>y});var r=n(1525),s=n(1456),i=n(3630),a=n(672),u=n(9665),c=n(8601),o=n(363),l=(n(4545),n(7297));const d={class:"p-4"},f={class:"table table-striped table-bordered"},h=(0,r._)("thead",{class:"table-dark"},[(0,r._)("tr",null,[(0,r._)("th",null,"\r\n ID\r\n "),(0,r.Uk)(),(0,r._)("th",null,"\r\n See\r\n "),(0,r.Uk)(),(0,r._)("th",null,"\r\n IP\r\n "),(0,r.Uk)(),(0,r._)("th",null,"\r\n Method\r\n "),(0,r.Uk)(),(0,r._)("th",null,"\r\n URL\r\n "),(0,r.Uk)(),(0,r._)("th",null,"\r\n Time\r\n "),(0,r.Uk)(),(0,r._)("th",null,"\r\n Info\r\n ")])],-1),$=["onClick"],g=["onClick"],m={key:0,class:"badge bg-danger"},_={style:{"word-break":"break-all"}},v=["href"],y={__name:"Dashboard",setup(t){(0,a.qj)({items:[]});const e=(0,a.iH)([]);function n(t){c.Z.push("/system/"+t)}return(0,r.bv)((async()=>{const t=await o.Z.get("ajax/history");e.value=t.data.data})),(t,c)=>{const o=(0,r.up)("fa-icon");return(0,r.wg)(),(0,r.iD)("div",d,[(0,r._)("table",f,[h,(0,r.Uk)(),(0,r._)("tbody",null,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.value,(t=>{var e,c,d;return(0,r.wg)(),(0,r.iD)("tr",null,[(0,r._)("td",null,[(0,r._)("a",{href:"#",onClick:(0,s.iM)((e=>n(t.id)),["prevent"]),class:""},(0,i.zw)(t.id),9,$)]),(0,r.Uk)(),(0,r._)("td",null,[(0,r._)("button",{class:"btn btn-primary btn-sm",type:"button",onClick:e=>n(t.id)},[(0,r.Wm)(o,{icon:"fa-solid fa-eye"})],8,g)]),(0,r.Uk)(),(0,r._)("td",null,(0,i.zw)(t.ip),1),(0,r.Uk)(),(0,r._)("td",null,[(0,r._)("div",null,(0,i.zw)(t.method),1),(0,r.Uk)(),(0,r._)("div",null,[t.ajax?((0,r.wg)(),(0,r.iD)("span",m,"\r\n AJAX | API\r\n ")):(0,r.kq)("",!0)])]),(0,r.Uk)(),(0,r._)("td",_,[(0,r._)("a",{href:t.url,target:"_blank",class:"link-secondary"},[(0,r.Uk)((0,i.zw)(t.url)+" ",1),(0,r.Wm)(o,{class:"small",icon:"fa-solid fa-external-link"})],8,v)]),(0,r.Uk)(),(0,r._)("td",null,(0,i.zw)((d=t.time,u.unix(d).format("YYYY-MM-DD HH:mm:ssZ"))),1),(0,r.Uk)(),(0,r._)("td",null,[(0,r._)("span",{class:(0,i.C_)(["badge",`bg-${(0,a.SU)(l.e)((null===(e=t.response)||void 0===e?void 0:e.status)||0)}`])},(0,i.zw)(null===(c=t.response)||void 0===c?void 0:c.status),3)])])})),256))])])])}}}},7297:(t,e,n)=>{"use strict";function r(t,e){return t>2*e?"danger":t>1.5*e?"warning":t<e/2?"success":"info"}function s(t){return t>=300&&t<400?"info":t>=400&&t<500?"warning":t>=200&&t<300?"success":"danger"}n.d(e,{G:()=>r,e:()=>s})}}]);
2
- //# sourceMappingURL=100.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"100-a64696bac484f689dc7f.js","mappings":"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","sources":["webpack://src/debugger/debugger.js/../../../../../node_modules/dayjs/dayjs.min.js","webpack://src/debugger/debugger.js/./src/debugger/views/Dashboard.vue?c2bf","webpack://src/debugger/debugger.js/./src/debugger/views/Dashboard.vue","webpack://src/debugger/debugger.js/./src/debugger/services/utilities.js"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","import script from \"./Dashboard.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Dashboard.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","<template>\r\n <div class=\"p-4\">\r\n <table class=\"table table-striped table-bordered\">\r\n <thead class=\"table-dark\">\r\n <tr>\r\n <th>\r\n ID\r\n </th>\r\n <th>\r\n See\r\n </th>\r\n <th>\r\n IP\r\n </th>\r\n <th>\r\n Method\r\n </th>\r\n <th>\r\n URL\r\n </th>\r\n <th>\r\n Time\r\n </th>\r\n <th>\r\n Info\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr v-for=\"item of items\">\r\n <td>\r\n <a href=\"#\" @click.prevent=\"selectId(item.id)\" class=\"\">\r\n {{ item.id }}\r\n </a>\r\n </td>\r\n <td>\r\n <button class=\"btn btn-primary btn-sm\"\r\n type=\"button\"\r\n @click=\"selectId(item.id)\">\r\n <fa-icon icon=\"fa-solid fa-eye\"></fa-icon>\r\n </button>\r\n </td>\r\n <td>\r\n {{ item.ip }}\r\n </td>\r\n <td>\r\n <div>\r\n {{ item.method }}\r\n </div>\r\n <div>\r\n <span v-if=\"item.ajax\" class=\"badge bg-danger\">\r\n AJAX | API\r\n </span>\r\n </div>\r\n </td>\r\n <td style=\"word-break: break-all\">\r\n <a :href=\"item.url\"\r\n target=\"_blank\"\r\n class=\"link-secondary\">\r\n {{ item.url }}\r\n <fa-icon class=\"small\" icon=\"fa-solid fa-external-link\"></fa-icon>\r\n </a>\r\n </td>\r\n <td>\r\n {{ dateFormat(item.time) }}\r\n </td>\r\n <td>\r\n <span class=\"badge\" :class=\"`bg-${httpStatusColor(item.response?.status || 0)}`\">\r\n {{ item.response?.status }}\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport * as dayjs from 'dayjs';\r\nimport { onMounted, reactive, ref, toRefs } from 'vue';\r\nimport router from '../routes.js';\r\nimport $http from '../services/http.js';\r\nimport { currentId } from '../services/store.js';\r\nimport { httpStatusColor } from '../services/utilities.js';\r\n\r\nconst state = reactive({\r\n items: [],\r\n});\r\n\r\nconst items = ref([]);\r\n\r\nonMounted(async () => {\r\n const res = await $http.get('ajax/history');\r\n\r\n items.value = res.data.data;\r\n});\r\n\r\nfunction selectId(id) {\r\n router.push('/system/' + id);\r\n}\r\n\r\nfunction dateFormat(ts) {\r\n return dayjs.unix(ts).format('YYYY-MM-DD HH:mm:ssZ');\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","\r\n\r\nexport function stateColor(value, avg) {\r\n if (value > (avg * 2)) {\r\n return 'danger';\r\n } else if (value > (avg * 1.5)) {\r\n return 'warning';\r\n } else if (value < (avg / 2)) {\r\n return 'success';\r\n } else {\r\n return 'info';\r\n }\r\n}\r\n\r\nexport function httpStatusColor(status) {\r\n if (status >= 300 && status < 400) {\r\n return 'info';\r\n }\r\n\r\n if (status >= 400 && status < 500) {\r\n return 'warning';\r\n }\r\n\r\n if (status >= 200 && status < 300) {\r\n return 'success';\r\n }\r\n\r\n return 'danger';\r\n}\r\n"],"names":["module","exports","e","n","r","i","s","u","a","o","c","f","h","d","l","$","y","M","name","weekdays","split","months","ordinal","t","m","String","length","Array","join","v","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","p","w","D","ms","Q","toLowerCase","replace","g","S","_","O","args","arguments","b","locale","$L","utc","$u","x","$x","$offset","this","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","toString","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","k","forEach","extend","$i","isDayjs","en","Ls","reactive","items","ref","selectId","id","router","push","onMounted","async","res","$http","value","data","ts","dayjs","stateColor","avg","httpStatusColor","status"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunksrc_debugger_debugger_js=self.webpackChunksrc_debugger_debugger_js||[]).push([[153],{5956:(t,e,a)=>{a.d(e,{Z:()=>f});var s=a(1525),n=a(672),r=a(3630),l=a(457),o=a(5054),i=a(4545);const u={key:0},d={class:"p-3 mt-3 mx-4 rounded-3",style:{"background-color":"var(--bs-gray-800)"}},c={class:"text-xl font-bold text-gray-800"},m={class:"text-muted"},b=["href"],f={__name:"DefaultLayout",setup(t){const e=(0,l.yj)();return(t,a)=>{const l=(0,s.up)("fa-icon"),f=(0,s.up)("router-link");return(0,n.SU)(i.I)?((0,s.wg)(),(0,s.iD)("div",u,[(0,s._)("div",d,[(0,s._)("h1",c,[(0,s.WI)(t.$slots,"title")]),(0,s.Uk)(),(0,s._)("div",m,[(0,s.Wm)(f,{to:"/",class:"btn btn-sm btn-primary"},{default:(0,s.w5)((()=>[(0,s.Wm)(l,{icon:"fa-solid fa-list"})])),_:1}),(0,s.Uk)(),(0,s._)("button",{type:"button",onClick:a[0]||(a[0]=t=>(0,n.SU)(o.D)("/"+(0,n.SU)(e).name)),class:"btn btn-sm btn-success"},[(0,s.Wm)(l,{icon:"fa-solid fa-arrows-rotate"})]),(0,s.Uk)("\r\n /\r\n "+(0,r.zw)((0,n.SU)(i.p))+"\r\n / ",1),(0,s._)("a",{target:"_blank",class:"text-gray-600",href:(0,n.SU)(i.I).url},(0,r.zw)((0,n.SU)(i.I).url),9,b)])]),(0,s.Uk)(),(0,s.WI)(t.$slots,"default")])):(0,s.kq)("",!0)}}}},7153:(t,e,a)=>{a.r(e),a.d(e,{default:()=>z});var s=a(1525),n=a(3630);const r={key:0,class:"p-4"},l={class:"l-section l-section--system"},o=(0,s._)("h3",null,"System Timeline",-1),i={class:"l-section l-section--profilers mt-5"},u={class:"nav nav-pills",id:"profilers-tab",role:"tablist"},d={class:"nav-item",role:"presentation"},c=["data-bs-target"],m={class:"tab-content mt-4",id:"myTabContent"},b=["id"],f={class:""};var g=a(672);const y={class:"table table-bordered"},_=(0,s._)("thead",null,[(0,s._)("tr",null,[(0,s._)("th",null,"Label"),(0,s.Uk)(),(0,s._)("th",{class:"text-end"},"Total Time"),(0,s.Uk)(),(0,s._)("th",{class:"text-end"},"Time"),(0,s.Uk)(),(0,s._)("th",{class:"text-end"},"Total Memory"),(0,s.Uk)(),(0,s._)("th",{class:"text-end"},"Memory")])],-1),p={class:"text-end"},k={class:"badge bg-secondary"},w={key:0,class:"text-end"},v={class:"text-end"},T={class:"badge bg-secondary"},U={key:1,class:"text-end"};var h=a(7297);const x={name:"TimelineTable",props:{items:Array},setup(){let t=0,e=0,a=0,s=0;return{getTimeOffset:function(a){return e=a-t,t=a,e},getCurrentTimeOffset:function(){return e},getMemoryOffset:function(t){return s=t-a,a=t,s},getCurrentMemoryOffset:function(){return s},stateColor:h.G,bytesToMB:function(t){return t/1024/1024},round:function(t){return Math.round(1e4*t)/1e4}}}};var C=a(4181);const D=(0,C.Z)(x,[["render",function(t,e,a,r,l,o){return(0,s.wg)(),(0,s.iD)("div",null,[(0,s._)("table",y,[_,(0,s.Uk)(),(0,s._)("tbody",null,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(a.items,(t=>((0,s.wg)(),(0,s.iD)("tr",null,[(0,s._)("td",null,(0,n.zw)(t.label),1),(0,s.Uk)(),(0,s._)("td",p,[(0,s._)("span",k,(0,n.zw)(r.round(t.endTime))+"ms\r\n ",1)]),(0,s.Uk)(),(r.getTimeOffset(t.endTime),(0,s.wg)(),(0,s.iD)("td",w,[(0,s._)("span",{class:(0,n.C_)(["badge","bg-"+r.stateColor(r.getCurrentTimeOffset(),50)])},(0,n.zw)(r.round(r.getCurrentTimeOffset()))+"ms\r\n ",3)])),(0,s.Uk)(),(0,s._)("td",v,[(0,s._)("span",T,(0,n.zw)(r.round(r.bytesToMB(t.memory)))+"MB\r\n ",1)]),(0,s.Uk)(),(r.getMemoryOffset(t.memory),(0,s.wg)(),(0,s.iD)("td",U,[(0,s._)("span",{class:(0,n.C_)(["badge","bg-"+r.stateColor(r.bytesToMB(r.getCurrentMemoryOffset()),2)])},(0,n.zw)(r.round(r.bytesToMB(r.getCurrentMemoryOffset())))+"MB\r\n ",3)]))])))),256))])])])}]]);var M=a(5956),O=a(363);const j={name:"Timeline",components:{TimelineTable:D,DefaultLayout:M.Z},async beforeRouteEnter(t,e,a){a((async t=>{const e=await O.Z.get("ajax/data?path=profiler");t.data=e.data.data}))},async beforeRouteUpdate(t,e,a){const s=await O.Z.get("ajax/data?path=profiler");this.data=s.data.data},setup(){const t=(0,g.iH)(null),e=(0,s.Fl)((()=>Object.keys(t.value))),a=(0,s.Fl)((()=>t.value&&t.value.main.items.filter((t=>-1!==(t.tags||[]).indexOf("system")))||[]));return{data:t,instances:e,systemItems:a}}},z=(0,C.Z)(j,[["render",function(t,e,a,g,y,_){const p=(0,s.up)("TimelineTable"),k=(0,s.up)("DefaultLayout");return(0,s.wg)(),(0,s.j4)(k,null,{title:(0,s.w5)((()=>[(0,s.Uk)("\r\n Timeline\r\n ")])),default:(0,s.w5)((()=>[(0,s.Uk)(),g.data?((0,s.wg)(),(0,s.iD)("div",r,[(0,s._)("section",l,[o,(0,s.Uk)(),(0,s.Wm)(p,{items:g.systemItems},null,8,["items"])]),(0,s.Uk)(),(0,s._)("section",i,[(0,s._)("ul",u,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(g.instances,((t,e)=>((0,s.wg)(),(0,s.iD)("li",d,[(0,s._)("button",{class:"nav-link active",id:"home-tab","data-bs-toggle":"tab","data-bs-target":`tab-${t}`,type:"button",role:"tab","aria-selected":"true"},(0,n.zw)(t),9,c)])))),256))]),(0,s.Uk)(),(0,s._)("div",m,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(g.instances,((t,e)=>((0,s.wg)(),(0,s.iD)("div",{class:(0,n.C_)(["tab-pane fade",[0===e?"show active":""]]),id:`tab-${t}`,role:"tabpanel",tabindex:"0"},[(0,s._)("div",f,[(0,s.Wm)(p,{items:g.data[t].items},null,8,["items"])])],10,b)))),256))])])])):(0,s.kq)("",!0)])),_:1})}]])},5054:(t,e,a)=>{a.d(e,{D:()=>r});var s=a(8601),n=a(363);async function r(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;const e=await n.Z.get("ajax/last");let a="";return a=t?t+"/"+e.data.data:"/system/"+e.data.data,s.Z.push(a)}},7297:(t,e,a)=>{function s(t,e){return t>2*e?"danger":t>1.5*e?"warning":t<e/2?"success":"info"}function n(t){return t>=300&&t<400?"info":t>=400&&t<500?"warning":t>=200&&t<300?"success":"danger"}a.d(e,{G:()=>s,e:()=>n})}}]);
2
- //# sourceMappingURL=153.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"153-2f3366cb4e48e0749485.js","mappings":"oYAKA,E,iCCuBA,MAAMA,GAAQC,EAAAA,EAAAA,M,i1BCtBPC,MAAM,O,GAEAA,MAAM,+B,GACbC,EAAAA,EAAAA,GAAwB,UAApB,mBAAe,G,GAKZD,MAAM,uC,GAETA,MAAM,gBAAgBE,GAAG,gBAAgBC,KAAK,W,GAC5CH,MAAM,WAAWG,KAAK,gB,wBAWvBH,MAAM,mBAAmBE,GAAG,gB,YAOxBF,MAAM,I,sBCjCZA,MAAM,wB,GACXC,EAAAA,EAAAA,GAQQ,eAPRA,EAAAA,EAAAA,GAMK,YALHA,EAAAA,EAAAA,GAAc,UAAV,UAAK,WACTA,EAAAA,EAAAA,GAAoC,MAAhCD,MAAM,YAAW,eAAU,WAC/BC,EAAAA,EAAAA,GAA8B,MAA1BD,MAAM,YAAW,SAAI,WACzBC,EAAAA,EAAAA,GAAsC,MAAlCD,MAAM,YAAW,iBAAY,WACjCC,EAAAA,EAAAA,GAAgC,MAA5BD,MAAM,YAAW,cAAM,G,GASvBA,MAAM,Y,GACFA,MAAM,sB,SAIVA,MAAM,Y,GAKNA,MAAM,Y,GACFA,MAAM,sB,SAIVA,MAAM,Y,cAchB,SACEI,KAAM,gBACNC,MAAO,CACLC,MAAOC,OAETC,KAAAA,GACE,IAAIC,EAAW,EACXC,EAAa,EAcbC,EAAa,EACbC,EAAe,EAsBnB,MAAO,CACLC,cApCF,SAAuBC,GAKrB,OAJAJ,EAAaI,EAAOL,EAEpBA,EAAWK,EAEJJ,CACT,EA+BEK,qBA7BF,WACE,OAAOL,CACT,EA4BEM,gBAvBF,SAAyBC,GAKvB,OAJAL,EAAeK,EAASN,EAExBA,EAAaM,EAENL,CACT,EAkBEM,uBAhBF,WACE,OAAON,CACT,EAeEO,WAAU,IACVC,UAdF,SAAmBC,GACjB,OAAOA,EAAQ,KAAO,IACxB,EAaEC,MAXF,SAAeC,GACb,OAAOC,KAAKF,MAAY,IAANC,GAAe,GACnC,EAWF,G,cC/FF,MAEA,GAFiC,OAAgB,EAAQ,CAAC,CAAC,S,wCDJ3DE,EAAAA,EAAAA,IAwCM,aAvCJxB,EAAAA,EAAAA,GAsCQ,QAtCRyB,EAsCQ,CArCNC,GAQQ,WAER1B,EAAAA,EAAAA,GA0BQ,6BAzBRwB,EAAAA,EAAAA,IAwBKG,EAAAA,GAAA,MAAAC,EAAAA,EAAAA,IAxBcC,EAAAxB,OAARyB,K,WAAXN,EAAAA,EAAAA,IAwBK,YAvBHxB,EAAAA,EAAAA,GAEK,WAAA+B,EAAAA,EAAAA,IADAD,EAAKE,OAAK,eAEfhC,EAAAA,EAAAA,GAIK,KAJLiC,EAIK,EAHHjC,EAAAA,EAAAA,GAEO,OAFPkC,GAEOH,EAAAA,EAAAA,IADFI,EAAAd,MAAMS,EAAKM,UAAW,iBAC3B,iBAEyBD,EAAAvB,cAAckB,EAAKM,UAAO,WAArDZ,EAAAA,EAAAA,IAIK,KAJLa,EAIK,EAHHrC,EAAAA,EAAAA,GAEO,QAFDD,OAAKuC,EAAAA,EAAAA,IAAA,CAAC,QAAO,MAAiBH,EAAAjB,WAAWiB,EAAArB,uBAAwB,Q,QAClEqB,EAAAd,MAAMc,EAAArB,yBAA0B,iBACrC,kBAEFd,EAAAA,EAAAA,GAIK,KAJLuC,EAIK,EAHHvC,EAAAA,EAAAA,GAEO,OAFPwC,GAEOT,EAAAA,EAAAA,IADFI,EAAAd,MAAMc,EAAAhB,UAAUW,EAAKd,UAAW,iBACrC,iBAEyBmB,EAAApB,gBAAgBe,EAAKd,SAAM,WAAtDQ,EAAAA,EAAAA,IAIK,KAJLiB,EAIK,EAHHzC,EAAAA,EAAAA,GAEO,QAFDD,OAAKuC,EAAAA,EAAAA,IAAA,CAAC,QAAO,MAAiBH,EAAAjB,WAAWiB,EAAAhB,UAAUgB,EAAAlB,0BAA2B,O,QAC/EkB,EAAAd,MAAMc,EAAAhB,UAAUgB,EAAAlB,4BAA6B,iBAClD,W,uCDeR,SACEd,KAAM,WACNuC,WAAY,CAAEC,cAAa,EAAEC,cAAaA,EAAAA,GAC1C,sBAAMC,CAAiBC,EAAIC,EAAMC,GAC/BA,GAAKC,UACH,MAAMC,QAAYC,EAAAA,EAAMC,IAAI,2BAC5BC,EAAGC,KAAOJ,EAAII,KAAKA,IAAI,GAE3B,EACA,uBAAMC,CAAkBT,EAAIC,EAAMC,GAChC,MAAME,QAAYC,EAAAA,EAAMC,IAAI,2BAC5BI,KAAKF,KAAOJ,EAAII,KAAKA,IACvB,EACA/C,KAAAA,GACE,MAAM+C,GAAOG,EAAAA,EAAAA,IAAI,MAEXC,GAAYC,EAAAA,EAAAA,KAAS,IAAMC,OAAOC,KAAKP,EAAKlC,SAC5C0C,GAAcH,EAAAA,EAAAA,KAAS,IACtBL,EAAKlC,OAIHkC,EAAKlC,MAAM2C,KAAK1D,MAAM2D,QAAQlC,IAGA,KAFtBA,EAAKmC,MAAQ,IAEdC,QAAQ,aANb,KAUX,MAAO,CACLZ,OACAI,YACAI,cAEJ,GG9EF,GAFiC,OAAgB,EAAQ,CAAC,CAAC,S,sGHJ3DK,EAAAA,EAAAA,IA0CgBC,EAAA,MAzCHC,OAAKC,EAAAA,EAAAA,KAAC,IAEjB,UAFiB,6B,kBAEN,IAEX,YAAuBnC,EAAAmB,OAAI,WAA3B9B,EAAAA,EAAAA,IAoCM,MApCNC,EAoCM,EAlCJzB,EAAAA,EAAAA,GAIU,UAJV0B,EAIU,CAHRO,GAAwB,WAExBsC,EAAAA,EAAAA,IAAsCC,EAAA,CAAtBnE,MAAO8B,EAAA2B,aAAW,gCAGpC9D,EAAAA,EAAAA,GA2BU,UA3BVkC,EA2BU,EAzBRlC,EAAAA,EAAAA,GAWK,KAXLqC,EAWK,gBAVHb,EAAAA,EAAAA,IASKG,EAAAA,GAAA,MAAAC,EAAAA,EAAAA,IARqBO,EAAAuB,WAAS,CAAzBe,EAAUC,M,WADpBlD,EAAAA,EAAAA,IASK,KATLe,EASK,EAPHvC,EAAAA,EAAAA,GAMS,UANDD,MAAM,kBAAkBE,GAAG,WAAW,iBAAe,MAC1D,iBAAc,OAASwE,IACxBE,KAAK,SACLzE,KAAK,MACL,gBAAc,S,QACXuE,GAAQ,EAAAjC,Q,oBAIjBxC,EAAAA,EAAAA,GAWM,MAXNyC,EAWM,gBAVJjB,EAAAA,EAAAA,IASMG,EAAAA,GAAA,MAAAC,EAAAA,EAAAA,IARoBO,EAAAuB,WAAS,CAAzBe,EAAUC,M,WADpBlD,EAAAA,EAAAA,IASM,OATDzB,OAAKuC,EAAAA,EAAAA,IAAA,CAAC,gBAAgB,CAET,IAANoC,EAAU,cAAgB,MACnCzE,GAAE,OAASwE,IACZvE,KAAK,WACL0E,SAAS,K,EACT5E,EAAAA,EAAAA,GAEM,MAFN6E,EAEM,EADJN,EAAAA,EAAAA,IAA+CC,EAAA,CAA/BnE,MAAO8B,EAAAmB,KAAKmB,GAAUpE,O,gII/B3C4C,eAAe6B,IAAmC,IAA1BC,EAAYC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,QAAGE,EAC5C,MAAMhC,QAAYC,EAAAA,EAAMC,IAAI,aAC5B,IAAIvD,EAAQ,GAQZ,OALEA,EADEkF,EACMA,EAAe,IAAM7B,EAAII,KAAKA,KAE9B,WAAaJ,EAAII,KAAKA,KAGzB6B,EAAAA,EAAOC,KAAKvF,EACrB,C,iBCdO,SAASqB,EAAWE,EAAOiE,GAChC,OAAIjE,EAAe,EAANiE,EACJ,SACEjE,EAAe,IAANiE,EACX,UACEjE,EAASiE,EAAM,EACjB,UAEA,MAEX,CAEO,SAASC,EAAgBC,GAC9B,OAAIA,GAAU,KAAOA,EAAS,IACrB,OAGLA,GAAU,KAAOA,EAAS,IACrB,UAGLA,GAAU,KAAOA,EAAS,IACrB,UAGF,QACT,C","sources":["webpack://src/debugger/debugger.js/./src/debugger/layouts/DefaultLayout.vue?1d82","webpack://src/debugger/debugger.js/./src/debugger/layouts/DefaultLayout.vue","webpack://src/debugger/debugger.js/./src/debugger/views/Timeline.vue","webpack://src/debugger/debugger.js/./src/debugger/components/timeline/TimelineTable.vue","webpack://src/debugger/debugger.js/./src/debugger/components/timeline/TimelineTable.vue?9e8a","webpack://src/debugger/debugger.js/./src/debugger/views/Timeline.vue?7ce8","webpack://src/debugger/debugger.js/./src/debugger/services/nav.js","webpack://src/debugger/debugger.js/./src/debugger/services/utilities.js"],"sourcesContent":["import script from \"./DefaultLayout.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./DefaultLayout.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","<template>\r\n<div v-if=\"currentData\">\r\n <div class=\"p-3 mt-3 mx-4 rounded-3\" style=\"background-color: var(--bs-gray-800);\">\r\n <h1 class=\"text-xl font-bold text-gray-800\">\r\n <slot name=\"title\"></slot>\r\n </h1>\r\n <div class=\"text-muted\">\r\n <router-link to=\"/\" class=\"btn btn-sm btn-primary\">\r\n <fa-icon icon=\"fa-solid fa-list\"></fa-icon>\r\n </router-link>\r\n <button type=\"button\" @click=\"goToLast('/' + route.name)\" class=\"btn btn-sm btn-success\">\r\n <fa-icon icon=\"fa-solid fa-arrows-rotate\"></fa-icon>\r\n </button>\r\n /\r\n {{ currentId }}\r\n / <a target=\"_blank\" class=\"text-gray-600\" :href=\"currentData.url\">{{ currentData.url }}</a>\r\n </div>\r\n </div>\r\n\r\n <slot></slot>\r\n</div>\r\n</template>\r\n\r\n<script setup>\r\nimport { useRoute } from 'vue-router';\r\nimport { goToLast } from '../services/nav';\r\nimport { currentData, currentId } from '../services/store';\r\n\r\nconst route = useRoute();\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","<template>\r\n<DefaultLayout>\r\n <template #title>\r\n Timeline\r\n </template>\r\n\r\n <div class=\"p-4\" v-if=\"data\">\r\n\r\n <section class=\"l-section l-section--system\">\r\n <h3>System Timeline</h3>\r\n\r\n <TimelineTable :items=\"systemItems\" />\r\n </section>\r\n\r\n <section class=\"l-section l-section--profilers mt-5\">\r\n\r\n <ul class=\"nav nav-pills\" id=\"profilers-tab\" role=\"tablist\">\r\n <li class=\"nav-item\" role=\"presentation\"\r\n v-for=\"(instance, i) of instances\">\r\n <button class=\"nav-link active\" id=\"home-tab\" data-bs-toggle=\"tab\"\r\n :data-bs-target=\"`tab-${instance}`\"\r\n type=\"button\"\r\n role=\"tab\"\r\n aria-selected=\"true\">\r\n {{ instance }}\r\n </button>\r\n </li>\r\n </ul>\r\n <div class=\"tab-content mt-4\" id=\"myTabContent\">\r\n <div class=\"tab-pane fade \"\r\n v-for=\"(instance, i) of instances\"\r\n :class=\"[ i === 0 ? 'show active' : '' ]\"\r\n :id=\"`tab-${instance}`\"\r\n role=\"tabpanel\"\r\n tabindex=\"0\">\r\n <div class=\"\">\r\n <TimelineTable :items=\"data[instance].items\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </section>\r\n </div>\r\n</DefaultLayout>\r\n</template>\r\n\r\n<script>\r\nimport { computed, ref } from 'vue';\r\nimport TimelineTable from '../components/timeline/TimelineTable.vue';\r\nimport DefaultLayout from '../layouts/DefaultLayout.vue';\r\nimport $http from '../services/http.js';\r\nexport default {\r\n name: 'Timeline',\r\n components: { TimelineTable, DefaultLayout },\r\n async beforeRouteEnter(to, from ,next) {\r\n next(async (vm) => {\r\n const res = await $http.get('ajax/data?path=profiler');\r\n vm.data = res.data.data;\r\n });\r\n },\r\n async beforeRouteUpdate(to, from ,next) {\r\n const res = await $http.get('ajax/data?path=profiler');\r\n this.data = res.data.data;\r\n },\r\n setup() {\r\n const data = ref(null);\r\n\r\n const instances = computed(() => Object.keys(data.value));\r\n const systemItems = computed(() => {\r\n if (!data.value) {\r\n return [];\r\n }\r\n\r\n return data.value.main.items.filter((item) => {\r\n const tags = item.tags || [];\r\n\r\n return tags.indexOf('system') !== -1;\r\n }) || [];\r\n });\r\n\r\n return {\r\n data,\r\n instances,\r\n systemItems,\r\n };\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","<template>\r\n<div>\r\n <table class=\"table table-bordered\">\r\n <thead>\r\n <tr>\r\n <th>Label</th>\r\n <th class=\"text-end\">Total Time</th>\r\n <th class=\"text-end\">Time</th>\r\n <th class=\"text-end\">Total Memory</th>\r\n <th class=\"text-end\">Memory</th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr v-for=\"item of items\">\r\n <td>\r\n {{ item.label }}\r\n </td>\r\n <td class=\"text-end\">\r\n <span class=\"badge bg-secondary\">\r\n {{ round(item.endTime) }}ms\r\n </span>\r\n </td>\r\n <td class=\"text-end\" v-if=\"getTimeOffset(item.endTime) || true\">\r\n <span class=\"badge\" :class=\"'bg-' + stateColor(getCurrentTimeOffset(), 50)\">\r\n {{ round(getCurrentTimeOffset()) }}ms\r\n </span>\r\n </td>\r\n <td class=\"text-end\">\r\n <span class=\"badge bg-secondary\">\r\n {{ round(bytesToMB(item.memory)) }}MB\r\n </span>\r\n </td>\r\n <td class=\"text-end\" v-if=\"getMemoryOffset(item.memory) || true\">\r\n <span class=\"badge\" :class=\"'bg-' + stateColor(bytesToMB(getCurrentMemoryOffset()), 2)\">\r\n {{ round(bytesToMB(getCurrentMemoryOffset())) }}MB\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n</template>\r\n\r\n<script>\r\nimport { stateColor } from '../../services/utilities';\r\n\r\nexport default {\r\n name: 'TimelineTable',\r\n props: {\r\n items: Array\r\n },\r\n setup() {\r\n let lastTime = 0;\r\n let timeOffset = 0;\r\n\r\n function getTimeOffset(time) {\r\n timeOffset = time - lastTime;\r\n\r\n lastTime = time;\r\n\r\n return timeOffset;\r\n }\r\n\r\n function getCurrentTimeOffset() {\r\n return timeOffset;\r\n }\r\n\r\n let lastMemory = 0;\r\n let memoryOffset = 0;\r\n\r\n function getMemoryOffset(memory) {\r\n memoryOffset = memory - lastMemory;\r\n\r\n lastMemory = memory;\r\n\r\n return memoryOffset;\r\n }\r\n\r\n function getCurrentMemoryOffset() {\r\n return memoryOffset;\r\n }\r\n\r\n function bytesToMB(value) {\r\n return value / 1024 / 1024;\r\n }\r\n\r\n function round(num) {\r\n return Math.round(num * 10000) / 10000;\r\n }\r\n\r\n return {\r\n getTimeOffset,\r\n getCurrentTimeOffset,\r\n getMemoryOffset,\r\n getCurrentMemoryOffset,\r\n stateColor,\r\n bytesToMB,\r\n round\r\n };\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import { render } from \"./TimelineTable.vue?vue&type=template&id=fba58846\"\nimport script from \"./TimelineTable.vue?vue&type=script&lang=js\"\nexport * from \"./TimelineTable.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Applications/XAMPP/xamppfiles/htdocs/earth/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Timeline.vue?vue&type=template&id=394e5109\"\nimport script from \"./Timeline.vue?vue&type=script&lang=js\"\nexport * from \"./Timeline.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Applications/XAMPP/xamppfiles/htdocs/earth/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\nimport router from '../routes.js';\r\nimport $http from './http.js';\r\n\r\nexport async function goToLast(currentRoute = undefined) {\r\n const res = await $http.get('ajax/last');\r\n let route = '';\r\n\r\n if (currentRoute) {\r\n route = currentRoute + '/' + res.data.data;\r\n } else {\r\n route = '/system/' + res.data.data;\r\n }\r\n\r\n return router.push(route);\r\n}\r\n","\r\n\r\nexport function stateColor(value, avg) {\r\n if (value > (avg * 2)) {\r\n return 'danger';\r\n } else if (value > (avg * 1.5)) {\r\n return 'warning';\r\n } else if (value < (avg / 2)) {\r\n return 'success';\r\n } else {\r\n return 'info';\r\n }\r\n}\r\n\r\nexport function httpStatusColor(status) {\r\n if (status >= 300 && status < 400) {\r\n return 'info';\r\n }\r\n\r\n if (status >= 400 && status < 500) {\r\n return 'warning';\r\n }\r\n\r\n if (status >= 200 && status < 300) {\r\n return 'success';\r\n }\r\n\r\n return 'danger';\r\n}\r\n"],"names":["route","useRoute","class","_createElementVNode","id","role","name","props","items","Array","setup","lastTime","timeOffset","lastMemory","memoryOffset","getTimeOffset","time","getCurrentTimeOffset","getMemoryOffset","memory","getCurrentMemoryOffset","stateColor","bytesToMB","value","round","num","Math","_createElementBlock","_hoisted_1","_hoisted_2","_Fragment","_renderList","$props","item","_toDisplayString","label","_hoisted_3","_hoisted_4","$setup","endTime","_hoisted_5","_normalizeClass","_hoisted_6","_hoisted_7","_hoisted_8","components","TimelineTable","DefaultLayout","beforeRouteEnter","to","from","next","async","res","$http","get","vm","data","beforeRouteUpdate","this","ref","instances","computed","Object","keys","systemItems","main","filter","tags","indexOf","_createBlock","_component_DefaultLayout","title","_withCtx","_createVNode","_component_TimelineTable","instance","i","type","tabindex","_hoisted_10","goToLast","currentRoute","arguments","length","undefined","router","push","avg","httpStatusColor","status"],"sourceRoot":""}