@metricinsights/pp-dev 0.1.0 → 0.2.0

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.
@@ -0,0 +1,15 @@
1
+ /// <reference types="node" />
2
+ import { Axios } from 'axios';
3
+ import { Headers } from './constants.js';
4
+ export declare class AssetsAPI {
5
+ private axios;
6
+ constructor(axios: Axios);
7
+ downloadPageAssets(portalPageId: number | string, headers?: Headers): Promise<Buffer>;
8
+ uploadPageAssets(portalPageId: number | string, file: Buffer, headers?: Headers): Promise<{
9
+ status?: "OK" | undefined;
10
+ }>;
11
+ downloadTemplateAssets(templateId: number | string, headers?: Headers): Promise<Buffer>;
12
+ uploadTemplateAssets(templateId: number | string, file: Buffer, headers?: Headers): Promise<{
13
+ status?: "OK" | undefined;
14
+ }>;
15
+ }
@@ -0,0 +1,58 @@
1
+ import { FormData, File } from 'formdata-node';
2
+ export class AssetsAPI {
3
+ axios;
4
+ constructor(axios) {
5
+ this.axios = axios;
6
+ }
7
+ async downloadPageAssets(portalPageId, headers) {
8
+ return this.axios
9
+ .get(`/admin/page/downloadassets/id/${portalPageId}`, {
10
+ withCredentials: true,
11
+ headers: Object.assign({}, headers, { accept: '*/*' }),
12
+ responseType: 'arraybuffer',
13
+ })
14
+ .then((res) => res.data);
15
+ }
16
+ async uploadPageAssets(portalPageId, file, headers) {
17
+ const formData = new FormData();
18
+ const assetFile = new File([file.buffer], 'file.zip', { type: 'application/zip' });
19
+ formData.append('file', assetFile);
20
+ const url = `/admin/page/uploadassets/id/${portalPageId}`;
21
+ return this.axios
22
+ .post(`/admin/page/uploadassets/id/${portalPageId}`, formData, {
23
+ withCredentials: true,
24
+ headers: Object.assign({}, headers, {
25
+ accept: 'application/json',
26
+ 'Content-Type': 'multipart/form-data',
27
+ Referer: this.axios.getUri({ url }),
28
+ }),
29
+ })
30
+ .then((res) => res.data);
31
+ }
32
+ async downloadTemplateAssets(templateId, headers) {
33
+ return this.axios
34
+ .get(`/admin/pagetemplate/downloadassets/id/${templateId}`, {
35
+ withCredentials: true,
36
+ headers: Object.assign({}, headers, { accept: '*/*' }),
37
+ responseType: 'arraybuffer',
38
+ })
39
+ .then((res) => res.data);
40
+ }
41
+ async uploadTemplateAssets(templateId, file, headers) {
42
+ const formData = new FormData();
43
+ const assetFile = new File([file.buffer], 'file.zip', { type: 'application/zip' });
44
+ formData.append('file', assetFile, 'file.zip');
45
+ const url = `/admin/pagetemplate/uploadassets/id/${templateId}`;
46
+ return this.axios
47
+ .post(url, formData, {
48
+ withCredentials: true,
49
+ headers: Object.assign({}, headers, {
50
+ accept: 'application/json',
51
+ 'Content-Type': 'multipart/form-data',
52
+ Referer: this.axios.getUri({ url }),
53
+ }),
54
+ })
55
+ .then((res) => res.data);
56
+ }
57
+ }
58
+ //# sourceMappingURL=assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/api/assets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export type Headers = Record<string, string | undefined>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/api/constants.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from './assets.js';
2
+ export * from './page.js';
@@ -0,0 +1,3 @@
1
+ export * from './assets.js';
2
+ export * from './page.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Axios } from 'axios';
2
+ import { Headers } from './constants.js';
3
+ export interface Page {
4
+ name: string;
5
+ enabled: 'Y' | 'N';
6
+ visible_in_homepage: 'Y' | 'N';
7
+ internal_name: string;
8
+ tags?: string;
9
+ template?: string;
10
+ }
11
+ export declare class PageAPI {
12
+ private axios;
13
+ constructor(axios: Axios);
14
+ getAll(headers?: Headers): Promise<Page[]>;
15
+ get(id: number | string, headers?: Headers): Promise<Page>;
16
+ getPageContent(internalPageName: string, headers?: Headers): Promise<string>;
17
+ create(page: Page, headers?: Headers): Promise<Page>;
18
+ }
@@ -0,0 +1,46 @@
1
+ export class PageAPI {
2
+ axios;
3
+ constructor(axios) {
4
+ this.axios = axios;
5
+ }
6
+ async getAll(headers) {
7
+ return (await this.axios.get('/api/page', {
8
+ withCredentials: true,
9
+ headers: Object.assign({}, headers, {
10
+ Accept: 'application/json',
11
+ 'Content-Type': 'application/json',
12
+ 'Cache-Control': 'no-cache',
13
+ Pragma: 'no-cache',
14
+ Expires: '0',
15
+ }),
16
+ })).data.pages;
17
+ }
18
+ async get(id, headers) {
19
+ return (await this.axios.get(`/api/page/id/${id}`, {
20
+ withCredentials: true,
21
+ headers: Object.assign({}, headers, {
22
+ accept: 'application/json',
23
+ 'content-type': 'application/json',
24
+ }),
25
+ })).data.page;
26
+ }
27
+ async getPageContent(internalPageName, headers) {
28
+ return (await this.axios.get(`/p/${internalPageName}`, {
29
+ withCredentials: true,
30
+ headers: Object.assign({}, headers, {
31
+ accept: 'text/html',
32
+ 'content-type': 'application/json',
33
+ }),
34
+ })).data;
35
+ }
36
+ async create(page, headers) {
37
+ return (await this.axios.post('/api/page', page, {
38
+ withCredentials: true,
39
+ headers: Object.assign({}, headers, {
40
+ accept: 'application/json',
41
+ 'content-type': 'application/json',
42
+ }),
43
+ })).data.page;
44
+ }
45
+ }
46
+ //# sourceMappingURL=page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/api/page.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,OAAO;IACV,KAAK,CAAQ;IAErB,YAAY,KAAY;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAiB;QAC5B,OAAO,CACL,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,WAAW,EAAE;YACnD,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE;gBAClC,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU;gBAC3B,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,GAAG;aACb,CAAC;SACH,CAAC,CACH,CAAC,IAAI,CAAC,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAmB,EAAE,OAAiB;QAC9C,OAAO,CACL,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,gBAAgB,EAAE,EAAE,EAAE;YACzD,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE;gBAClC,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,kBAAkB;aACnC,CAAC;SACH,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,gBAAwB,EAAE,OAAiB;QAC9D,OAAO,CACL,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAS,MAAM,gBAAgB,EAAE,EAAE;YACrD,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE;gBAClC,MAAM,EAAE,WAAW;gBACnB,cAAc,EAAE,kBAAkB;aACnC,CAAC;SACH,CAAC,CACH,CAAC,IAAI,CAAC;IACT,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAU,EAAE,OAAiB;QACxC,OAAO,CACL,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiB,WAAW,EAAE,IAAI,EAAE;YACvD,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE;gBAClC,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,kBAAkB;aACnC,CAAC;SACH,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- .pp-dev-info {
1
+ .pp-dev-info-namespace {
2
2
  --pp-dev-info-color-primary: #007bff;
3
3
  --pp-dev-info-color-secondary: #6c757d;
4
4
  --pp-dev-info-color-success: #28a745;
@@ -9,6 +9,81 @@
9
9
  --pp-dev-info-color-dark: #343a40;
10
10
  --pp-dev-info-color-white: #ffffff;
11
11
  --pp-dev-info-color-black: #000000;
12
+ }
13
+ .pp-dev-info-namespace .pp-dev-info__popup {
14
+ position: absolute;
15
+ top: 10px;
16
+ right: 10px;
17
+ width: max-content;
18
+ max-width: 300px;
19
+ height: max-content;
20
+ max-height: max-content;
21
+ background-color: var(--pp-dev-info-color-white);
22
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
23
+ border-radius: 3px;
24
+ display: flex;
25
+ flex-direction: column;
26
+ transition: all 0.3s;
27
+ overflow: hidden;
28
+ z-index: 100000;
29
+ border: 1px solid var(--pp-dev-info-color-secondary);
30
+ }
31
+ .pp-dev-info-namespace .pp-dev-info__popup-title {
32
+ display: flex;
33
+ align-items: center;
34
+ justify-content: space-between;
35
+ padding: 0 10px;
36
+ height: 30px;
37
+ width: 100%;
38
+ box-sizing: border-box;
39
+ border-bottom: 1px solid var(--pp-dev-info-color-light);
40
+ background-color: var(--pp-dev-info-color-secondary);
41
+ }
42
+ .pp-dev-info-namespace .pp-dev-info__popup-title-text {
43
+ font-size: 14px;
44
+ font-weight: 700;
45
+ color: var(--pp-dev-info-color-white);
46
+ }
47
+ .pp-dev-info-namespace .pp-dev-info__popup-title-close {
48
+ cursor: pointer;
49
+ width: 30px;
50
+ height: 30px;
51
+ display: flex;
52
+ align-items: center;
53
+ justify-content: center;
54
+ color: var(--pp-dev-info-color-white);
55
+ }
56
+ .pp-dev-info-namespace .pp-dev-info__popup-title-close:hover {
57
+ color: var(--pp-dev-info-color-light);
58
+ }
59
+ .pp-dev-info-namespace .pp-dev-info__popup-content {
60
+ padding: 10px;
61
+ overflow-y: auto;
62
+ box-sizing: border-box;
63
+ flex-grow: 1;
64
+ background-color: var(--pp-dev-info-color-white);
65
+ width: 100%;
66
+ }
67
+ .pp-dev-info-namespace .pp-dev-info__popup--success {
68
+ border-color: var(--pp-dev-info-color-success);
69
+ }
70
+ .pp-dev-info-namespace .pp-dev-info__popup--success .pp-dev-info__popup-title {
71
+ background-color: var(--pp-dev-info-color-success);
72
+ }
73
+ .pp-dev-info-namespace .pp-dev-info__popup--success .pp-dev-info__popup-content {
74
+ color: var(--pp-dev-info-color-success);
75
+ }
76
+ .pp-dev-info-namespace .pp-dev-info__popup--danger {
77
+ border-color: var(--pp-dev-info-color-danger);
78
+ }
79
+ .pp-dev-info-namespace .pp-dev-info__popup--danger .pp-dev-info__popup-title {
80
+ background-color: var(--pp-dev-info-color-danger);
81
+ }
82
+ .pp-dev-info-namespace .pp-dev-info__popup--danger .pp-dev-info__popup-content {
83
+ color: var(--pp-dev-info-color-danger);
84
+ }
85
+ .pp-dev-info-namespace.pp-dev-info,
86
+ .pp-dev-info-namespace .pp-dev-info {
12
87
  position: fixed;
13
88
  z-index: 10000;
14
89
  white-space: nowrap;
@@ -27,7 +102,8 @@
27
102
  transition: all 0.3s;
28
103
  overflow: hidden;
29
104
  }
30
- .pp-dev-info * {
105
+ .pp-dev-info-namespace.pp-dev-info *,
106
+ .pp-dev-info-namespace .pp-dev-info * {
31
107
  color: var(--pp-dev-info-color-dark);
32
108
  font-family: sans-serif;
33
109
  font-size: 13px;
@@ -47,45 +123,58 @@
47
123
  -webkit-font-smoothing: antialiased;
48
124
  -moz-osx-font-smoothing: grayscale;
49
125
  }
50
- .pp-dev-info .primary {
126
+ .pp-dev-info-namespace.pp-dev-info .primary,
127
+ .pp-dev-info-namespace .pp-dev-info .primary {
51
128
  color: var(--pp-dev-info-color-primary) !important;
52
129
  }
53
- .pp-dev-info .success {
130
+ .pp-dev-info-namespace.pp-dev-info .success,
131
+ .pp-dev-info-namespace .pp-dev-info .success {
54
132
  color: var(--pp-dev-info-color-success) !important;
55
133
  }
56
- .pp-dev-info .info {
134
+ .pp-dev-info-namespace.pp-dev-info .info,
135
+ .pp-dev-info-namespace .pp-dev-info .info {
57
136
  color: var(--pp-dev-info-color-info) !important;
58
137
  }
59
- .pp-dev-info .warning {
138
+ .pp-dev-info-namespace.pp-dev-info .warning,
139
+ .pp-dev-info-namespace .pp-dev-info .warning {
60
140
  color: var(--pp-dev-info-color-warning) !important;
61
141
  }
62
- .pp-dev-info .danger {
142
+ .pp-dev-info-namespace.pp-dev-info .danger,
143
+ .pp-dev-info-namespace .pp-dev-info .danger {
63
144
  color: var(--pp-dev-info-color-danger) !important;
64
145
  }
65
- .pp-dev-info a {
146
+ .pp-dev-info-namespace.pp-dev-info a,
147
+ .pp-dev-info-namespace .pp-dev-info a {
66
148
  color: var(--pp-dev-info-color-primary);
67
149
  text-decoration: none;
68
150
  vertical-align: middle;
69
151
  line-height: 1.5;
70
152
  }
71
- .pp-dev-info a:hover {
153
+ .pp-dev-info-namespace.pp-dev-info a:hover,
154
+ .pp-dev-info-namespace .pp-dev-info a:hover {
72
155
  text-decoration: none;
73
156
  }
74
- .pp-dev-info a:active, .pp-dev-info a:hover {
157
+ .pp-dev-info-namespace.pp-dev-info a:active, .pp-dev-info-namespace.pp-dev-info a:hover,
158
+ .pp-dev-info-namespace .pp-dev-info a:active,
159
+ .pp-dev-info-namespace .pp-dev-info a:hover {
75
160
  outline: 0;
76
161
  }
77
- .pp-dev-info button {
162
+ .pp-dev-info-namespace.pp-dev-info button,
163
+ .pp-dev-info-namespace .pp-dev-info button {
78
164
  padding: 1px;
79
165
  border: none;
80
166
  background: none;
81
167
  cursor: pointer;
82
168
  outline: none;
83
169
  }
84
- .pp-dev-info .bold,
85
- .pp-dev-info .status-text {
170
+ .pp-dev-info-namespace.pp-dev-info .bold,
171
+ .pp-dev-info-namespace.pp-dev-info .status-text,
172
+ .pp-dev-info-namespace .pp-dev-info .bold,
173
+ .pp-dev-info-namespace .pp-dev-info .status-text {
86
174
  font-weight: 700;
87
175
  }
88
- .pp-dev-info__wrap-btn {
176
+ .pp-dev-info-namespace.pp-dev-info__wrap-btn,
177
+ .pp-dev-info-namespace .pp-dev-info__wrap-btn {
89
178
  box-sizing: content-box;
90
179
  display: flex;
91
180
  align-items: center;
@@ -95,46 +184,58 @@
95
184
  padding-left: 10px;
96
185
  cursor: pointer;
97
186
  }
98
- .pp-dev-info__wrap-btn:hover {
187
+ .pp-dev-info-namespace.pp-dev-info__wrap-btn:hover,
188
+ .pp-dev-info-namespace .pp-dev-info__wrap-btn:hover {
99
189
  animation: arrowHover 0.8s linear infinite;
100
190
  }
101
- .pp-dev-info__wrap-btn-arrow {
191
+ .pp-dev-info-namespace.pp-dev-info__wrap-btn-arrow,
192
+ .pp-dev-info-namespace .pp-dev-info__wrap-btn-arrow {
102
193
  width: 13px;
103
194
  fill: var(--pp-dev-info-color-dark);
104
195
  }
105
- .pp-dev-info.closed {
196
+ .pp-dev-info-namespace.pp-dev-info.closed,
197
+ .pp-dev-info-namespace .pp-dev-info.closed {
106
198
  transform: translateX(calc(100% - 27px));
107
199
  }
108
- .pp-dev-info.closed .pp-dev-info__wrap-btn:hover {
200
+ .pp-dev-info-namespace.pp-dev-info.closed .pp-dev-info__wrap-btn:hover,
201
+ .pp-dev-info-namespace .pp-dev-info.closed .pp-dev-info__wrap-btn:hover {
109
202
  animation: arrowHover 1.2s linear infinite;
110
203
  }
111
- .pp-dev-info.closed .pp-dev-info__wrap-btn .pp-dev-info__wrap-btn-arrow {
204
+ .pp-dev-info-namespace.pp-dev-info.closed .pp-dev-info__wrap-btn .pp-dev-info__wrap-btn-arrow,
205
+ .pp-dev-info-namespace .pp-dev-info.closed .pp-dev-info__wrap-btn .pp-dev-info__wrap-btn-arrow {
112
206
  transform: rotate(180deg);
113
207
  max-width: 12px;
114
208
  }
115
- .pp-dev-info.closed .pp-dev-info__wrap-btn {
209
+ .pp-dev-info-namespace.pp-dev-info.closed .pp-dev-info__wrap-btn,
210
+ .pp-dev-info-namespace .pp-dev-info.closed .pp-dev-info__wrap-btn {
116
211
  margin-left: -2px;
117
212
  }
118
- .pp-dev-info .sync-button {
213
+ .pp-dev-info-namespace.pp-dev-info .sync-button,
214
+ .pp-dev-info-namespace .pp-dev-info .sync-button {
119
215
  background-color: transparent;
120
216
  border: none;
121
217
  cursor: pointer;
122
218
  padding: 4px 2px;
123
219
  }
124
- .pp-dev-info .sync-button.syncing {
220
+ .pp-dev-info-namespace.pp-dev-info .sync-button.syncing,
221
+ .pp-dev-info-namespace .pp-dev-info .sync-button.syncing {
125
222
  cursor: not-allowed;
126
223
  pointer-events: none;
127
224
  }
128
- .pp-dev-info .sync-button.syncing svg {
225
+ .pp-dev-info-namespace.pp-dev-info .sync-button.syncing svg,
226
+ .pp-dev-info-namespace .pp-dev-info .sync-button.syncing svg {
129
227
  animation: rotation 2s linear infinite;
130
228
  }
131
- .pp-dev-info .margin-5 {
229
+ .pp-dev-info-namespace.pp-dev-info .margin-5,
230
+ .pp-dev-info-namespace .pp-dev-info .margin-5 {
132
231
  margin-right: 5px;
133
232
  }
134
- .pp-dev-info .margin-10 {
233
+ .pp-dev-info-namespace.pp-dev-info .margin-10,
234
+ .pp-dev-info-namespace .pp-dev-info .margin-10 {
135
235
  margin-right: 10px;
136
236
  }
137
- .pp-dev-info .custom-font {
237
+ .pp-dev-info-namespace.pp-dev-info .custom-font,
238
+ .pp-dev-info-namespace .pp-dev-info .custom-font {
138
239
  font-family: sans-serif;
139
240
  font-size: 13px;
140
241
  font-weight: 300;
@@ -142,7 +243,8 @@
142
243
  line-height: 1.5;
143
244
  color: var(--pp-dev-info-color-dark);
144
245
  }
145
- .pp-dev-info .custom-font:not(.not-colored) a {
246
+ .pp-dev-info-namespace.pp-dev-info .custom-font:not(.not-colored) a,
247
+ .pp-dev-info-namespace .pp-dev-info .custom-font:not(.not-colored) a {
146
248
  color: var(--pp-dev-info-color-primary) !important;
147
249
  }
148
250
  @keyframes rotation {
@@ -165,7 +267,8 @@
165
267
  }
166
268
  }
167
269
  @media screen and (prefers-color-scheme: dark) {
168
- .pp-dev-info {
270
+ .pp-dev-info-namespace.pp-dev-info,
271
+ .pp-dev-info-namespace .pp-dev-info {
169
272
  --pp-dev-info-color-primary: #007bff;
170
273
  --pp-dev-info-color-secondary: #a4abb6;
171
274
  --pp-dev-info-color-success: #56f000;
@@ -19,6 +19,32 @@ function getStorageItem(key) {
19
19
  }
20
20
  return null;
21
21
  }
22
+ function infoPopup(opts) {
23
+ const template = `
24
+ <div class="pp-dev-info__popup ${opts.className || ''}" style="${opts.style || ''}">
25
+ <div class="pp-dev-info__popup-title">
26
+ <div class="pp-dev-info__popup-title-text">${opts.title}</div>
27
+ <div class="pp-dev-info__popup-title-close">
28
+ <svg viewBox="0 0 24 24" width="16" height="16" stroke="currentColor" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round">
29
+ <path d="M18 6L6 18"></path>
30
+ <path d="M6 6l12 12"></path>
31
+ </svg>
32
+ </div>
33
+ </div>
34
+ <div class="pp-dev-info__popup-content">${opts.content}</div>
35
+ </div>
36
+ `;
37
+ const $popup = document.createElement('div');
38
+ $popup.classList.add('pp-dev-info-namespace');
39
+ $popup.innerHTML = template;
40
+ $popup.querySelector('.pp-dev-info__popup-title-close')?.addEventListener('click', () => {
41
+ $popup.remove();
42
+ });
43
+ document.body.appendChild($popup);
44
+ setTimeout(() => {
45
+ $popup.remove();
46
+ }, 10000);
47
+ }
22
48
  if (import.meta.hot) {
23
49
  const { hot } = import.meta;
24
50
  const CLOSED_CLASS = 'closed';
@@ -47,7 +73,20 @@ if (import.meta.hot) {
47
73
  if ($syncButton) {
48
74
  hot.on('template:sync:response', (payload) => {
49
75
  $syncButton.classList.remove('syncing');
50
- console.log(payload);
76
+ if ('error' in payload && typeof payload.error !== 'undefined') {
77
+ infoPopup({
78
+ title: 'Sync error',
79
+ content: payload.error,
80
+ className: 'pp-dev-info__popup--danger',
81
+ });
82
+ }
83
+ else if ('syncedAt' in payload && typeof payload.syncedAt !== 'undefined') {
84
+ infoPopup({
85
+ title: 'Sync success',
86
+ content: `Synced at ${new Date(payload.syncedAt).toLocaleString()}.<br />Backup filename: ${payload.backupFilename}`,
87
+ className: 'pp-dev-info__popup--success',
88
+ });
89
+ }
51
90
  });
52
91
  $syncButton.addEventListener('click', (ev) => {
53
92
  ev.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sources":["index.ts"],"sourcesContent":[null],"names":[],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"client.js","sources":["index.ts"],"sourcesContent":[null],"names":[],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,5 +1,5 @@
1
1
  {%# This is EJS template. Parameters: openDelimiter: "{", closeDelimiter="}" %}
2
- <div class="pp-dev-info">
2
+ <div class="pp-dev-info-namespace pp-dev-info">
3
3
  <div class="pp-dev-info__wrap-btn">
4
4
  <svg class="pp-dev-info__wrap-btn-arrow" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
5
5
  <path
@@ -33,7 +33,7 @@
33
33
  {% } %}
34
34
  </div>
35
35
  {% if (!templateLess && backendBaseURL && !Number.isNaN(+portalPageId)) { %}
36
- <button id="sync-template" class="sync-button" title="Sync template (Not implemented yet)">
36
+ <button id="sync-template" class="sync-button" title="Sync template">
37
37
  <svg
38
38
  fill="#007BFF"
39
39
  width="16px"
@@ -1,10 +1,16 @@
1
1
  import { ViteDevServer } from 'vite';
2
+ import { DistService } from './dist.service';
3
+ import { MiAPI } from './pp.middleware';
4
+ export interface ClientServiceOptions {
5
+ distService?: DistService;
6
+ miAPI?: MiAPI;
7
+ }
2
8
  export declare class ClientService {
3
9
  private readonly server;
4
- private opts;
10
+ private readonly opts;
5
11
  private readonly eventMap;
6
- constructor(server: ViteDevServer, opts?: any);
12
+ constructor(server: ViteDevServer, opts?: ClientServiceOptions);
7
13
  init(): void;
8
14
  onInfoDataRequest(): void;
9
- onTemplateSync(data: any): void;
15
+ onTemplateSync(): Promise<void>;
10
16
  }
@@ -4,7 +4,7 @@ export class ClientService {
4
4
  eventMap;
5
5
  constructor(server, opts) {
6
6
  this.server = server;
7
- this.opts = opts;
7
+ this.opts = opts || {};
8
8
  this.eventMap = new Map();
9
9
  this.eventMap.set('info-data:request', this.onInfoDataRequest.bind(this));
10
10
  this.eventMap.set('template:sync', this.onTemplateSync.bind(this));
@@ -23,11 +23,37 @@ export class ClientService {
23
23
  data: {},
24
24
  });
25
25
  }
26
- onTemplateSync(data) {
27
- console.log('onTemplateSync', data);
28
- setTimeout(() => {
29
- this.server.ws.send('template:sync:response', { syncedAt: new Date(), currentHash: 'sync-hash' });
30
- }, 500);
26
+ async onTemplateSync() {
27
+ if (this.opts.distService && this.opts.miAPI) {
28
+ const { distService, miAPI } = this.opts;
29
+ const currentAssets = await miAPI?.getAssets();
30
+ const newAssets = currentAssets
31
+ ? await distService?.saveBackupAndBuild(currentAssets)
32
+ : await distService?.buildNewAssets();
33
+ if (newAssets) {
34
+ const updateResult = await miAPI?.updateAssets(newAssets);
35
+ if (updateResult?.status === 'OK') {
36
+ const backupMeta = distService?.getBackupMeta();
37
+ const { lastBackupName: backupFilename, lastBackupHash: currentHash, lastBackupDate: backupDate, } = backupMeta || { lastBackupName: '', lastBackupHash: '', lastBackupDate: new Date().toISOString() };
38
+ this.server.ws.send('template:sync:response', {
39
+ syncedAt: new Date(backupDate),
40
+ currentHash,
41
+ backupFilename,
42
+ });
43
+ }
44
+ else {
45
+ this.server.ws.send('template:sync:response', { error: 'Failed to update assets' });
46
+ }
47
+ }
48
+ else {
49
+ this.server.ws.send('template:sync:response', { error: 'Failed to build new assets' });
50
+ return;
51
+ }
52
+ }
53
+ else {
54
+ this.server.ws.send('template:sync:response', { error: 'Dist service or MiAPI is not defined' });
55
+ return;
56
+ }
31
57
  }
32
58
  }
33
59
  //# sourceMappingURL=client.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.service.js","sourceRoot":"","sources":["../../src/lib/client.service.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACP,MAAM,CAAgB;IAC/B,IAAI,CAAM;IACD,QAAQ,CAA8D;IAEvF,YAAY,MAAqB,EAAE,IAAU;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAA0D,CAAC;QAElF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnE,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,IAAI;QACF,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC5C,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SACvB;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,IAAS;QACtB,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAEpC,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;QACpG,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;CACF"}
1
+ {"version":3,"file":"client.service.js","sourceRoot":"","sources":["../../src/lib/client.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /// <reference types="node" />
2
+ export declare const TEMPLATE_PART_PAGE_NAME = "pageName";
3
+ export declare const TEMPLATE_PART_DATE = "date";
4
+ export interface SyncOptions {
5
+ backupFolder?: string;
6
+ backupNameTemplate?: string;
7
+ dateFormat?: (date: Date) => string;
8
+ }
9
+ export interface SyncMeta {
10
+ lastBackupName: string;
11
+ lastBackupHash: string;
12
+ lastBackupDate: string;
13
+ }
14
+ export declare class DistService {
15
+ private readonly backupFolder;
16
+ private backupNameTemplate;
17
+ private readonly dateFormat;
18
+ private readonly pageName;
19
+ private currentMeta;
20
+ constructor(pageName: string, syncOptions?: SyncOptions);
21
+ checkMeta(): Promise<void>;
22
+ readMetaFile(): Promise<string>;
23
+ writeMetaFile(meta: SyncMeta): Promise<void>;
24
+ syncMeta(): Promise<void>;
25
+ getLatestSavedBackup(): Promise<string | null>;
26
+ backupName(pageName: string, date?: Date): string;
27
+ getBackupMeta(): SyncMeta | null;
28
+ saveBackup(backupFile: Buffer): Promise<void>;
29
+ buildNewAssets(): Promise<Buffer>;
30
+ saveBackupAndBuild(backupFile: Buffer): Promise<Buffer>;
31
+ }
@@ -0,0 +1,148 @@
1
+ import * as path from 'path';
2
+ import { promises as fs } from 'fs';
3
+ import { fileURLToPath } from 'url';
4
+ import * as crypto from 'crypto';
5
+ import * as process from 'process';
6
+ import * as child_process from 'child_process';
7
+ import * as console from 'console';
8
+ export const TEMPLATE_PART_PAGE_NAME = 'pageName';
9
+ export const TEMPLATE_PART_DATE = 'date';
10
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
11
+ const pluginPath = path.resolve(__dirname, '..', '..');
12
+ const node_modules_path = path.resolve(pluginPath, '..', '..');
13
+ const metaDirName = '.pp-dev-meta';
14
+ const metaDirPath = path.resolve(node_modules_path, metaDirName);
15
+ const metaFilePath = path.resolve(metaDirPath, 'sync-service.meta.json');
16
+ export class DistService {
17
+ backupFolder;
18
+ backupNameTemplate;
19
+ dateFormat;
20
+ pageName;
21
+ currentMeta = null;
22
+ constructor(pageName, syncOptions) {
23
+ const { backupFolder = path.resolve(process.cwd(), 'backups'), backupNameTemplate = `{${TEMPLATE_PART_PAGE_NAME}}-{${TEMPLATE_PART_DATE}}.zip`, dateFormat = (date) => date.toISOString().replace(/:/g, '-').replace(/\..*$/, ''), } = syncOptions || {};
24
+ this.backupFolder = backupFolder;
25
+ this.backupNameTemplate = backupNameTemplate;
26
+ this.dateFormat = dateFormat;
27
+ this.pageName = pageName;
28
+ this.syncMeta();
29
+ }
30
+ async checkMeta() {
31
+ try {
32
+ await fs.stat(metaDirPath);
33
+ }
34
+ catch {
35
+ await fs.mkdir(metaDirPath);
36
+ }
37
+ try {
38
+ await fs.stat(this.backupFolder);
39
+ }
40
+ catch {
41
+ await fs.mkdir(this.backupFolder);
42
+ }
43
+ }
44
+ async readMetaFile() {
45
+ await this.checkMeta();
46
+ return await fs
47
+ .readFile(metaFilePath, {
48
+ encoding: 'utf-8',
49
+ })
50
+ .catch(() => '{}');
51
+ }
52
+ async writeMetaFile(meta) {
53
+ await this.checkMeta();
54
+ return await fs.writeFile(metaFilePath, JSON.stringify(meta, null, 2), {
55
+ encoding: 'utf-8',
56
+ });
57
+ }
58
+ async syncMeta() {
59
+ if (!this.currentMeta) {
60
+ this.currentMeta = JSON.parse(await this.readMetaFile());
61
+ }
62
+ else {
63
+ await this.writeMetaFile(this.currentMeta);
64
+ }
65
+ }
66
+ async getLatestSavedBackup() {
67
+ const { lastBackupName } = this.currentMeta;
68
+ if (!lastBackupName) {
69
+ return null;
70
+ }
71
+ const backupPath = path.resolve(this.backupFolder, lastBackupName);
72
+ try {
73
+ await fs.stat(backupPath);
74
+ return backupPath;
75
+ }
76
+ catch {
77
+ return null;
78
+ }
79
+ }
80
+ backupName(pageName, date = new Date()) {
81
+ return this.backupNameTemplate
82
+ .replace(`{${TEMPLATE_PART_PAGE_NAME}}`, pageName)
83
+ .replace(`{${TEMPLATE_PART_DATE}}`, this.dateFormat(date));
84
+ }
85
+ getBackupMeta() {
86
+ return this.currentMeta;
87
+ }
88
+ async saveBackup(backupFile) {
89
+ const backupFileHash = crypto.createHash('md5').update(backupFile).digest('hex');
90
+ const lastSavedBackup = await this.getLatestSavedBackup();
91
+ if (lastSavedBackup) {
92
+ const { lastBackupHash } = this.currentMeta;
93
+ if (lastBackupHash === backupFileHash) {
94
+ return;
95
+ }
96
+ }
97
+ const backupDate = new Date();
98
+ const filename = this.backupName(this.pageName, backupDate);
99
+ this.currentMeta.lastBackupName = filename;
100
+ this.currentMeta.lastBackupHash = backupFileHash;
101
+ this.currentMeta.lastBackupDate = backupDate.toISOString();
102
+ await this.syncMeta();
103
+ return await fs.writeFile(path.resolve(this.backupFolder, filename), backupFile);
104
+ }
105
+ async buildNewAssets() {
106
+ const buildCommand = new Promise(function (resolve, reject) {
107
+ let data = '';
108
+ console.log('\x1b[36m%s\x1b[0m', '[DistService] Build started');
109
+ const proc = child_process.spawn('node', [path.resolve(pluginPath, './bin/pp-dev.js'), 'build'], {
110
+ cwd: process.cwd(),
111
+ env: process.env,
112
+ stdio: 'inherit',
113
+ });
114
+ proc.on('message', (msg) => {
115
+ data += msg;
116
+ });
117
+ proc.on('close', (code) => {
118
+ if (code !== 0) {
119
+ reject(new Error(`build command exited with code ${code}`));
120
+ return;
121
+ }
122
+ resolve(data);
123
+ });
124
+ proc.on('error', (err) => {
125
+ reject(err);
126
+ });
127
+ });
128
+ try {
129
+ await buildCommand.finally(() => {
130
+ console.log('\x1b[36m%s\x1b[0m', '[DistService] Build finished');
131
+ });
132
+ const assetFile = path.resolve(process.cwd(), `./dist-zip/${this.pageName}.zip`);
133
+ if (!(await fs.stat(assetFile))) {
134
+ throw new Error(`File ${assetFile} not found`);
135
+ }
136
+ return await fs.readFile(assetFile);
137
+ }
138
+ catch (e) {
139
+ console.log(e);
140
+ throw e;
141
+ }
142
+ }
143
+ async saveBackupAndBuild(backupFile) {
144
+ await this.saveBackup(backupFile);
145
+ return await this.buildNewAssets();
146
+ }
147
+ }
148
+ //# sourceMappingURL=dist.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dist.service.js","sourceRoot":"","sources":["../../src/lib/dist.service.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,27 @@
1
1
  /// <reference types="node" />
2
2
  export type Headers = Record<string, string | undefined>;
3
+ export interface MiAPIOptions {
4
+ portalPageId?: number;
5
+ headers?: Headers;
6
+ templateLess: boolean;
7
+ }
3
8
  export declare class MiAPI {
4
9
  #private;
5
- constructor(baseURL: string, opts?: {
6
- headers?: Headers;
7
- });
10
+ private portalPageId?;
11
+ private templateLess?;
12
+ private assetsApi;
13
+ private pageApi;
14
+ constructor(baseURL: string, opts?: MiAPIOptions);
8
15
  isTemplateLoaded(): Promise<boolean>;
16
+ updateHeaders(headers: Headers): void;
9
17
  getPageTemplate(headers: Headers): Promise<string>;
10
18
  getPageVariables(pageId: number, headers: Headers): Promise<{
11
19
  name: string;
12
20
  value: string;
13
21
  }[]>;
14
22
  buildPage(content: string | Buffer, miHudLess?: boolean): string;
23
+ getAssets(): Promise<Buffer | undefined>;
24
+ updateAssets(assets: Buffer): Promise<{
25
+ status?: "OK" | undefined;
26
+ } | undefined>;
15
27
  }
@@ -1,5 +1,6 @@
1
1
  import axios from 'axios';
2
2
  import { JSDOM } from 'jsdom';
3
+ import { AssetsAPI, PageAPI } from '../api/index.js';
3
4
  export class MiAPI {
4
5
  #headers;
5
6
  #axios;
@@ -8,8 +9,12 @@ export class MiAPI {
8
9
  #pageVars;
9
10
  #templateLoaded;
10
11
  #templateLoadedResolve;
12
+ portalPageId;
13
+ templateLess;
14
+ assetsApi;
15
+ pageApi;
11
16
  constructor(baseURL, opts) {
12
- const { headers = {} } = opts || {};
17
+ const { headers = {}, portalPageId, templateLess = true } = opts || {};
13
18
  this.#headers = headers;
14
19
  this.#pageVars = [];
15
20
  this.#pageTitle = '';
@@ -17,6 +22,10 @@ export class MiAPI {
17
22
  this.#templateLoadedResolve = resolve;
18
23
  });
19
24
  this.#axios = axios.create({ baseURL, headers });
25
+ this.portalPageId = portalPageId;
26
+ this.templateLess = templateLess;
27
+ this.assetsApi = new AssetsAPI(this.#axios);
28
+ this.pageApi = new PageAPI(this.#axios);
20
29
  }
21
30
  async isTemplateLoaded() {
22
31
  return this.#templateLoaded;
@@ -24,49 +33,34 @@ export class MiAPI {
24
33
  #clearHeaders(headers) {
25
34
  const obj = Object.assign({}, headers, { host: undefined });
26
35
  Object.keys(obj).forEach((key) => obj[key] === undefined && delete obj[key]);
36
+ this.#headers = obj;
27
37
  return obj;
28
38
  }
39
+ updateHeaders(headers) {
40
+ this.#clearHeaders(headers);
41
+ }
29
42
  async getPageTemplate(headers) {
30
43
  if (this.#pageTemplate) {
31
44
  return Promise.resolve(this.#pageTemplate);
32
45
  }
33
- const pageList = await this.#axios
34
- .get('/api/page', {
35
- withCredentials: true,
36
- headers: Object.assign(this.#clearHeaders(headers), {
37
- accept: 'application/json',
38
- 'content-type': 'application/json',
39
- }),
40
- })
41
- .then((response) => response.data);
42
- let page = pageList.pages.find((p) => p.name === '[DEV PAGE. DO NOT DELETE]');
46
+ if (typeof this.templateLess === 'undefined') {
47
+ this.templateLess = false;
48
+ }
49
+ const pageList = await this.pageApi.getAll(this.#clearHeaders(headers));
50
+ let page = pageList.find((p) => p.name === '[DEV PAGE. DO NOT DELETE]');
43
51
  if (!page) {
44
- page = await this.#axios
45
- .post('/api/page/', {
52
+ page = await this.pageApi.create({
46
53
  enabled: 'Y',
47
54
  name: '[DEV PAGE. DO NOT DELETE]',
48
55
  internal_name: 'dev-page-template',
49
56
  visible_in_homepage: 'Y',
50
- }, {
51
- withCredentials: true,
52
- headers: Object.assign(this.#clearHeaders(headers), {
53
- accept: 'application/json',
54
- 'content-type': 'application/json',
55
- }),
56
- })
57
- .then((response) => response.data.page);
57
+ }, this.#clearHeaders(headers));
58
58
  }
59
- return await this.#axios
60
- .get(`/p/${page.internal_name}`, {
61
- withCredentials: true,
62
- headers: Object.assign(this.#clearHeaders(headers), {
63
- accept: 'text/html',
64
- 'content-type': 'application/json',
65
- }),
66
- })
59
+ return await this.pageApi
60
+ .getPageContent(page.internal_name, this.#clearHeaders(headers))
67
61
  .then((response) => {
68
- this.#pageTemplate = response.data;
69
- return response.data;
62
+ this.#pageTemplate = response;
63
+ return response;
70
64
  })
71
65
  .finally(() => {
72
66
  this.#templateLoadedResolve(true);
@@ -74,19 +68,14 @@ export class MiAPI {
74
68
  }
75
69
  async getPageVariables(pageId, headers) {
76
70
  this.#pageTemplate = await this.getPageTemplate(headers);
77
- return await this.#axios
78
- .get(`/api/page/id/${pageId}`, {
79
- withCredentials: true,
80
- headers: Object.assign(this.#clearHeaders(headers), {
81
- accept: 'application/json',
82
- 'content-type': 'application/json',
83
- 'cache-control': 'no-cache',
84
- pragma: 'no-cache',
85
- expires: '0',
86
- }),
87
- })
71
+ if (!this.portalPageId) {
72
+ this.portalPageId = pageId;
73
+ this.templateLess = false;
74
+ }
75
+ return await this.pageApi
76
+ .get(pageId, this.#clearHeaders(headers))
88
77
  .then((response) => {
89
- const { page: { tags = '[]', name, template }, } = response.data;
78
+ const { tags = '[]', name, template } = response;
90
79
  if (template && tags) {
91
80
  const parsed = JSON.parse(tags);
92
81
  this.#pageVars = parsed;
@@ -136,5 +125,31 @@ export class MiAPI {
136
125
  const serializedDom = dom.serialize();
137
126
  return serializedDom.replace(new RegExp(`<div>\\s*${placeholderText}\\s*<\\/div>`, 'i'), result);
138
127
  }
128
+ async getAssets() {
129
+ if (this.portalPageId) {
130
+ if (this.templateLess) {
131
+ return await this.assetsApi.downloadPageAssets(this.portalPageId, this.#headers);
132
+ }
133
+ else {
134
+ const pageInfo = await this.pageApi.get(this.portalPageId, this.#headers);
135
+ if (pageInfo.template) {
136
+ return await this.assetsApi.downloadTemplateAssets(pageInfo.template, this.#headers);
137
+ }
138
+ }
139
+ }
140
+ }
141
+ async updateAssets(assets) {
142
+ if (this.portalPageId) {
143
+ if (this.templateLess) {
144
+ return await this.assetsApi.uploadPageAssets(this.portalPageId, assets, this.#headers);
145
+ }
146
+ else {
147
+ const pageInfo = await this.pageApi.get(this.portalPageId, this.#headers);
148
+ if (pageInfo.template) {
149
+ return await this.assetsApi.uploadTemplateAssets(pageInfo.template, assets, this.#headers);
150
+ }
151
+ }
152
+ }
153
+ }
139
154
  }
140
155
  //# sourceMappingURL=pp.middleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pp.middleware.js","sourceRoot":"","sources":["../../src/lib/pp.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pp.middleware.js","sourceRoot":"","sources":["../../src/lib/pp.middleware.ts"],"names":[],"mappings":"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"}
package/dist/plugin.js CHANGED
@@ -3,11 +3,16 @@ import { MiAPI } from './lib/pp.middleware.js';
3
3
  import { urlReplacer } from './lib/helpers/url.helper.js';
4
4
  import { ClientService } from './lib/client.service.js';
5
5
  import { initProxyCache } from './lib/proxy-cache.middleware.js';
6
+ import { DistService } from './lib/dist.service.js';
6
7
  const redirect = (res, url, statusCode) => {
7
8
  res.setHeader('location', url);
8
9
  res.statusCode = statusCode || 302;
9
10
  res.end();
10
11
  };
12
+ function cutUrlParams(url) {
13
+ const urlParts = url.split('?');
14
+ return urlParts[0];
15
+ }
11
16
  function vitePPDev(options) {
12
17
  const { templateName, templateLess = false, miHudLess = false, backendBaseURL, portalPageId } = options || {};
13
18
  let isFirstRequest = true;
@@ -40,12 +45,21 @@ function vitePPDev(options) {
40
45
  if (req.url === '/' || req.url === `/pt/${templateName}` || req.url === baseWithoutTrailingSlash) {
41
46
  return redirect(res, base, 302);
42
47
  }
48
+ else if (req.url?.includes('?') && req.url.split('?')[0] === baseWithoutTrailingSlash) {
49
+ return redirect(res, `${base}?${req.url.split('?')[1]}`, 302);
50
+ }
43
51
  next();
44
52
  });
45
53
  if (backendBaseURL) {
46
54
  const baseUrlHost = new URL(backendBaseURL).host;
47
55
  const mi = new MiAPI(backendBaseURL, {
48
- headers: { host: baseUrlHost, referer: backendBaseURL },
56
+ headers: {
57
+ host: baseUrlHost,
58
+ referer: backendBaseURL,
59
+ origin: backendBaseURL.replace(/^(https?:\/\/)([^/]+)(\/.*)?$/i, '$1$2'),
60
+ },
61
+ portalPageId,
62
+ templateLess,
49
63
  });
50
64
  server.middlewares.use(initProxyCache({ viteDevServer: server, ttl: 10 * 60 * 1000 }));
51
65
  server.middlewares.use(proxyPassMiddleware({
@@ -56,7 +70,7 @@ function vitePPDev(options) {
56
70
  const isIndexRegExp = new RegExp(`^((${base})|/)$`);
57
71
  server.middlewares.use(function (req, res, next) {
58
72
  const isNeedTemplateLoad = !(templateLess && miHudLess);
59
- const isIndexRequest = isIndexRegExp.test(req.url ?? '');
73
+ const isIndexRequest = isIndexRegExp.test(cutUrlParams(req.url ?? ''));
60
74
  if (isNeedTemplateLoad && isIndexRequest) {
61
75
  const headers = (req.headers ?? {});
62
76
  const loadPageData = !templateLess && typeof portalPageId !== 'undefined'
@@ -78,7 +92,7 @@ function vitePPDev(options) {
78
92
  }
79
93
  });
80
94
  server.middlewares.use(function (req, res, next) {
81
- if (isIndexRegExp.test(req.url ?? '')) {
95
+ if (isIndexRegExp.test(cutUrlParams(req.url ?? ''))) {
82
96
  const end = res.end;
83
97
  const buffers = [];
84
98
  res.write = function (body) {
@@ -94,8 +108,8 @@ function vitePPDev(options) {
94
108
  }
95
109
  next();
96
110
  });
97
- const eventHandler = new ClientService(server);
98
- eventHandler.init();
111
+ const distService = new DistService(templateName);
112
+ const eventHandler = new ClientService(server, { distService, miAPI: mi });
99
113
  }
100
114
  },
101
115
  };
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@metricinsights/pp-dev",
3
3
  "type": "module",
4
- "version": "0.1.0",
4
+ "version": "0.2.0",
5
5
  "description": "Portal Page dev build tool",
6
6
  "bin": {
7
7
  "pp-dev": "bin/pp-dev.js"
@@ -37,6 +37,7 @@
37
37
  "esbuild": "^0.17.18",
38
38
  "express": "^4.18.2",
39
39
  "file-type": "^18.3.0",
40
+ "formdata-node": "^5.0.1",
40
41
  "http-proxy-middleware": "^2.0.6",
41
42
  "jsdom": "^22.0.0",
42
43
  "memory-cache": "^0.2.0",