@operato/scene-legend 1.2.90 β†’ 2.0.0-alpha.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (22) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/attachments/3c2f6007-c06b-47ca-9508-9bcda9428fd0.svg +425 -0
  3. package/attachments/dcf0e8fe-6c3e-4b36-b3e9-a8e70b4ed590.svg +425 -0
  4. package/dist/editors/editor-legend-status.js.map +1 -1
  5. package/dist/editors/property-editor-svg-info.js.map +1 -1
  6. package/dist/legend.js.map +1 -1
  7. package/dist/svg.d.ts +3 -125
  8. package/dist/svg.js.map +1 -1
  9. package/logs/.08636eb59927f12972f6774f5947c8507b3564c2-audit.json +15 -0
  10. package/logs/.5e5d741d8b7784a2fbad65eedc0fd46946aaf6f2-audit.json +15 -0
  11. package/logs/application-2023-07-13-20.log +10 -0
  12. package/logs/connections-2023-07-13-20.log +80 -0
  13. package/logs/system/.144ddb221a51f7e2afac3fe1fc3dcf306a8de9ef-audit.json +15 -0
  14. package/logs/system/.437ed478d36eef33cb9dfb565b13329b4464783e-audit.json +20 -0
  15. package/logs/system/.a16ac19e6e222b854c699e1f94ae757f5c8db307-audit.json +15 -0
  16. package/logs/system/scenario-/353/260/234/354/240/204/353/237/211 /354/230/210/354/270/241 /353/215/260/354/235/264/355/204/260-2023-05-09-11.log" +16914 -0
  17. package/logs/system/scenario-/353/260/234/354/240/204/353/237/211 /354/230/210/354/270/241 /353/215/260/354/235/264/355/204/260-2023-05-09-12.log" +1382 -0
  18. package/logs/system/scenario-/354/227/220/353/204/210/354/247/200 /353/240/210/354/235/264/354/226/264 /354/203/211/354/203/201-2023-07-13-20.log" +510 -0
  19. package/logs/system/scenario-/354/235/274/354/202/254/353/237/211 /354/230/210/354/270/241 /354/247/200/353/217/204-2023-05-09-12.log" +30 -0
  20. package/package.json +4 -4
  21. package/src/svg.ts +2 -2
  22. package/tsconfig.tsbuildinfo +1 -1
package/dist/svg.d.ts CHANGED
@@ -1,67 +1,6 @@
1
- import { Component, HTMLOverlayElement, Properties } from '@hatiolab/things-scene';
1
+ import { Component, ComponentNature, HTMLOverlayElement, Properties } from '@hatiolab/things-scene';
2
2
  export default class Svg extends HTMLOverlayElement {
3
- static get nature(): {
4
- mutable: boolean;
5
- resizable: boolean;
6
- rotatable: boolean;
7
- properties: ({
8
- type: string;
9
- label: string;
10
- name: string;
11
- property: {
12
- displayField: string;
13
- displayFullUrl: boolean;
14
- baseUrlAlias: string;
15
- defaultStorage: string;
16
- storageFilters: {
17
- type: ArrayConstructor;
18
- value: {
19
- name: string;
20
- value: string;
21
- }[];
22
- };
23
- useUpload: boolean;
24
- component?: undefined;
25
- };
26
- observe: (this: HTMLElement, src: string) => void;
27
- readonly?: undefined;
28
- editor?: undefined;
29
- } | {
30
- type: string;
31
- label: string;
32
- name: string;
33
- readonly: boolean;
34
- editor: {
35
- fullwidth: boolean;
36
- };
37
- property?: undefined;
38
- observe?: undefined;
39
- } | {
40
- type: string;
41
- label: string;
42
- name: string;
43
- property: {
44
- component: string;
45
- displayField?: undefined;
46
- displayFullUrl?: undefined;
47
- baseUrlAlias?: undefined;
48
- defaultStorage?: undefined;
49
- storageFilters?: undefined;
50
- useUpload?: undefined;
51
- };
52
- observe?: undefined;
53
- readonly?: undefined;
54
- editor?: undefined;
55
- } | {
56
- type: string;
57
- label: string;
58
- name: string;
59
- property?: undefined;
60
- observe?: undefined;
61
- readonly?: undefined;
62
- editor?: undefined;
63
- })[];
64
- };
3
+ static get nature(): ComponentNature;
65
4
  oncreate_element(div: HTMLDivElement): Promise<void>;
66
5
  private _value?;
67
6
  private _legendTarget?;
@@ -74,68 +13,7 @@ export default class Svg extends HTMLOverlayElement {
74
13
  onchangeSrc(src: string): void;
75
14
  onchangeValue(value: any): void;
76
15
  get tagName(): string;
77
- get nature(): {
78
- mutable: boolean;
79
- resizable: boolean;
80
- rotatable: boolean;
81
- properties: ({
82
- type: string;
83
- label: string;
84
- name: string;
85
- property: {
86
- displayField: string;
87
- displayFullUrl: boolean;
88
- baseUrlAlias: string;
89
- defaultStorage: string;
90
- storageFilters: {
91
- type: ArrayConstructor;
92
- value: {
93
- name: string;
94
- value: string;
95
- }[];
96
- };
97
- useUpload: boolean;
98
- component?: undefined;
99
- };
100
- observe: (this: HTMLElement, src: string) => void;
101
- readonly?: undefined;
102
- editor?: undefined;
103
- } | {
104
- type: string;
105
- label: string;
106
- name: string;
107
- readonly: boolean;
108
- editor: {
109
- fullwidth: boolean;
110
- };
111
- property?: undefined;
112
- observe?: undefined;
113
- } | {
114
- type: string;
115
- label: string;
116
- name: string;
117
- property: {
118
- component: string;
119
- displayField?: undefined;
120
- displayFullUrl?: undefined;
121
- baseUrlAlias?: undefined;
122
- defaultStorage?: undefined;
123
- storageFilters?: undefined;
124
- useUpload?: undefined;
125
- };
126
- observe?: undefined;
127
- readonly?: undefined;
128
- editor?: undefined;
129
- } | {
130
- type: string;
131
- label: string;
132
- name: string;
133
- property?: undefined;
134
- observe?: undefined;
135
- readonly?: undefined;
136
- editor?: undefined;
137
- })[];
138
- };
16
+ get nature(): ComponentNature;
139
17
  get value(): any;
140
18
  set value(value: any);
141
19
  }
package/dist/svg.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"svg.js","sourceRoot":"","sources":["../src/svg.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright Β© HatioLab Inc. All rights reserved.\n */\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'image-selector',\n label: 'image-src',\n name: 'src',\n property: {\n displayField: 'id',\n displayFullUrl: true,\n baseUrlAlias: '$base_url',\n defaultStorage: 'scene-image',\n storageFilters: {\n type: Array,\n value: [\n {\n name: 'category',\n value: 'image'\n }\n ]\n },\n useUpload: true\n },\n observe: function (this: HTMLElement, src: string) {\n const info: any = this.parentNode!.querySelector('[name=svgInfo]')\n info.src = src\n }\n },\n {\n type: 'svg-info',\n label: 'svg-info',\n name: 'svgInfo',\n readonly: true,\n editor: {\n fullwidth: true\n }\n },\n {\n type: 'id-input',\n label: 'legend-target',\n name: 'legendTarget',\n property: {\n component: 'legend'\n }\n },\n {\n type: 'string',\n label: 'id-field',\n name: 'idField'\n },\n {\n type: 'string',\n label: 'value-field',\n name: 'valueField'\n }\n ]\n}\n\nimport { Component, HTMLOverlayElement, Properties } from '@hatiolab/things-scene'\nimport Legend from './legend'\n\nexport default class Svg extends HTMLOverlayElement {\n static get nature() {\n return NATURE\n }\n\n async oncreate_element(div: HTMLDivElement) {\n await this.loadSVG(div)\n }\n\n private _value?: any\n private _legendTarget?: Component\n\n get legendTarget() {\n var { legendTarget } = this.state\n\n if (!this._legendTarget && legendTarget) {\n this._legendTarget = this.root.findById(legendTarget)\n this._legendTarget && this._legendTarget.on('change', this.onchangeData, this)\n }\n\n return this._legendTarget\n }\n\n async loadSVG(div: HTMLElement) {\n try {\n const parser = new DOMParser()\n\n const response = await fetch(this.src)\n\n div.innerHTML = ''\n\n if (response.ok) {\n const text = await response.text()\n const doc = await parser.parseFromString(text, 'image/svg+xml')\n const element = doc.querySelector('svg')\n\n element && div.appendChild(element)\n } else {\n const error = await response.text()\n console.error('load SVG error', error)\n }\n } catch (error) {\n console.error(error)\n }\n }\n\n async setElementProperties(div: HTMLDivElement) {}\n\n get src() {\n return this.getState('src')\n }\n\n set src(src) {\n this.setState('src', src)\n }\n\n onchange(after: Properties, before: Properties) {\n 'src' in after && this.onchangeSrc(after.src)\n 'value' in after && this.onchangeValue(after.value)\n }\n\n onchangeSrc(src: string) {\n this.loadSVG(this.element)\n }\n\n onchangeValue(value: any): void {\n if (typeof this.value !== 'object' || !Array.isArray(this.value)) {\n return\n }\n\n const { idField, valueField } = this.state\n const legendTarget = this.legendTarget\n\n if (!legendTarget) {\n return\n }\n\n const {\n field: statusField,\n defaultColor,\n ranges\n } = legendTarget.getState('status') as {\n field: string\n defaultColor: string\n ranges: { min: number; max: number; color: string }[]\n }\n\n if (!(statusField && ranges)) {\n return\n }\n\n this.value.forEach(item => {\n if (!(idField in item) || !(valueField in item)) {\n return\n }\n\n var id = item[idField]\n var status = Number(item[valueField])\n\n var range = ranges.find((range, index) => {\n let { min, max } = range\n\n min = Number(min) || min\n max = Number(max) || max\n\n return max > status && (min === undefined || min <= status)\n })\n\n const paths = this.element.querySelectorAll(`path[id=\"${String(id)}\"]`) as NodeListOf<SVGPathElement>\n paths.forEach(path => {\n path.style.fill = range?.color || defaultColor || 'transparent'\n })\n })\n }\n\n get tagName() {\n return 'div'\n }\n\n get nature() {\n return NATURE\n }\n\n get value() {\n return this._value\n }\n\n set value(value) {\n this._value = value\n this.onchangeValue(value)\n }\n}\n\nComponent.register('svg', Svg)\n"]}
1
+ {"version":3,"file":"svg.js","sourceRoot":"","sources":["../src/svg.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright Β© HatioLab Inc. All rights reserved.\n */\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'image-selector',\n label: 'image-src',\n name: 'src',\n property: {\n displayField: 'id',\n displayFullUrl: true,\n baseUrlAlias: '$base_url',\n defaultStorage: 'scene-image',\n storageFilters: {\n type: Array,\n value: [\n {\n name: 'category',\n value: 'image'\n }\n ]\n },\n useUpload: true\n },\n observe: function (this: HTMLElement, src: string) {\n const info: any = this.parentNode!.querySelector('[name=svgInfo]')\n info.src = src\n }\n },\n {\n type: 'svg-info',\n label: 'svg-info',\n name: 'svgInfo',\n readonly: true,\n editor: {\n fullwidth: true\n }\n },\n {\n type: 'id-input',\n label: 'legend-target',\n name: 'legendTarget',\n property: {\n component: 'legend'\n }\n },\n {\n type: 'string',\n label: 'id-field',\n name: 'idField'\n },\n {\n type: 'string',\n label: 'value-field',\n name: 'valueField'\n }\n ]\n}\n\nimport { Component, ComponentNature, HTMLOverlayElement, Properties } from '@hatiolab/things-scene'\nimport Legend from './legend'\n\nexport default class Svg extends HTMLOverlayElement {\n static get nature() {\n return NATURE\n }\n\n async oncreate_element(div: HTMLDivElement) {\n await this.loadSVG(div)\n }\n\n private _value?: any\n private _legendTarget?: Component\n\n get legendTarget() {\n var { legendTarget } = this.state\n\n if (!this._legendTarget && legendTarget) {\n this._legendTarget = this.root.findById(legendTarget)\n this._legendTarget && this._legendTarget.on('change', this.onchangeData, this)\n }\n\n return this._legendTarget\n }\n\n async loadSVG(div: HTMLElement) {\n try {\n const parser = new DOMParser()\n\n const response = await fetch(this.src)\n\n div.innerHTML = ''\n\n if (response.ok) {\n const text = await response.text()\n const doc = await parser.parseFromString(text, 'image/svg+xml')\n const element = doc.querySelector('svg')\n\n element && div.appendChild(element)\n } else {\n const error = await response.text()\n console.error('load SVG error', error)\n }\n } catch (error) {\n console.error(error)\n }\n }\n\n async setElementProperties(div: HTMLDivElement) {}\n\n get src() {\n return this.getState('src')\n }\n\n set src(src) {\n this.setState('src', src)\n }\n\n onchange(after: Properties, before: Properties) {\n 'src' in after && this.onchangeSrc(after.src)\n 'value' in after && this.onchangeValue(after.value)\n }\n\n onchangeSrc(src: string) {\n this.loadSVG(this.element)\n }\n\n onchangeValue(value: any): void {\n if (typeof this.value !== 'object' || !Array.isArray(this.value)) {\n return\n }\n\n const { idField, valueField } = this.state\n const legendTarget = this.legendTarget\n\n if (!legendTarget) {\n return\n }\n\n const {\n field: statusField,\n defaultColor,\n ranges\n } = legendTarget.getState('status') as {\n field: string\n defaultColor: string\n ranges: { min: number; max: number; color: string }[]\n }\n\n if (!(statusField && ranges)) {\n return\n }\n\n this.value.forEach(item => {\n if (!(idField in item) || !(valueField in item)) {\n return\n }\n\n var id = item[idField]\n var status = Number(item[valueField])\n\n var range = ranges.find((range, index) => {\n let { min, max } = range\n\n min = Number(min) || min\n max = Number(max) || max\n\n return max > status && (min === undefined || min <= status)\n })\n\n const paths = this.element.querySelectorAll(`path[id=\"${String(id)}\"]`) as NodeListOf<SVGPathElement>\n paths.forEach(path => {\n path.style.fill = range?.color || defaultColor || 'transparent'\n })\n })\n }\n\n get tagName() {\n return 'div'\n }\n\n get nature() {\n return NATURE\n }\n\n get value() {\n return this._value\n }\n\n set value(value) {\n this._value = value\n this.onchangeValue(value)\n }\n}\n\nComponent.register('svg', Svg)\n"]}
@@ -0,0 +1,15 @@
1
+ {
2
+ "keep": {
3
+ "days": true,
4
+ "amount": 2
5
+ },
6
+ "auditLog": "logs/.08636eb59927f12972f6774f5947c8507b3564c2-audit.json",
7
+ "files": [
8
+ {
9
+ "date": 1689248179100,
10
+ "name": "logs/application-2023-07-13-20.log",
11
+ "hash": "89d17538c1898ddce7ba4c309d7b1ea2d91a9a582682878e950f50fd29fbc298"
12
+ }
13
+ ],
14
+ "hashType": "sha256"
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "keep": {
3
+ "days": true,
4
+ "amount": 14
5
+ },
6
+ "auditLog": "logs/.5e5d741d8b7784a2fbad65eedc0fd46946aaf6f2-audit.json",
7
+ "files": [
8
+ {
9
+ "date": 1689248180358,
10
+ "name": "logs/connections-2023-07-13-20.log",
11
+ "hash": "a0dac8996e3b70e357e8b668557260ea5be9055a21ade4693e6f0fde6b02ad2e"
12
+ }
13
+ ],
14
+ "hashType": "sha256"
15
+ }
@@ -0,0 +1,10 @@
1
+ 2023-07-13T20:36:19+09:00 info: File Storage is Ready.
2
+ 2023-07-13T20:36:20+09:00 error: oracledb module loading failed
3
+ 2023-07-13T20:36:21+09:00 info: Default DataSource established
4
+ 2023-07-13T20:36:22+09:00 info: πŸš€ Server ready at http://0.0.0.0:3000/graphql
5
+ 2023-07-13T20:36:22+09:00 info: πŸš€ Subscriptions ready at ws://0.0.0.0:3000/graphql
6
+ 2023-07-13T20:52:49+09:00 info: File Storage is Ready.
7
+ 2023-07-13T20:52:50+09:00 error: oracledb module loading failed
8
+ 2023-07-13T20:52:51+09:00 info: Default DataSource established
9
+ 2023-07-13T20:52:52+09:00 info: πŸš€ Server ready at http://0.0.0.0:3000/graphql
10
+ 2023-07-13T20:52:52+09:00 info: πŸš€ Subscriptions ready at ws://0.0.0.0:3000/graphql
@@ -0,0 +1,80 @@
1
+ 2023-07-13T20:36:22+09:00 info: Initializing ConnectionManager...
2
+ 2023-07-13T20:36:22+09:00 info: Connector 'echo-back-server' started to ready
3
+ 2023-07-13T20:36:22+09:00 info: Connector 'echo-back' started to ready
4
+ 2023-07-13T20:36:22+09:00 info: Connector 'http-connector' started to ready
5
+ 2023-07-13T20:36:22+09:00 info: http-connector connection(λ‚ μ”¨λ§ˆλ£¨:https://bd.kma.go.kr) is connected
6
+ 2023-07-13T20:36:22+09:00 info: Connector 'graphql-connector' started to ready
7
+ 2023-07-13T20:36:22+09:00 info: Connector 'sqlite-connector' started to ready
8
+ 2023-07-13T20:36:22+09:00 info: Connector 'postgresql-connector' started to ready
9
+ 2023-07-13T20:36:22+09:00 info: Connector 'mqtt-connector' started to ready
10
+ 2023-07-13T20:36:22+09:00 info: Connector 'mssql-connector' started to ready
11
+ 2023-07-13T20:36:22+09:00 info: Connector 'oracle-connector' started to ready
12
+ 2023-07-13T20:36:22+09:00 info: Connector 'mysql-connector' started to ready
13
+ 2023-07-13T20:36:22+09:00 info: Connector 'socket-server' started to ready
14
+ 2023-07-13T20:36:22+09:00 info: Connector 'msgraph-connector' started to ready
15
+ 2023-07-13T20:36:22+09:00 info: echo-back-servers are ready
16
+ 2023-07-13T20:36:22+09:00 info: echo-back connections are ready
17
+ 2023-07-13T20:36:22+09:00 info: graphql-connector connections are ready
18
+ 2023-07-13T20:36:22+09:00 info: sqlite-connector connections are ready
19
+ 2023-07-13T20:36:22+09:00 info: postgresql-connector connections are ready
20
+ 2023-07-13T20:36:22+09:00 info: mqtt-connector connections are ready
21
+ 2023-07-13T20:36:22+09:00 info: mssql-connector connections are ready
22
+ 2023-07-13T20:36:22+09:00 info: oracle-connector connections are ready
23
+ 2023-07-13T20:36:22+09:00 info: mysql-connector connections are ready
24
+ 2023-07-13T20:36:22+09:00 info: socket servers are ready
25
+ 2023-07-13T20:36:22+09:00 info: msgraph-connector connections are ready
26
+ 2023-07-13T20:36:22+09:00 info: http-connector connections are ready
27
+ 2023-07-13T20:36:22+09:00 info: All connector for 'echo-back-server' ready
28
+ 2023-07-13T20:36:22+09:00 info: All connector for 'echo-back' ready
29
+ 2023-07-13T20:36:22+09:00 info: All connector for 'graphql-connector' ready
30
+ 2023-07-13T20:36:22+09:00 info: All connector for 'sqlite-connector' ready
31
+ 2023-07-13T20:36:22+09:00 info: All connector for 'postgresql-connector' ready
32
+ 2023-07-13T20:36:22+09:00 info: All connector for 'mqtt-connector' ready
33
+ 2023-07-13T20:36:22+09:00 info: All connector for 'mssql-connector' ready
34
+ 2023-07-13T20:36:22+09:00 info: All connector for 'oracle-connector' ready
35
+ 2023-07-13T20:36:22+09:00 info: All connector for 'mysql-connector' ready
36
+ 2023-07-13T20:36:22+09:00 info: All connector for 'socket-server' ready
37
+ 2023-07-13T20:36:22+09:00 info: All connector for 'msgraph-connector' ready
38
+ 2023-07-13T20:36:22+09:00 info: All connector for 'http-connector' ready
39
+ 2023-07-13T20:36:22+09:00 info: ConnectionManager initialization done:
40
+ 2023-07-13T20:36:22+09:00 info: For domain(61dc2a70-e0b2-4e30-95c3-c66cf47ddee2) : ["λ‚ μ”¨λ§ˆλ£¨"]
41
+ 2023-07-13T20:52:52+09:00 info: Initializing ConnectionManager...
42
+ 2023-07-13T20:52:52+09:00 info: Connector 'echo-back-server' started to ready
43
+ 2023-07-13T20:52:52+09:00 info: Connector 'echo-back' started to ready
44
+ 2023-07-13T20:52:52+09:00 info: Connector 'http-connector' started to ready
45
+ 2023-07-13T20:52:52+09:00 info: http-connector connection(λ‚ μ”¨λ§ˆλ£¨:https://bd.kma.go.kr) is connected
46
+ 2023-07-13T20:52:52+09:00 info: Connector 'graphql-connector' started to ready
47
+ 2023-07-13T20:52:52+09:00 info: Connector 'sqlite-connector' started to ready
48
+ 2023-07-13T20:52:52+09:00 info: Connector 'postgresql-connector' started to ready
49
+ 2023-07-13T20:52:52+09:00 info: Connector 'mqtt-connector' started to ready
50
+ 2023-07-13T20:52:52+09:00 info: Connector 'mssql-connector' started to ready
51
+ 2023-07-13T20:52:52+09:00 info: Connector 'oracle-connector' started to ready
52
+ 2023-07-13T20:52:52+09:00 info: Connector 'mysql-connector' started to ready
53
+ 2023-07-13T20:52:52+09:00 info: Connector 'socket-server' started to ready
54
+ 2023-07-13T20:52:52+09:00 info: Connector 'msgraph-connector' started to ready
55
+ 2023-07-13T20:52:52+09:00 info: echo-back-servers are ready
56
+ 2023-07-13T20:52:52+09:00 info: echo-back connections are ready
57
+ 2023-07-13T20:52:52+09:00 info: graphql-connector connections are ready
58
+ 2023-07-13T20:52:52+09:00 info: sqlite-connector connections are ready
59
+ 2023-07-13T20:52:52+09:00 info: postgresql-connector connections are ready
60
+ 2023-07-13T20:52:52+09:00 info: mqtt-connector connections are ready
61
+ 2023-07-13T20:52:52+09:00 info: mssql-connector connections are ready
62
+ 2023-07-13T20:52:52+09:00 info: oracle-connector connections are ready
63
+ 2023-07-13T20:52:52+09:00 info: mysql-connector connections are ready
64
+ 2023-07-13T20:52:52+09:00 info: socket servers are ready
65
+ 2023-07-13T20:52:52+09:00 info: msgraph-connector connections are ready
66
+ 2023-07-13T20:52:52+09:00 info: http-connector connections are ready
67
+ 2023-07-13T20:52:52+09:00 info: All connector for 'echo-back-server' ready
68
+ 2023-07-13T20:52:52+09:00 info: All connector for 'echo-back' ready
69
+ 2023-07-13T20:52:52+09:00 info: All connector for 'graphql-connector' ready
70
+ 2023-07-13T20:52:52+09:00 info: All connector for 'sqlite-connector' ready
71
+ 2023-07-13T20:52:52+09:00 info: All connector for 'postgresql-connector' ready
72
+ 2023-07-13T20:52:52+09:00 info: All connector for 'mqtt-connector' ready
73
+ 2023-07-13T20:52:52+09:00 info: All connector for 'mssql-connector' ready
74
+ 2023-07-13T20:52:52+09:00 info: All connector for 'oracle-connector' ready
75
+ 2023-07-13T20:52:52+09:00 info: All connector for 'mysql-connector' ready
76
+ 2023-07-13T20:52:52+09:00 info: All connector for 'socket-server' ready
77
+ 2023-07-13T20:52:52+09:00 info: All connector for 'msgraph-connector' ready
78
+ 2023-07-13T20:52:52+09:00 info: All connector for 'http-connector' ready
79
+ 2023-07-13T20:52:52+09:00 info: ConnectionManager initialization done:
80
+ 2023-07-13T20:52:52+09:00 info: For domain(61dc2a70-e0b2-4e30-95c3-c66cf47ddee2) : ["λ‚ μ”¨λ§ˆλ£¨"]
@@ -0,0 +1,15 @@
1
+ {
2
+ "keep": {
3
+ "days": true,
4
+ "amount": 14
5
+ },
6
+ "auditLog": "logs/system/.144ddb221a51f7e2afac3fe1fc3dcf306a8de9ef-audit.json",
7
+ "files": [
8
+ {
9
+ "date": 1689248235070,
10
+ "name": "logs/system/scenario-μ—λ„ˆμ§€ λ ˆμ΄μ–΄ 색상-2023-07-13-20.log",
11
+ "hash": "8509c7d861880c0931ec87feae7d3833b828ef059038c240e1132ae26baf4c6e"
12
+ }
13
+ ],
14
+ "hashType": "sha256"
15
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "keep": {
3
+ "days": true,
4
+ "amount": 14
5
+ },
6
+ "auditLog": "logs/system/.437ed478d36eef33cb9dfb565b13329b4464783e-audit.json",
7
+ "files": [
8
+ {
9
+ "date": 1683599346648,
10
+ "name": "logs/system/scenario-λ°œμ „λŸ‰ 예츑 데이터-2023-05-09-11.log",
11
+ "hash": "f7fa1a6df91294365d1b393045434891d9ea1a63afb428db4dea208c9b8bc12e"
12
+ },
13
+ {
14
+ "date": 1683601398986,
15
+ "name": "logs/system/scenario-λ°œμ „λŸ‰ 예츑 데이터-2023-05-09-12.log",
16
+ "hash": "798ae42f4efbc44a7d3ddd9e863c126d687fd1e7f790db7a627b64f5ac02e4a9"
17
+ }
18
+ ],
19
+ "hashType": "sha256"
20
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "keep": {
3
+ "days": true,
4
+ "amount": 14
5
+ },
6
+ "auditLog": "logs/system/.a16ac19e6e222b854c699e1f94ae757f5c8db307-audit.json",
7
+ "files": [
8
+ {
9
+ "date": 1683601372061,
10
+ "name": "logs/system/scenario-μΌμ‚¬λŸ‰ 예츑 지도-2023-05-09-12.log",
11
+ "hash": "93d606c9b51d26ada4839c94902f0d4d5efeb0a91708f754302cd1a24d747686"
12
+ }
13
+ ],
14
+ "hashType": "sha256"
15
+ }