cyberia 3.0.2 → 3.0.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 (47) hide show
  1. package/CHANGELOG.md +323 -290
  2. package/CLI-HELP.md +2 -1
  3. package/bin/build.js +0 -1
  4. package/bin/cyberia.js +98 -4
  5. package/bin/index.js +98 -4
  6. package/conf.js +192 -0
  7. package/deployment.yaml +72 -2
  8. package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +1 -1
  9. package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +1 -1
  10. package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
  11. package/manifests/deployment/dd-test-development/deployment.yaml +2 -2
  12. package/package.json +13 -9
  13. package/proxy.yaml +56 -9
  14. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +40 -7
  15. package/src/api/object-layer/object-layer.model.js +61 -19
  16. package/src/api/object-layer/object-layer.service.js +4 -9
  17. package/src/cli/index.js +6 -0
  18. package/src/cli/run.js +30 -2
  19. package/src/client/Underpost.index.js +36 -0
  20. package/src/client/components/core/Modal.js +2 -0
  21. package/src/client/components/core/PublicProfile.js +3 -3
  22. package/src/client/components/core/Router.js +34 -1
  23. package/src/client/components/core/Worker.js +1 -1
  24. package/src/client/components/cryptokoyn/CssCryptokoyn.js +63 -1
  25. package/src/client/components/cyberia/ObjectLayerEngineModal.js +145 -119
  26. package/src/client/components/cyberia/ObjectLayerEngineViewer.js +64 -6
  27. package/src/client/components/itemledger/CssItemledger.js +62 -0
  28. package/src/client/components/underpost/CommonUnderpost.js +29 -0
  29. package/src/client/components/underpost/CssUnderpost.js +222 -0
  30. package/src/client/components/underpost/CyberpunkBloggerUnderpost.js +879 -0
  31. package/src/client/components/underpost/DocumentSearchProvider.js +448 -0
  32. package/src/client/components/underpost/ElementsUnderpost.js +38 -0
  33. package/src/client/components/underpost/LabGalleryUnderpost.js +82 -0
  34. package/src/client/components/underpost/LogInUnderpost.js +20 -0
  35. package/src/client/components/underpost/LogOutUnderpost.js +13 -0
  36. package/src/client/components/underpost/MenuUnderpost.js +605 -0
  37. package/src/client/components/underpost/RoutesUnderpost.js +45 -0
  38. package/src/client/components/underpost/SettingsUnderpost.js +16 -0
  39. package/src/client/components/underpost/SignUpUnderpost.js +9 -0
  40. package/src/client/components/underpost/SocketIoUnderpost.js +54 -0
  41. package/src/client/components/underpost/TranslateUnderpost.js +10 -0
  42. package/src/client/services/object-layer/object-layer.management.js +23 -4
  43. package/src/client/ssr/body/UnderpostDefaultSplashScreen.js +83 -0
  44. package/src/client/ssr/head/UnderpostScripts.js +6 -0
  45. package/src/index.js +1 -1
  46. package/src/server/object-layer.js +13 -10
  47. package/src/server/semantic-layer-generator.js +1 -0
@@ -225,6 +225,11 @@ const ObjectLayerEngineViewer = {
225
225
  const itemDescription = objectLayer.data.item.description || '';
226
226
  const itemActivable = objectLayer.data.item.activable || false;
227
227
 
228
+ // Get ledger data
229
+ const ledger = objectLayer.data.ledger || {};
230
+ const ledgerType = ledger.type || '';
231
+ const ledgerAddress = ledger.address || '';
232
+
228
233
  // Get stats data
229
234
  const stats = objectLayer.data.stats || {};
230
235
 
@@ -616,6 +621,33 @@ const ObjectLayerEngineViewer = {
616
621
  font-size: 13px;
617
622
  }
618
623
 
624
+ .webp-download-btn {
625
+ position: absolute;
626
+ top: 10px;
627
+ right: 10px;
628
+ background: rgba(0, 0, 0, 0.5);
629
+ color: white;
630
+ border: none;
631
+ border-radius: 6px;
632
+ padding: 6px 10px;
633
+ cursor: pointer;
634
+ font-size: 12px;
635
+ font-weight: 600;
636
+ display: flex;
637
+ align-items: center;
638
+ gap: 5px;
639
+ z-index: 5;
640
+ backdrop-filter: blur(4px);
641
+ transition: all 0.2s ease;
642
+ }
643
+ .webp-download-btn:hover {
644
+ background: rgba(0, 0, 0, 0.75);
645
+ transform: scale(1.05);
646
+ }
647
+ .webp-download-btn i {
648
+ font-size: 12px;
649
+ }
650
+
619
651
  @media (max-width: 850px) {
620
652
  .object-layer-viewer-container {
621
653
  padding: 5px;
@@ -672,11 +704,18 @@ const ObjectLayerEngineViewer = {
672
704
  <span class="ipfs-cid-value">${objectLayer.cid}</span>
673
705
  </div>`
674
706
  : ''}
675
- ${objectLayer.data.atlasSpriteSheetCid
707
+ ${objectLayer.data.render?.cid
676
708
  ? html`<div class="ipfs-cid-label">
677
709
  <i class="fa-solid fa-image"></i>
678
710
  <strong>Atlas IPFS CID:</strong>
679
- <span class="ipfs-cid-value">${objectLayer.data.atlasSpriteSheetCid}</span>
711
+ <span class="ipfs-cid-value">${objectLayer.data.render.cid}</span>
712
+ </div>`
713
+ : ''}
714
+ ${objectLayer.data.render?.metadataCid
715
+ ? html`<div class="ipfs-cid-label">
716
+ <i class="fa-solid fa-file-code"></i>
717
+ <strong>Atlas Metadata CID:</strong>
718
+ <span class="ipfs-cid-value">${objectLayer.data.render.metadataCid}</span>
680
719
  </div>`
681
720
  : ''}
682
721
  ${objectLayer.sha256
@@ -725,7 +764,30 @@ const ObjectLayerEngineViewer = {
725
764
  </div>
726
765
  </div>
727
766
 
767
+ <!-- Ledger Section -->
768
+ <div class="control-group" style="margin-bottom: 20px;">
769
+ <h4><i class="fa-solid fa-link"></i> Ledger</h4>
770
+ <div
771
+ style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; padding: 10px 0;"
772
+ >
773
+ <div style="display: flex; flex-direction: column; gap: 4px;">
774
+ <span class="item-data-key-label">Type</span>
775
+ <span style="font-weight: 600;">${ledgerType || 'N/A'}</span>
776
+ </div>
777
+ ${ledgerAddress
778
+ ? html`<div style="display: flex; flex-direction: column; gap: 4px;">
779
+ <span class="item-data-key-label">Contract Address</span>
780
+ <span style="font-weight: 600; word-break: break-all;">${ledgerAddress}</span>
781
+ </div>`
782
+ : ''}
783
+ </div>
784
+ </div>
785
+
728
786
  <div class="webp-display-area">
787
+ <button class="webp-download-btn" id="download-webp-btn">
788
+ <i class="fa-solid fa-download"></i>
789
+ <span>WebP</span>
790
+ </button>
729
791
  <div class="webp-canvas-container chess in" id="webp-canvas-container">
730
792
  ${!this.Data.webp
731
793
  ? html`
@@ -917,10 +979,6 @@ const ObjectLayerEngineViewer = {
917
979
  <i class="fa-solid fa-arrow-left"></i>
918
980
  <span>Return to List</span>
919
981
  </button>
920
- <button class="default-viewer-btn" id="download-webp-btn">
921
- <i class="fa-solid fa-download"></i>
922
- <span>Download WebP</span>
923
- </button>
924
982
  <button class="default-viewer-btn edit-btn" id="edit-object-layer-btn">
925
983
  <i class="fa-solid fa-edit"></i>
926
984
  <span>Edit</span>
@@ -30,6 +30,7 @@ const CssCommonItemledger = async () => {
30
30
  --il-font-retro: 'retro-font';
31
31
  --il-font-retro-title: 'retro-font-title';
32
32
  --il-font-retro-sensitive: 'retro-font-sensitive';
33
+ --il-font-retro-cta: 'retro-font-cta';
33
34
  }
34
35
 
35
36
  @font-face {
@@ -44,6 +45,64 @@ const CssCommonItemledger = async () => {
44
45
  font-family: 'retro-font-sensitive';
45
46
  src: URL('${getProxyPath()}assets/fonts/VT323-Regular.ttf') format('truetype');
46
47
  }
48
+ @font-face {
49
+ font-family: 'retro-font-cta';
50
+ src: URL('${getProxyPath()}assets/fonts/PressStart2P-Regular.ttf') format('truetype');
51
+ }
52
+
53
+ /* Landing Page & Object Viewer Styles */
54
+ .landing-container {
55
+ display: flex;
56
+ flex-direction: column;
57
+ align-items: center;
58
+ justify-content: center;
59
+ height: 100vh;
60
+ width: 100%;
61
+ background: #000;
62
+ color: #fff;
63
+ text-align: center;
64
+ }
65
+
66
+ .landing-title,
67
+ h1,
68
+ h2,
69
+ h3 {
70
+ font-family: var(--il-font-retro-cta);
71
+ font-size: 5rem;
72
+ color: #24fbff;
73
+ text-shadow: 2px 2px 0px #127e80;
74
+ margin-bottom: 2rem;
75
+ }
76
+
77
+ p {
78
+ font-family: var(--il-font-retro);
79
+ }
80
+
81
+ .object-layer-viewer-container {
82
+ width: 100% !important;
83
+ font-family: var(--il-font-retro);
84
+ }
85
+
86
+ .cta-button {
87
+ font-family: var(--il-font-retro-cta);
88
+ font-size: 1.5rem;
89
+ padding: 1rem 2rem;
90
+ border: 3px solid #24fbff;
91
+ background: transparent;
92
+ color: #24fbff;
93
+ cursor: pointer;
94
+ transition: all 0.3s ease-in-out;
95
+ text-shadow: 1px 1px 0px #127e80;
96
+ }
97
+
98
+ .cta-button:hover {
99
+ background: #24fbff;
100
+ color: #000;
101
+ box-shadow:
102
+ 0 0 20px #24fbff,
103
+ 0 0 40px #24fbff;
104
+ text-shadow: none;
105
+ }
47
106
 
48
107
  /* Base typography and smoothing */
49
108
 
@@ -86,6 +145,9 @@ const CssCommonItemledger = async () => {
86
145
  .main-btn-menu {
87
146
  font-size: 20px;
88
147
  }
148
+ .input-container {
149
+ width: 278px;
150
+ }
89
151
  </style>
90
152
 
91
153
  <div class="ag-grid-style"></div>`;
@@ -0,0 +1,29 @@
1
+ const ModelElement = {
2
+ user: () => {
3
+ return {
4
+ user: {
5
+ _id: '',
6
+ },
7
+ };
8
+ },
9
+ };
10
+
11
+ const BaseElement = () => {
12
+ return {
13
+ user: {
14
+ main: {
15
+ model: {
16
+ ...ModelElement.user(),
17
+ },
18
+ },
19
+ },
20
+ chat: {},
21
+ mailer: {},
22
+ };
23
+ };
24
+
25
+ const UnderpostParams = {
26
+ EVENT_CALLBACK_TIME: 45,
27
+ };
28
+
29
+ export { BaseElement, ModelElement, UnderpostParams };
@@ -0,0 +1,222 @@
1
+ import { AgGrid } from '../core/AgGrid.js';
2
+ import { borderChar, subThemeManager } from '../core/Css.js';
3
+ import { LoadingAnimation } from '../core/LoadingAnimation.js';
4
+ import { Modal } from '../core/Modal.js';
5
+ import { getProxyPath } from '../core/Router.js';
6
+
7
+ const CssCommonUnderpost = async () => {
8
+ LoadingAnimation.img.load({
9
+ key: 'points',
10
+ src: 'assets/util/points-loading.gif',
11
+ classes: 'inl',
12
+ style: 'width: 100px; height: 100px',
13
+ });
14
+ subThemeManager.setDarkTheme('#f70808');
15
+ subThemeManager.setLightTheme('#aa0000');
16
+ Modal.labelSelectorTopOffsetEndAnimation = '-15px';
17
+ await AgGrid.RenderStyle({
18
+ eventThemeId: 'CssCommonUnderpost',
19
+ style: {
20
+ 'font-family': `retro-font`,
21
+ 'font-size': '24px',
22
+ 'no-cell-focus-style': true,
23
+ 'row-cursor': 'pointer',
24
+ },
25
+ });
26
+
27
+ return html`<style>
28
+ /* Core variables: override in each theme */
29
+ :root {
30
+ --up-font-retro: 'retro-font';
31
+ --up-font-retro-title: 'retro-font-title';
32
+ --up-font-retro-sensitive: 'retro-font-sensitive';
33
+ --up-font-retro-cta: 'retro-font-cta';
34
+ }
35
+
36
+ @font-face {
37
+ font-family: 'retro-font-title';
38
+ src: URL('${getProxyPath()}assets/fonts/EndlessBossBattleRegular-v7Ey.ttf') format('truetype');
39
+ }
40
+ @font-face {
41
+ font-family: 'retro-font';
42
+ src: URL('${getProxyPath()}assets/fonts/Pixeboy-z8XGD.ttf') format('truetype');
43
+ }
44
+ @font-face {
45
+ font-family: 'retro-font-sensitive';
46
+ src: URL('${getProxyPath()}assets/fonts/VT323-Regular.ttf') format('truetype');
47
+ }
48
+ @font-face {
49
+ font-family: 'retro-font-cta';
50
+ src: URL('${getProxyPath()}assets/fonts/PressStart2P-Regular.ttf') format('truetype');
51
+ }
52
+
53
+ /* Landing Page & Object Viewer Styles */
54
+ .landing-container {
55
+ display: flex;
56
+ flex-direction: column;
57
+ align-items: center;
58
+ justify-content: center;
59
+ height: 100vh;
60
+ width: 100%;
61
+ background: #000;
62
+ color: #fff;
63
+ text-align: center;
64
+ }
65
+
66
+ .landing-title,
67
+ h1,
68
+ h2,
69
+ h3 {
70
+ font-family: var(--up-font-retro-cta);
71
+ font-size: 5rem;
72
+ color: #f70808;
73
+ text-shadow: 2px 2px 0px #7a0404;
74
+ margin-bottom: 2rem;
75
+ }
76
+
77
+ p {
78
+ font-family: var(--up-font-retro);
79
+ }
80
+
81
+ .object-layer-viewer-container {
82
+ width: 100% !important;
83
+ font-family: var(--up-font-retro);
84
+ }
85
+
86
+ .cta-button {
87
+ font-family: var(--up-font-retro-cta);
88
+ font-size: 1.5rem;
89
+ padding: 1rem 2rem;
90
+ border: 3px solid #f70808;
91
+ background: transparent;
92
+ color: #f70808;
93
+ cursor: pointer;
94
+ transition: all 0.3s ease-in-out;
95
+ text-shadow: 1px 1px 0px #7a0404;
96
+ }
97
+
98
+ .cta-button:hover {
99
+ background: #f70808;
100
+ color: #000;
101
+ box-shadow:
102
+ 0 0 20px #f70808,
103
+ 0 0 40px #f70808;
104
+ text-shadow: none;
105
+ }
106
+
107
+ /* Base typography and smoothing */
108
+
109
+ button,
110
+ .title-main-modal,
111
+ .section-mp,
112
+ .default-slide-menu-top-bar-fix-title-container-text {
113
+ font-family: var(--up-font-retro);
114
+ }
115
+
116
+ .default-slide-menu-top-bar-fix-title-container-text {
117
+ font-size: 40px !important;
118
+ }
119
+
120
+ .modal,
121
+ .badge {
122
+ font-family: var(--up-font-retro);
123
+ }
124
+
125
+ input,
126
+ .chat-message-body {
127
+ font-family: var(--up-font-retro-sensitive);
128
+ }
129
+
130
+ .btn-modal-default {
131
+ width: 35px;
132
+ height: 35px;
133
+ }
134
+ .handle-btn-container {
135
+ text-shadow: none;
136
+ }
137
+ .underpost-menu-icon {
138
+ width: 30px;
139
+ height: 30px;
140
+ top: -5px;
141
+ }
142
+ .underpost-menu-icon-modal {
143
+ top: -3px;
144
+ width: 30px;
145
+ height: 30px;
146
+ }
147
+ .underpost-text-title-modal {
148
+ top: -10px;
149
+ }
150
+ .main-btn-menu {
151
+ font-size: 20px;
152
+ }
153
+ .input-container {
154
+ width: 278px;
155
+ }
156
+ .public-profile-image-container,
157
+ .public-profile-image,
158
+ .creator-avatar {
159
+ border-radius: 0px !important;
160
+ }
161
+ </style>
162
+
163
+ <div class="ag-grid-style"></div>`;
164
+ };
165
+
166
+ const CssUnderpostDark = {
167
+ theme: 'underpost-dark',
168
+ dark: true,
169
+ barButtonsIconTheme: 'img',
170
+ render: async () => {
171
+ return (
172
+ (await CssCommonUnderpost()) +
173
+ html`
174
+ <style>
175
+ button:hover,
176
+ .a-btn:hover {
177
+ background: #212020;
178
+ }
179
+ .action-bar-box {
180
+ color: white;
181
+ }
182
+ .default-slide-menu-top-bar-fix-title-container-text {
183
+ font-size: 40px !important;
184
+ color: black !important;
185
+ }
186
+ </style>
187
+ ${borderChar(2, `#f70808`, ['.default-slide-menu-top-bar-fix-title-container-text'])}
188
+ `
189
+ );
190
+ },
191
+ };
192
+
193
+ const CssUnderpostLight = {
194
+ theme: 'underpost-light',
195
+ dark: false,
196
+ barButtonsIconTheme: 'img',
197
+ render: async () => {
198
+ return (
199
+ (await CssCommonUnderpost()) +
200
+ html`
201
+ <style>
202
+ button:hover,
203
+ .a-btn:hover {
204
+ background: #d8d8d8;
205
+ }
206
+
207
+ .action-bar-box {
208
+ color: black;
209
+ }
210
+ .default-slide-menu-top-bar-fix-title-container-text {
211
+ font-size: 40px !important;
212
+ color: white !important;
213
+ }
214
+ </style>
215
+ ${borderChar(1, `#010101`, ['.default-slide-menu-top-bar-fix-title-container-text'])}
216
+ ${borderChar(1, `#010101`, ['button', '.a-btn'], true)}
217
+ `
218
+ );
219
+ },
220
+ };
221
+
222
+ export { CssUnderpostDark, CssCommonUnderpost, CssUnderpostLight };