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.
Files changed (182) hide show
  1. package/{.env.production → .env.example} +20 -2
  2. package/.github/workflows/engine-cyberia.cd.yml +41 -10
  3. package/.github/workflows/engine-cyberia.ci.yml +53 -14
  4. package/.github/workflows/ghpkg.ci.yml +1 -1
  5. package/.github/workflows/gitlab.ci.yml +1 -1
  6. package/.github/workflows/hardhat.ci.yml +82 -0
  7. package/.github/workflows/npmpkg.ci.yml +37 -8
  8. package/.github/workflows/publish.ci.yml +5 -5
  9. package/.github/workflows/publish.cyberia.ci.yml +5 -5
  10. package/.github/workflows/pwa-microservices-template-page.cd.yml +3 -3
  11. package/.github/workflows/pwa-microservices-template-test.ci.yml +1 -1
  12. package/.github/workflows/release.cd.yml +3 -2
  13. package/.vscode/extensions.json +9 -8
  14. package/.vscode/settings.json +3 -2
  15. package/CHANGELOG.md +533 -290
  16. package/CLI-HELP.md +79 -53
  17. package/WHITE-PAPER.md +1540 -0
  18. package/bin/build.js +16 -11
  19. package/bin/cyberia.js +959 -8
  20. package/bin/deploy.js +103 -270
  21. package/bin/file.js +2 -1
  22. package/bin/index.js +959 -8
  23. package/bin/vs.js +3 -3
  24. package/conf.js +277 -77
  25. package/deployment.yaml +218 -4
  26. package/hardhat/.env.example +31 -0
  27. package/hardhat/README.md +531 -0
  28. package/hardhat/WHITE-PAPER.md +1540 -0
  29. package/hardhat/contracts/ObjectLayerToken.sol +391 -0
  30. package/hardhat/deployments/.gitkeep +0 -0
  31. package/hardhat/deployments/hardhat-ObjectLayerToken.json +11 -0
  32. package/hardhat/hardhat.config.js +136 -0
  33. package/hardhat/ignition/modules/ObjectLayerToken.js +21 -0
  34. package/hardhat/networks/besu-object-layer.network.json +138 -0
  35. package/hardhat/package-lock.json +7628 -0
  36. package/hardhat/package.json +45 -0
  37. package/hardhat/scripts/deployObjectLayerToken.js +98 -0
  38. package/hardhat/test/ObjectLayerToken.js +590 -0
  39. package/jsdoc.dd-cyberia.json +59 -0
  40. package/jsdoc.json +20 -13
  41. package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +1 -1
  42. package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +1 -1
  43. package/manifests/deployment/dd-cyberia-development/deployment.yaml +490 -0
  44. package/manifests/deployment/dd-cyberia-development/proxy.yaml +261 -0
  45. package/manifests/deployment/dd-cyberia-development/pv-pvc.yaml +132 -0
  46. package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
  47. package/manifests/deployment/dd-test-development/deployment.yaml +52 -52
  48. package/manifests/deployment/dd-test-development/proxy.yaml +4 -4
  49. package/manifests/pv-pvc-dd.yaml +1 -1
  50. package/package.json +60 -50
  51. package/proxy.yaml +128 -9
  52. package/pv-pvc.yaml +132 -0
  53. package/scripts/k3s-node-setup.sh +1 -1
  54. package/scripts/ports-ls.sh +2 -0
  55. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +3 -1
  56. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +1 -2
  57. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +40 -7
  58. package/src/api/document/document.service.js +1 -1
  59. package/src/api/file/file.controller.js +3 -1
  60. package/src/api/file/file.service.js +28 -5
  61. package/src/api/ipfs/ipfs.service.js +2 -2
  62. package/src/api/object-layer/object-layer.controller.js +6 -2
  63. package/src/api/object-layer/object-layer.model.js +67 -21
  64. package/src/api/object-layer/object-layer.router.js +668 -42
  65. package/src/api/object-layer/object-layer.service.js +10 -16
  66. package/src/api/object-layer-render-frames/object-layer-render-frames.model.js +1 -2
  67. package/src/api/user/user.router.js +10 -5
  68. package/src/api/user/user.service.js +7 -7
  69. package/src/cli/baremetal.js +6 -10
  70. package/src/cli/cloud-init.js +0 -3
  71. package/src/cli/db.js +54 -71
  72. package/src/cli/deploy.js +64 -12
  73. package/src/cli/env.js +5 -5
  74. package/src/cli/fs.js +0 -2
  75. package/src/cli/image.js +0 -3
  76. package/src/cli/index.js +41 -13
  77. package/src/cli/monitor.js +5 -6
  78. package/src/cli/repository.js +329 -46
  79. package/src/cli/run.js +210 -122
  80. package/src/cli/secrets.js +1 -3
  81. package/src/cli/ssh.js +1 -1
  82. package/src/client/Itemledger.index.js +1 -959
  83. package/src/client/Underpost.index.js +36 -0
  84. package/src/client/components/core/AgGrid.js +20 -5
  85. package/src/client/components/core/Alert.js +2 -2
  86. package/src/client/components/core/Content.js +22 -3
  87. package/src/client/components/core/Docs.js +30 -6
  88. package/src/client/components/core/FileExplorer.js +71 -4
  89. package/src/client/components/core/Input.js +1 -1
  90. package/src/client/components/core/Modal.js +22 -6
  91. package/src/client/components/core/PublicProfile.js +3 -3
  92. package/src/client/components/core/RichText.js +1 -2
  93. package/src/client/components/core/Router.js +34 -1
  94. package/src/client/components/core/Worker.js +1 -1
  95. package/src/client/components/cryptokoyn/CssCryptokoyn.js +63 -1
  96. package/src/client/components/cyberia/ObjectLayerEngineModal.js +145 -119
  97. package/src/client/components/cyberia/ObjectLayerEngineViewer.js +64 -6
  98. package/src/client/components/cyberia-portal/CommonCyberiaPortal.js +1 -0
  99. package/src/client/components/cyberia-portal/CssCyberiaPortal.js +44 -2
  100. package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +0 -1
  101. package/src/client/components/cyberia-portal/MenuCyberiaPortal.js +64 -2
  102. package/src/client/components/cyberia-portal/RoutesCyberiaPortal.js +1 -0
  103. package/src/client/components/itemledger/CssItemledger.js +62 -0
  104. package/src/client/components/underpost/CommonUnderpost.js +29 -0
  105. package/src/client/components/underpost/CssUnderpost.js +281 -0
  106. package/src/client/components/underpost/CyberpunkBloggerUnderpost.js +879 -0
  107. package/src/client/components/underpost/DocumentSearchProvider.js +448 -0
  108. package/src/client/components/underpost/ElementsUnderpost.js +38 -0
  109. package/src/client/components/underpost/LabGalleryUnderpost.js +82 -0
  110. package/src/client/components/underpost/LogInUnderpost.js +23 -0
  111. package/src/client/components/underpost/LogOutUnderpost.js +15 -0
  112. package/src/client/components/underpost/MenuUnderpost.js +691 -0
  113. package/src/client/components/underpost/RoutesUnderpost.js +47 -0
  114. package/src/client/components/underpost/SettingsUnderpost.js +16 -0
  115. package/src/client/components/underpost/SignUpUnderpost.js +9 -0
  116. package/src/client/components/underpost/SocketIoUnderpost.js +54 -0
  117. package/src/client/components/underpost/TranslateUnderpost.js +10 -0
  118. package/src/client/public/cryptokoyn/assets/logo/base-icon.png +0 -0
  119. package/src/client/public/cryptokoyn/browserconfig.xml +12 -0
  120. package/src/client/public/cryptokoyn/microdata.json +85 -0
  121. package/src/client/public/cryptokoyn/site.webmanifest +57 -0
  122. package/src/client/public/cryptokoyn/sitemap +3 -3
  123. package/src/client/public/default/sitemap +3 -3
  124. package/src/client/public/itemledger/browserconfig.xml +2 -2
  125. package/src/client/public/itemledger/manifest.webmanifest +4 -4
  126. package/src/client/public/itemledger/microdata.json +71 -0
  127. package/src/client/public/itemledger/sitemap +3 -3
  128. package/src/client/public/itemledger/yandex-browser-manifest.json +2 -2
  129. package/src/client/public/test/sitemap +3 -3
  130. package/src/client/services/object-layer/object-layer.management.js +23 -4
  131. package/src/client/ssr/body/404.js +15 -11
  132. package/src/client/ssr/body/500.js +15 -11
  133. package/src/client/ssr/body/SwaggerDarkMode.js +285 -0
  134. package/src/client/ssr/body/UnderpostDefaultSplashScreen.js +83 -0
  135. package/src/client/ssr/head/PwaItemledger.js +60 -0
  136. package/src/client/ssr/head/UnderpostScripts.js +6 -0
  137. package/src/client/ssr/offline/NoNetworkConnection.js +11 -10
  138. package/src/client/ssr/pages/Test.js +11 -10
  139. package/src/client.build.js +0 -3
  140. package/src/client.dev.js +0 -3
  141. package/src/db/DataBaseProvider.js +17 -2
  142. package/src/db/mariadb/MariaDB.js +14 -9
  143. package/src/db/mongo/MongooseDB.js +17 -1
  144. package/src/index.js +1 -1
  145. package/src/proxy.js +0 -3
  146. package/src/runtime/express/Express.js +15 -9
  147. package/src/runtime/lampp/Lampp.js +6 -13
  148. package/src/server/auth.js +12 -14
  149. package/src/server/backup.js +2 -3
  150. package/src/server/besu-genesis-generator.js +1630 -0
  151. package/src/server/client-build-docs.js +126 -17
  152. package/src/server/client-build-live.js +9 -18
  153. package/src/server/client-build.js +203 -75
  154. package/src/server/client-dev-server.js +14 -13
  155. package/src/server/conf.js +376 -164
  156. package/src/server/cron.js +2 -1
  157. package/src/server/dns.js +28 -12
  158. package/src/server/downloader.js +0 -2
  159. package/src/server/logger.js +27 -9
  160. package/src/server/object-layer.js +92 -16
  161. package/src/server/peer.js +0 -2
  162. package/src/server/process.js +1 -50
  163. package/src/server/proxy.js +4 -8
  164. package/src/server/runtime.js +5 -8
  165. package/src/server/semantic-layer-generator.js +1 -0
  166. package/src/server/ssr.js +0 -3
  167. package/src/server/start.js +19 -12
  168. package/src/server/tls.js +0 -2
  169. package/src/server.js +0 -4
  170. package/.env.development +0 -43
  171. package/.env.test +0 -43
  172. package/hardhat/contracts/CryptoKoyn.sol +0 -59
  173. package/hardhat/contracts/ItemLedger.sol +0 -73
  174. package/hardhat/contracts/Lock.sol +0 -34
  175. package/hardhat/hardhat.config.cjs +0 -45
  176. package/hardhat/ignition/modules/Lock.js +0 -18
  177. package/hardhat/networks/cryptokoyn-itemledger.network.json +0 -29
  178. package/hardhat/scripts/deployCryptokoyn.cjs +0 -25
  179. package/hardhat/scripts/deployItemledger.cjs +0 -25
  180. package/hardhat/test/Lock.js +0 -126
  181. package/hardhat/white-paper.md +0 -581
  182. 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
- `/frame-image/:itemType/:itemId/:directionCode`,
13
- async (req, res) => await ObjectLayerController.post(req, res, options),
14
- );
15
- router.post(`/metadata/:itemType/:itemId`, async (req, res) => await ObjectLayerController.post(req, res, options));
16
-
17
- router.post(`/:id`, authMiddleware, async (req, res) => await ObjectLayerController.post(req, res, options));
18
- router.post(`/`, authMiddleware, async (req, res) => await ObjectLayerController.post(req, res, options));
19
- router.get(
20
- `/generate-webp/:itemType/:itemId/:directionCode`,
21
- async (req, res) => await ObjectLayerController.generateWebp(req, res, options),
22
- );
23
- router.get(`/render/:id`, async (req, res) => await ObjectLayerController.get(req, res, options));
24
- router.get(`/metadata/:id`, async (req, res) => await ObjectLayerController.get(req, res, options));
25
- router.get(`/frame-counts/:id`, async (req, res) => await ObjectLayerController.get(req, res, options));
26
- router.get(`/:id`, async (req, res) => await ObjectLayerController.get(req, res, options));
27
- router.get(`/:id`, async (req, res) => await ObjectLayerController.get(req, res, options));
28
- router.get(`/`, async (req, res) => await ObjectLayerController.get(req, res, options));
29
- router.put(
30
- `/:id/frame-image/:itemType/:itemId/:directionCode`,
31
- authMiddleware,
32
- async (req, res) => await ObjectLayerController.put(req, res, options),
33
- );
34
- router.put(
35
- `/:id/metadata/:itemType/:itemId`,
36
- authMiddleware,
37
- async (req, res) => await ObjectLayerController.put(req, res, options),
38
- );
39
- router.put(`/:id`, authMiddleware, async (req, res) => await ObjectLayerController.put(req, res, options));
40
- router.put(`/`, authMiddleware, async (req, res) => await ObjectLayerController.put(req, res, options));
41
- router.delete(
42
- `/:id`,
43
- authMiddleware,
44
- adminGuard,
45
- async (req, res) => await ObjectLayerController.delete(req, res, options),
46
- );
47
- router.delete(
48
- `/`,
49
- authMiddleware,
50
- adminGuard,
51
- async (req, res) => await ObjectLayerController.delete(req, res, options),
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