@things-factory/figure-service 10.1.4 → 10.1.7
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/coverage/clover.xml +6 -0
- package/coverage/coverage-final.json +1 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +101 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +210 -0
- package/coverage/lcov.info +0 -0
- package/dist-server/index.d.ts +2 -0
- package/dist-server/index.js +13 -0
- package/dist-server/index.js.map +1 -1
- package/dist-server/routers/figure-thumbnail-router.d.ts +24 -0
- package/dist-server/routers/figure-thumbnail-router.js +93 -0
- package/dist-server/routers/figure-thumbnail-router.js.map +1 -0
- package/dist-server/routes.d.ts +1 -0
- package/dist-server/routes.js +21 -0
- package/dist-server/routes.js.map +1 -0
- package/dist-server/service/figure/figure-gate.d.ts +55 -0
- package/dist-server/service/figure/figure-gate.js +64 -0
- package/dist-server/service/figure/figure-gate.js.map +1 -0
- package/dist-server/service/figure/figure-mutation.d.ts +6 -0
- package/dist-server/service/figure/figure-mutation.js +21 -0
- package/dist-server/service/figure/figure-mutation.js.map +1 -1
- package/dist-server/service/figure/figure-query.d.ts +9 -1
- package/dist-server/service/figure/figure-query.js +36 -1
- package/dist-server/service/figure/figure-query.js.map +1 -1
- package/dist-server/service/figure/figure-tools.d.ts +10 -0
- package/dist-server/service/figure/figure-tools.js +304 -0
- package/dist-server/service/figure/figure-tools.js.map +1 -0
- package/dist-server/service/figure/figure-type.d.ts +27 -0
- package/dist-server/service/figure/figure-type.js +66 -1
- package/dist-server/service/figure/figure-type.js.map +1 -1
- package/dist-server/service/figure/figure.d.ts +17 -1
- package/dist-server/service/figure/figure.js +6 -1
- package/dist-server/service/figure/figure.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -6
- package/server/index.ts +13 -0
- package/server/routers/figure-thumbnail-router.ts +110 -0
- package/server/routes.ts +24 -0
- package/server/service/figure/catalog-db.test.ts +162 -0
- package/server/service/figure/figure-gate.ts +119 -0
- package/server/service/figure/figure-mutation.ts +23 -0
- package/server/service/figure/figure-propose.test.ts +136 -4
- package/server/service/figure/figure-query.ts +34 -2
- package/server/service/figure/figure-tools.test.ts +284 -0
- package/server/service/figure/figure-tools.ts +320 -0
- package/server/service/figure/figure-type.ts +53 -0
- package/server/service/figure/figure.ts +22 -2
|
@@ -22,6 +22,9 @@ export class NewFigure {
|
|
|
22
22
|
@Field({ nullable: true, description: 'Classification code used to group figures in the palette.' })
|
|
23
23
|
category?: string
|
|
24
24
|
|
|
25
|
+
@Field(type => [String], { nullable: true, description: 'Free-form tags. A figure may carry several.' })
|
|
26
|
+
tags?: string[]
|
|
27
|
+
|
|
25
28
|
@Field({ description: 'The canonical FigureSource JSON.' })
|
|
26
29
|
source: string
|
|
27
30
|
|
|
@@ -52,6 +55,13 @@ export class FigurePatch {
|
|
|
52
55
|
@Field({ nullable: true, description: 'The new classification code.' })
|
|
53
56
|
category?: string
|
|
54
57
|
|
|
58
|
+
/*
|
|
59
|
+
빈 배열과 안 준 것을 가른다. `undefined` 는 「건드리지 않는다」, `[]` 는 「전부 지운다」다.
|
|
60
|
+
둘을 뭉개면 태그를 다 지우려는 저작자가 지울 방법을 잃는다.
|
|
61
|
+
*/
|
|
62
|
+
@Field(type => [String], { nullable: true, description: 'The new tags. An empty list clears them; omitting the field leaves them.' })
|
|
63
|
+
tags?: string[]
|
|
64
|
+
|
|
55
65
|
@Field({ nullable: true, description: 'The new FigureSource JSON.' })
|
|
56
66
|
source?: string
|
|
57
67
|
|
|
@@ -110,3 +120,46 @@ export class FigureSaveResult {
|
|
|
110
120
|
@Field(type => [FigureFinding], { description: 'Non-blocking findings. The save succeeded despite these.' })
|
|
111
121
|
violations: FigureFinding[]
|
|
112
122
|
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* 발행 판정 한 줄.
|
|
126
|
+
*
|
|
127
|
+
* `FigureFinding` 과 칸이 겹치지만 **`blocking` 이 하나 더 있다.** 저장 쪽 발견은 정의상 막지 않는
|
|
128
|
+
* 것들이라 그 칸이 필요 없었다. 발행 판정은 막는 것과 알리는 것을 함께 내므로, 어느 쪽인지를 값이
|
|
129
|
+
* 스스로 말해야 한다 — 코드를 보고 화면이 다시 분류하면 규칙이 두 벌이 된다.
|
|
130
|
+
*/
|
|
131
|
+
@ObjectType({ description: 'One finding from the release gate.' })
|
|
132
|
+
export class FigureGateFinding {
|
|
133
|
+
@Field({ description: 'Stable code — figure-model validation codes, or sizing-splits / sizing-loose.' })
|
|
134
|
+
code: string
|
|
135
|
+
|
|
136
|
+
@Field({ description: 'Human-readable message.' })
|
|
137
|
+
message: string
|
|
138
|
+
|
|
139
|
+
@Field({ nullable: true, description: 'Why this is a problem — what a person sees when it happens.' })
|
|
140
|
+
why?: string
|
|
141
|
+
|
|
142
|
+
@Field({ nullable: true, description: 'What to change, naming the part and the value.' })
|
|
143
|
+
how?: string
|
|
144
|
+
|
|
145
|
+
@Field({ nullable: true, description: 'Where it points: part names that came apart, or a path in the source.' })
|
|
146
|
+
at?: string
|
|
147
|
+
|
|
148
|
+
@Field({ description: 'True when this finding blocks the release.' })
|
|
149
|
+
blocking: boolean
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* 발행 판정.
|
|
154
|
+
*
|
|
155
|
+
* 화면이 **발행을 누르기 전에** 물어보는 자리다. 눌러 보고 거절당하는 것으로 알게 되면, 무엇을
|
|
156
|
+
* 고쳐야 하는지 모른 채 단추만 두드리게 된다.
|
|
157
|
+
*/
|
|
158
|
+
@ObjectType({ description: 'Whether a figure may be released, and why not.' })
|
|
159
|
+
export class FigureInspection {
|
|
160
|
+
@Field({ description: 'True when at least one finding blocks the release.' })
|
|
161
|
+
blocked: boolean
|
|
162
|
+
|
|
163
|
+
@Field(type => [FigureGateFinding], { description: 'Findings, blocking and advisory together.' })
|
|
164
|
+
findings: FigureGateFinding[]
|
|
165
|
+
}
|
|
@@ -89,11 +89,31 @@ export class Figure {
|
|
|
89
89
|
@Field({ nullable: true, description: 'A detailed description for the figure.' })
|
|
90
90
|
description?: string
|
|
91
91
|
|
|
92
|
-
/**
|
|
92
|
+
/**
|
|
93
|
+
* 분류 하나. **팔레트에서 묶어 보이는 기준이다.**
|
|
94
|
+
*
|
|
95
|
+
* 도형 하나에 하나뿐이다 — 팔레트는 목록을 한 벌로 나눠 보여 주므로, 한 도형이 두 묶음에
|
|
96
|
+
* 동시에 있으면 저작자가 같은 것을 두 번 만난다.
|
|
97
|
+
*/
|
|
93
98
|
@Column({ nullable: true })
|
|
94
|
-
@Field({ nullable: true, description: 'Classification code used to group figures in the palette.' })
|
|
99
|
+
@Field({ nullable: true, description: 'Classification code used to group figures in the palette. One per figure.' })
|
|
95
100
|
category?: string
|
|
96
101
|
|
|
102
|
+
/**
|
|
103
|
+
* 태그. **여럿 붙는다.**
|
|
104
|
+
*
|
|
105
|
+
* 분류와 다른 일을 한다. 분류는 「이것이 무엇인가」를 한 번 정하는 것이고, 태그는 「어디에
|
|
106
|
+
* 걸리는가」를 여러 갈래로 적는 것이다 — 컨베이어이면서 반출 구역의 것일 수 있다. 그래서
|
|
107
|
+
* 분류로는 못 하는 찾기가 된다.
|
|
108
|
+
*
|
|
109
|
+
* `simple-json` 으로 담는다. 사내 선례가 그것이고(`ops-master` · `organization` ·
|
|
110
|
+
* `personalization`), 드라이버마다 배열 타입이 다른 것을 피한다.
|
|
111
|
+
*/
|
|
112
|
+
/* `simple-json` 과 `default: null` 은 사내 선례 그대로다 — board-template · attachment 가 같은 모양이다. */
|
|
113
|
+
@Column('simple-json', { nullable: true, default: null })
|
|
114
|
+
@Field(type => [String], { nullable: true, description: 'Free-form tags. A figure may carry several.' })
|
|
115
|
+
tags?: string[]
|
|
116
|
+
|
|
97
117
|
@Column({ nullable: true, default: 'draft' })
|
|
98
118
|
@Field({ nullable: true, description: "Lifecycle state — 'draft' figures do not appear in the board palette." })
|
|
99
119
|
state?: 'draft' | 'released'
|