@jumoo/usync-expansions 18.3.0 → 18.4.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 (43) hide show
  1. package/dist/api/client.gen.js +1 -1
  2. package/dist/api/index.d.ts +1 -1
  3. package/dist/api/sdk.gen.d.ts +17 -15
  4. package/dist/api/sdk.gen.js +14 -0
  5. package/dist/api/types.gen.d.ts +72 -0
  6. package/dist/background/background-pipeline.repository.d.ts +3 -8
  7. package/dist/background/components/pending-list.element.js +10 -10
  8. package/dist/background/components/pipelines-table.element.js +16 -16
  9. package/dist/background/components/process-list.element.js +6 -6
  10. package/dist/background/components/queue-table.element.js +11 -11
  11. package/dist/background/workspace/background-workspace-element.js +19 -19
  12. package/dist/components/report-summary-view.js +90 -90
  13. package/dist/components/usync-property-layout.js +93 -93
  14. package/dist/items/sync-item.context.d.ts +1 -1
  15. package/dist/items/sync-item.repository.d.ts +3 -8
  16. package/dist/lang/en.d.ts +1 -0
  17. package/dist/lang/en.js +1 -0
  18. package/dist/licence/components/licence-notice.js +7 -7
  19. package/dist/licence/components/licence-status.view.js +13 -13
  20. package/dist/licence/components/styles.js +39 -39
  21. package/dist/licence/lang/en.d.ts +15 -0
  22. package/dist/licence/lang/en.js +16 -1
  23. package/dist/licence/licence.context.d.ts +6 -1
  24. package/dist/licence/licence.context.js +11 -0
  25. package/dist/licence/licence.element.d.ts +8 -1
  26. package/dist/licence/licence.element.js +269 -126
  27. package/dist/licence/licence.repository.d.ts +1 -0
  28. package/dist/licence/licence.repository.js +3 -0
  29. package/dist/licence/source/licence.source.d.ts +2 -1
  30. package/dist/licence/source/licence.source.js +3 -0
  31. package/dist/restore/components/restore-point-table.element.js +21 -21
  32. package/dist/restore/lang/en.js +11 -11
  33. package/dist/restore/restore.context.d.ts +1 -1
  34. package/dist/restore/restore.repository.d.ts +9 -4
  35. package/dist/restore/restore.repository.js +7 -0
  36. package/dist/restore/steps/restore-create-complete.js +9 -9
  37. package/dist/restore/steps/restore-create-element.js +31 -31
  38. package/dist/restore/steps/restore-report-config-element.js +44 -44
  39. package/dist/restore/steps/restore-report-element.d.ts +1 -0
  40. package/dist/restore/steps/restore-report-element.js +29 -1
  41. package/dist/restore/workspace/restore.workspace-view.element.js +42 -42
  42. package/dist/restore/workspace/restore.workspace.element.js +25 -25
  43. package/package.json +53 -52
@@ -29,37 +29,37 @@ let uSyncRestoreCreateElement = class uSyncRestoreCreateElement extends ProcessS
29
29
  });
30
30
  }
31
31
  render() {
32
- return html `
33
- <umb-localize key="uSyncRestore_createIntro"></umb-localize>
34
-
35
- ${this.renderName()}
32
+ return html `
33
+ <umb-localize key="uSyncRestore_createIntro"></umb-localize>
34
+
35
+ ${this.renderName()}
36
36
  `;
37
37
  }
38
38
  renderName() {
39
39
  const options = this.options;
40
- return html `<umb-property-layout
41
- label="Name"
42
- description="Give your restore point a name"
43
- orientation="vertical">
44
- <div slot="editor">
45
- <uui-input
46
- type="text"
47
- label="Name"
48
- .value=${options.title ?? ''}
49
- @change=${__classPrivateFieldGet(this, _uSyncRestoreCreateElement_instances, "m", _uSyncRestoreCreateElement_onNameChange)}></uui-input>
50
- </div>
51
- </umb-property-layout>
52
-
53
- <usync-property-layout
54
- label="Include Media"
55
- description="Include media files in the restore point">
56
- <div slot="editor">
57
- <uui-checkbox
58
- label="Include Media"
59
- .checked=${options.includeMedia}
60
- @change=${__classPrivateFieldGet(this, _uSyncRestoreCreateElement_instances, "m", _uSyncRestoreCreateElement_onIncludeMedia)}>
61
- </uui-checkbox>
62
- </div>
40
+ return html `<umb-property-layout
41
+ label="Name"
42
+ description="Give your restore point a name"
43
+ orientation="vertical">
44
+ <div slot="editor">
45
+ <uui-input
46
+ type="text"
47
+ label="Name"
48
+ .value=${options.title ?? ''}
49
+ @change=${__classPrivateFieldGet(this, _uSyncRestoreCreateElement_instances, "m", _uSyncRestoreCreateElement_onNameChange)}></uui-input>
50
+ </div>
51
+ </umb-property-layout>
52
+
53
+ <usync-property-layout
54
+ label="Include Media"
55
+ description="Include media files in the restore point">
56
+ <div slot="editor">
57
+ <uui-checkbox
58
+ label="Include Media"
59
+ .checked=${options.includeMedia}
60
+ @change=${__classPrivateFieldGet(this, _uSyncRestoreCreateElement_instances, "m", _uSyncRestoreCreateElement_onIncludeMedia)}>
61
+ </uui-checkbox>
62
+ </div>
63
63
  </usync-property-layout>`;
64
64
  }
65
65
  };
@@ -85,10 +85,10 @@ _uSyncRestoreCreateElement_onIncludeMedia = function _uSyncRestoreCreateElement_
85
85
  includeMedia: element.checked,
86
86
  });
87
87
  };
88
- uSyncRestoreCreateElement.styles = css `
89
- uui-input {
90
- width: 100%;
91
- }
88
+ uSyncRestoreCreateElement.styles = css `
89
+ uui-input {
90
+ width: 100%;
91
+ }
92
92
  `;
93
93
  uSyncRestoreCreateElement = __decorate([
94
94
  customElement(uSyncRestore.steps.restoreCreateStep)
@@ -40,57 +40,57 @@ let uSyncRestoreReportConfigElement = class uSyncRestoreReportConfigElement exte
40
40
  renderRestorePointInfo() {
41
41
  if (!this.restorePoint)
42
42
  return nothing;
43
- return html `
44
- <uui-box .headline=${this.localize.term('uSyncRestore_restoreInfo')}>
45
- <table>
46
- <tr>
47
- <th>Name :</th>
48
- <td>${this.restorePoint.name}</td>
49
- </tr>
50
- <tr>
51
- <th>Created :</th>
52
- <td>${this.localize.date(this.restorePoint.created, TimeOptions)}</td>
53
- </tr>
54
- <tr>
55
- <th>Source Site :</th>
56
- <td>${this.restorePoint.machineName}</td>
57
- </tr>
58
- <tr>
59
- <th>Source :</th>
60
- <td>${this.restorePoint.action}</td>
61
- </tr>
62
- <tr>
63
- <th>User:</th>
64
- <td>${this.restorePoint.user}</td>
65
- </tr>
66
- </table>
67
- </uui-box>
43
+ return html `
44
+ <uui-box .headline=${this.localize.term('uSyncRestore_restoreInfo')}>
45
+ <table>
46
+ <tr>
47
+ <th>Name :</th>
48
+ <td>${this.restorePoint.name}</td>
49
+ </tr>
50
+ <tr>
51
+ <th>Created :</th>
52
+ <td>${this.localize.date(this.restorePoint.created, TimeOptions)}</td>
53
+ </tr>
54
+ <tr>
55
+ <th>Source Site :</th>
56
+ <td>${this.restorePoint.machineName}</td>
57
+ </tr>
58
+ <tr>
59
+ <th>Source :</th>
60
+ <td>${this.restorePoint.action}</td>
61
+ </tr>
62
+ <tr>
63
+ <th>User:</th>
64
+ <td>${this.restorePoint.user}</td>
65
+ </tr>
66
+ </table>
67
+ </uui-box>
68
68
  `;
69
69
  }
70
70
  render() {
71
- return html `<div class="wrapper">
72
- <uui-box>
73
- <umb-localize key="uSyncRestore_restoreIntro"></umb-localize>
74
- </uui-box>
75
- ${this.renderRestorePointInfo()}
71
+ return html `<div class="wrapper">
72
+ <uui-box>
73
+ <umb-localize key="uSyncRestore_restoreIntro"></umb-localize>
74
+ </uui-box>
75
+ ${this.renderRestorePointInfo()}
76
76
  </div>`;
77
77
  }
78
78
  };
79
79
  _uSyncRestoreReportConfigElement_context = new WeakMap();
80
- uSyncRestoreReportConfigElement.styles = css `
81
- .wrapper {
82
- display: flex;
83
- flex-direction: column;
84
- gap: var(--uui-size-space-4);
85
- }
86
-
87
- .red {
88
- color: red;
89
- }
90
-
91
- table th {
92
- text-align: right;
93
- }
80
+ uSyncRestoreReportConfigElement.styles = css `
81
+ .wrapper {
82
+ display: flex;
83
+ flex-direction: column;
84
+ gap: var(--uui-size-space-4);
85
+ }
86
+
87
+ .red {
88
+ color: red;
89
+ }
90
+
91
+ table th {
92
+ text-align: right;
93
+ }
94
94
  `;
95
95
  __decorate([
96
96
  state()
@@ -1,5 +1,6 @@
1
1
  import { ProcessStepElement, ProcessStepElementBase } from '@jumoo/processing';
2
2
  export declare class uSyncRestoreReportElement extends ProcessStepElementBase implements ProcessStepElement {
3
+ #private;
3
4
  connectedCallback(): void;
4
5
  render(): import("lit-html").TemplateResult<1>;
5
6
  }
@@ -4,10 +4,31 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _uSyncRestoreReportElement_repository, _uSyncRestoreReportElement_previewSource;
7
13
  import { ProcessStepElementBase } from '@jumoo/processing';
8
14
  import { customElement, html } from '@umbraco-cms/backoffice/external/lit';
9
15
  import { uSyncRestore } from '../constants';
16
+ import { SyncRestoreRepository } from '../restore.repository';
10
17
  let uSyncRestoreReportElement = class uSyncRestoreReportElement extends ProcessStepElementBase {
18
+ constructor() {
19
+ super(...arguments);
20
+ _uSyncRestoreReportElement_repository.set(this, new SyncRestoreRepository(this));
21
+ /**
22
+ * previews come from the restore point being reported on, not this site's uSync folders.
23
+ */
24
+ _uSyncRestoreReportElement_previewSource.set(this, async (item) => {
25
+ if (!this.pipelineId)
26
+ return undefined;
27
+ const data = await __classPrivateFieldGet(this, _uSyncRestoreReportElement_repository, "f").getPreview(this.pipelineId, item.handler, item.key);
28
+ // the same response as uSync's own preview endpoint, generated in our api.
29
+ return data;
30
+ });
31
+ }
11
32
  connectedCallback() {
12
33
  super.connectedCallback();
13
34
  const changes = this.results?.results['changes'] ?? 0;
@@ -29,9 +50,16 @@ let uSyncRestoreReportElement = class uSyncRestoreReportElement extends ProcessS
29
50
  }
30
51
  render() {
31
52
  const actions = this.results?.results['actions'];
32
- return html `<usync-results .results=${actions}></usync-results>`;
53
+ return html `<usync-results
54
+ .results=${actions}
55
+ .previewSource=${__classPrivateFieldGet(this, _uSyncRestoreReportElement_previewSource, "f")}
56
+ .previewLabels=${{
57
+ incoming: this.localize.termOrDefault('uSyncReport_previewIncoming', 'Incoming (restore point)'),
58
+ }}></usync-results>`;
33
59
  }
34
60
  };
61
+ _uSyncRestoreReportElement_repository = new WeakMap();
62
+ _uSyncRestoreReportElement_previewSource = new WeakMap();
35
63
  uSyncRestoreReportElement = __decorate([
36
64
  customElement(uSyncRestore.steps.restoreReportStep)
37
65
  ], uSyncRestoreReportElement);
@@ -47,23 +47,23 @@ let uSyncRestoreWorkspaceViewElement = class uSyncRestoreWorkspaceViewElement ex
47
47
  });
48
48
  }
49
49
  render() {
50
- return html `
51
- <umb-body-layout>
52
- <usync-licence-notice></usync-licence-notice>
53
- <div class="content">
54
- <div>
55
- <uui-button
56
- color="positive"
57
- look="outline"
58
- label="Create"
59
- @click=${__classPrivateFieldGet(this, _uSyncRestoreWorkspaceViewElement_instances, "m", _uSyncRestoreWorkspaceViewElement_onCreateRestorePoint)}
60
- >${this.localize.term('uSyncRestore_create')}</uui-button
61
- >
62
- </div>
63
-
64
- ${this.renderTable()}
65
- </div>
66
- </umb-body-layout>
50
+ return html `
51
+ <umb-body-layout>
52
+ <usync-licence-notice></usync-licence-notice>
53
+ <div class="content">
54
+ <div>
55
+ <uui-button
56
+ color="positive"
57
+ look="outline"
58
+ label="Create"
59
+ @click=${__classPrivateFieldGet(this, _uSyncRestoreWorkspaceViewElement_instances, "m", _uSyncRestoreWorkspaceViewElement_onCreateRestorePoint)}
60
+ >${this.localize.term('uSyncRestore_create')}</uui-button
61
+ >
62
+ </div>
63
+
64
+ ${this.renderTable()}
65
+ </div>
66
+ </umb-body-layout>
67
67
  `;
68
68
  }
69
69
  renderTable() {
@@ -71,25 +71,25 @@ let uSyncRestoreWorkspaceViewElement = class uSyncRestoreWorkspaceViewElement ex
71
71
  return nothing;
72
72
  if (this.restorePoints?.length === 0)
73
73
  return nothing;
74
- return html `
75
- <uui-box
76
- .headline=${this.localize.term('uSyncRestore_restorePoints')}
77
- style="--uui-box-default-padding: 0;">
78
- <div slot="header-actions">
79
- <uui-button
80
- color="default"
81
- look="secondary"
82
- size="small"
83
- label="scan"
84
- @click=${__classPrivateFieldGet(this, _uSyncRestoreWorkspaceViewElement_instances, "m", _uSyncRestoreWorkspaceViewElement_onRestoreLatest)}
85
- ><uui-icon name="icon-paper-plane"></uui-icon> ${this.localize.term('uSyncRestore_restoreLatest')}</uui-button
86
- >
87
- </div>
88
- <usync-restore-point-table
89
- .restorePoints=${this.restorePoints}
90
- @delete-restore-point=${__classPrivateFieldGet(this, _uSyncRestoreWorkspaceViewElement_instances, "m", _uSyncRestoreWorkspaceViewElement_onDelete)}
91
- @restore-restore-point=${__classPrivateFieldGet(this, _uSyncRestoreWorkspaceViewElement_instances, "m", _uSyncRestoreWorkspaceViewElement_onRestore)}></usync-restore-point-table>
92
- </uui-box>
74
+ return html `
75
+ <uui-box
76
+ .headline=${this.localize.term('uSyncRestore_restorePoints')}
77
+ style="--uui-box-default-padding: 0;">
78
+ <div slot="header-actions">
79
+ <uui-button
80
+ color="default"
81
+ look="secondary"
82
+ size="small"
83
+ label="scan"
84
+ @click=${__classPrivateFieldGet(this, _uSyncRestoreWorkspaceViewElement_instances, "m", _uSyncRestoreWorkspaceViewElement_onRestoreLatest)}
85
+ ><uui-icon name="icon-paper-plane"></uui-icon> ${this.localize.term('uSyncRestore_restoreLatest')}</uui-button
86
+ >
87
+ </div>
88
+ <usync-restore-point-table
89
+ .restorePoints=${this.restorePoints}
90
+ @delete-restore-point=${__classPrivateFieldGet(this, _uSyncRestoreWorkspaceViewElement_instances, "m", _uSyncRestoreWorkspaceViewElement_onDelete)}
91
+ @restore-restore-point=${__classPrivateFieldGet(this, _uSyncRestoreWorkspaceViewElement_instances, "m", _uSyncRestoreWorkspaceViewElement_onRestore)}></usync-restore-point-table>
92
+ </uui-box>
93
93
  `;
94
94
  }
95
95
  };
@@ -181,12 +181,12 @@ _uSyncRestoreWorkspaceViewElement_onDelete = async function _uSyncRestoreWorkspa
181
181
  // cancelled
182
182
  });
183
183
  };
184
- uSyncRestoreWorkspaceViewElement.styles = css `
185
- .content {
186
- display: flex;
187
- flex-direction: column;
188
- gap: var(--uui-size-space-4);
189
- }
184
+ uSyncRestoreWorkspaceViewElement.styles = css `
185
+ .content {
186
+ display: flex;
187
+ flex-direction: column;
188
+ gap: var(--uui-size-space-4);
189
+ }
190
190
  `;
191
191
  __decorate([
192
192
  state()
@@ -32,23 +32,23 @@ let uSyncReatoreWorkspaceElement = class uSyncReatoreWorkspaceElement extends Um
32
32
  __classPrivateFieldSet(this, _uSyncReatoreWorkspaceElement_context, new SyncRestoreWorkspaceContext(this), "f");
33
33
  }
34
34
  render() {
35
- return html `
36
- <umb-workspace-editor>
37
- <div slot="header" class="header">
38
- <h3>Restore points</h3>
39
- <small>A place you can come back to.</small>
40
- </div>
41
- <div slot="action-menu" class="action-menu">
42
- <uui-button
43
- color="default"
44
- look="outline"
45
- size="small"
46
- label="scan"
47
- @click=${__classPrivateFieldGet(this, _uSyncReatoreWorkspaceElement_instances, "m", _uSyncReatoreWorkspaceElement_onScanRestorePoints)}
48
- ><uui-icon name="icon-axis-rotation"></uui-icon> ${this.localize.term('uSyncRestore_scan')}</uui-button
49
- >
50
- </div>
51
- </umb-workspace-editor>
35
+ return html `
36
+ <umb-workspace-editor>
37
+ <div slot="header" class="header">
38
+ <h3>Restore points</h3>
39
+ <small>A place you can come back to.</small>
40
+ </div>
41
+ <div slot="action-menu" class="action-menu">
42
+ <uui-button
43
+ color="default"
44
+ look="outline"
45
+ size="small"
46
+ label="scan"
47
+ @click=${__classPrivateFieldGet(this, _uSyncReatoreWorkspaceElement_instances, "m", _uSyncReatoreWorkspaceElement_onScanRestorePoints)}
48
+ ><uui-icon name="icon-axis-rotation"></uui-icon> ${this.localize.term('uSyncRestore_scan')}</uui-button
49
+ >
50
+ </div>
51
+ </umb-workspace-editor>
52
52
  `;
53
53
  }
54
54
  };
@@ -75,14 +75,14 @@ _uSyncReatoreWorkspaceElement_onScanRestorePoints = async function _uSyncReatore
75
75
  // console.log('cancel');
76
76
  });
77
77
  };
78
- uSyncReatoreWorkspaceElement.styles = css `
79
- .header h3 {
80
- margin: 0;
81
- }
82
-
83
- .action-menu {
84
- margin-right: var(--uui-size-space-4);
85
- }
78
+ uSyncReatoreWorkspaceElement.styles = css `
79
+ .header h3 {
80
+ margin: 0;
81
+ }
82
+
83
+ .action-menu {
84
+ margin-right: var(--uui-size-space-4);
85
+ }
86
86
  `;
87
87
  uSyncReatoreWorkspaceElement = __decorate([
88
88
  customElement('usync-restore-workspace-element')
package/package.json CHANGED
@@ -1,52 +1,53 @@
1
- {
2
- "name": "@jumoo/usync-expansions",
3
- "license": "Custom",
4
- "version": "18.3.0",
5
- "type": "module",
6
- "description": "uSync.Expansions.Assets",
7
- "publishConfig": {
8
- "access": "public"
9
- },
10
- "exports": {
11
- ".": "./dist/index.js",
12
- "./items": "./dist/items/index.js",
13
- "./licence": "./dist/licence/index.js",
14
- "./pipeline": "./dist/pipeline/index.js",
15
- "./communications": "./dist/communications/index.js",
16
- "./signalr": "./dist/signalr/index.js"
17
- },
18
- "files": [
19
- "./dist/**/*"
20
- ],
21
- "author": {
22
- "name": "Jumoo Ltd",
23
- "email": "info@jumoo.co.uk",
24
- "url": "https://jumoo.co.uk"
25
- },
26
- "scripts": {
27
- "client:build": "tsc --project ./tsconfig.dist.json",
28
- "client:pack": "npm pack --pack-destination ./pack",
29
- "client:publish": "npm publish -tag next",
30
- "client:make": "npm run client:build && npm run client:pack && npm run client:publish",
31
- "client:link": "npm link",
32
- "format:fix": "npm run format -- --write",
33
- "format": "prettier \"src/**/*.ts\" --check",
34
- "build": "tsc && vite build",
35
- "watch": "vite build --watch",
36
- "make": "npm run build && npm run client:make",
37
- "generate-client": "node scripts/generate-openapi.js https://localhost:44385/umbraco/openapi/usynccomplete.json"
38
- },
39
- "devDependencies": {
40
- "@hey-api/openapi-ts": "^0.99.0",
41
- "@jumoo/processing": "https://registry.npmjs.org/@jumoo/processing/-/processing-18.3.0.tgz",
42
- "@jumoo/usync": "^18.0.0",
43
- "@umbraco-cms/backoffice": "^18.0.0",
44
- "chalk": "^6.0.0",
45
- "cross-env": "^10.1.0",
46
- "node-fetch": "^3.3.2",
47
- "prettier": "^3.8.2",
48
- "rm-rs": "^0.2.3",
49
- "typescript": "^6.0.3",
50
- "vite": "^8.0.8"
51
- }
52
- }
1
+ {
2
+ "name": "@jumoo/usync-expansions",
3
+ "license": "Custom",
4
+ "version": "18.4.0",
5
+ "type": "module",
6
+ "description": "uSync.Expansions.Assets",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/Jumoo/uSync.Complete.git"
10
+ },
11
+ "publishConfig": {
12
+ "access": "public"
13
+ },
14
+ "exports": {
15
+ ".": "./dist/index.js",
16
+ "./items": "./dist/items/index.js",
17
+ "./licence": "./dist/licence/index.js",
18
+ "./pipeline": "./dist/pipeline/index.js",
19
+ "./communications": "./dist/communications/index.js",
20
+ "./signalr": "./dist/signalr/index.js"
21
+ },
22
+ "files": [
23
+ "./dist/**/*"
24
+ ],
25
+ "author": {
26
+ "name": "Jumoo Ltd",
27
+ "email": "info@jumoo.co.uk",
28
+ "url": "https://jumoo.co.uk"
29
+ },
30
+ "scripts": {
31
+ "client:build": "tsc --project ./tsconfig.dist.json",
32
+ "client:pack": "npm pack --pack-destination ./pack",
33
+ "client:link": "npm link",
34
+ "format:fix": "npm run format -- --write",
35
+ "format": "prettier \"src/**/*.ts\" --check",
36
+ "build": "tsc && vite build",
37
+ "watch": "vite build --watch",
38
+ "generate-client": "node scripts/generate-openapi.js https://localhost:44385/umbraco/openapi/usynccomplete.json"
39
+ },
40
+ "devDependencies": {
41
+ "@hey-api/openapi-ts": "^0.99.0",
42
+ "@jumoo/processing": "https://registry.npmjs.org/@jumoo/processing/-/processing-18.3.2.tgz",
43
+ "@jumoo/usync": "^18.3.1",
44
+ "@umbraco-cms/backoffice": "^18.0.0",
45
+ "chalk": "^6.0.0",
46
+ "cross-env": "^10.1.0",
47
+ "node-fetch": "^3.3.2",
48
+ "prettier": "^3.8.2",
49
+ "rm-rs": "^0.2.3",
50
+ "typescript": "^6.0.3",
51
+ "vite": "^8.0.8"
52
+ }
53
+ }