cyberia 3.0.2 → 3.1.3
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/{.env.production → .env.example} +20 -2
- package/.github/workflows/engine-cyberia.cd.yml +41 -10
- package/.github/workflows/engine-cyberia.ci.yml +53 -14
- package/.github/workflows/ghpkg.ci.yml +1 -1
- package/.github/workflows/gitlab.ci.yml +1 -1
- package/.github/workflows/hardhat.ci.yml +82 -0
- package/.github/workflows/npmpkg.ci.yml +37 -8
- package/.github/workflows/publish.ci.yml +5 -5
- package/.github/workflows/publish.cyberia.ci.yml +5 -5
- package/.github/workflows/pwa-microservices-template-page.cd.yml +3 -3
- package/.github/workflows/pwa-microservices-template-test.ci.yml +1 -1
- package/.github/workflows/release.cd.yml +3 -2
- package/.vscode/extensions.json +9 -8
- package/.vscode/settings.json +3 -2
- package/CHANGELOG.md +533 -290
- package/CLI-HELP.md +79 -53
- package/WHITE-PAPER.md +1540 -0
- package/bin/build.js +16 -11
- package/bin/cyberia.js +959 -8
- package/bin/deploy.js +103 -270
- package/bin/file.js +2 -1
- package/bin/index.js +959 -8
- package/bin/vs.js +3 -3
- package/conf.js +277 -77
- package/deployment.yaml +218 -4
- package/hardhat/.env.example +31 -0
- package/hardhat/README.md +531 -0
- package/hardhat/WHITE-PAPER.md +1540 -0
- package/hardhat/contracts/ObjectLayerToken.sol +391 -0
- package/hardhat/deployments/.gitkeep +0 -0
- package/hardhat/deployments/hardhat-ObjectLayerToken.json +11 -0
- package/hardhat/hardhat.config.js +136 -0
- package/hardhat/ignition/modules/ObjectLayerToken.js +21 -0
- package/hardhat/networks/besu-object-layer.network.json +138 -0
- package/hardhat/package-lock.json +7628 -0
- package/hardhat/package.json +45 -0
- package/hardhat/scripts/deployObjectLayerToken.js +98 -0
- package/hardhat/test/ObjectLayerToken.js +590 -0
- package/jsdoc.dd-cyberia.json +59 -0
- package/jsdoc.json +20 -13
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +1 -1
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +1 -1
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +490 -0
- package/manifests/deployment/dd-cyberia-development/proxy.yaml +261 -0
- package/manifests/deployment/dd-cyberia-development/pv-pvc.yaml +132 -0
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
- package/manifests/deployment/dd-test-development/deployment.yaml +52 -52
- package/manifests/deployment/dd-test-development/proxy.yaml +4 -4
- package/manifests/pv-pvc-dd.yaml +1 -1
- package/package.json +60 -50
- package/proxy.yaml +128 -9
- package/pv-pvc.yaml +132 -0
- package/scripts/k3s-node-setup.sh +1 -1
- package/scripts/ports-ls.sh +2 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +3 -1
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +1 -2
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +40 -7
- package/src/api/document/document.service.js +1 -1
- package/src/api/file/file.controller.js +3 -1
- package/src/api/file/file.service.js +28 -5
- package/src/api/ipfs/ipfs.service.js +2 -2
- package/src/api/object-layer/object-layer.controller.js +6 -2
- package/src/api/object-layer/object-layer.model.js +67 -21
- package/src/api/object-layer/object-layer.router.js +668 -42
- package/src/api/object-layer/object-layer.service.js +10 -16
- package/src/api/object-layer-render-frames/object-layer-render-frames.model.js +1 -2
- package/src/api/user/user.router.js +10 -5
- package/src/api/user/user.service.js +7 -7
- package/src/cli/baremetal.js +6 -10
- package/src/cli/cloud-init.js +0 -3
- package/src/cli/db.js +54 -71
- package/src/cli/deploy.js +64 -12
- package/src/cli/env.js +5 -5
- package/src/cli/fs.js +0 -2
- package/src/cli/image.js +0 -3
- package/src/cli/index.js +41 -13
- package/src/cli/monitor.js +5 -6
- package/src/cli/repository.js +329 -46
- package/src/cli/run.js +210 -122
- package/src/cli/secrets.js +1 -3
- package/src/cli/ssh.js +1 -1
- package/src/client/Itemledger.index.js +1 -959
- package/src/client/Underpost.index.js +36 -0
- package/src/client/components/core/AgGrid.js +20 -5
- package/src/client/components/core/Alert.js +2 -2
- package/src/client/components/core/Content.js +22 -3
- package/src/client/components/core/Docs.js +30 -6
- package/src/client/components/core/FileExplorer.js +71 -4
- package/src/client/components/core/Input.js +1 -1
- package/src/client/components/core/Modal.js +22 -6
- package/src/client/components/core/PublicProfile.js +3 -3
- package/src/client/components/core/RichText.js +1 -2
- package/src/client/components/core/Router.js +34 -1
- package/src/client/components/core/Worker.js +1 -1
- package/src/client/components/cryptokoyn/CssCryptokoyn.js +63 -1
- package/src/client/components/cyberia/ObjectLayerEngineModal.js +145 -119
- package/src/client/components/cyberia/ObjectLayerEngineViewer.js +64 -6
- package/src/client/components/cyberia-portal/CommonCyberiaPortal.js +1 -0
- package/src/client/components/cyberia-portal/CssCyberiaPortal.js +44 -2
- package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +0 -1
- package/src/client/components/cyberia-portal/MenuCyberiaPortal.js +64 -2
- package/src/client/components/cyberia-portal/RoutesCyberiaPortal.js +1 -0
- package/src/client/components/itemledger/CssItemledger.js +62 -0
- package/src/client/components/underpost/CommonUnderpost.js +29 -0
- package/src/client/components/underpost/CssUnderpost.js +281 -0
- package/src/client/components/underpost/CyberpunkBloggerUnderpost.js +879 -0
- package/src/client/components/underpost/DocumentSearchProvider.js +448 -0
- package/src/client/components/underpost/ElementsUnderpost.js +38 -0
- package/src/client/components/underpost/LabGalleryUnderpost.js +82 -0
- package/src/client/components/underpost/LogInUnderpost.js +23 -0
- package/src/client/components/underpost/LogOutUnderpost.js +15 -0
- package/src/client/components/underpost/MenuUnderpost.js +691 -0
- package/src/client/components/underpost/RoutesUnderpost.js +47 -0
- package/src/client/components/underpost/SettingsUnderpost.js +16 -0
- package/src/client/components/underpost/SignUpUnderpost.js +9 -0
- package/src/client/components/underpost/SocketIoUnderpost.js +54 -0
- package/src/client/components/underpost/TranslateUnderpost.js +10 -0
- package/src/client/public/cryptokoyn/assets/logo/base-icon.png +0 -0
- package/src/client/public/cryptokoyn/browserconfig.xml +12 -0
- package/src/client/public/cryptokoyn/microdata.json +85 -0
- package/src/client/public/cryptokoyn/site.webmanifest +57 -0
- package/src/client/public/cryptokoyn/sitemap +3 -3
- package/src/client/public/default/sitemap +3 -3
- package/src/client/public/itemledger/browserconfig.xml +2 -2
- package/src/client/public/itemledger/manifest.webmanifest +4 -4
- package/src/client/public/itemledger/microdata.json +71 -0
- package/src/client/public/itemledger/sitemap +3 -3
- package/src/client/public/itemledger/yandex-browser-manifest.json +2 -2
- package/src/client/public/test/sitemap +3 -3
- package/src/client/services/object-layer/object-layer.management.js +23 -4
- package/src/client/ssr/body/404.js +15 -11
- package/src/client/ssr/body/500.js +15 -11
- package/src/client/ssr/body/SwaggerDarkMode.js +285 -0
- package/src/client/ssr/body/UnderpostDefaultSplashScreen.js +83 -0
- package/src/client/ssr/head/PwaItemledger.js +60 -0
- package/src/client/ssr/head/UnderpostScripts.js +6 -0
- package/src/client/ssr/offline/NoNetworkConnection.js +11 -10
- package/src/client/ssr/pages/Test.js +11 -10
- package/src/client.build.js +0 -3
- package/src/client.dev.js +0 -3
- package/src/db/DataBaseProvider.js +17 -2
- package/src/db/mariadb/MariaDB.js +14 -9
- package/src/db/mongo/MongooseDB.js +17 -1
- package/src/index.js +1 -1
- package/src/proxy.js +0 -3
- package/src/runtime/express/Express.js +15 -9
- package/src/runtime/lampp/Lampp.js +6 -13
- package/src/server/auth.js +12 -14
- package/src/server/backup.js +2 -3
- package/src/server/besu-genesis-generator.js +1630 -0
- package/src/server/client-build-docs.js +126 -17
- package/src/server/client-build-live.js +9 -18
- package/src/server/client-build.js +203 -75
- package/src/server/client-dev-server.js +14 -13
- package/src/server/conf.js +376 -164
- package/src/server/cron.js +2 -1
- package/src/server/dns.js +28 -12
- package/src/server/downloader.js +0 -2
- package/src/server/logger.js +27 -9
- package/src/server/object-layer.js +92 -16
- package/src/server/peer.js +0 -2
- package/src/server/process.js +1 -50
- package/src/server/proxy.js +4 -8
- package/src/server/runtime.js +5 -8
- package/src/server/semantic-layer-generator.js +1 -0
- package/src/server/ssr.js +0 -3
- package/src/server/start.js +19 -12
- package/src/server/tls.js +0 -2
- package/src/server.js +0 -4
- package/.env.development +0 -43
- package/.env.test +0 -43
- package/hardhat/contracts/CryptoKoyn.sol +0 -59
- package/hardhat/contracts/ItemLedger.sol +0 -73
- package/hardhat/contracts/Lock.sol +0 -34
- package/hardhat/hardhat.config.cjs +0 -45
- package/hardhat/ignition/modules/Lock.js +0 -18
- package/hardhat/networks/cryptokoyn-itemledger.network.json +0 -29
- package/hardhat/scripts/deployCryptokoyn.cjs +0 -25
- package/hardhat/scripts/deployItemledger.cjs +0 -25
- package/hardhat/test/Lock.js +0 -126
- package/hardhat/white-paper.md +0 -581
- package/white-paper.md +0 -581
|
@@ -8,48 +8,674 @@ const logger = loggerFactory(import.meta);
|
|
|
8
8
|
const ObjectLayerRouter = (options) => {
|
|
9
9
|
const router = express.Router();
|
|
10
10
|
const authMiddleware = options.authMiddleware;
|
|
11
|
-
router.post(
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
11
|
+
router.post(`/frame-image/:itemType/:itemId/:directionCode`, async (req, res) => {
|
|
12
|
+
/*
|
|
13
|
+
#swagger.auto = false
|
|
14
|
+
#swagger.tags = ['object-layer']
|
|
15
|
+
#swagger.summary = 'Upload frame image'
|
|
16
|
+
#swagger.description = 'This endpoint uploads a frame image for a specific object layer item by type, item ID, and direction code'
|
|
17
|
+
#swagger.path = '/object-layer/frame-image/{itemType}/{itemId}/{directionCode}'
|
|
18
|
+
#swagger.method = 'post'
|
|
19
|
+
#swagger.consumes = ['application/octet-stream']
|
|
20
|
+
|
|
21
|
+
#swagger.parameters['itemType'] = {
|
|
22
|
+
in: 'path',
|
|
23
|
+
description: 'The type of the item (e.g. skin, weapon)',
|
|
24
|
+
required: true,
|
|
25
|
+
type: 'string'
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
#swagger.parameters['itemId'] = {
|
|
29
|
+
in: 'path',
|
|
30
|
+
description: 'The item ID',
|
|
31
|
+
required: true,
|
|
32
|
+
type: 'string'
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
#swagger.parameters['directionCode'] = {
|
|
36
|
+
in: 'path',
|
|
37
|
+
description: 'The direction code for the frame (e.g. up, down, left, right)',
|
|
38
|
+
required: true,
|
|
39
|
+
type: 'string'
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
#swagger.responses[200] = {
|
|
43
|
+
description: 'Frame image uploaded successfully',
|
|
44
|
+
content: {
|
|
45
|
+
'application/json': {
|
|
46
|
+
schema: {
|
|
47
|
+
$ref: '#/components/schemas/objectLayerResponse'
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
#swagger.responses[400] = {
|
|
54
|
+
description: 'Bad request. Please check the input data',
|
|
55
|
+
content: {
|
|
56
|
+
'application/json': {
|
|
57
|
+
schema: {
|
|
58
|
+
$ref: '#/components/schemas/objectLayerBadRequestResponse'
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
*/
|
|
64
|
+
return await ObjectLayerController.post(req, res, options);
|
|
65
|
+
});
|
|
66
|
+
router.post(`/metadata/:itemType/:itemId`, async (req, res) => {
|
|
67
|
+
/*
|
|
68
|
+
#swagger.auto = false
|
|
69
|
+
#swagger.tags = ['object-layer']
|
|
70
|
+
#swagger.summary = 'Create object layer metadata'
|
|
71
|
+
#swagger.description = 'This endpoint creates metadata for a specific object layer item by type and item ID'
|
|
72
|
+
#swagger.path = '/object-layer/metadata/{itemType}/{itemId}'
|
|
73
|
+
#swagger.method = 'post'
|
|
74
|
+
#swagger.produces = ['application/json']
|
|
75
|
+
#swagger.consumes = ['application/json']
|
|
76
|
+
|
|
77
|
+
#swagger.parameters['itemType'] = {
|
|
78
|
+
in: 'path',
|
|
79
|
+
description: 'The type of the item',
|
|
80
|
+
required: true,
|
|
81
|
+
type: 'string'
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
#swagger.parameters['itemId'] = {
|
|
85
|
+
in: 'path',
|
|
86
|
+
description: 'The item ID',
|
|
87
|
+
required: true,
|
|
88
|
+
type: 'string'
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
#swagger.responses[200] = {
|
|
92
|
+
description: 'Metadata created successfully',
|
|
93
|
+
content: {
|
|
94
|
+
'application/json': {
|
|
95
|
+
schema: {
|
|
96
|
+
$ref: '#/components/schemas/objectLayerResponse'
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
#swagger.responses[400] = {
|
|
103
|
+
description: 'Bad request. Please check the input data',
|
|
104
|
+
content: {
|
|
105
|
+
'application/json': {
|
|
106
|
+
schema: {
|
|
107
|
+
$ref: '#/components/schemas/objectLayerBadRequestResponse'
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
*/
|
|
113
|
+
return await ObjectLayerController.post(req, res, options);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
router.post(`/:id`, authMiddleware, async (req, res) => {
|
|
117
|
+
/*
|
|
118
|
+
#swagger.auto = false
|
|
119
|
+
#swagger.tags = ['object-layer']
|
|
120
|
+
#swagger.summary = 'Create object layer by ID'
|
|
121
|
+
#swagger.description = 'This endpoint creates a new object layer entry with a specific ID'
|
|
122
|
+
#swagger.path = '/object-layer/{id}'
|
|
123
|
+
#swagger.method = 'post'
|
|
124
|
+
#swagger.produces = ['application/json']
|
|
125
|
+
#swagger.consumes = ['application/json']
|
|
126
|
+
#swagger.security = [{
|
|
127
|
+
'bearerAuth': []
|
|
128
|
+
}]
|
|
129
|
+
|
|
130
|
+
#swagger.parameters['id'] = {
|
|
131
|
+
in: 'path',
|
|
132
|
+
description: 'Object layer ID',
|
|
133
|
+
required: true,
|
|
134
|
+
type: 'string'
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
#swagger.responses[200] = {
|
|
138
|
+
description: 'Object layer created successfully',
|
|
139
|
+
content: {
|
|
140
|
+
'application/json': {
|
|
141
|
+
schema: {
|
|
142
|
+
$ref: '#/components/schemas/objectLayerResponse'
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
#swagger.responses[400] = {
|
|
149
|
+
description: 'Bad request. Please check the input data',
|
|
150
|
+
content: {
|
|
151
|
+
'application/json': {
|
|
152
|
+
schema: {
|
|
153
|
+
$ref: '#/components/schemas/objectLayerBadRequestResponse'
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
*/
|
|
159
|
+
return await ObjectLayerController.post(req, res, options);
|
|
160
|
+
});
|
|
161
|
+
router.post(`/`, authMiddleware, async (req, res) => {
|
|
162
|
+
/*
|
|
163
|
+
#swagger.auto = false
|
|
164
|
+
#swagger.tags = ['object-layer']
|
|
165
|
+
#swagger.summary = 'Create object layer'
|
|
166
|
+
#swagger.description = 'This endpoint creates a new object layer entry'
|
|
167
|
+
#swagger.path = '/object-layer'
|
|
168
|
+
#swagger.method = 'post'
|
|
169
|
+
#swagger.produces = ['application/json']
|
|
170
|
+
#swagger.consumes = ['application/json']
|
|
171
|
+
#swagger.security = [{
|
|
172
|
+
'bearerAuth': []
|
|
173
|
+
}]
|
|
174
|
+
|
|
175
|
+
#swagger.responses[200] = {
|
|
176
|
+
description: 'Object layer created successfully',
|
|
177
|
+
content: {
|
|
178
|
+
'application/json': {
|
|
179
|
+
schema: {
|
|
180
|
+
$ref: '#/components/schemas/objectLayerResponse'
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
#swagger.responses[400] = {
|
|
187
|
+
description: 'Bad request. Please check the input data',
|
|
188
|
+
content: {
|
|
189
|
+
'application/json': {
|
|
190
|
+
schema: {
|
|
191
|
+
$ref: '#/components/schemas/objectLayerBadRequestResponse'
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
*/
|
|
197
|
+
return await ObjectLayerController.post(req, res, options);
|
|
198
|
+
});
|
|
199
|
+
router.get(`/generate-webp/:itemType/:itemId/:directionCode`, async (req, res) => {
|
|
200
|
+
/*
|
|
201
|
+
#swagger.auto = false
|
|
202
|
+
#swagger.tags = ['object-layer']
|
|
203
|
+
#swagger.summary = 'Generate WebP image'
|
|
204
|
+
#swagger.description = 'This endpoint generates a WebP image for a specific object layer item by type, item ID, and direction code'
|
|
205
|
+
#swagger.path = '/object-layer/generate-webp/{itemType}/{itemId}/{directionCode}'
|
|
206
|
+
#swagger.method = 'get'
|
|
207
|
+
#swagger.produces = ['image/webp']
|
|
208
|
+
|
|
209
|
+
#swagger.parameters['itemType'] = {
|
|
210
|
+
in: 'path',
|
|
211
|
+
description: 'The type of the item',
|
|
212
|
+
required: true,
|
|
213
|
+
type: 'string'
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
#swagger.parameters['itemId'] = {
|
|
217
|
+
in: 'path',
|
|
218
|
+
description: 'The item ID',
|
|
219
|
+
required: true,
|
|
220
|
+
type: 'string'
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
#swagger.parameters['directionCode'] = {
|
|
224
|
+
in: 'path',
|
|
225
|
+
description: 'The direction code for the frame',
|
|
226
|
+
required: true,
|
|
227
|
+
type: 'string'
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
#swagger.responses[200] = {
|
|
231
|
+
description: 'WebP image generated successfully',
|
|
232
|
+
content: {
|
|
233
|
+
'image/webp': {
|
|
234
|
+
schema: {
|
|
235
|
+
type: 'string',
|
|
236
|
+
format: 'binary'
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
#swagger.responses[400] = {
|
|
243
|
+
description: 'Bad request. Please check the input data',
|
|
244
|
+
content: {
|
|
245
|
+
'application/json': {
|
|
246
|
+
schema: {
|
|
247
|
+
$ref: '#/components/schemas/objectLayerBadRequestResponse'
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
*/
|
|
253
|
+
return await ObjectLayerController.generateWebp(req, res, options);
|
|
254
|
+
});
|
|
255
|
+
router.get(`/render/:id`, async (req, res) => {
|
|
256
|
+
/*
|
|
257
|
+
#swagger.auto = false
|
|
258
|
+
#swagger.tags = ['object-layer']
|
|
259
|
+
#swagger.summary = 'Get object layer render data'
|
|
260
|
+
#swagger.description = 'This endpoint retrieves render data for a specific object layer by ID'
|
|
261
|
+
#swagger.path = '/object-layer/render/{id}'
|
|
262
|
+
#swagger.method = 'get'
|
|
263
|
+
#swagger.produces = ['application/json']
|
|
264
|
+
|
|
265
|
+
#swagger.parameters['id'] = {
|
|
266
|
+
in: 'path',
|
|
267
|
+
description: 'Object layer ID',
|
|
268
|
+
required: true,
|
|
269
|
+
type: 'string'
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
#swagger.responses[200] = {
|
|
273
|
+
description: 'Object layer render data retrieved successfully',
|
|
274
|
+
content: {
|
|
275
|
+
'application/json': {
|
|
276
|
+
schema: {
|
|
277
|
+
$ref: '#/components/schemas/objectLayerResponse'
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
#swagger.responses[400] = {
|
|
284
|
+
description: 'Bad request. Please check the input data',
|
|
285
|
+
content: {
|
|
286
|
+
'application/json': {
|
|
287
|
+
schema: {
|
|
288
|
+
$ref: '#/components/schemas/objectLayerBadRequestResponse'
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
*/
|
|
294
|
+
return await ObjectLayerController.get(req, res, options);
|
|
295
|
+
});
|
|
296
|
+
router.get(`/metadata/:id`, async (req, res) => {
|
|
297
|
+
/*
|
|
298
|
+
#swagger.auto = false
|
|
299
|
+
#swagger.tags = ['object-layer']
|
|
300
|
+
#swagger.summary = 'Get object layer metadata'
|
|
301
|
+
#swagger.description = 'This endpoint retrieves metadata for a specific object layer by ID'
|
|
302
|
+
#swagger.path = '/object-layer/metadata/{id}'
|
|
303
|
+
#swagger.method = 'get'
|
|
304
|
+
#swagger.produces = ['application/json']
|
|
305
|
+
|
|
306
|
+
#swagger.parameters['id'] = {
|
|
307
|
+
in: 'path',
|
|
308
|
+
description: 'Object layer ID',
|
|
309
|
+
required: true,
|
|
310
|
+
type: 'string'
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
#swagger.responses[200] = {
|
|
314
|
+
description: 'Object layer metadata retrieved successfully',
|
|
315
|
+
content: {
|
|
316
|
+
'application/json': {
|
|
317
|
+
schema: {
|
|
318
|
+
$ref: '#/components/schemas/objectLayerResponse'
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
#swagger.responses[400] = {
|
|
325
|
+
description: 'Bad request. Please check the input data',
|
|
326
|
+
content: {
|
|
327
|
+
'application/json': {
|
|
328
|
+
schema: {
|
|
329
|
+
$ref: '#/components/schemas/objectLayerBadRequestResponse'
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
*/
|
|
335
|
+
return await ObjectLayerController.get(req, res, options);
|
|
336
|
+
});
|
|
337
|
+
router.get(`/frame-counts/:id`, async (req, res) => {
|
|
338
|
+
/*
|
|
339
|
+
#swagger.auto = false
|
|
340
|
+
#swagger.tags = ['object-layer']
|
|
341
|
+
#swagger.summary = 'Get frame counts'
|
|
342
|
+
#swagger.description = 'This endpoint retrieves frame counts for a specific object layer by ID'
|
|
343
|
+
#swagger.path = '/object-layer/frame-counts/{id}'
|
|
344
|
+
#swagger.method = 'get'
|
|
345
|
+
#swagger.produces = ['application/json']
|
|
346
|
+
|
|
347
|
+
#swagger.parameters['id'] = {
|
|
348
|
+
in: 'path',
|
|
349
|
+
description: 'Object layer ID',
|
|
350
|
+
required: true,
|
|
351
|
+
type: 'string'
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
#swagger.responses[200] = {
|
|
355
|
+
description: 'Frame counts retrieved successfully',
|
|
356
|
+
content: {
|
|
357
|
+
'application/json': {
|
|
358
|
+
schema: {
|
|
359
|
+
$ref: '#/components/schemas/objectLayerResponse'
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
#swagger.responses[400] = {
|
|
366
|
+
description: 'Bad request. Please check the input data',
|
|
367
|
+
content: {
|
|
368
|
+
'application/json': {
|
|
369
|
+
schema: {
|
|
370
|
+
$ref: '#/components/schemas/objectLayerBadRequestResponse'
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
*/
|
|
376
|
+
return await ObjectLayerController.get(req, res, options);
|
|
377
|
+
});
|
|
378
|
+
router.get(`/:id`, async (req, res) => {
|
|
379
|
+
/*
|
|
380
|
+
#swagger.auto = false
|
|
381
|
+
#swagger.tags = ['object-layer']
|
|
382
|
+
#swagger.summary = 'Get object layer by ID'
|
|
383
|
+
#swagger.description = 'This endpoint retrieves a specific object layer by ID'
|
|
384
|
+
#swagger.path = '/object-layer/{id}'
|
|
385
|
+
#swagger.method = 'get'
|
|
386
|
+
#swagger.produces = ['application/json']
|
|
387
|
+
|
|
388
|
+
#swagger.parameters['id'] = {
|
|
389
|
+
in: 'path',
|
|
390
|
+
description: 'Object layer ID',
|
|
391
|
+
required: true,
|
|
392
|
+
type: 'string'
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
#swagger.responses[200] = {
|
|
396
|
+
description: 'Object layer retrieved successfully',
|
|
397
|
+
content: {
|
|
398
|
+
'application/json': {
|
|
399
|
+
schema: {
|
|
400
|
+
$ref: '#/components/schemas/objectLayerResponse'
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
#swagger.responses[400] = {
|
|
407
|
+
description: 'Bad request. Please check the input data',
|
|
408
|
+
content: {
|
|
409
|
+
'application/json': {
|
|
410
|
+
schema: {
|
|
411
|
+
$ref: '#/components/schemas/objectLayerBadRequestResponse'
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
*/
|
|
417
|
+
return await ObjectLayerController.get(req, res, options);
|
|
418
|
+
});
|
|
419
|
+
router.get(`/`, async (req, res) => {
|
|
420
|
+
/*
|
|
421
|
+
#swagger.auto = false
|
|
422
|
+
#swagger.tags = ['object-layer']
|
|
423
|
+
#swagger.summary = 'Get all object layers'
|
|
424
|
+
#swagger.description = 'This endpoint retrieves all object layers'
|
|
425
|
+
#swagger.path = '/object-layer'
|
|
426
|
+
#swagger.method = 'get'
|
|
427
|
+
#swagger.produces = ['application/json']
|
|
428
|
+
|
|
429
|
+
#swagger.responses[200] = {
|
|
430
|
+
description: 'Object layers retrieved successfully',
|
|
431
|
+
content: {
|
|
432
|
+
'application/json': {
|
|
433
|
+
schema: {
|
|
434
|
+
$ref: '#/components/schemas/objectLayerResponse'
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
#swagger.responses[400] = {
|
|
441
|
+
description: 'Bad request. Please check the input data',
|
|
442
|
+
content: {
|
|
443
|
+
'application/json': {
|
|
444
|
+
schema: {
|
|
445
|
+
$ref: '#/components/schemas/objectLayerBadRequestResponse'
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
*/
|
|
451
|
+
return await ObjectLayerController.get(req, res, options);
|
|
452
|
+
});
|
|
453
|
+
router.put(`/:id/frame-image/:itemType/:itemId/:directionCode`, authMiddleware, async (req, res) => {
|
|
454
|
+
/*
|
|
455
|
+
#swagger.auto = false
|
|
456
|
+
#swagger.tags = ['object-layer']
|
|
457
|
+
#swagger.summary = 'Update frame image'
|
|
458
|
+
#swagger.description = 'This endpoint updates a frame image for a specific object layer item by ID, type, item ID, and direction code'
|
|
459
|
+
#swagger.path = '/object-layer/{id}/frame-image/{itemType}/{itemId}/{directionCode}'
|
|
460
|
+
#swagger.method = 'put'
|
|
461
|
+
#swagger.consumes = ['application/octet-stream']
|
|
462
|
+
#swagger.security = [{
|
|
463
|
+
'bearerAuth': []
|
|
464
|
+
}]
|
|
465
|
+
|
|
466
|
+
#swagger.parameters['id'] = {
|
|
467
|
+
in: 'path',
|
|
468
|
+
description: 'Object layer ID',
|
|
469
|
+
required: true,
|
|
470
|
+
type: 'string'
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
#swagger.parameters['itemType'] = {
|
|
474
|
+
in: 'path',
|
|
475
|
+
description: 'The type of the item',
|
|
476
|
+
required: true,
|
|
477
|
+
type: 'string'
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
#swagger.parameters['itemId'] = {
|
|
481
|
+
in: 'path',
|
|
482
|
+
description: 'The item ID',
|
|
483
|
+
required: true,
|
|
484
|
+
type: 'string'
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
#swagger.parameters['directionCode'] = {
|
|
488
|
+
in: 'path',
|
|
489
|
+
description: 'The direction code for the frame',
|
|
490
|
+
required: true,
|
|
491
|
+
type: 'string'
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
#swagger.responses[200] = {
|
|
495
|
+
description: 'Frame image updated successfully',
|
|
496
|
+
content: {
|
|
497
|
+
'application/json': {
|
|
498
|
+
schema: {
|
|
499
|
+
$ref: '#/components/schemas/objectLayerResponse'
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
#swagger.responses[400] = {
|
|
506
|
+
description: 'Bad request. Please check the input data',
|
|
507
|
+
content: {
|
|
508
|
+
'application/json': {
|
|
509
|
+
schema: {
|
|
510
|
+
$ref: '#/components/schemas/objectLayerBadRequestResponse'
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
*/
|
|
516
|
+
return await ObjectLayerController.put(req, res, options);
|
|
517
|
+
});
|
|
518
|
+
router.put(`/:id/metadata/:itemType/:itemId`, authMiddleware, async (req, res) => {
|
|
519
|
+
/*
|
|
520
|
+
#swagger.auto = false
|
|
521
|
+
#swagger.tags = ['object-layer']
|
|
522
|
+
#swagger.summary = 'Update object layer metadata'
|
|
523
|
+
#swagger.description = 'This endpoint updates metadata for a specific object layer item by ID, type, and item ID'
|
|
524
|
+
#swagger.path = '/object-layer/{id}/metadata/{itemType}/{itemId}'
|
|
525
|
+
#swagger.method = 'put'
|
|
526
|
+
#swagger.produces = ['application/json']
|
|
527
|
+
#swagger.consumes = ['application/json']
|
|
528
|
+
#swagger.security = [{
|
|
529
|
+
'bearerAuth': []
|
|
530
|
+
}]
|
|
531
|
+
|
|
532
|
+
#swagger.parameters['id'] = {
|
|
533
|
+
in: 'path',
|
|
534
|
+
description: 'Object layer ID',
|
|
535
|
+
required: true,
|
|
536
|
+
type: 'string'
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
#swagger.parameters['itemType'] = {
|
|
540
|
+
in: 'path',
|
|
541
|
+
description: 'The type of the item',
|
|
542
|
+
required: true,
|
|
543
|
+
type: 'string'
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
#swagger.parameters['itemId'] = {
|
|
547
|
+
in: 'path',
|
|
548
|
+
description: 'The item ID',
|
|
549
|
+
required: true,
|
|
550
|
+
type: 'string'
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
#swagger.responses[200] = {
|
|
554
|
+
description: 'Metadata updated successfully',
|
|
555
|
+
content: {
|
|
556
|
+
'application/json': {
|
|
557
|
+
schema: {
|
|
558
|
+
$ref: '#/components/schemas/objectLayerResponse'
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
#swagger.responses[400] = {
|
|
565
|
+
description: 'Bad request. Please check the input data',
|
|
566
|
+
content: {
|
|
567
|
+
'application/json': {
|
|
568
|
+
schema: {
|
|
569
|
+
$ref: '#/components/schemas/objectLayerBadRequestResponse'
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
*/
|
|
575
|
+
return await ObjectLayerController.put(req, res, options);
|
|
576
|
+
});
|
|
577
|
+
router.put(`/:id`, authMiddleware, async (req, res) => {
|
|
578
|
+
/*
|
|
579
|
+
#swagger.auto = false
|
|
580
|
+
#swagger.tags = ['object-layer']
|
|
581
|
+
#swagger.summary = 'Update object layer by ID'
|
|
582
|
+
#swagger.description = 'This endpoint updates an object layer entry by ID'
|
|
583
|
+
#swagger.path = '/object-layer/{id}'
|
|
584
|
+
#swagger.method = 'put'
|
|
585
|
+
#swagger.produces = ['application/json']
|
|
586
|
+
#swagger.consumes = ['application/json']
|
|
587
|
+
#swagger.security = [{
|
|
588
|
+
'bearerAuth': []
|
|
589
|
+
}]
|
|
590
|
+
|
|
591
|
+
#swagger.parameters['id'] = {
|
|
592
|
+
in: 'path',
|
|
593
|
+
description: 'Object layer ID',
|
|
594
|
+
required: true,
|
|
595
|
+
type: 'string'
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
#swagger.responses[200] = {
|
|
599
|
+
description: 'Object layer updated successfully',
|
|
600
|
+
content: {
|
|
601
|
+
'application/json': {
|
|
602
|
+
schema: {
|
|
603
|
+
$ref: '#/components/schemas/objectLayerResponse'
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
#swagger.responses[400] = {
|
|
610
|
+
description: 'Bad request. Please check the input data',
|
|
611
|
+
content: {
|
|
612
|
+
'application/json': {
|
|
613
|
+
schema: {
|
|
614
|
+
$ref: '#/components/schemas/objectLayerBadRequestResponse'
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
*/
|
|
620
|
+
return await ObjectLayerController.put(req, res, options);
|
|
621
|
+
});
|
|
622
|
+
router.put(`/`, authMiddleware, async (req, res) => {
|
|
623
|
+
/*
|
|
624
|
+
#swagger.ignore = true
|
|
625
|
+
*/
|
|
626
|
+
return await ObjectLayerController.put(req, res, options);
|
|
627
|
+
});
|
|
628
|
+
router.delete(`/:id`, authMiddleware, adminGuard, async (req, res) => {
|
|
629
|
+
/*
|
|
630
|
+
#swagger.auto = false
|
|
631
|
+
#swagger.tags = ['object-layer']
|
|
632
|
+
#swagger.summary = 'Delete object layer by ID'
|
|
633
|
+
#swagger.description = 'This endpoint deletes an object layer entry by ID. Requires admin privileges'
|
|
634
|
+
#swagger.path = '/object-layer/{id}'
|
|
635
|
+
#swagger.method = 'delete'
|
|
636
|
+
#swagger.produces = ['application/json']
|
|
637
|
+
#swagger.consumes = ['application/json']
|
|
638
|
+
#swagger.security = [{
|
|
639
|
+
'bearerAuth': []
|
|
640
|
+
}]
|
|
641
|
+
|
|
642
|
+
#swagger.parameters['id'] = {
|
|
643
|
+
in: 'path',
|
|
644
|
+
description: 'Object layer ID',
|
|
645
|
+
required: true,
|
|
646
|
+
type: 'string'
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
#swagger.responses[200] = {
|
|
650
|
+
description: 'Object layer deleted successfully',
|
|
651
|
+
content: {
|
|
652
|
+
'application/json': {
|
|
653
|
+
schema: {
|
|
654
|
+
$ref: '#/components/schemas/objectLayerResponse'
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
#swagger.responses[400] = {
|
|
661
|
+
description: 'Bad request. Please check the input data',
|
|
662
|
+
content: {
|
|
663
|
+
'application/json': {
|
|
664
|
+
schema: {
|
|
665
|
+
$ref: '#/components/schemas/objectLayerBadRequestResponse'
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
*/
|
|
671
|
+
return await ObjectLayerController.delete(req, res, options);
|
|
672
|
+
});
|
|
673
|
+
router.delete(`/`, authMiddleware, adminGuard, async (req, res) => {
|
|
674
|
+
/*
|
|
675
|
+
#swagger.ignore = true
|
|
676
|
+
*/
|
|
677
|
+
return await ObjectLayerController.delete(req, res, options);
|
|
678
|
+
});
|
|
53
679
|
return router;
|
|
54
680
|
};
|
|
55
681
|
|