@metricinsights/pp-dev 0.1.1 → 0.3.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.
Files changed (62) hide show
  1. package/README.md +49 -15
  2. package/dist/api/assets.d.ts +15 -0
  3. package/dist/api/assets.js +58 -0
  4. package/dist/api/assets.js.map +1 -0
  5. package/dist/api/base.d.ts +5 -0
  6. package/dist/api/base.js +7 -0
  7. package/dist/api/base.js.map +1 -0
  8. package/dist/api/constants.d.ts +1 -0
  9. package/dist/api/constants.js +2 -0
  10. package/dist/api/constants.js.map +1 -0
  11. package/dist/api/index.d.ts +2 -0
  12. package/dist/api/index.js +3 -0
  13. package/dist/api/index.js.map +1 -0
  14. package/dist/api/page.d.ts +16 -0
  15. package/dist/api/page.js +43 -0
  16. package/dist/api/page.js.map +1 -0
  17. package/dist/cli.js +103 -0
  18. package/dist/cli.js.map +1 -1
  19. package/dist/client/client.css +131 -28
  20. package/dist/client/client.js +40 -1
  21. package/dist/client/client.js.map +1 -1
  22. package/dist/client/index.html +2 -2
  23. package/dist/index.d.ts +4 -0
  24. package/dist/index.js +40 -8
  25. package/dist/index.js.map +1 -1
  26. package/dist/lib/client.service.d.ts +9 -3
  27. package/dist/lib/client.service.js +32 -6
  28. package/dist/lib/client.service.js.map +1 -1
  29. package/dist/lib/dist.service.d.ts +31 -0
  30. package/dist/lib/dist.service.js +148 -0
  31. package/dist/lib/dist.service.js.map +1 -0
  32. package/dist/lib/helpers/content-encoding.helper.d.ts +3 -0
  33. package/dist/lib/helpers/content-encoding.helper.js +26 -0
  34. package/dist/lib/helpers/content-encoding.helper.js.map +1 -0
  35. package/dist/lib/helpers/server.d.ts +14 -0
  36. package/dist/lib/helpers/server.js +40 -0
  37. package/dist/lib/helpers/server.js.map +1 -0
  38. package/dist/lib/helpers/url.helper.d.ts +4 -0
  39. package/dist/lib/helpers/url.helper.js +13 -0
  40. package/dist/lib/helpers/url.helper.js.map +1 -1
  41. package/dist/lib/load-pp-data.middleware.d.ts +5 -0
  42. package/dist/lib/load-pp-data.middleware.js +28 -0
  43. package/dist/lib/load-pp-data.middleware.js.map +1 -0
  44. package/dist/lib/pp-redirect.middleware.d.ts +3 -0
  45. package/dist/lib/pp-redirect.middleware.js +21 -0
  46. package/dist/lib/pp-redirect.middleware.js.map +1 -0
  47. package/dist/lib/pp.middleware.d.ts +15 -3
  48. package/dist/lib/pp.middleware.js +58 -43
  49. package/dist/lib/pp.middleware.js.map +1 -1
  50. package/dist/lib/proxy-cache.middleware.d.ts +5 -4
  51. package/dist/lib/proxy-cache.middleware.js +5 -5
  52. package/dist/lib/proxy-cache.middleware.js.map +1 -1
  53. package/dist/lib/proxy-pass.middleware.d.ts +2 -1
  54. package/dist/lib/proxy-pass.middleware.js +2 -2
  55. package/dist/lib/proxy-pass.middleware.js.map +1 -1
  56. package/dist/lib/rewrite-response.middleware.d.ts +6 -0
  57. package/dist/lib/rewrite-response.middleware.js +23 -0
  58. package/dist/lib/rewrite-response.middleware.js.map +1 -0
  59. package/dist/plugin.d.ts +2 -0
  60. package/dist/plugin.js +30 -62
  61. package/dist/plugin.js.map +1 -1
  62. package/package.json +8 -3
@@ -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"
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { InlineConfig } from 'vite';
2
2
  import { VitePPDevOptions } from './plugin.js';
3
+ import type { NextConfig } from 'next';
3
4
  export type PPDevConfig = Omit<VitePPDevOptions, 'templateName'>;
4
5
  export type PPWatchConfig = {
5
6
  baseURL: string;
@@ -7,3 +8,6 @@ export type PPWatchConfig = {
7
8
  };
8
9
  export declare function getConfig(): Promise<PPDevConfig>;
9
10
  export declare function getViteConfig(): Promise<InlineConfig>;
11
+ export declare function withPPDev(nextjsConfig: NextConfig, ppDevConfig?: PPDevConfig): (phase: string, nextConfig?: {
12
+ defaultConfig?: any;
13
+ }) => Promise<NextConfig>;
package/dist/index.js CHANGED
@@ -7,6 +7,7 @@ import { pathToFileURL } from 'url';
7
7
  import { PP_WATCH_CONFIG_NAMES, PP_DEV_CONFIG_NAMES } from './constants.js';
8
8
  import { clientInjectionPlugin } from './plugins/client-injection-plugin.js';
9
9
  import header from './banner/header.js';
10
+ import { PHASE_DEVELOPMENT_SERVER } from 'next/constants.js';
10
11
  async function loadTsConfig(filePath) {
11
12
  const cwd = process.cwd();
12
13
  let isESM = false;
@@ -79,6 +80,18 @@ async function loadConfig(dirFiles, configNames) {
79
80
  }
80
81
  return null;
81
82
  }
83
+ function getPkg() {
84
+ const cwd = process.cwd();
85
+ try {
86
+ return JSON.parse(readFileSync(path.resolve(cwd, 'package.json'), {
87
+ encoding: 'utf-8',
88
+ flag: 'r',
89
+ }));
90
+ }
91
+ catch {
92
+ return {};
93
+ }
94
+ }
82
95
  export async function getConfig() {
83
96
  const endsWithRegExp = /\.config\.((ts)|(js(on)?))$/;
84
97
  const cwd = process.cwd();
@@ -104,20 +117,14 @@ export async function getConfig() {
104
117
  }
105
118
  }
106
119
  }
107
- const pkg = JSON.parse(readFileSync(path.resolve(cwd, 'package.json'), {
108
- encoding: 'utf-8',
109
- flag: 'r',
110
- }));
120
+ const pkg = getPkg();
111
121
  if (!configFound && typeof pkg['pp-dev'] === 'object') {
112
122
  config = pkg['pp-dev'];
113
123
  }
114
124
  return config;
115
125
  }
116
126
  export async function getViteConfig() {
117
- const pkg = JSON.parse(readFileSync(path.resolve(process.cwd(), 'package.json'), {
118
- encoding: 'utf-8',
119
- flag: 'r',
120
- }));
127
+ const pkg = getPkg();
121
128
  const templateName = pkg.name;
122
129
  return {
123
130
  base: `/pt/${templateName}`,
@@ -147,4 +154,29 @@ export async function getViteConfig() {
147
154
  ],
148
155
  };
149
156
  }
157
+ export function withPPDev(nextjsConfig, ppDevConfig) {
158
+ return async (phase, nextConfig = {}) => {
159
+ const config = await getConfig();
160
+ const pkg = getPkg();
161
+ const templateName = pkg.name;
162
+ if (phase === PHASE_DEVELOPMENT_SERVER) {
163
+ const devConfig = Object.assign(config, ppDevConfig);
164
+ return Object.assign({ basePath: `/pt/${templateName}`, trailingSlash: true }, nextjsConfig, {
165
+ serverRuntimeConfig: {
166
+ templateName,
167
+ ppDevConfig: devConfig,
168
+ },
169
+ publicRuntimeConfig: {
170
+ templateName,
171
+ ppDevConfig: {
172
+ backendBaseURL: devConfig.backendBaseURL,
173
+ portalPageId: devConfig.portalPageId,
174
+ templateLess: devConfig.templateLess,
175
+ },
176
+ },
177
+ });
178
+ }
179
+ return Object.assign({ basePath: `/pt/${templateName}` }, nextjsConfig);
180
+ };
181
+ }
150
182
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -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
+ }