@digipair/skill-web 0.45.7 → 0.46.1
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.
- package/index.cjs.js +42 -5
- package/index.esm.js +43 -5
- package/package.json +1 -1
- package/schema.fr.json +11 -8
- package/schema.json +11 -8
- /package/{libs/skill-web/src → src}/index.d.ts +0 -0
- /package/{libs/skill-web/src → src}/lib/skill-web.d.ts +0 -0
package/index.cjs.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var engine = require('@digipair/engine');
|
|
6
|
+
var jsdom = require('jsdom');
|
|
6
7
|
|
|
7
8
|
function _extends() {
|
|
8
9
|
_extends = Object.assign || function assign(target) {
|
|
@@ -67,9 +68,40 @@ let WebService = class WebService {
|
|
|
67
68
|
}
|
|
68
69
|
return output;
|
|
69
70
|
}
|
|
71
|
+
async pins2html(pins) {
|
|
72
|
+
const dom = new jsdom.JSDOM();
|
|
73
|
+
const element = dom.window.document.createElement('section');
|
|
74
|
+
await this.generateElementsFromPins(pins, element, dom);
|
|
75
|
+
return element.innerHTML;
|
|
76
|
+
}
|
|
77
|
+
async generateElementsFromPins(pinsList, parent, dom) {
|
|
78
|
+
for(let i = 0; i < pinsList.length; i++){
|
|
79
|
+
const item = pinsList[i];
|
|
80
|
+
await this.generateElementFromPins(item, parent, dom);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async generateElementFromPins(pinsSettings, parent, dom) {
|
|
84
|
+
const element = dom.window.document.createElement(pinsSettings.element);
|
|
85
|
+
element.setAttribute('data-ssr', '1');
|
|
86
|
+
const settings = pinsSettings;
|
|
87
|
+
Object.entries(settings.properties || {}).forEach(([key, value])=>{
|
|
88
|
+
if (key === 'textContent') {
|
|
89
|
+
element.textContent = value;
|
|
90
|
+
} else if (key === 'innerHTML') {
|
|
91
|
+
element.innerHTML = value;
|
|
92
|
+
} else if (typeof value === 'string') {
|
|
93
|
+
element.setAttribute(key, value);
|
|
94
|
+
} else {
|
|
95
|
+
element[key] = value;
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
const pinsList = settings.pins || [];
|
|
99
|
+
await this.generateElementsFromPins(pinsList, element, dom);
|
|
100
|
+
parent.appendChild(element);
|
|
101
|
+
}
|
|
70
102
|
async page(params, _pinsSettingsList, context) {
|
|
71
103
|
var _context_request_body;
|
|
72
|
-
const { body,
|
|
104
|
+
const { body, head, ssr = true, styleHtml = '', styleBody = '', baseUrl = 'https://cdn.jsdelivr.net/npm', factoryInitialize = [], browserInitialize = [], browserLoad = [] } = params;
|
|
73
105
|
const engineVersion = context.config.VERSIONS['@digipair/engine'] || 'latest';
|
|
74
106
|
const preparedData = {};
|
|
75
107
|
if (context.request.method === 'POST' && ((_context_request_body = context.request.body) == null ? void 0 : _context_request_body.type) === 'DIGIPAIR_EXECUTE_FACTORY') {
|
|
@@ -82,10 +114,12 @@ let WebService = class WebService {
|
|
|
82
114
|
<!DOCTYPE html>
|
|
83
115
|
<html style="${styleHtml}">
|
|
84
116
|
<head>
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
117
|
+
${head ? await this.pins2html(head) : `
|
|
118
|
+
<meta charset="UTF-8" />
|
|
119
|
+
<title>Digipair</title>
|
|
120
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
121
|
+
<link rel="icon" type="image/x-icon" href="https://res.cloudinary.com/do87nxq3l/image/upload/fl_preserve_transparency/v1717769492/logo-digipair_oyvvxz.png?_s=public-apps">
|
|
122
|
+
`}
|
|
89
123
|
</head>
|
|
90
124
|
<body style="${styleBody}">
|
|
91
125
|
<script type="module">
|
|
@@ -119,6 +153,7 @@ let WebService = class WebService {
|
|
|
119
153
|
await executePinsList(${JSON.stringify(this.prepareBrowserPinsSettings('browserInitialize', browserInitialize))}, context);
|
|
120
154
|
|
|
121
155
|
const pinsList = ${JSON.stringify(this.prepareBrowserPinsSettings('body', body))};
|
|
156
|
+
document.querySelectorAll('body > [data-ssr]').forEach((element) => element.remove()); // Remove SSR elements
|
|
122
157
|
for (let i = 0; i < pinsList.length; i++) {
|
|
123
158
|
const item = pinsList[i];
|
|
124
159
|
await generateElementFromPins(item, document.body, { ...context, data: ${JSON.stringify(preparedData)} });
|
|
@@ -128,6 +163,8 @@ let WebService = class WebService {
|
|
|
128
163
|
await executePinsList(${JSON.stringify(this.prepareBrowserPinsSettings('browserLoad', browserLoad))}, context);
|
|
129
164
|
}, 1);
|
|
130
165
|
</script>
|
|
166
|
+
|
|
167
|
+
${ssr ? await this.pins2html(body) : ''}
|
|
131
168
|
</body>
|
|
132
169
|
</html>
|
|
133
170
|
`;
|
package/index.esm.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { JSDOM } from 'jsdom';
|
|
2
|
+
|
|
1
3
|
function _extends() {
|
|
2
4
|
_extends = Object.assign || function assign(target) {
|
|
3
5
|
for(var i = 1; i < arguments.length; i++){
|
|
@@ -28005,9 +28007,40 @@ let WebService = class WebService {
|
|
|
28005
28007
|
}
|
|
28006
28008
|
return output;
|
|
28007
28009
|
}
|
|
28010
|
+
async pins2html(pins) {
|
|
28011
|
+
const dom = new JSDOM();
|
|
28012
|
+
const element = dom.window.document.createElement('section');
|
|
28013
|
+
await this.generateElementsFromPins(pins, element, dom);
|
|
28014
|
+
return element.innerHTML;
|
|
28015
|
+
}
|
|
28016
|
+
async generateElementsFromPins(pinsList, parent, dom) {
|
|
28017
|
+
for(let i = 0; i < pinsList.length; i++){
|
|
28018
|
+
const item = pinsList[i];
|
|
28019
|
+
await this.generateElementFromPins(item, parent, dom);
|
|
28020
|
+
}
|
|
28021
|
+
}
|
|
28022
|
+
async generateElementFromPins(pinsSettings, parent, dom) {
|
|
28023
|
+
const element = dom.window.document.createElement(pinsSettings.element);
|
|
28024
|
+
element.setAttribute('data-ssr', '1');
|
|
28025
|
+
const settings = pinsSettings;
|
|
28026
|
+
Object.entries(settings.properties || {}).forEach(([key, value])=>{
|
|
28027
|
+
if (key === 'textContent') {
|
|
28028
|
+
element.textContent = value;
|
|
28029
|
+
} else if (key === 'innerHTML') {
|
|
28030
|
+
element.innerHTML = value;
|
|
28031
|
+
} else if (typeof value === 'string') {
|
|
28032
|
+
element.setAttribute(key, value);
|
|
28033
|
+
} else {
|
|
28034
|
+
element[key] = value;
|
|
28035
|
+
}
|
|
28036
|
+
});
|
|
28037
|
+
const pinsList = settings.pins || [];
|
|
28038
|
+
await this.generateElementsFromPins(pinsList, element, dom);
|
|
28039
|
+
parent.appendChild(element);
|
|
28040
|
+
}
|
|
28008
28041
|
async page(params, _pinsSettingsList, context) {
|
|
28009
28042
|
var _context_request_body;
|
|
28010
|
-
const { body,
|
|
28043
|
+
const { body, head, ssr = true, styleHtml = '', styleBody = '', baseUrl = 'https://cdn.jsdelivr.net/npm', factoryInitialize = [], browserInitialize = [], browserLoad = [] } = params;
|
|
28011
28044
|
const engineVersion = context.config.VERSIONS['@digipair/engine'] || 'latest';
|
|
28012
28045
|
const preparedData = {};
|
|
28013
28046
|
if (context.request.method === 'POST' && ((_context_request_body = context.request.body) == null ? void 0 : _context_request_body.type) === 'DIGIPAIR_EXECUTE_FACTORY') {
|
|
@@ -28020,10 +28053,12 @@ let WebService = class WebService {
|
|
|
28020
28053
|
<!DOCTYPE html>
|
|
28021
28054
|
<html style="${styleHtml}">
|
|
28022
28055
|
<head>
|
|
28023
|
-
|
|
28024
|
-
|
|
28025
|
-
|
|
28026
|
-
|
|
28056
|
+
${head ? await this.pins2html(head) : `
|
|
28057
|
+
<meta charset="UTF-8" />
|
|
28058
|
+
<title>Digipair</title>
|
|
28059
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
28060
|
+
<link rel="icon" type="image/x-icon" href="https://res.cloudinary.com/do87nxq3l/image/upload/fl_preserve_transparency/v1717769492/logo-digipair_oyvvxz.png?_s=public-apps">
|
|
28061
|
+
`}
|
|
28027
28062
|
</head>
|
|
28028
28063
|
<body style="${styleBody}">
|
|
28029
28064
|
<script type="module">
|
|
@@ -28057,6 +28092,7 @@ let WebService = class WebService {
|
|
|
28057
28092
|
await executePinsList(${JSON.stringify(this.prepareBrowserPinsSettings('browserInitialize', browserInitialize))}, context);
|
|
28058
28093
|
|
|
28059
28094
|
const pinsList = ${JSON.stringify(this.prepareBrowserPinsSettings('body', body))};
|
|
28095
|
+
document.querySelectorAll('body > [data-ssr]').forEach((element) => element.remove()); // Remove SSR elements
|
|
28060
28096
|
for (let i = 0; i < pinsList.length; i++) {
|
|
28061
28097
|
const item = pinsList[i];
|
|
28062
28098
|
await generateElementFromPins(item, document.body, { ...context, data: ${JSON.stringify(preparedData)} });
|
|
@@ -28066,6 +28102,8 @@ let WebService = class WebService {
|
|
|
28066
28102
|
await executePinsList(${JSON.stringify(this.prepareBrowserPinsSettings('browserLoad', browserLoad))}, context);
|
|
28067
28103
|
}, 1);
|
|
28068
28104
|
</script>
|
|
28105
|
+
|
|
28106
|
+
${ssr ? await this.pins2html(body) : ''}
|
|
28069
28107
|
</body>
|
|
28070
28108
|
</html>
|
|
28071
28109
|
`;
|
package/package.json
CHANGED
package/schema.fr.json
CHANGED
|
@@ -54,21 +54,24 @@
|
|
|
54
54
|
}
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
|
-
"name": "
|
|
58
|
-
"summary": "
|
|
57
|
+
"name": "head",
|
|
58
|
+
"summary": "En tête",
|
|
59
59
|
"required": false,
|
|
60
|
-
"description": "
|
|
60
|
+
"description": "En tête de la page",
|
|
61
61
|
"schema": {
|
|
62
|
-
"type": "
|
|
62
|
+
"type": "array",
|
|
63
|
+
"items": {
|
|
64
|
+
"$ref": "https://schemas.digipair.ai/pinsSettings"
|
|
65
|
+
}
|
|
63
66
|
}
|
|
64
67
|
},
|
|
65
68
|
{
|
|
66
|
-
"name": "
|
|
67
|
-
"summary": "
|
|
69
|
+
"name": "ssr",
|
|
70
|
+
"summary": "Rendu coté serveur",
|
|
68
71
|
"required": false,
|
|
69
|
-
"description": "
|
|
72
|
+
"description": "Rendu coté serveur",
|
|
70
73
|
"schema": {
|
|
71
|
-
"type": "
|
|
74
|
+
"type": "boolean"
|
|
72
75
|
}
|
|
73
76
|
},
|
|
74
77
|
{
|
package/schema.json
CHANGED
|
@@ -54,21 +54,24 @@
|
|
|
54
54
|
}
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
|
-
"name": "
|
|
58
|
-
"summary": "
|
|
57
|
+
"name": "head",
|
|
58
|
+
"summary": "Header",
|
|
59
59
|
"required": false,
|
|
60
|
-
"description": "
|
|
60
|
+
"description": "Header of the page",
|
|
61
61
|
"schema": {
|
|
62
|
-
"type": "
|
|
62
|
+
"type": "array",
|
|
63
|
+
"items": {
|
|
64
|
+
"$ref": "https://schemas.digipair.ai/pinsSettings"
|
|
65
|
+
}
|
|
63
66
|
}
|
|
64
67
|
},
|
|
65
68
|
{
|
|
66
|
-
"name": "
|
|
67
|
-
"summary": "
|
|
69
|
+
"name": "ssr",
|
|
70
|
+
"summary": "Server Side Rendering",
|
|
68
71
|
"required": false,
|
|
69
|
-
"description": "
|
|
72
|
+
"description": "Server Side Rendering",
|
|
70
73
|
"schema": {
|
|
71
|
-
"type": "
|
|
74
|
+
"type": "boolean"
|
|
72
75
|
}
|
|
73
76
|
},
|
|
74
77
|
{
|
|
File without changes
|
|
File without changes
|