@digipair/skill-html 0.91.0-0 → 0.92.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.
- package/index.cjs.d.ts +1 -0
- package/index.cjs.js +28105 -0
- package/index.esm.js +28081 -0
- package/libs/engine/src/index.d.ts +2 -0
- package/libs/engine/src/lib/alias.interface.d.ts +9 -0
- package/libs/engine/src/lib/engine.d.ts +13 -0
- package/libs/engine/src/lib/pins-settings.interface.d.ts +15 -0
- package/libs/skill-html/src/lib/skill-html.d.ts +4 -0
- package/package.json +8 -22
- package/.swcrc +0 -28
- package/README.md +0 -7
- package/eslint.config.mjs +0 -22
- package/rollup.config.cjs +0 -28
- package/src/handlebars.d.ts +0 -1
- package/src/jsdom.d.ts +0 -1
- package/src/lib/skill-html.spec.ts +0 -7
- package/src/lib/skill-html.ts +0 -142
- package/tsconfig.json +0 -13
- package/tsconfig.lib.json +0 -19
- /package/{src/index.d.ts → index.d.ts} +0 -0
- /package/{src/index.ts → libs/skill-html/src/index.d.ts} +0 -0
- /package/{src/schema.fr.json → schema.fr.json} +0 -0
- /package/{src/schema.json → schema.json} +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { PinsSettings } from './pins-settings.interface';
|
|
2
|
+
type CONFIG_KEY = 'BASE_URL' | 'LIBRARIES' | 'ALIAS' | 'LOGGER';
|
|
3
|
+
export declare const config: {
|
|
4
|
+
set: (key: CONFIG_KEY, value: any) => void;
|
|
5
|
+
log: (level: string, path: string, message: string, context: any, data?: any) => any;
|
|
6
|
+
};
|
|
7
|
+
export declare const applyTemplate: (value: any, context: any) => any;
|
|
8
|
+
export declare const executePinsList: (pinsSettingsList: PinsSettings[], context: any, path?: string) => Promise<any>;
|
|
9
|
+
export declare const generateElementFromPins: (pinsSettings: PinsSettings, parent: Element, context: any, document?: Document, options?: {
|
|
10
|
+
import: boolean;
|
|
11
|
+
}) => Promise<Element | void>;
|
|
12
|
+
export declare const preparePinsSettings: (settings: PinsSettings, context: any) => PinsSettings;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface PinsSettings {
|
|
2
|
+
library: string;
|
|
3
|
+
element: string;
|
|
4
|
+
properties?: {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
};
|
|
7
|
+
conditions?: {
|
|
8
|
+
if?: boolean;
|
|
9
|
+
each?: any[];
|
|
10
|
+
};
|
|
11
|
+
pins?: PinsSettings[];
|
|
12
|
+
events?: {
|
|
13
|
+
[key: string]: PinsSettings[];
|
|
14
|
+
};
|
|
15
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { PinsSettings } from '../../../engine/src';
|
|
2
|
+
export declare const html2pins: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
|
|
3
|
+
export declare const pins2html: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
|
|
4
|
+
export declare const parseHtml: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
|
package/package.json
CHANGED
|
@@ -1,28 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digipair/skill-html",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"type": "module",
|
|
5
|
-
"main": "dist/libs/skill-html/index.cjs.js",
|
|
6
|
-
"module": "dist/libs/skill-html/index.esm.js",
|
|
7
|
-
"types": "dist/libs/skill-html/index.esm.d.ts",
|
|
8
|
-
"exports": {
|
|
9
|
-
"./package.json": "./libs/skill-html/package.json",
|
|
10
|
-
".": {
|
|
11
|
-
"development": "./dist/libs/skill-html/src/index.ts",
|
|
12
|
-
"types": "./dist/libs/skill-html/index.esm.d.ts",
|
|
13
|
-
"import": "./dist/libs/skill-html/index.esm.js",
|
|
14
|
-
"default": "./dist/libs/skill-html/index.cjs.js"
|
|
15
|
-
}
|
|
16
|
-
},
|
|
3
|
+
"version": "0.92.0",
|
|
17
4
|
"keywords": [
|
|
18
5
|
"digipair",
|
|
19
|
-
"
|
|
20
|
-
"
|
|
6
|
+
"service",
|
|
7
|
+
"util"
|
|
21
8
|
],
|
|
22
|
-
"nx": {
|
|
23
|
-
"name": "skill-html"
|
|
24
|
-
},
|
|
25
9
|
"dependencies": {
|
|
26
|
-
"
|
|
27
|
-
}
|
|
28
|
-
|
|
10
|
+
"jsdom": "^25.0.1"
|
|
11
|
+
},
|
|
12
|
+
"main": "./index.cjs.js",
|
|
13
|
+
"module": "./index.esm.js"
|
|
14
|
+
}
|
package/.swcrc
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"jsc": {
|
|
3
|
-
"target": "es2017",
|
|
4
|
-
"parser": {
|
|
5
|
-
"syntax": "typescript",
|
|
6
|
-
"decorators": true,
|
|
7
|
-
"dynamicImport": true
|
|
8
|
-
},
|
|
9
|
-
"transform": {
|
|
10
|
-
"decoratorMetadata": true,
|
|
11
|
-
"legacyDecorator": true
|
|
12
|
-
},
|
|
13
|
-
"keepClassNames": true,
|
|
14
|
-
"externalHelpers": true,
|
|
15
|
-
"loose": true
|
|
16
|
-
},
|
|
17
|
-
"module": {
|
|
18
|
-
"type": "es6"
|
|
19
|
-
},
|
|
20
|
-
"sourceMaps": true,
|
|
21
|
-
"exclude": [
|
|
22
|
-
"jest.config.ts",
|
|
23
|
-
".*\\.spec.tsx?$",
|
|
24
|
-
".*\\.test.tsx?$",
|
|
25
|
-
"./src/jest-setup.ts$",
|
|
26
|
-
"./**/jest-setup.ts$"
|
|
27
|
-
]
|
|
28
|
-
}
|
package/README.md
DELETED
package/eslint.config.mjs
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import baseConfig from '../../eslint.config.mjs';
|
|
2
|
-
|
|
3
|
-
export default [
|
|
4
|
-
...baseConfig,
|
|
5
|
-
{
|
|
6
|
-
files: ['**/*.json'],
|
|
7
|
-
rules: {
|
|
8
|
-
'@nx/dependency-checks': [
|
|
9
|
-
'error',
|
|
10
|
-
{
|
|
11
|
-
ignoredFiles: [
|
|
12
|
-
'{projectRoot}/eslint.config.{js,cjs,mjs}',
|
|
13
|
-
'{projectRoot}/rollup.config.{js,ts,mjs,mts,cjs,cts}',
|
|
14
|
-
],
|
|
15
|
-
},
|
|
16
|
-
],
|
|
17
|
-
},
|
|
18
|
-
languageOptions: {
|
|
19
|
-
parser: await import('jsonc-eslint-parser'),
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
];
|
package/rollup.config.cjs
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
const { withNx } = require('@nx/rollup/with-nx');
|
|
2
|
-
|
|
3
|
-
module.exports = withNx(
|
|
4
|
-
{
|
|
5
|
-
main: 'libs/skill-html/src/index.ts',
|
|
6
|
-
outputPath: 'dist/libs/skill-html',
|
|
7
|
-
tsConfig: 'libs/skill-html/tsconfig.lib.json',
|
|
8
|
-
compiler: 'swc',
|
|
9
|
-
format: ['esm', "cjs"],
|
|
10
|
-
assets: [
|
|
11
|
-
{
|
|
12
|
-
input: 'libs/skill-html/',
|
|
13
|
-
glob: 'package.json',
|
|
14
|
-
output: '.'
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
input: 'libs/skill-html/src/',
|
|
18
|
-
glob: '*.json',
|
|
19
|
-
output: '.'
|
|
20
|
-
}
|
|
21
|
-
]
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
// Provide additional rollup configuration here. See: https://rollupjs.org/configuration-options
|
|
25
|
-
// e.g.
|
|
26
|
-
// output: { sourcemap: true },
|
|
27
|
-
}
|
|
28
|
-
);
|
package/src/handlebars.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
declare module 'handlebars/dist/handlebars.min.js';
|
package/src/jsdom.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
declare module 'jsdom';
|
package/src/lib/skill-html.ts
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
-
// import { PinsSettings, executePinsList } from '@digipair/engine';
|
|
3
|
-
import { PinsSettings, executePinsList } from '@digipair/engine';
|
|
4
|
-
import { JSDOM } from 'jsdom';
|
|
5
|
-
|
|
6
|
-
class HtmlService {
|
|
7
|
-
async html2pins(params: any, _pinsSettingsList: PinsSettings[], _context: any): Promise<any> {
|
|
8
|
-
const { html, library = 'web' } = params;
|
|
9
|
-
const dom = new JSDOM(html);
|
|
10
|
-
const pins = this.generatePinsFromElements(
|
|
11
|
-
Array.from(dom.window.document.querySelectorAll('body > *')),
|
|
12
|
-
library,
|
|
13
|
-
);
|
|
14
|
-
|
|
15
|
-
return pins;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
private generatePinsFromElements(elements: Element[], library: string): any {
|
|
19
|
-
const pinsList = elements.map(element => this.generatePinsFromElement(element, library));
|
|
20
|
-
return pinsList;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
private generatePinsFromElement(element: Element, library: string): any {
|
|
24
|
-
const attributes = element.getAttributeNames().reduce(
|
|
25
|
-
(obj: any, name: string) => ({
|
|
26
|
-
...obj,
|
|
27
|
-
[name]: element.getAttribute(name),
|
|
28
|
-
}),
|
|
29
|
-
{},
|
|
30
|
-
);
|
|
31
|
-
|
|
32
|
-
if (element.children.length === 0 && element.textContent) {
|
|
33
|
-
attributes.textContent = element.textContent;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const pins = {
|
|
37
|
-
library,
|
|
38
|
-
element: element.tagName.toLowerCase(),
|
|
39
|
-
properties: attributes,
|
|
40
|
-
pins: this.generatePinsFromElements(Array.from(element.children), library),
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
return pins;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
async pins2html(params: any, _pinsSettingsList: PinsSettings[], _context: any): Promise<any> {
|
|
47
|
-
const { pins } = params;
|
|
48
|
-
const dom = new JSDOM();
|
|
49
|
-
const element = dom.window.document.createElement('section');
|
|
50
|
-
await this.generateElementsFromPins(pins, element, dom);
|
|
51
|
-
|
|
52
|
-
return element.innerHTML;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
private async generateElementsFromPins(
|
|
56
|
-
pinsList: PinsSettings[],
|
|
57
|
-
parent: Element,
|
|
58
|
-
dom: any,
|
|
59
|
-
): Promise<void> {
|
|
60
|
-
for (let i = 0; i < pinsList.length; i++) {
|
|
61
|
-
const item = pinsList[i];
|
|
62
|
-
await this.generateElementFromPins(item, parent, dom);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
private async generateElementFromPins(
|
|
67
|
-
pinsSettings: PinsSettings,
|
|
68
|
-
parent: Element,
|
|
69
|
-
dom: any,
|
|
70
|
-
): Promise<void> {
|
|
71
|
-
const element = dom.window.document.createElement(pinsSettings.element);
|
|
72
|
-
|
|
73
|
-
// const settings = await preparePinsSettings(pinsSettings, context);
|
|
74
|
-
const settings = pinsSettings as any;
|
|
75
|
-
Object.entries(settings.properties || {}).forEach(([key, value]) => {
|
|
76
|
-
if (key === 'textContent') {
|
|
77
|
-
element.textContent = value;
|
|
78
|
-
} else if (key === 'innerHTML') {
|
|
79
|
-
element.innerHTML = value;
|
|
80
|
-
} else if (typeof value === 'string') {
|
|
81
|
-
element.setAttribute(key, value);
|
|
82
|
-
} else {
|
|
83
|
-
(element as any)[key] = value;
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
const pinsList = settings.pins || [];
|
|
88
|
-
await this.generateElementsFromPins(pinsList, element, dom);
|
|
89
|
-
|
|
90
|
-
parent.appendChild(element);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
async parseHtml(params: any, _pinsSettingsList: PinsSettings[], context: any): Promise<any> {
|
|
94
|
-
const { html, execute = [] } = params;
|
|
95
|
-
const dom = new JSDOM(html);
|
|
96
|
-
const result = await executePinsList(execute, {
|
|
97
|
-
...context,
|
|
98
|
-
document: {
|
|
99
|
-
querySelector: (selector: string) => this.querySelector(selector, dom.window.document),
|
|
100
|
-
querySelectorAll: (selector: string) =>
|
|
101
|
-
this.querySelectorAll(selector, dom.window.document),
|
|
102
|
-
},
|
|
103
|
-
}, `${context.__PATH__}.execute`);
|
|
104
|
-
|
|
105
|
-
return result;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
private querySelector(selector: string, parent: any): any {
|
|
109
|
-
const element = parent?.querySelector(selector);
|
|
110
|
-
|
|
111
|
-
return element
|
|
112
|
-
? {
|
|
113
|
-
textContent: element.textContent,
|
|
114
|
-
querySelector: (selector: string) => this.querySelector(selector, element),
|
|
115
|
-
querySelectorAll: (selector: string) => this.querySelectorAll(selector, element),
|
|
116
|
-
getAttribute: (name: string) => this.getAttribute(name, element),
|
|
117
|
-
}
|
|
118
|
-
: undefined;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
private querySelectorAll(selector: string, parent: any): any {
|
|
122
|
-
const elements = Array.from(parent?.querySelectorAll(selector) || []);
|
|
123
|
-
|
|
124
|
-
return elements.map((element: any) => ({
|
|
125
|
-
textContent: element.textContent,
|
|
126
|
-
querySelector: (selector: string) => this.querySelector(selector, element),
|
|
127
|
-
querySelectorAll: (selector: string) => this.querySelectorAll(selector, element),
|
|
128
|
-
getAttribute: (name: string) => this.getAttribute(name, element),
|
|
129
|
-
}));
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
private getAttribute(name: string, element: any): any {
|
|
133
|
-
return element?.getAttribute(name);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
export const html2pins = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
|
|
138
|
-
new HtmlService().html2pins(params, pinsSettingsList, context);
|
|
139
|
-
export const pins2html = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
|
|
140
|
-
new HtmlService().pins2html(params, pinsSettingsList, context);
|
|
141
|
-
export const parseHtml = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
|
|
142
|
-
new HtmlService().parseHtml(params, pinsSettingsList, context);
|
package/tsconfig.json
DELETED
package/tsconfig.lib.json
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "../../tsconfig.base.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"rootDir": "src",
|
|
5
|
-
"outDir": "dist",
|
|
6
|
-
"tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
|
|
7
|
-
"emitDeclarationOnly": true,
|
|
8
|
-
"module": "esnext",
|
|
9
|
-
"moduleResolution": "node",
|
|
10
|
-
"forceConsistentCasingInFileNames": true,
|
|
11
|
-
"types": ["node"]
|
|
12
|
-
},
|
|
13
|
-
"include": ["src/**/*.ts"],
|
|
14
|
-
"references": [
|
|
15
|
-
{
|
|
16
|
-
"path": "../engine/tsconfig.lib.json"
|
|
17
|
-
}
|
|
18
|
-
]
|
|
19
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|