@perses-dev/clickhouse-plugin 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +1 -1
- package/__mf/css/async/1580.d3010b86.css +1 -0
- package/__mf/css/async/2341.d3010b86.css +1 -0
- package/__mf/js/{ClickHouse.99e35ca2.js → ClickHouse.8f89cb2c.js} +4 -4
- package/__mf/js/async/1360.33f7e672.js +10 -0
- package/__mf/js/async/2178.16cf2da3.js +2 -0
- package/__mf/js/async/2226.1d4436dc.js +1 -0
- package/__mf/js/async/2472.9f5fd5cf.js +22 -0
- package/__mf/js/async/2652.fd27ec3f.js +101 -0
- package/__mf/js/async/2708.7448dd5c.js +1 -0
- package/__mf/js/async/282.76b8b044.js +1 -0
- package/__mf/js/async/{4075.598f1ee5.js → 4075.b85e5581.js} +1 -1
- package/__mf/js/async/{4238.8c8282dc.js → 4238.a8170f41.js} +1 -1
- package/__mf/js/async/4421.750852d0.js +1 -0
- package/__mf/js/async/6134.a0f2d3c5.js +38 -0
- package/__mf/js/async/6620.1d8e42fd.js +2 -0
- package/__mf/js/async/7991.64a1aaaf.js +7 -0
- package/__mf/js/async/9563.6903fd59.js +2 -0
- package/__mf/js/async/{__federation_expose_ClickHouseDatasource.1ef730b1.js → __federation_expose_ClickHouseDatasource.e3722d39.js} +2 -2
- package/__mf/js/async/__federation_expose_ClickHouseLogQuery.63888cb7.js +20 -0
- package/__mf/js/async/__federation_expose_ClickHouseTimeSeriesQuery.6a30813e.js +20 -0
- package/__mf/js/{main.b7c9a660.js → main.3bc5d901.js} +3 -3
- package/lib/cjs/index.js +0 -1
- package/lib/cjs/queries/click-house-log-query/ClickHouseLogQueryEditor.js +28 -22
- package/lib/cjs/queries/click-house-time-series-query/ClickHouseQueryEditor.js +28 -22
- package/lib/cjs/queries/query-editor-model.js +53 -0
- package/lib/index.d.ts +0 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +0 -1
- package/lib/index.js.map +1 -1
- package/lib/model/click-house-data-types.d.ts +2 -15
- package/lib/model/click-house-data-types.d.ts.map +1 -1
- package/lib/model/click-house-data-types.js.map +1 -1
- package/lib/queries/click-house-log-query/ClickHouseLogQueryEditor.d.ts.map +1 -1
- package/lib/queries/click-house-log-query/ClickHouseLogQueryEditor.js +29 -23
- package/lib/queries/click-house-log-query/ClickHouseLogQueryEditor.js.map +1 -1
- package/lib/queries/click-house-log-query/get-click-house-log-data.js.map +1 -1
- package/lib/queries/click-house-log-query/log-query-plugin-interface.d.ts +2 -2
- package/lib/queries/click-house-log-query/log-query-plugin-interface.d.ts.map +1 -1
- package/lib/queries/click-house-log-query/log-query-plugin-interface.js.map +1 -1
- package/lib/queries/click-house-time-series-query/ClickHouseQueryEditor.d.ts.map +1 -1
- package/lib/queries/click-house-time-series-query/ClickHouseQueryEditor.js +29 -23
- package/lib/queries/click-house-time-series-query/ClickHouseQueryEditor.js.map +1 -1
- package/lib/queries/query-editor-model.d.ts +20 -0
- package/lib/queries/query-editor-model.d.ts.map +1 -0
- package/lib/queries/query-editor-model.js +50 -0
- package/lib/queries/query-editor-model.js.map +1 -0
- package/mf-manifest.json +48 -108
- package/mf-stats.json +48 -110
- package/package.json +8 -17
- package/__mf/css/async/1580.6b2b0c71.css +0 -1
- package/__mf/css/async/2341.6b2b0c71.css +0 -1
- package/__mf/css/async/6759.6b2b0c71.css +0 -1
- package/__mf/js/async/2417.1f135170.js +0 -2
- package/__mf/js/async/2448.e42be954.js +0 -10
- package/__mf/js/async/3632.f88c5ced.js +0 -101
- package/__mf/js/async/4168.af4fa8b3.js +0 -2
- package/__mf/js/async/4368.8468ec0a.js +0 -2
- package/__mf/js/async/4421.de18bb66.js +0 -1
- package/__mf/js/async/5035.8a983cd3.js +0 -73
- package/__mf/js/async/56.9997e6f8.js +0 -1
- package/__mf/js/async/5713.92805154.js +0 -1
- package/__mf/js/async/6411.3873365b.js +0 -1
- package/__mf/js/async/6467.f4e5b898.js +0 -1
- package/__mf/js/async/6569.f8ee50db.js +0 -1
- package/__mf/js/async/6714.e4b5281a.js +0 -2
- package/__mf/js/async/8465.f4c53fef.js +0 -7
- package/__mf/js/async/8709.6d909ac5.js +0 -2
- package/__mf/js/async/9654.ab803765.js +0 -37
- package/__mf/js/async/__federation_expose_ClickHouseLogQuery.3f312752.js +0 -19
- package/__mf/js/async/__federation_expose_ClickHouseTimeSeriesQuery.a3f88e6b.js +0 -19
- package/__mf/js/async/__federation_expose_Logs.88d56eeb.js +0 -2
- package/lib/cjs/panels/index.js +0 -30
- package/lib/cjs/panels/logs/Logs.js +0 -37
- package/lib/cjs/panels/logs/LogsComponent.js +0 -47
- package/lib/cjs/panels/logs/LogsSettingsEditor.js +0 -57
- package/lib/cjs/panels/logs/components/EmptyLogsState.js +0 -49
- package/lib/cjs/panels/logs/components/LogRow/LogDetailsTable.js +0 -71
- package/lib/cjs/panels/logs/components/LogRow/LogRow.js +0 -163
- package/lib/cjs/panels/logs/components/LogRow/LogTimestamp.js +0 -45
- package/lib/cjs/panels/logs/components/LogRow/LogsStyles.js +0 -77
- package/lib/cjs/panels/logs/components/LogRow/index.js +0 -37
- package/lib/cjs/panels/logs/components/LogsList.js +0 -44
- package/lib/cjs/panels/logs/components/VirtualizedLogsList.js +0 -60
- package/lib/cjs/panels/logs/components/hooks/useExpandedRows.js +0 -45
- package/lib/cjs/panels/logs/index.js +0 -33
- package/lib/cjs/panels/logs/logs-types.js +0 -16
- package/lib/panels/index.d.ts +0 -2
- package/lib/panels/index.d.ts.map +0 -1
- package/lib/panels/index.js +0 -15
- package/lib/panels/index.js.map +0 -1
- package/lib/panels/logs/Logs.d.ts +0 -4
- package/lib/panels/logs/Logs.d.ts.map +0 -1
- package/lib/panels/logs/Logs.js +0 -29
- package/lib/panels/logs/Logs.js.map +0 -1
- package/lib/panels/logs/LogsComponent.d.ts +0 -4
- package/lib/panels/logs/LogsComponent.d.ts.map +0 -1
- package/lib/panels/logs/LogsComponent.js +0 -34
- package/lib/panels/logs/LogsComponent.js.map +0 -1
- package/lib/panels/logs/LogsSettingsEditor.d.ts +0 -7
- package/lib/panels/logs/LogsSettingsEditor.d.ts.map +0 -1
- package/lib/panels/logs/LogsSettingsEditor.js +0 -49
- package/lib/panels/logs/LogsSettingsEditor.js.map +0 -1
- package/lib/panels/logs/components/EmptyLogsState.d.ts +0 -7
- package/lib/panels/logs/components/EmptyLogsState.d.ts.map +0 -1
- package/lib/panels/logs/components/EmptyLogsState.js +0 -36
- package/lib/panels/logs/components/EmptyLogsState.js.map +0 -1
- package/lib/panels/logs/components/LogRow/LogDetailsTable.d.ts +0 -8
- package/lib/panels/logs/components/LogRow/LogDetailsTable.d.ts.map +0 -1
- package/lib/panels/logs/components/LogRow/LogDetailsTable.js +0 -58
- package/lib/panels/logs/components/LogRow/LogDetailsTable.js.map +0 -1
- package/lib/panels/logs/components/LogRow/LogRow.d.ts +0 -14
- package/lib/panels/logs/components/LogRow/LogRow.d.ts.map +0 -1
- package/lib/panels/logs/components/LogRow/LogRow.js +0 -109
- package/lib/panels/logs/components/LogRow/LogRow.js.map +0 -1
- package/lib/panels/logs/components/LogRow/LogTimestamp.d.ts +0 -7
- package/lib/panels/logs/components/LogRow/LogTimestamp.d.ts.map +0 -1
- package/lib/panels/logs/components/LogRow/LogTimestamp.js +0 -32
- package/lib/panels/logs/components/LogRow/LogTimestamp.js.map +0 -1
- package/lib/panels/logs/components/LogRow/LogsStyles.d.ts +0 -22
- package/lib/panels/logs/components/LogRow/LogsStyles.d.ts.map +0 -1
- package/lib/panels/logs/components/LogRow/LogsStyles.js +0 -55
- package/lib/panels/logs/components/LogRow/LogsStyles.js.map +0 -1
- package/lib/panels/logs/components/LogRow/index.d.ts +0 -3
- package/lib/panels/logs/components/LogRow/index.d.ts.map +0 -1
- package/lib/panels/logs/components/LogRow/index.js +0 -16
- package/lib/panels/logs/components/LogRow/index.js.map +0 -1
- package/lib/panels/logs/components/LogsList.d.ts +0 -8
- package/lib/panels/logs/components/LogsList.d.ts.map +0 -1
- package/lib/panels/logs/components/LogsList.js +0 -31
- package/lib/panels/logs/components/LogsList.js.map +0 -1
- package/lib/panels/logs/components/VirtualizedLogsList.d.ts +0 -10
- package/lib/panels/logs/components/VirtualizedLogsList.d.ts.map +0 -1
- package/lib/panels/logs/components/VirtualizedLogsList.js +0 -47
- package/lib/panels/logs/components/VirtualizedLogsList.js.map +0 -1
- package/lib/panels/logs/components/hooks/useExpandedRows.d.ts +0 -6
- package/lib/panels/logs/components/hooks/useExpandedRows.d.ts.map +0 -1
- package/lib/panels/logs/components/hooks/useExpandedRows.js +0 -37
- package/lib/panels/logs/components/hooks/useExpandedRows.js.map +0 -1
- package/lib/panels/logs/index.d.ts +0 -5
- package/lib/panels/logs/index.d.ts.map +0 -1
- package/lib/panels/logs/index.js +0 -18
- package/lib/panels/logs/index.js.map +0 -1
- package/lib/panels/logs/logs-types.d.ts +0 -16
- package/lib/panels/logs/logs-types.d.ts.map +0 -1
- package/lib/panels/logs/logs-types.js +0 -15
- package/lib/panels/logs/logs-types.js.map +0 -1
- /package/__mf/js/async/{2448.e42be954.js.LICENSE.txt → 1360.33f7e672.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{4368.8468ec0a.js.LICENSE.txt → 2178.16cf2da3.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{5035.8a983cd3.js.LICENSE.txt → 2472.9f5fd5cf.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{6714.e4b5281a.js.LICENSE.txt → 6620.1d8e42fd.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{8465.f4c53fef.js.LICENSE.txt → 7991.64a1aaaf.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{2417.1f135170.js.LICENSE.txt → 9563.6903fd59.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{8709.6d909ac5.js.LICENSE.txt → __federation_expose_ClickHouseDatasource.e3722d39.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{__federation_expose_ClickHouseDatasource.1ef730b1.js.LICENSE.txt → __federation_expose_ClickHouseLogQuery.63888cb7.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{__federation_expose_Logs.88d56eeb.js.LICENSE.txt → __federation_expose_ClickHouseTimeSeriesQuery.6a30813e.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/queries/click-house-time-series-query/ClickHouseQueryEditor.tsx"],"sourcesContent":["// Copyright 2025 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {\n DatasourceSelect,\n DatasourceSelectProps,\n isVariableDatasource,\n OptionsEditorProps,\n} from '@perses-dev/plugin-system';\nimport { ReactElement, useCallback
|
|
1
|
+
{"version":3,"sources":["../../../../src/queries/click-house-time-series-query/ClickHouseQueryEditor.tsx"],"sourcesContent":["// Copyright 2025 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {\n DatasourceSelect,\n DatasourceSelectProps,\n isVariableDatasource,\n OptionsEditorProps,\n} from '@perses-dev/plugin-system';\nimport { ReactElement, useCallback } from 'react';\nimport { produce } from 'immer';\nimport { ClickHouseTimeSeriesQuerySpec } from './click-house-query-types';\nimport { DATASOURCE_KIND, DEFAULT_DATASOURCE } from '../constants';\nimport { ClickQLEditor } from '../../components';\nimport { Stack } from '@mui/material';\nimport { queryExample } from '../../components/constants';\nimport { useQueryState } from '../query-editor-model';\n\ntype ClickHouseTimeSeriesQueryEditorProps = OptionsEditorProps<ClickHouseTimeSeriesQuerySpec>;\n\nexport function ClickHouseTimeSeriesQueryEditor(props: ClickHouseTimeSeriesQueryEditorProps): ReactElement {\n const { onChange, value, queryHandlerSettings } = props;\n const { datasource } = value;\n const selectedDatasource = datasource ?? DEFAULT_DATASOURCE;\n const { query, handleQueryChange, handleQueryBlur } = useQueryState(props);\n\n const handleDatasourceChange: DatasourceSelectProps['onChange'] = (newDatasourceSelection) => {\n if (!isVariableDatasource(newDatasourceSelection) && newDatasourceSelection.kind === DATASOURCE_KIND) {\n onChange(\n produce(value, (draft) => {\n draft.datasource = newDatasourceSelection;\n })\n );\n\n if (queryHandlerSettings?.setWatchOtherSpecs)\n queryHandlerSettings.setWatchOtherSpecs({ ...value, datasource: newDatasourceSelection });\n return;\n }\n throw new Error('Got unexpected non ClickHouse datasource selection');\n };\n\n // Immediate query execution on Enter or blur\n const handleQueryExecute = (query: string) => {\n if (queryHandlerSettings?.watchQueryChanges) {\n queryHandlerSettings.watchQueryChanges(query);\n }\n onChange(\n produce(value, (draft) => {\n draft.query = query;\n })\n );\n };\n\n const handleClickHouseQueryChange = useCallback(\n (e: string) => {\n handleQueryChange(e);\n if (queryHandlerSettings?.watchQueryChanges) {\n queryHandlerSettings.watchQueryChanges(e);\n }\n },\n [handleQueryChange, queryHandlerSettings]\n );\n\n const examplesStyle: React.CSSProperties = {\n fontSize: '11px',\n color: '#777',\n backgroundColor: '#f5f5f5',\n padding: '8px',\n borderRadius: '4px',\n fontFamily: 'Monaco, Menlo, \"Ubuntu Mono\", monospace',\n whiteSpace: 'pre-wrap',\n lineHeight: '1.3',\n };\n\n return (\n <Stack spacing={1.5}>\n <DatasourceSelect\n datasourcePluginKind={DATASOURCE_KIND}\n value={selectedDatasource}\n onChange={handleDatasourceChange}\n label=\"ClickHouse Datasource\"\n notched\n />\n <ClickQLEditor\n value={query}\n onChange={handleClickHouseQueryChange}\n onBlur={queryHandlerSettings?.runWithOnBlur ? handleQueryBlur : undefined}\n onKeyDown={(event) => {\n if (event.key === 'Enter' && (event.ctrlKey || event.metaKey)) {\n event.preventDefault();\n handleQueryExecute(query);\n }\n }}\n placeholder=\"Enter ClickHouse SQL query\"\n />\n\n <details>\n <summary style={{ cursor: 'pointer', fontSize: '12px', color: '#666', marginBottom: '8px' }}>\n Query Examples\n </summary>\n <div style={examplesStyle}>{queryExample}</div>\n </details>\n </Stack>\n );\n}\n"],"names":["DatasourceSelect","isVariableDatasource","useCallback","produce","DATASOURCE_KIND","DEFAULT_DATASOURCE","ClickQLEditor","Stack","queryExample","useQueryState","ClickHouseTimeSeriesQueryEditor","props","onChange","value","queryHandlerSettings","datasource","selectedDatasource","query","handleQueryChange","handleQueryBlur","handleDatasourceChange","newDatasourceSelection","kind","draft","setWatchOtherSpecs","Error","handleQueryExecute","watchQueryChanges","handleClickHouseQueryChange","e","examplesStyle","fontSize","color","backgroundColor","padding","borderRadius","fontFamily","whiteSpace","lineHeight","spacing","datasourcePluginKind","label","notched","onBlur","runWithOnBlur","undefined","onKeyDown","event","key","ctrlKey","metaKey","preventDefault","placeholder","details","summary","style","cursor","marginBottom","div"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAEjC,SACEA,gBAAgB,EAEhBC,oBAAoB,QAEf,4BAA4B;AACnC,SAAuBC,WAAW,QAAQ,QAAQ;AAClD,SAASC,OAAO,QAAQ,QAAQ;AAEhC,SAASC,eAAe,EAAEC,kBAAkB,QAAQ,eAAe;AACnE,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,KAAK,QAAQ,gBAAgB;AACtC,SAASC,YAAY,QAAQ,6BAA6B;AAC1D,SAASC,aAAa,QAAQ,wBAAwB;AAItD,OAAO,SAASC,gCAAgCC,KAA2C;IACzF,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,oBAAoB,EAAE,GAAGH;IAClD,MAAM,EAAEI,UAAU,EAAE,GAAGF;IACvB,MAAMG,qBAAqBD,cAAcV;IACzC,MAAM,EAAEY,KAAK,EAAEC,iBAAiB,EAAEC,eAAe,EAAE,GAAGV,cAAcE;IAEpE,MAAMS,yBAA4D,CAACC;QACjE,IAAI,CAACpB,qBAAqBoB,2BAA2BA,uBAAuBC,IAAI,KAAKlB,iBAAiB;YACpGQ,SACET,QAAQU,OAAO,CAACU;gBACdA,MAAMR,UAAU,GAAGM;YACrB;YAGF,IAAIP,sBAAsBU,oBACxBV,qBAAqBU,kBAAkB,CAAC;gBAAE,GAAGX,KAAK;gBAAEE,YAAYM;YAAuB;YACzF;QACF;QACA,MAAM,IAAII,MAAM;IAClB;IAEA,6CAA6C;IAC7C,MAAMC,qBAAqB,CAACT;QAC1B,IAAIH,sBAAsBa,mBAAmB;YAC3Cb,qBAAqBa,iBAAiB,CAACV;QACzC;QACAL,SACET,QAAQU,OAAO,CAACU;YACdA,MAAMN,KAAK,GAAGA;QAChB;IAEJ;IAEA,MAAMW,8BAA8B1B,YAClC,CAAC2B;QACCX,kBAAkBW;QAClB,IAAIf,sBAAsBa,mBAAmB;YAC3Cb,qBAAqBa,iBAAiB,CAACE;QACzC;IACF,GACA;QAACX;QAAmBJ;KAAqB;IAG3C,MAAMgB,gBAAqC;QACzCC,UAAU;QACVC,OAAO;QACPC,iBAAiB;QACjBC,SAAS;QACTC,cAAc;QACdC,YAAY;QACZC,YAAY;QACZC,YAAY;IACd;IAEA,qBACE,MAAC/B;QAAMgC,SAAS;;0BACd,KAACvC;gBACCwC,sBAAsBpC;gBACtBS,OAAOG;gBACPJ,UAAUQ;gBACVqB,OAAM;gBACNC,OAAO;;0BAET,KAACpC;gBACCO,OAAOI;gBACPL,UAAUgB;gBACVe,QAAQ7B,sBAAsB8B,gBAAgBzB,kBAAkB0B;gBAChEC,WAAW,CAACC;oBACV,IAAIA,MAAMC,GAAG,KAAK,WAAYD,CAAAA,MAAME,OAAO,IAAIF,MAAMG,OAAO,AAAD,GAAI;wBAC7DH,MAAMI,cAAc;wBACpBzB,mBAAmBT;oBACrB;gBACF;gBACAmC,aAAY;;0BAGd,MAACC;;kCACC,KAACC;wBAAQC,OAAO;4BAAEC,QAAQ;4BAAWzB,UAAU;4BAAQC,OAAO;4BAAQyB,cAAc;wBAAM;kCAAG;;kCAG7F,KAACC;wBAAIH,OAAOzB;kCAAgBtB;;;;;;AAIpC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { OptionsEditorProps } from '@perses-dev/plugin-system';
|
|
2
|
+
/**
|
|
3
|
+
* Generic type for any ClickHouse query spec that has a query field
|
|
4
|
+
*/
|
|
5
|
+
type ClickHouseQuerySpec = {
|
|
6
|
+
query?: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* A hook for managing the `query` state in ClickHouse query specs. Returns the `query` value, along with
|
|
10
|
+
* `onChange` and `onBlur` event handlers to the input. Keeps a local copy of the user's input and only syncs those
|
|
11
|
+
* changes with the overall spec value once the input is blurred to prevent re-running queries in the panel's preview
|
|
12
|
+
* every time the user types.
|
|
13
|
+
*/
|
|
14
|
+
export declare function useQueryState<T extends ClickHouseQuerySpec>(props: OptionsEditorProps<T>): {
|
|
15
|
+
query: string;
|
|
16
|
+
handleQueryChange: (e: string) => void;
|
|
17
|
+
handleQueryBlur: () => void;
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=query-editor-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-editor-model.d.ts","sourceRoot":"","sources":["../../../src/queries/query-editor-model.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;GAEG;AACH,KAAK,mBAAmB,GAAG;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,mBAAmB,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG;IAC1F,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B,CA+BA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// Copyright 2025 The Perses Authors
|
|
2
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
// you may not use this file except in compliance with the License.
|
|
4
|
+
// You may obtain a copy of the License at
|
|
5
|
+
//
|
|
6
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
//
|
|
8
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
// See the License for the specific language governing permissions and
|
|
12
|
+
// limitations under the License.
|
|
13
|
+
import { useState } from 'react';
|
|
14
|
+
import { produce } from 'immer';
|
|
15
|
+
/**
|
|
16
|
+
* A hook for managing the `query` state in ClickHouse query specs. Returns the `query` value, along with
|
|
17
|
+
* `onChange` and `onBlur` event handlers to the input. Keeps a local copy of the user's input and only syncs those
|
|
18
|
+
* changes with the overall spec value once the input is blurred to prevent re-running queries in the panel's preview
|
|
19
|
+
* every time the user types.
|
|
20
|
+
*/ export function useQueryState(props) {
|
|
21
|
+
const { onChange, value } = props;
|
|
22
|
+
// Local copy of the query's value
|
|
23
|
+
const [query, setQuery] = useState(value.query || '');
|
|
24
|
+
// This is basically "getDerivedStateFromProps" to make sure if spec's value changes external to this component,
|
|
25
|
+
// we render with the latest value
|
|
26
|
+
const [lastSyncedQuery, setLastSyncedQuery] = useState(value.query);
|
|
27
|
+
if (value.query !== lastSyncedQuery) {
|
|
28
|
+
setQuery(value.query || '');
|
|
29
|
+
setLastSyncedQuery(value.query);
|
|
30
|
+
}
|
|
31
|
+
// Update our local state's copy as the user types
|
|
32
|
+
const handleQueryChange = (e)=>{
|
|
33
|
+
setQuery(e);
|
|
34
|
+
};
|
|
35
|
+
// Propagate changes to the query's value when the input is blurred to avoid constantly re-running queries in the
|
|
36
|
+
// PanelPreview
|
|
37
|
+
const handleQueryBlur = ()=>{
|
|
38
|
+
setLastSyncedQuery(query);
|
|
39
|
+
onChange(produce(value, (draft)=>{
|
|
40
|
+
draft.query = query;
|
|
41
|
+
}));
|
|
42
|
+
};
|
|
43
|
+
return {
|
|
44
|
+
query,
|
|
45
|
+
handleQueryChange,
|
|
46
|
+
handleQueryBlur
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=query-editor-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/queries/query-editor-model.ts"],"sourcesContent":["// Copyright 2025 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { useState } from 'react';\nimport { produce } from 'immer';\nimport { OptionsEditorProps } from '@perses-dev/plugin-system';\n\n/**\n * Generic type for any ClickHouse query spec that has a query field\n */\ntype ClickHouseQuerySpec = {\n query?: string;\n};\n\n/**\n * A hook for managing the `query` state in ClickHouse query specs. Returns the `query` value, along with\n * `onChange` and `onBlur` event handlers to the input. Keeps a local copy of the user's input and only syncs those\n * changes with the overall spec value once the input is blurred to prevent re-running queries in the panel's preview\n * every time the user types.\n */\nexport function useQueryState<T extends ClickHouseQuerySpec>(props: OptionsEditorProps<T>): {\n query: string;\n handleQueryChange: (e: string) => void;\n handleQueryBlur: () => void;\n} {\n const { onChange, value } = props;\n\n // Local copy of the query's value\n const [query, setQuery] = useState(value.query || '');\n\n // This is basically \"getDerivedStateFromProps\" to make sure if spec's value changes external to this component,\n // we render with the latest value\n const [lastSyncedQuery, setLastSyncedQuery] = useState(value.query);\n if (value.query !== lastSyncedQuery) {\n setQuery(value.query || '');\n setLastSyncedQuery(value.query);\n }\n\n // Update our local state's copy as the user types\n const handleQueryChange = (e: string): void => {\n setQuery(e);\n };\n\n // Propagate changes to the query's value when the input is blurred to avoid constantly re-running queries in the\n // PanelPreview\n const handleQueryBlur = (): void => {\n setLastSyncedQuery(query);\n onChange(\n produce(value, (draft) => {\n draft.query = query;\n })\n );\n };\n\n return { query, handleQueryChange, handleQueryBlur };\n}\n"],"names":["useState","produce","useQueryState","props","onChange","value","query","setQuery","lastSyncedQuery","setLastSyncedQuery","handleQueryChange","e","handleQueryBlur","draft"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,QAAQ,QAAQ,QAAQ;AACjC,SAASC,OAAO,QAAQ,QAAQ;AAUhC;;;;;CAKC,GACD,OAAO,SAASC,cAA6CC,KAA4B;IAKvF,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAE,GAAGF;IAE5B,kCAAkC;IAClC,MAAM,CAACG,OAAOC,SAAS,GAAGP,SAASK,MAAMC,KAAK,IAAI;IAElD,gHAAgH;IAChH,kCAAkC;IAClC,MAAM,CAACE,iBAAiBC,mBAAmB,GAAGT,SAASK,MAAMC,KAAK;IAClE,IAAID,MAAMC,KAAK,KAAKE,iBAAiB;QACnCD,SAASF,MAAMC,KAAK,IAAI;QACxBG,mBAAmBJ,MAAMC,KAAK;IAChC;IAEA,kDAAkD;IAClD,MAAMI,oBAAoB,CAACC;QACzBJ,SAASI;IACX;IAEA,iHAAiH;IACjH,eAAe;IACf,MAAMC,kBAAkB;QACtBH,mBAAmBH;QACnBF,SACEH,QAAQI,OAAO,CAACQ;YACdA,MAAMP,KAAK,GAAGA;QAChB;IAEJ;IAEA,OAAO;QAAEA;QAAOI;QAAmBE;IAAgB;AACrD"}
|
package/mf-manifest.json
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
"name": "ClickHouse",
|
|
6
6
|
"type": "app",
|
|
7
7
|
"buildInfo": {
|
|
8
|
-
"buildVersion": "0.
|
|
8
|
+
"buildVersion": "0.3.0",
|
|
9
9
|
"buildName": "@perses-dev/clickhouse-plugin"
|
|
10
10
|
},
|
|
11
11
|
"remoteEntry": {
|
|
12
|
-
"name": "__mf/js/ClickHouse.
|
|
12
|
+
"name": "__mf/js/ClickHouse.8f89cb2c.js",
|
|
13
13
|
"path": "",
|
|
14
14
|
"type": "global"
|
|
15
15
|
},
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"globalName": "ClickHouse",
|
|
23
23
|
"pluginVersion": "0.19.1",
|
|
24
24
|
"prefetchInterface": false,
|
|
25
|
-
"
|
|
25
|
+
"getPublicPath": "function() { const prefix = window.PERSES_PLUGIN_ASSETS_PATH || window.PERSES_APP_CONFIG?.api_prefix || \"\"; return prefix + \"/plugins/ClickHouse/\"; }"
|
|
26
26
|
},
|
|
27
27
|
"shared": [
|
|
28
28
|
{
|
|
@@ -87,14 +87,14 @@
|
|
|
87
87
|
{
|
|
88
88
|
"id": "ClickHouse:@perses-dev/components",
|
|
89
89
|
"name": "@perses-dev/components",
|
|
90
|
-
"version": "0.
|
|
90
|
+
"version": "0.53.0-beta.1",
|
|
91
91
|
"singleton": true,
|
|
92
|
-
"requiredVersion": "^0.
|
|
92
|
+
"requiredVersion": "^0.53.0-beta.1",
|
|
93
93
|
"assets": {
|
|
94
94
|
"js": {
|
|
95
95
|
"async": [],
|
|
96
96
|
"sync": [
|
|
97
|
-
"__mf/js/async/
|
|
97
|
+
"__mf/js/async/7991.64a1aaaf.js"
|
|
98
98
|
]
|
|
99
99
|
},
|
|
100
100
|
"css": {
|
|
@@ -106,14 +106,14 @@
|
|
|
106
106
|
{
|
|
107
107
|
"id": "ClickHouse:@perses-dev/dashboards",
|
|
108
108
|
"name": "@perses-dev/dashboards",
|
|
109
|
-
"version": "0.
|
|
109
|
+
"version": "0.53.0-beta.1",
|
|
110
110
|
"singleton": true,
|
|
111
|
-
"requiredVersion": "^0.
|
|
111
|
+
"requiredVersion": "^0.53.0-beta.1",
|
|
112
112
|
"assets": {
|
|
113
113
|
"js": {
|
|
114
114
|
"async": [],
|
|
115
115
|
"sync": [
|
|
116
|
-
"__mf/js/async/
|
|
116
|
+
"__mf/js/async/2472.9f5fd5cf.js"
|
|
117
117
|
]
|
|
118
118
|
},
|
|
119
119
|
"css": {
|
|
@@ -125,14 +125,14 @@
|
|
|
125
125
|
{
|
|
126
126
|
"id": "ClickHouse:@perses-dev/explore",
|
|
127
127
|
"name": "@perses-dev/explore",
|
|
128
|
-
"version": "0.
|
|
128
|
+
"version": "0.53.0-beta.1",
|
|
129
129
|
"singleton": true,
|
|
130
|
-
"requiredVersion": "^0.
|
|
130
|
+
"requiredVersion": "^0.53.0-beta.1",
|
|
131
131
|
"assets": {
|
|
132
132
|
"js": {
|
|
133
133
|
"async": [],
|
|
134
134
|
"sync": [
|
|
135
|
-
"__mf/js/async/4421.
|
|
135
|
+
"__mf/js/async/4421.750852d0.js"
|
|
136
136
|
]
|
|
137
137
|
},
|
|
138
138
|
"css": {
|
|
@@ -144,14 +144,14 @@
|
|
|
144
144
|
{
|
|
145
145
|
"id": "ClickHouse:@perses-dev/plugin-system",
|
|
146
146
|
"name": "@perses-dev/plugin-system",
|
|
147
|
-
"version": "0.
|
|
147
|
+
"version": "0.53.0-beta.1",
|
|
148
148
|
"singleton": true,
|
|
149
|
-
"requiredVersion": "^0.
|
|
149
|
+
"requiredVersion": "^0.53.0-beta.1",
|
|
150
150
|
"assets": {
|
|
151
151
|
"js": {
|
|
152
152
|
"async": [],
|
|
153
153
|
"sync": [
|
|
154
|
-
"__mf/js/async/
|
|
154
|
+
"__mf/js/async/2178.16cf2da3.js"
|
|
155
155
|
]
|
|
156
156
|
},
|
|
157
157
|
"css": {
|
|
@@ -189,7 +189,7 @@
|
|
|
189
189
|
"js": {
|
|
190
190
|
"async": [],
|
|
191
191
|
"sync": [
|
|
192
|
-
"__mf/js/async/4075.
|
|
192
|
+
"__mf/js/async/4075.b85e5581.js"
|
|
193
193
|
]
|
|
194
194
|
},
|
|
195
195
|
"css": {
|
|
@@ -340,37 +340,32 @@
|
|
|
340
340
|
"assets": {
|
|
341
341
|
"js": {
|
|
342
342
|
"sync": [
|
|
343
|
-
"__mf/js/async/__federation_expose_ClickHouseDatasource.
|
|
343
|
+
"__mf/js/async/__federation_expose_ClickHouseDatasource.e3722d39.js"
|
|
344
344
|
],
|
|
345
345
|
"async": [
|
|
346
|
-
"__mf/js/async/
|
|
347
|
-
"__mf/js/async/
|
|
346
|
+
"__mf/js/async/282.76b8b044.js",
|
|
347
|
+
"__mf/js/async/1360.33f7e672.js",
|
|
348
348
|
"__mf/js/async/2114.27f707a0.js",
|
|
349
|
-
"__mf/js/async/
|
|
350
|
-
"__mf/js/async/
|
|
351
|
-
"__mf/js/async/
|
|
352
|
-
"__mf/js/async/6467.f4e5b898.js",
|
|
353
|
-
"__mf/js/async/3632.f88c5ced.js",
|
|
354
|
-
"__mf/js/async/4168.af4fa8b3.js",
|
|
355
|
-
"__mf/js/async/6569.f8ee50db.js",
|
|
356
|
-
"__mf/js/async/__federation_expose_Logs.88d56eeb.js",
|
|
349
|
+
"__mf/js/async/__federation_expose_ClickHouseTimeSeriesQuery.6a30813e.js",
|
|
350
|
+
"__mf/js/async/__federation_expose_ClickHouseLogQuery.63888cb7.js",
|
|
351
|
+
"__mf/js/async/2226.1d4436dc.js",
|
|
357
352
|
"__mf/js/async/7376.c01a7f82.js",
|
|
358
|
-
"__mf/js/async/
|
|
359
|
-
"__mf/js/async/
|
|
353
|
+
"__mf/js/async/6620.1d8e42fd.js",
|
|
354
|
+
"__mf/js/async/2652.fd27ec3f.js",
|
|
360
355
|
"__mf/js/async/3431.54fb88df.js",
|
|
361
|
-
"__mf/js/async/
|
|
362
|
-
"__mf/js/async/4238.
|
|
356
|
+
"__mf/js/async/6134.a0f2d3c5.js",
|
|
357
|
+
"__mf/js/async/4238.a8170f41.js",
|
|
363
358
|
"__mf/js/async/3224.5735a223.js",
|
|
364
359
|
"__mf/js/async/2292.248bd1ea.js",
|
|
365
360
|
"__mf/js/async/8488.16a69ea5.js",
|
|
366
361
|
"__mf/js/async/8216.44c6334e.js",
|
|
367
|
-
"__mf/js/async/
|
|
362
|
+
"__mf/js/async/2708.7448dd5c.js"
|
|
368
363
|
]
|
|
369
364
|
},
|
|
370
365
|
"css": {
|
|
371
366
|
"sync": [],
|
|
372
367
|
"async": [
|
|
373
|
-
"__mf/css/async/
|
|
368
|
+
"__mf/css/async/2341.d3010b86.css"
|
|
374
369
|
]
|
|
375
370
|
}
|
|
376
371
|
},
|
|
@@ -382,36 +377,30 @@
|
|
|
382
377
|
"assets": {
|
|
383
378
|
"js": {
|
|
384
379
|
"sync": [
|
|
385
|
-
"__mf/js/async/
|
|
380
|
+
"__mf/js/async/282.76b8b044.js",
|
|
381
|
+
"__mf/js/async/1360.33f7e672.js",
|
|
386
382
|
"__mf/js/async/2114.27f707a0.js",
|
|
387
|
-
"__mf/js/async/
|
|
388
|
-
"__mf/js/async/__federation_expose_ClickHouseTimeSeriesQuery.a3f88e6b.js"
|
|
383
|
+
"__mf/js/async/__federation_expose_ClickHouseTimeSeriesQuery.6a30813e.js"
|
|
389
384
|
],
|
|
390
385
|
"async": [
|
|
391
|
-
"__mf/js/async/
|
|
392
|
-
"__mf/js/async/6467.f4e5b898.js",
|
|
393
|
-
"__mf/js/async/2448.e42be954.js",
|
|
394
|
-
"__mf/js/async/3632.f88c5ced.js",
|
|
395
|
-
"__mf/js/async/4168.af4fa8b3.js",
|
|
396
|
-
"__mf/js/async/6569.f8ee50db.js",
|
|
397
|
-
"__mf/js/async/__federation_expose_Logs.88d56eeb.js",
|
|
386
|
+
"__mf/js/async/2226.1d4436dc.js",
|
|
398
387
|
"__mf/js/async/7376.c01a7f82.js",
|
|
399
|
-
"__mf/js/async/
|
|
400
|
-
"__mf/js/async/
|
|
388
|
+
"__mf/js/async/6620.1d8e42fd.js",
|
|
389
|
+
"__mf/js/async/2652.fd27ec3f.js",
|
|
401
390
|
"__mf/js/async/3431.54fb88df.js",
|
|
402
|
-
"__mf/js/async/
|
|
403
|
-
"__mf/js/async/4238.
|
|
391
|
+
"__mf/js/async/6134.a0f2d3c5.js",
|
|
392
|
+
"__mf/js/async/4238.a8170f41.js",
|
|
404
393
|
"__mf/js/async/3224.5735a223.js",
|
|
405
394
|
"__mf/js/async/2292.248bd1ea.js",
|
|
406
395
|
"__mf/js/async/8488.16a69ea5.js",
|
|
407
396
|
"__mf/js/async/8216.44c6334e.js",
|
|
408
|
-
"__mf/js/async/
|
|
397
|
+
"__mf/js/async/2708.7448dd5c.js"
|
|
409
398
|
]
|
|
410
399
|
},
|
|
411
400
|
"css": {
|
|
412
401
|
"sync": [],
|
|
413
402
|
"async": [
|
|
414
|
-
"__mf/css/async/
|
|
403
|
+
"__mf/css/async/2341.d3010b86.css"
|
|
415
404
|
]
|
|
416
405
|
}
|
|
417
406
|
},
|
|
@@ -423,83 +412,34 @@
|
|
|
423
412
|
"assets": {
|
|
424
413
|
"js": {
|
|
425
414
|
"sync": [
|
|
426
|
-
"__mf/js/async/
|
|
415
|
+
"__mf/js/async/282.76b8b044.js",
|
|
416
|
+
"__mf/js/async/1360.33f7e672.js",
|
|
427
417
|
"__mf/js/async/2114.27f707a0.js",
|
|
428
|
-
"__mf/js/async/
|
|
429
|
-
"__mf/js/async/__federation_expose_ClickHouseLogQuery.3f312752.js"
|
|
418
|
+
"__mf/js/async/__federation_expose_ClickHouseLogQuery.63888cb7.js"
|
|
430
419
|
],
|
|
431
420
|
"async": [
|
|
432
|
-
"__mf/js/async/
|
|
433
|
-
"__mf/js/async/6467.f4e5b898.js",
|
|
434
|
-
"__mf/js/async/2448.e42be954.js",
|
|
435
|
-
"__mf/js/async/3632.f88c5ced.js",
|
|
436
|
-
"__mf/js/async/4168.af4fa8b3.js",
|
|
437
|
-
"__mf/js/async/6569.f8ee50db.js",
|
|
438
|
-
"__mf/js/async/__federation_expose_Logs.88d56eeb.js",
|
|
421
|
+
"__mf/js/async/2226.1d4436dc.js",
|
|
439
422
|
"__mf/js/async/7376.c01a7f82.js",
|
|
440
|
-
"__mf/js/async/
|
|
441
|
-
"__mf/js/async/
|
|
423
|
+
"__mf/js/async/6620.1d8e42fd.js",
|
|
424
|
+
"__mf/js/async/2652.fd27ec3f.js",
|
|
442
425
|
"__mf/js/async/3431.54fb88df.js",
|
|
443
|
-
"__mf/js/async/
|
|
444
|
-
"__mf/js/async/4238.
|
|
426
|
+
"__mf/js/async/6134.a0f2d3c5.js",
|
|
427
|
+
"__mf/js/async/4238.a8170f41.js",
|
|
445
428
|
"__mf/js/async/3224.5735a223.js",
|
|
446
429
|
"__mf/js/async/2292.248bd1ea.js",
|
|
447
430
|
"__mf/js/async/8488.16a69ea5.js",
|
|
448
431
|
"__mf/js/async/8216.44c6334e.js",
|
|
449
|
-
"__mf/js/async/
|
|
432
|
+
"__mf/js/async/2708.7448dd5c.js"
|
|
450
433
|
]
|
|
451
434
|
},
|
|
452
435
|
"css": {
|
|
453
436
|
"sync": [],
|
|
454
437
|
"async": [
|
|
455
|
-
"__mf/css/async/
|
|
438
|
+
"__mf/css/async/2341.d3010b86.css"
|
|
456
439
|
]
|
|
457
440
|
}
|
|
458
441
|
},
|
|
459
442
|
"path": "./ClickHouseLogQuery"
|
|
460
|
-
},
|
|
461
|
-
{
|
|
462
|
-
"id": "ClickHouse:Logs",
|
|
463
|
-
"name": "Logs",
|
|
464
|
-
"assets": {
|
|
465
|
-
"js": {
|
|
466
|
-
"sync": [
|
|
467
|
-
"__mf/js/async/2448.e42be954.js",
|
|
468
|
-
"__mf/js/async/6467.f4e5b898.js",
|
|
469
|
-
"__mf/js/async/3632.f88c5ced.js",
|
|
470
|
-
"__mf/js/async/4168.af4fa8b3.js",
|
|
471
|
-
"__mf/js/async/6569.f8ee50db.js",
|
|
472
|
-
"__mf/js/async/__federation_expose_Logs.88d56eeb.js"
|
|
473
|
-
],
|
|
474
|
-
"async": [
|
|
475
|
-
"__mf/js/async/6411.3873365b.js",
|
|
476
|
-
"__mf/js/async/7376.c01a7f82.js",
|
|
477
|
-
"__mf/js/async/6714.e4b5281a.js",
|
|
478
|
-
"__mf/js/async/56.9997e6f8.js",
|
|
479
|
-
"__mf/js/async/3431.54fb88df.js",
|
|
480
|
-
"__mf/js/async/9654.ab803765.js",
|
|
481
|
-
"__mf/js/async/2114.27f707a0.js",
|
|
482
|
-
"__mf/js/async/2448.e42be954.js",
|
|
483
|
-
"__mf/js/async/8709.6d909ac5.js",
|
|
484
|
-
"__mf/js/async/__federation_expose_ClickHouseTimeSeriesQuery.a3f88e6b.js",
|
|
485
|
-
"__mf/js/async/__federation_expose_ClickHouseLogQuery.3f312752.js",
|
|
486
|
-
"__mf/js/async/4238.8c8282dc.js",
|
|
487
|
-
"__mf/js/async/3224.5735a223.js",
|
|
488
|
-
"__mf/js/async/2292.248bd1ea.js",
|
|
489
|
-
"__mf/js/async/8488.16a69ea5.js",
|
|
490
|
-
"__mf/js/async/8216.44c6334e.js",
|
|
491
|
-
"__mf/js/async/5713.92805154.js"
|
|
492
|
-
]
|
|
493
|
-
},
|
|
494
|
-
"css": {
|
|
495
|
-
"sync": [],
|
|
496
|
-
"async": [
|
|
497
|
-
"__mf/css/async/6759.6b2b0c71.css",
|
|
498
|
-
"__mf/css/async/2341.6b2b0c71.css"
|
|
499
|
-
]
|
|
500
|
-
}
|
|
501
|
-
},
|
|
502
|
-
"path": "./Logs"
|
|
503
443
|
}
|
|
504
444
|
]
|
|
505
445
|
}
|