@citolab/qti-components 6.7.1-6 → 6.7.1-61
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/dist/chunk-DBZBAD4I.js +24 -0
- package/dist/custom-elements.json +453 -249
- package/dist/index.js +122 -131
- package/dist/item.css +1123 -2566
- package/dist/qti-components/index.d.ts +312 -22
- package/dist/qti-components/index.js +108 -104
- package/dist/qti-transformers/index.d.ts +106 -13
- package/dist/qti-transformers/index.js +2 -37
- package/package.json +74 -70
- package/dist/chunk-JILF7TI5.js +0 -2
- package/dist/item.minimal.css +0 -1888
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* Browser based QTI-XML to HTML transformer.
|
|
2
3
|
* Returns an object with methods to load, parse, transform and serialize QTI XML items.
|
|
3
4
|
* @returns An object with methods to load, parse, transform and serialize QTI XML items.
|
|
4
5
|
* @example
|
|
@@ -7,19 +8,68 @@
|
|
|
7
8
|
* qtiTransformer.path('/assessmentItem/itemBody');
|
|
8
9
|
* const html = qtiTransformer.html();
|
|
9
10
|
* const xml = qtiTransformer.xml();
|
|
11
|
+
* const htmldoc = qtiTransformer.htmldoc();
|
|
12
|
+
* const xmldoc = qtiTransformer.xmldoc();
|
|
10
13
|
*
|
|
11
14
|
* qtiTransformItem().parse(storyXML).html()
|
|
12
15
|
*/
|
|
13
|
-
/**
|
|
14
|
-
* This module exports a function that returns an object with methods to load, parse, transform and serialize QTI XML items.
|
|
15
|
-
* @returns An object with methods to load, parse, transform and serialize QTI XML items.
|
|
16
|
-
*/
|
|
17
16
|
declare const qtiTransformItem: () => {
|
|
18
|
-
load(uri:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
load: (uri: string, cancelPreviousRequest?: boolean) => Promise<{
|
|
18
|
+
load(uri: string, cancelPreviousRequest?: boolean): Promise<any>;
|
|
19
|
+
parse(xmlString: string): any;
|
|
20
|
+
path: (location: string) => any;
|
|
21
|
+
fn(fn: (xmlFragment: XMLDocument) => void): any;
|
|
22
|
+
pciHooks(uri: string): any;
|
|
23
|
+
convertCDATAtoComment(): any;
|
|
24
|
+
stripStyleSheets(): any;
|
|
25
|
+
html(): string;
|
|
26
|
+
xml(): string;
|
|
27
|
+
htmldoc(): DocumentFragment;
|
|
28
|
+
xmldoc(): XMLDocument;
|
|
29
|
+
}>;
|
|
30
|
+
parse: (xmlString: string) => {
|
|
31
|
+
load(uri: string, cancelPreviousRequest?: boolean): Promise<any>;
|
|
32
|
+
parse(xmlString: string): any;
|
|
33
|
+
path: (location: string) => any;
|
|
34
|
+
fn(fn: (xmlFragment: XMLDocument) => void): any;
|
|
35
|
+
pciHooks(uri: string): any;
|
|
36
|
+
convertCDATAtoComment(): any;
|
|
37
|
+
stripStyleSheets(): any;
|
|
38
|
+
html(): string;
|
|
39
|
+
xml(): string;
|
|
40
|
+
htmldoc(): DocumentFragment;
|
|
41
|
+
xmldoc(): XMLDocument;
|
|
42
|
+
};
|
|
43
|
+
path: (location: string) => {
|
|
44
|
+
load(uri: string, cancelPreviousRequest?: boolean): Promise<any>;
|
|
45
|
+
parse(xmlString: string): any;
|
|
46
|
+
path: (location: string) => any;
|
|
47
|
+
fn(fn: (xmlFragment: XMLDocument) => void): any;
|
|
48
|
+
pciHooks(uri: string): any;
|
|
49
|
+
convertCDATAtoComment(): any;
|
|
50
|
+
stripStyleSheets(): any;
|
|
51
|
+
html(): string;
|
|
52
|
+
xml(): string;
|
|
53
|
+
htmldoc(): DocumentFragment;
|
|
54
|
+
xmldoc(): XMLDocument;
|
|
55
|
+
};
|
|
56
|
+
fn: (fn: (xmlFragment: XMLDocument) => void) => {
|
|
57
|
+
load(uri: string, cancelPreviousRequest?: boolean): Promise<any>;
|
|
58
|
+
parse(xmlString: string): any;
|
|
59
|
+
path: (location: string) => any;
|
|
60
|
+
fn(fn: (xmlFragment: XMLDocument) => void): any;
|
|
61
|
+
pciHooks(uri: string): any;
|
|
62
|
+
convertCDATAtoComment(): any;
|
|
63
|
+
stripStyleSheets(): any;
|
|
64
|
+
html(): string;
|
|
65
|
+
xml(): string;
|
|
66
|
+
htmldoc(): DocumentFragment;
|
|
67
|
+
xmldoc(): XMLDocument;
|
|
68
|
+
};
|
|
69
|
+
html: () => string;
|
|
70
|
+
xml: () => string;
|
|
71
|
+
htmldoc: () => DocumentFragment;
|
|
72
|
+
xmldoc: () => XMLDocument;
|
|
23
73
|
};
|
|
24
74
|
/**
|
|
25
75
|
* Returns an object with methods to load, parse and transform QTI tests.
|
|
@@ -32,14 +82,57 @@ declare const qtiTransformItem: () => {
|
|
|
32
82
|
* const xml = qtiTransformer.xml();
|
|
33
83
|
*/
|
|
34
84
|
declare const qtiTransformTest: () => {
|
|
35
|
-
load(uri:
|
|
36
|
-
|
|
85
|
+
load: (uri: string) => Promise<{
|
|
86
|
+
load(uri: any): Promise<any>;
|
|
87
|
+
parse(xmlString: string): any;
|
|
88
|
+
fn(fn: (xmlFragment: XMLDocument) => void): any;
|
|
89
|
+
items(): {
|
|
90
|
+
identifier: string;
|
|
91
|
+
href: string;
|
|
92
|
+
category: string;
|
|
93
|
+
}[];
|
|
94
|
+
html(): string;
|
|
95
|
+
xml(): string;
|
|
96
|
+
htmldoc(): DocumentFragment;
|
|
97
|
+
xmldoc(): XMLDocument;
|
|
98
|
+
}>;
|
|
99
|
+
parse: (xmlString: string) => {
|
|
100
|
+
load(uri: any): Promise<any>;
|
|
101
|
+
parse(xmlString: string): any;
|
|
102
|
+
fn(fn: (xmlFragment: XMLDocument) => void): any;
|
|
103
|
+
items(): {
|
|
104
|
+
identifier: string;
|
|
105
|
+
href: string;
|
|
106
|
+
category: string;
|
|
107
|
+
}[];
|
|
108
|
+
html(): string;
|
|
109
|
+
xml(): string;
|
|
110
|
+
htmldoc(): DocumentFragment;
|
|
111
|
+
xmldoc(): XMLDocument;
|
|
112
|
+
};
|
|
113
|
+
fn: (fn: (xmlFragment: XMLDocument) => void) => {
|
|
114
|
+
load(uri: any): Promise<any>;
|
|
115
|
+
parse(xmlString: string): any;
|
|
116
|
+
fn(fn: (xmlFragment: XMLDocument) => void): any;
|
|
117
|
+
items(): {
|
|
118
|
+
identifier: string;
|
|
119
|
+
href: string;
|
|
120
|
+
category: string;
|
|
121
|
+
}[];
|
|
122
|
+
html(): string;
|
|
123
|
+
xml(): string;
|
|
124
|
+
htmldoc(): DocumentFragment;
|
|
125
|
+
xmldoc(): XMLDocument;
|
|
126
|
+
};
|
|
127
|
+
items: () => {
|
|
37
128
|
identifier: string;
|
|
38
129
|
href: string;
|
|
39
130
|
category: string;
|
|
40
131
|
}[];
|
|
41
|
-
html()
|
|
42
|
-
xml()
|
|
132
|
+
html: () => string;
|
|
133
|
+
xml: () => string;
|
|
134
|
+
htmldoc: () => DocumentFragment;
|
|
135
|
+
xmldoc: () => XMLDocument;
|
|
43
136
|
};
|
|
44
137
|
|
|
45
138
|
export { qtiTransformItem, qtiTransformTest };
|
|
@@ -1,37 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
<xsl:output method="html" version="5.0" encoding="UTF-8" indent="yes" />
|
|
4
|
-
<xsl:template match="@*|node()">
|
|
5
|
-
<xsl:copy>
|
|
6
|
-
<xsl:apply-templates select="@*|node()"/>
|
|
7
|
-
</xsl:copy>
|
|
8
|
-
</xsl:template>
|
|
9
|
-
|
|
10
|
-
<!-- convert CDATA to comments -->
|
|
11
|
-
<xsl:template match="text()[contains(., 'CDATA')]">
|
|
12
|
-
<strong>
|
|
13
|
-
<xsl:comment>
|
|
14
|
-
<xsl:value-of select="."/>
|
|
15
|
-
</xsl:comment>
|
|
16
|
-
<strong>
|
|
17
|
-
</xsl:template>
|
|
18
|
-
|
|
19
|
-
<!-- remove xml comments -->
|
|
20
|
-
<xsl:template match="comment()" />
|
|
21
|
-
|
|
22
|
-
<!-- remove existing namespaces -->
|
|
23
|
-
<xsl:template match="*">
|
|
24
|
-
<!-- remove element prefix -->
|
|
25
|
-
<xsl:element name="{local-name()}">
|
|
26
|
-
<!-- process attributes -->
|
|
27
|
-
<xsl:for-each select="@*">
|
|
28
|
-
<!-- remove attribute prefix -->
|
|
29
|
-
<xsl:attribute name="{local-name()}">
|
|
30
|
-
<xsl:value-of select="."/>
|
|
31
|
-
</xsl:attribute>
|
|
32
|
-
</xsl:for-each>
|
|
33
|
-
<xsl:apply-templates/>
|
|
34
|
-
</xsl:element>
|
|
35
|
-
</xsl:template>
|
|
36
|
-
</xsl:stylesheet>`;function c(r){let n=[];return r.querySelectorAll("qti-assessment-item-ref").forEach(e=>{let t=e.getAttribute("identifier"),s=e.getAttribute("href"),o=e.getAttribute("category");n.push({identifier:t,href:s,category:o})}),n}function m(r){return new Promise((n,e)=>{let t=new XMLHttpRequest;t.open("GET",r,!0),t.responseType="document",t.onload=()=>t.status>=200&&t.status<300?n(t.responseXML):(e(t.statusText),null),t.onerror=function(){e(t.statusText)},t.send()})}function u(r){return new DOMParser().parseFromString(r,"text/xml")}function a(r){let n=new XSLTProcessor,e=new DOMParser().parseFromString(i,"text/xml");n.importStylesheet(e);let t=n.transformToFragment(r,document);return new XMLSerializer().serializeToString(t)}function x(r,n){r.querySelectorAll("[src],[href]").forEach(e=>{var o;let t="";e.getAttribute("src")&&(t="src"),e.getAttribute("href")&&(t="href");let s=(o=e.getAttribute(t))==null?void 0:o.trim();if(!s.startsWith("data:")&&!s.startsWith("http")){let l=n+encodeURI(s);e.setAttribute(t,l)}})}export{p as qtiTransformItem,g as qtiTransformTest};
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2xpYi9xdGktdHJhbnNmb3JtZXJzL3F0aS10cmFuc2Zvcm1lcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogUmV0dXJucyBhbiBvYmplY3Qgd2l0aCBtZXRob2RzIHRvIGxvYWQsIHBhcnNlLCB0cmFuc2Zvcm0gYW5kIHNlcmlhbGl6ZSBRVEkgWE1MIGl0ZW1zLlxuICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggbWV0aG9kcyB0byBsb2FkLCBwYXJzZSwgdHJhbnNmb3JtIGFuZCBzZXJpYWxpemUgUVRJIFhNTCBpdGVtcy5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBxdGlUcmFuc2Zvcm1lciA9IHF0aVRyYW5zZm9ybUl0ZW0oKTtcbiAqIGF3YWl0IHF0aVRyYW5zZm9ybWVyLmxvYWQoJ3BhdGgvdG8veG1sL2ZpbGUueG1sJyk7XG4gKiBxdGlUcmFuc2Zvcm1lci5wYXRoKCcvYXNzZXNzbWVudEl0ZW0vaXRlbUJvZHknKTtcbiAqIGNvbnN0IGh0bWwgPSBxdGlUcmFuc2Zvcm1lci5odG1sKCk7XG4gKiBjb25zdCB4bWwgPSBxdGlUcmFuc2Zvcm1lci54bWwoKTtcbiAqXG4gKiBxdGlUcmFuc2Zvcm1JdGVtKCkucGFyc2Uoc3RvcnlYTUwpLmh0bWwoKVxuICovXG4vKipcbiAqIFRoaXMgbW9kdWxlIGV4cG9ydHMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gb2JqZWN0IHdpdGggbWV0aG9kcyB0byBsb2FkLCBwYXJzZSwgdHJhbnNmb3JtIGFuZCBzZXJpYWxpemUgUVRJIFhNTCBpdGVtcy5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIG1ldGhvZHMgdG8gbG9hZCwgcGFyc2UsIHRyYW5zZm9ybSBhbmQgc2VyaWFsaXplIFFUSSBYTUwgaXRlbXMuXG4gKi9cbmV4cG9ydCBjb25zdCBxdGlUcmFuc2Zvcm1JdGVtID0gKCkgPT4ge1xuICBsZXQgeG1sRnJhZ21lbnQ6IERvY3VtZW50RnJhZ21lbnQ7XG5cbiAgY29uc3QgYXBpID0ge1xuICAgIGFzeW5jIGxvYWQodXJpKSB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8dHlwZW9mIGFwaT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBsb2FkWE1MKHVyaSkudGhlbih4bWwgPT4ge1xuICAgICAgICAgIHhtbEZyYWdtZW50ID0geG1sO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKGFwaSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBwYXJzZSh4bWxTdHJpbmcpIHtcbiAgICAgIHhtbEZyYWdtZW50ID0gcGFyc2VYTUwoeG1sU3RyaW5nKTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBwYXRoOiAobG9jYXRpb246IHN0cmluZykgPT4ge1xuICAgICAgc2V0TG9jYXRpb24oeG1sRnJhZ21lbnQsIGxvY2F0aW9uKTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBodG1sKCkge1xuICAgICAgcmV0dXJuIHRvSFRNTCh4bWxGcmFnbWVudCk7XG4gICAgfSxcbiAgICB4bWwoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHhtbEZyYWdtZW50KTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBhcGk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYW4gb2JqZWN0IHdpdGggbWV0aG9kcyB0byBsb2FkLCBwYXJzZSBhbmQgdHJhbnNmb3JtIFFUSSB0ZXN0cy5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIG1ldGhvZHMgdG8gbG9hZCwgcGFyc2UgYW5kIHRyYW5zZm9ybSBRVEkgdGVzdHMuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcXRpVHJhbnNmb3JtZXIgPSBxdGlUcmFuc2Zvcm1UZXN0KCk7XG4gKiBhd2FpdCBxdGlUcmFuc2Zvcm1lci5sb2FkKCdodHRwczovL2V4YW1wbGUuY29tL3Rlc3QueG1sJyk7XG4gKiBjb25zdCBpdGVtcyA9IHF0aVRyYW5zZm9ybWVyLml0ZW1zKCk7XG4gKiBjb25zdCBodG1sID0gcXRpVHJhbnNmb3JtZXIuaHRtbCgpO1xuICogY29uc3QgeG1sID0gcXRpVHJhbnNmb3JtZXIueG1sKCk7XG4gKi9cbmV4cG9ydCBjb25zdCBxdGlUcmFuc2Zvcm1UZXN0ID0gKCkgPT4ge1xuICBsZXQgeG1sRnJhZ21lbnQ6IERvY3VtZW50RnJhZ21lbnQ7XG5cbiAgY29uc3QgYXBpID0ge1xuICAgIGFzeW5jIGxvYWQodXJpKSB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8dHlwZW9mIGFwaT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBsb2FkWE1MKHVyaSkudGhlbih4bWwgPT4ge1xuICAgICAgICAgIHhtbEZyYWdtZW50ID0geG1sO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKGFwaSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBpdGVtcygpIHtcbiAgICAgIHJldHVybiBpdGVtc0Zyb21UZXN0KHhtbEZyYWdtZW50KTtcbiAgICB9LFxuICAgIGh0bWwoKSB7XG4gICAgICByZXR1cm4gdG9IVE1MKHhtbEZyYWdtZW50KTtcbiAgICB9LFxuICAgIHhtbCgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoeG1sRnJhZ21lbnQpO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGFwaTtcbn07XG5cbmNvbnN0IHhtbFRvSFRNTCA9IGBcbjx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPVwiMS4wXCIgeG1sbnM6eHNsPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtXCI+XG48eHNsOm91dHB1dCBtZXRob2Q9XCJodG1sXCIgdmVyc2lvbj1cIjUuMFwiIGVuY29kaW5nPVwiVVRGLThcIiBpbmRlbnQ9XCJ5ZXNcIiAvPlxuICA8eHNsOnRlbXBsYXRlIG1hdGNoPVwiQCp8bm9kZSgpXCI+XG4gICAgPHhzbDpjb3B5PlxuICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PVwiQCp8bm9kZSgpXCIvPlxuICAgIDwveHNsOmNvcHk+XG4gIDwveHNsOnRlbXBsYXRlPlxuXG4gIDwhLS0gY29udmVydCBDREFUQSB0byBjb21tZW50cyAtLT5cbiAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD1cInRleHQoKVtjb250YWlucyguLCAnQ0RBVEEnKV1cIj5cbiAgICA8c3Ryb25nPlxuICAgICAgPHhzbDpjb21tZW50PlxuICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD1cIi5cIi8+XG4gICAgICA8L3hzbDpjb21tZW50PlxuICAgIDxzdHJvbmc+XG4gIDwveHNsOnRlbXBsYXRlPlxuXG4gIDwhLS0gcmVtb3ZlIHhtbCBjb21tZW50cyAtLT5cbiAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD1cImNvbW1lbnQoKVwiIC8+XG5cbiAgPCEtLSByZW1vdmUgZXhpc3RpbmcgbmFtZXNwYWNlcyAtLT5cbiAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD1cIipcIj5cbiAgICA8IS0tIHJlbW92ZSBlbGVtZW50IHByZWZpeCAtLT5cbiAgICA8eHNsOmVsZW1lbnQgbmFtZT1cIntsb2NhbC1uYW1lKCl9XCI+XG4gICAgICA8IS0tIHByb2Nlc3MgYXR0cmlidXRlcyAtLT5cbiAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PVwiQCpcIj5cbiAgICAgICAgPCEtLSByZW1vdmUgYXR0cmlidXRlIHByZWZpeCAtLT5cbiAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT1cIntsb2NhbC1uYW1lKCl9XCI+XG4gICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9XCIuXCIvPlxuICAgICAgICA8L3hzbDphdHRyaWJ1dGU+XG4gICAgICA8L3hzbDpmb3ItZWFjaD5cbiAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcy8+XG4gIDwveHNsOmVsZW1lbnQ+XG48L3hzbDp0ZW1wbGF0ZT5cbjwveHNsOnN0eWxlc2hlZXQ+YDtcblxuZnVuY3Rpb24gaXRlbXNGcm9tVGVzdCh4bWxGcmFnbWVudDogRG9jdW1lbnRGcmFnbWVudCkge1xuICBjb25zdCBpdGVtczogeyBpZGVudGlmaWVyOiBzdHJpbmc7IGhyZWY6IHN0cmluZzsgY2F0ZWdvcnk6IHN0cmluZyB9W10gPSBbXTtcbiAgeG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgncXRpLWFzc2Vzc21lbnQtaXRlbS1yZWYnKS5mb3JFYWNoKGVsID0+IHtcbiAgICBjb25zdCBpZGVudGlmaWVyID0gZWwuZ2V0QXR0cmlidXRlKCdpZGVudGlmaWVyJyk7XG4gICAgY29uc3QgaHJlZiA9IGVsLmdldEF0dHJpYnV0ZSgnaHJlZicpO1xuICAgIGNvbnN0IGNhdGVnb3J5ID0gZWwuZ2V0QXR0cmlidXRlKCdjYXRlZ29yeScpO1xuICAgIGl0ZW1zLnB1c2goeyBpZGVudGlmaWVyLCBocmVmLCBjYXRlZ29yeSB9KTtcbiAgfSk7XG4gIHJldHVybiBpdGVtcztcbn1cblxuZnVuY3Rpb24gbG9hZFhNTCh1cmwpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPERvY3VtZW50RnJhZ21lbnQgfCBudWxsPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgeGhyLm9wZW4oJ0dFVCcsIHVybCwgdHJ1ZSk7XG4gICAgeGhyLnJlc3BvbnNlVHlwZSA9ICdkb2N1bWVudCc7XG5cbiAgICB4aHIub25sb2FkID0gKCkgPT4ge1xuICAgICAgaWYgKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDApIHtcbiAgICAgICAgLy8gY29uc3QgZG9jRnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIC8vIGRvY0ZyYWdtZW50LmFwcGVuZENoaWxkKHhoci5yZXNwb25zZVhNTCk7XG4gICAgICAgIHJldHVybiByZXNvbHZlKHhoci5yZXNwb25zZVhNTCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZWplY3QoeGhyLnN0YXR1c1RleHQpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgeGhyLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZWplY3QoeGhyLnN0YXR1c1RleHQpO1xuICAgIH07XG5cbiAgICB4aHIuc2VuZCgpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcGFyc2VYTUwoeG1sRG9jdW1lbnQ6IHN0cmluZykge1xuICBjb25zdCBwYXJzZXIgPSBuZXcgRE9NUGFyc2VyKCk7XG4gIGNvbnN0IHhtbEZyYWdtZW50ID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyh4bWxEb2N1bWVudCwgJ3RleHQveG1sJyk7XG4gIHJldHVybiB4bWxGcmFnbWVudDtcbn1cblxuZnVuY3Rpb24gdG9IVE1MKHhtbEZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50KSB7XG4gIGNvbnN0IHByb2Nlc3NvciA9IG5ldyBYU0xUUHJvY2Vzc29yKCk7XG4gIGNvbnN0IHhzbHREb2N1bWVudCA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoeG1sVG9IVE1MLCAndGV4dC94bWwnKTtcbiAgcHJvY2Vzc29yLmltcG9ydFN0eWxlc2hlZXQoeHNsdERvY3VtZW50KTtcbiAgY29uc3QgaXRlbUhUTUxGcmFnbWVudCA9IHByb2Nlc3Nvci50cmFuc2Zvcm1Ub0ZyYWdtZW50KHhtbEZyYWdtZW50LCBkb2N1bWVudCk7XG4gIGNvbnN0IGl0ZW1IVE1MID0gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyhpdGVtSFRNTEZyYWdtZW50KTtcbiAgcmV0dXJuIGl0ZW1IVE1MO1xufVxuXG5mdW5jdGlvbiBzZXRMb2NhdGlvbih4bWxGcmFnbWVudDogRG9jdW1lbnRGcmFnbWVudCwgbG9jYXRpb246IHN0cmluZykge1xuICB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbc3JjXSxbaHJlZl0nKS5mb3JFYWNoKGVsV2l0aFNyYyA9PiB7XG4gICAgbGV0IGF0dHI6ICdzcmMnIHwgJ2hyZWYnIHwgJycgPSAnJztcblxuICAgIGlmIChlbFdpdGhTcmMuZ2V0QXR0cmlidXRlKCdzcmMnKSkge1xuICAgICAgYXR0ciA9ICdzcmMnO1xuICAgIH1cbiAgICBpZiAoZWxXaXRoU3JjLmdldEF0dHJpYnV0ZSgnaHJlZicpKSB7XG4gICAgICBhdHRyID0gJ2hyZWYnO1xuICAgIH1cbiAgICBjb25zdCBhdHRyVmFsdWUgPSBlbFdpdGhTcmMuZ2V0QXR0cmlidXRlKGF0dHIpPy50cmltKCk7XG5cbiAgICBpZiAoIWF0dHJWYWx1ZS5zdGFydHNXaXRoKCdkYXRhOicpICYmICFhdHRyVmFsdWUuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICBjb25zdCBuZXdTcmNWYWx1ZSA9IGxvY2F0aW9uICsgZW5jb2RlVVJJKGF0dHJWYWx1ZSk7XG4gICAgICBlbFdpdGhTcmMuc2V0QXR0cmlidXRlKGF0dHIsIG5ld1NyY1ZhbHVlKTtcbiAgICB9XG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjZCQWdCTyxJQUFNQSxFQUFtQixJQUFNLENBQ3BDLElBQUlDLEVBRUVDLEVBQU0sQ0FDVixNQUFNLEtBQUtDLEVBQUssQ0FDZCxPQUFPLElBQUksUUFBb0IsQ0FBQ0MsRUFBU0MsSUFBVyxDQUNsREMsRUFBUUgsQ0FBRyxFQUFFLEtBQUtJLElBQ2hCTixFQUFjTSxFQUNQSCxFQUFRRixDQUFHLEVBQ25CLENBQ0gsQ0FBQyxDQUNILEVBQ0EsTUFBTU0sRUFBVyxDQUNmLE9BQUFQLEVBQWNRLEVBQVNELENBQVMsRUFDekJOLENBQ1QsRUFDQSxLQUFPUSxJQUNMQyxFQUFZVixFQUFhUyxDQUFRLEVBQzFCUixHQUVULE1BQU8sQ0FDTCxPQUFPVSxFQUFPWCxDQUFXLENBQzNCLEVBQ0EsS0FBYyxDQUNaLE9BQU8sSUFBSSxjQUFjLEVBQUUsa0JBQWtCQSxDQUFXLENBQzFELENBQ0YsRUFDQSxPQUFPQyxDQUNULEVBWWFXLEVBQW1CLElBQU0sQ0FDcEMsSUFBSVosRUFFRUMsRUFBTSxDQUNWLE1BQU0sS0FBS0MsRUFBSyxDQUNkLE9BQU8sSUFBSSxRQUFvQixDQUFDQyxFQUFTQyxJQUFXLENBQ2xEQyxFQUFRSCxDQUFHLEVBQUUsS0FBS0ksSUFDaEJOLEVBQWNNLEVBQ1BILEVBQVFGLENBQUcsRUFDbkIsQ0FDSCxDQUFDLENBQ0gsRUFDQSxPQUFRLENBQ04sT0FBT1ksRUFBY2IsQ0FBVyxDQUNsQyxFQUNBLE1BQU8sQ0FDTCxPQUFPVyxFQUFPWCxDQUFXLENBQzNCLEVBQ0EsS0FBYyxDQUNaLE9BQU8sSUFBSSxjQUFjLEVBQUUsa0JBQWtCQSxDQUFXLENBQzFELENBQ0YsRUFDQSxPQUFPQyxDQUNULEVBRU1hLEVBQVk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQXFDbEIsU0FBU0QsRUFBY2IsRUFBK0IsQ0FDcEQsSUFBTWUsRUFBa0UsQ0FBQyxFQUN6RSxPQUFBZixFQUFZLGlCQUFpQix5QkFBeUIsRUFBRSxRQUFRZ0IsR0FBTSxDQUNwRSxJQUFNQyxFQUFhRCxFQUFHLGFBQWEsWUFBWSxFQUN6Q0UsRUFBT0YsRUFBRyxhQUFhLE1BQU0sRUFDN0JHLEVBQVdILEVBQUcsYUFBYSxVQUFVLEVBQzNDRCxFQUFNLEtBQUssQ0FBRSxXQUFBRSxFQUFZLEtBQUFDLEVBQU0sU0FBQUMsQ0FBUyxDQUFDLENBQzNDLENBQUMsRUFDTUosQ0FDVCxDQUVBLFNBQVNWLEVBQVFlLEVBQUssQ0FDcEIsT0FBTyxJQUFJLFFBQWlDLENBQUNqQixFQUFTQyxJQUFXLENBQy9ELElBQU1pQixFQUFNLElBQUksZUFDaEJBLEVBQUksS0FBSyxNQUFPRCxFQUFLLEVBQUksRUFDekJDLEVBQUksYUFBZSxXQUVuQkEsRUFBSSxPQUFTLElBQ1BBLEVBQUksUUFBVSxLQUFPQSxFQUFJLE9BQVMsSUFHN0JsQixFQUFRa0IsRUFBSSxXQUFXLEdBRTlCakIsRUFBT2lCLEVBQUksVUFBVSxFQUNkLE1BSVhBLEVBQUksUUFBVSxVQUFZLENBQ3hCakIsRUFBT2lCLEVBQUksVUFBVSxDQUN2QixFQUVBQSxFQUFJLEtBQUssQ0FDWCxDQUFDLENBQ0gsQ0FFQSxTQUFTYixFQUFTYyxFQUFxQixDQUdyQyxPQUZlLElBQUksVUFBVSxFQUNGLGdCQUFnQkEsRUFBYSxVQUFVLENBRXBFLENBRUEsU0FBU1gsRUFBT1gsRUFBK0IsQ0FDN0MsSUFBTXVCLEVBQVksSUFBSSxjQUNoQkMsRUFBZSxJQUFJLFVBQVUsRUFBRSxnQkFBZ0JWLEVBQVcsVUFBVSxFQUMxRVMsRUFBVSxpQkFBaUJDLENBQVksRUFDdkMsSUFBTUMsRUFBbUJGLEVBQVUsb0JBQW9CdkIsRUFBYSxRQUFRLEVBRTVFLE9BRGlCLElBQUksY0FBYyxFQUFFLGtCQUFrQnlCLENBQWdCLENBRXpFLENBRUEsU0FBU2YsRUFBWVYsRUFBK0JTLEVBQWtCLENBQ3BFVCxFQUFZLGlCQUFpQixjQUFjLEVBQUUsUUFBUTBCLEdBQWEsQ0ExS3BFLElBQUFDLEVBMktJLElBQUlDLEVBQTRCLEdBRTVCRixFQUFVLGFBQWEsS0FBSyxJQUM5QkUsRUFBTyxPQUVMRixFQUFVLGFBQWEsTUFBTSxJQUMvQkUsRUFBTyxRQUVULElBQU1DLEdBQVlGLEVBQUFELEVBQVUsYUFBYUUsQ0FBSSxJQUEzQixZQUFBRCxFQUE4QixPQUVoRCxHQUFJLENBQUNFLEVBQVUsV0FBVyxPQUFPLEdBQUssQ0FBQ0EsRUFBVSxXQUFXLE1BQU0sRUFBRyxDQUNuRSxJQUFNQyxFQUFjckIsRUFBVyxVQUFVb0IsQ0FBUyxFQUNsREgsRUFBVSxhQUFhRSxFQUFNRSxDQUFXLENBQzFDLENBQ0YsQ0FBQyxDQUNIIiwKICAibmFtZXMiOiBbInF0aVRyYW5zZm9ybUl0ZW0iLCAieG1sRnJhZ21lbnQiLCAiYXBpIiwgInVyaSIsICJyZXNvbHZlIiwgInJlamVjdCIsICJsb2FkWE1MIiwgInhtbCIsICJ4bWxTdHJpbmciLCAicGFyc2VYTUwiLCAibG9jYXRpb24iLCAic2V0TG9jYXRpb24iLCAidG9IVE1MIiwgInF0aVRyYW5zZm9ybVRlc3QiLCAiaXRlbXNGcm9tVGVzdCIsICJ4bWxUb0hUTUwiLCAiaXRlbXMiLCAiZWwiLCAiaWRlbnRpZmllciIsICJocmVmIiwgImNhdGVnb3J5IiwgInVybCIsICJ4aHIiLCAieG1sRG9jdW1lbnQiLCAicHJvY2Vzc29yIiwgInhzbHREb2N1bWVudCIsICJpdGVtSFRNTEZyYWdtZW50IiwgImVsV2l0aFNyYyIsICJfYSIsICJhdHRyIiwgImF0dHJWYWx1ZSIsICJuZXdTcmNWYWx1ZSJdCn0K
|
|
1
|
+
import{d as a,e as b}from"../chunk-DBZBAD4I.js";export{a as qtiTransformItem,b as qtiTransformTest};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFtdLAogICJzb3VyY2VzQ29udGVudCI6IFtdLAogICJtYXBwaW5ncyI6ICIiLAogICJuYW1lcyI6IFtdCn0K
|
package/package.json
CHANGED
|
@@ -10,15 +10,14 @@
|
|
|
10
10
|
"license": "GPLv3",
|
|
11
11
|
"private": false,
|
|
12
12
|
"engines": {
|
|
13
|
-
"node": ">=
|
|
13
|
+
"node": ">=20.0.0"
|
|
14
14
|
},
|
|
15
|
-
"version": "6.7.1-
|
|
15
|
+
"version": "6.7.1-61",
|
|
16
16
|
"type": "module",
|
|
17
17
|
"exports": {
|
|
18
18
|
"./qti-components": "./dist/qti-components/index.js",
|
|
19
19
|
"./qti-transformers": "./dist/qti-transformers/index.js",
|
|
20
|
-
"./item.css": "./dist/item.css"
|
|
21
|
-
"./item.minimal.css": "./dist/item.minimal.css"
|
|
20
|
+
"./item.css": "./dist/item.css"
|
|
22
21
|
},
|
|
23
22
|
"types": "./dist/qti-components/index.d.ts",
|
|
24
23
|
"typesVersions": {
|
|
@@ -34,91 +33,96 @@
|
|
|
34
33
|
"files": [
|
|
35
34
|
"dist",
|
|
36
35
|
"types",
|
|
37
|
-
"./dist/item.css"
|
|
38
|
-
"./dist/item.minimal.css"
|
|
36
|
+
"./dist/item.css"
|
|
39
37
|
],
|
|
40
38
|
"scripts": {
|
|
41
|
-
"test": "
|
|
42
|
-
"test:output": "jest --json --outputFile=.jest-test-results.json",
|
|
43
|
-
"test:watch-output": "jest --watch --json --outputFile=.jest-test-results.json || true",
|
|
39
|
+
"test": "vitest",
|
|
44
40
|
"dev": "vite",
|
|
45
|
-
"build
|
|
41
|
+
"build": "wireit",
|
|
46
42
|
"build-lib": "tsx scripts/build.ts",
|
|
47
43
|
"watch-lib": "nodemon --watch \"src/**\" --ext \"ts,json,css\" --ignore \"src/**/*.spec.ts\" --exec \"tsx scripts/build.ts\" watch",
|
|
48
|
-
"deploy": "firebase deploy --only hosting:qti-components",
|
|
49
44
|
"storybook": "storybook dev -p 6006",
|
|
50
45
|
"storybook:build": "storybook build",
|
|
51
46
|
"storybook:test": "test-storybook",
|
|
52
|
-
"npm publish": "np",
|
|
53
47
|
"cem": "cem analyze --watch",
|
|
54
48
|
"lint": "eslint src/lib/**",
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"update-dependencies": "npx npm-check-updates --peer -u && npm install",
|
|
58
|
-
"arethetypeswrong": "npm run build-lib && attw --pack",
|
|
59
|
-
"----hooks----": "",
|
|
49
|
+
"arethetypeswrong": "wireit",
|
|
50
|
+
"----hooks----": "-",
|
|
60
51
|
"prepublishOnly": "echo 'calling prepublishOnly as npm lifecycle hook to build-lib!' && npm run build-lib",
|
|
61
|
-
"postpublish": "echo 'posthook for prosperity, does nothing for now!'"
|
|
52
|
+
"postpublish": "echo 'posthook for prosperity, does nothing for now!'",
|
|
53
|
+
"test:browser": "vitest --workspace=vitest.workspace.ts"
|
|
54
|
+
},
|
|
55
|
+
"wireit": {
|
|
56
|
+
"build": {
|
|
57
|
+
"command": "tsc"
|
|
58
|
+
},
|
|
59
|
+
"arethetypeswrong": {
|
|
60
|
+
"command": "attw --pack",
|
|
61
|
+
"dependencies": [
|
|
62
|
+
"build-lib"
|
|
63
|
+
]
|
|
64
|
+
}
|
|
62
65
|
},
|
|
63
66
|
"peerDependencies": {
|
|
64
67
|
"@lit/context": "^1.1.0",
|
|
65
|
-
"lit": "^3.1.
|
|
68
|
+
"lit": "^3.1.1"
|
|
66
69
|
},
|
|
67
70
|
"devDependencies": {
|
|
68
|
-
"@
|
|
69
|
-
"
|
|
70
|
-
"@
|
|
71
|
-
"@
|
|
72
|
-
"@
|
|
73
|
-
"@storybook/addon-
|
|
74
|
-
"@storybook/addon-
|
|
75
|
-
"@storybook/addon-
|
|
76
|
-
"@storybook/
|
|
77
|
-
"@storybook/
|
|
78
|
-
"@storybook/
|
|
79
|
-
"@storybook/
|
|
80
|
-
"@storybook/
|
|
81
|
-
"@storybook/
|
|
82
|
-
"@
|
|
83
|
-
"@
|
|
84
|
-
"@
|
|
85
|
-
"@
|
|
86
|
-
"@
|
|
87
|
-
"@
|
|
88
|
-
"@
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
"eslint
|
|
95
|
-
"eslint-plugin-
|
|
71
|
+
"@arethetypeswrong/cli": "^0.15.3",
|
|
72
|
+
"@chromatic-com/storybook": "^1.6.1",
|
|
73
|
+
"@custom-elements-manifest/analyzer": "^0.10.3",
|
|
74
|
+
"@lit/context": "^1.1.2",
|
|
75
|
+
"@storybook/addon-a11y": "^8.2.4",
|
|
76
|
+
"@storybook/addon-essentials": "^8.2.4",
|
|
77
|
+
"@storybook/addon-interactions": "^8.2.4",
|
|
78
|
+
"@storybook/addon-links": "^8.2.4",
|
|
79
|
+
"@storybook/blocks": "^8.2.4",
|
|
80
|
+
"@storybook/preview-api": "^8.2.4",
|
|
81
|
+
"@storybook/test": "^8.2.4",
|
|
82
|
+
"@storybook/test-runner": "^0.19.1",
|
|
83
|
+
"@storybook/web-components": "^8.2.4",
|
|
84
|
+
"@storybook/web-components-vite": "^8.2.4",
|
|
85
|
+
"@testing-library/dom": "^10.3.2",
|
|
86
|
+
"@types/node": "^20.14.11",
|
|
87
|
+
"@typescript-eslint/eslint-plugin": "^7.16.1",
|
|
88
|
+
"@unocss/postcss": "^0.61.5",
|
|
89
|
+
"@unocss/preset-typography": "^0.61.5",
|
|
90
|
+
"@unocss/preset-wind": "^0.61.5",
|
|
91
|
+
"@unocss/reset": "^0.61.5",
|
|
92
|
+
"@unocss/transformer-directives": "^0.61.5",
|
|
93
|
+
"@vitest/browser": "^2.0.3",
|
|
94
|
+
"@wdio/cli": "^8.39.1",
|
|
95
|
+
"autoprefixer": "^10.4.19",
|
|
96
|
+
"custom-element-vs-code-integration": "^1.3.0",
|
|
97
|
+
"eslint": "^8.57.0",
|
|
98
|
+
"eslint-plugin-import": "^2.29.1",
|
|
99
|
+
"eslint-plugin-lit": "^1.14.0",
|
|
100
|
+
"eslint-plugin-lit-a11y": "^4.1.4",
|
|
96
101
|
"eslint-plugin-sort-imports-es6-autofix": "^0.6.0",
|
|
97
|
-
"eslint-plugin-storybook": "^0.
|
|
98
|
-
"eslint-plugin-wc": "^2.0
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"np": "^8.0.4",
|
|
102
|
+
"eslint-plugin-storybook": "^0.8.0",
|
|
103
|
+
"eslint-plugin-wc": "^2.1.0",
|
|
104
|
+
"lit": "^3.1.4",
|
|
105
|
+
"nodemon": "^3.1.4",
|
|
106
|
+
"np": "^10.0.7",
|
|
103
107
|
"path-browserify": "^1.0.1",
|
|
104
|
-
"playwright": "^1.
|
|
105
|
-
"postcss": "^8.4.
|
|
106
|
-
"postcss-import": "^
|
|
107
|
-
"postcss-nesting": "^12.
|
|
108
|
-
"prettier": "3.
|
|
109
|
-
"prettier-plugin-tailwindcss": "^0.5.7",
|
|
110
|
-
"react": "^18.2.0",
|
|
111
|
-
"react-dom": "^18.2.0",
|
|
108
|
+
"playwright": "^1.45.2",
|
|
109
|
+
"postcss": "^8.4.39",
|
|
110
|
+
"postcss-import": "^16.1.0",
|
|
111
|
+
"postcss-nesting": "^12.1.5",
|
|
112
|
+
"prettier": "3.3.3",
|
|
112
113
|
"remark-gfm": "^4.0.0",
|
|
113
|
-
"storybook": "^
|
|
114
|
-
"
|
|
115
|
-
"
|
|
116
|
-
"
|
|
117
|
-
"
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
"
|
|
114
|
+
"storybook": "^8.2.4",
|
|
115
|
+
"tsup": "^8.1.1",
|
|
116
|
+
"tsx": "^4.16.2",
|
|
117
|
+
"typescript": "^5.5.3",
|
|
118
|
+
"unocss": "^0.61.5",
|
|
119
|
+
"vite": "^5.3.4",
|
|
120
|
+
"vite-tsconfig-paths": "^4.3.2",
|
|
121
|
+
"vitest": "^2.0.3",
|
|
122
|
+
"wireit": "^0.14.5"
|
|
123
|
+
},
|
|
124
|
+
"optionalDependencies": {
|
|
125
|
+
"@rollup/rollup-linux-x64-gnu": "^4.18.1"
|
|
122
126
|
},
|
|
123
127
|
"customElements": "custom-elements.json"
|
|
124
128
|
}
|
package/dist/chunk-JILF7TI5.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var j=Object.defineProperty,k=Object.defineProperties,l=Object.getOwnPropertyDescriptor,m=Object.getOwnPropertyDescriptors;var h=Object.getOwnPropertySymbols;var n=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;var i=(c,a,b)=>a in c?j(c,a,{enumerable:!0,configurable:!0,writable:!0,value:b}):c[a]=b,p=(c,a)=>{for(var b in a||(a={}))n.call(a,b)&&i(c,b,a[b]);if(h)for(var b of h(a))o.call(a,b)&&i(c,b,a[b]);return c},q=(c,a)=>k(c,m(a));var r=(c,a,b,e)=>{for(var d=e>1?void 0:e?l(a,b):a,f=c.length-1,g;f>=0;f--)(g=c[f])&&(d=(e?g(a,b,d):g(d))||d);return e&&d&&j(a,b,d),d};export{p as a,q as b,r as c};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFtdLAogICJzb3VyY2VzQ29udGVudCI6IFtdLAogICJtYXBwaW5ncyI6ICIiLAogICJuYW1lcyI6IFtdCn0K
|