@citolab/qti-components 6.7.1-5 → 6.7.1-51

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.
@@ -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: any): Promise<any>;
19
- parse(xmlString: any): any;
20
- path: (location: string) => any;
21
- html(): string;
22
- xml(): string;
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: any): Promise<any>;
36
- items(): {
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(): string;
42
- xml(): string;
132
+ html: () => string;
133
+ xml: () => string;
134
+ htmldoc: () => DocumentFragment;
135
+ xmldoc: () => XMLDocument;
43
136
  };
44
137
 
45
138
  export { qtiTransformItem, qtiTransformTest };
@@ -1,5 +1,4 @@
1
- import"../chunk-JILF7TI5.js";var p=()=>{let r,n={async load(e){return new Promise((t,s)=>{m(e).then(o=>(r=o,t(n)))})},parse(e){return r=u(e),n},path:e=>(x(r,e),n),html(){return a(r)},xml(){return new XMLSerializer().serializeToString(r)}};return n},g=()=>{let r,n={async load(e){return new Promise((t,s)=>{m(e).then(o=>(r=o,t(n)))})},items(){return c(r)},html(){return a(r)},xml(){return new XMLSerializer().serializeToString(r)}};return n},i=`
2
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
1
+ import"../chunk-JILF7TI5.js";var g=String.raw,L=()=>{let e,r={async load(t,s=!1){return new Promise((n,o)=>{u(t,s).then(i=>(e=i,n(r)))})},parse(t){return e=p(t),r},path:t=>(h(e,t),r),fn(t){return t(e),r},pciHooks(t){let s=["hook","module"],n=t.substring(0,t.lastIndexOf("/"));for(let o of s)e.querySelectorAll("["+o+"]").forEach(l=>{let a=l.getAttribute(o);!a.startsWith("data:")&&!a.startsWith("http")&&(l.setAttribute("base-url",t),l.setAttribute("module",n+"/"+encodeURIComponent(a+(a.endsWith(".js")?"":".js"))))});return r},convertCDATAtoComment(){return d(e),r},stripStyleSheets(){return y(e),r},html(){return new XMLSerializer().serializeToString(m(e))},xml(){return new XMLSerializer().serializeToString(e)},htmldoc(){return m(e)},xmldoc(){return e}};return r},M=()=>{let e,r={async load(t){return new Promise((s,n)=>{u(t).then(o=>(e=o,s(r)))})},parse(t){return e=p(t),r},fn(t){return t(e),r},items(){return x(e)},html(){return new XMLSerializer().serializeToString(m(e))},xml(){return new XMLSerializer().serializeToString(e)},htmldoc(){return m(e)},xmldoc(){return e}};return r},f=g`<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3
2
  <xsl:output method="html" version="5.0" encoding="UTF-8" indent="yes" />
4
3
  <xsl:template match="@*|node()">
5
4
  <xsl:copy>
@@ -7,18 +6,6 @@ import"../chunk-JILF7TI5.js";var p=()=>{let r,n={async load(e){return new Promis
7
6
  </xsl:copy>
8
7
  </xsl:template>
9
8
 
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
9
  <!-- remove existing namespaces -->
23
10
  <xsl:template match="*">
24
11
  <!-- remove element prefix -->
@@ -33,5 +20,5 @@ import"../chunk-JILF7TI5.js";var p=()=>{let r,n={async load(e){return new Promis
33
20
  <xsl:apply-templates/>
34
21
  </xsl:element>
35
22
  </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
23
+ </xsl:stylesheet>`;function x(e){let r=[];return e.querySelectorAll("qti-assessment-item-ref").forEach(t=>{let s=t.getAttribute("identifier"),n=t.getAttribute("href"),o=t.getAttribute("category");r.push({identifier:s,href:n,category:o})}),r}var c=null;function u(e,r=!0){return r&&c!==null&&c.abort(),new Promise((t,s)=>{let n=new XMLHttpRequest;c=n,n.open("GET",e,!0),n.responseType="document",n.onload=()=>{n.status>=200&&n.status<300?t(n.responseXML):s(n.statusText)},n.onerror=()=>{s(n.statusText)},n.send()})}function p(e){return new DOMParser().parseFromString(e,"text/xml")}function m(e){let r=new XSLTProcessor,t=new DOMParser().parseFromString(f,"text/xml");return r.importStylesheet(t),r.transformToFragment(e,document)}function h(e,r){r.endsWith("/")||(r+="/"),e.querySelectorAll("[src],[href]").forEach(t=>{var o;let s="";t.getAttribute("src")&&(s="src"),t.getAttribute("href")&&(s="href");let n=(o=t.getAttribute(s))==null?void 0:o.trim();if(!n.startsWith("data:")&&!n.startsWith("http")){let i=r+encodeURI(n);t.setAttribute(s,i)}})}function d(e){e.querySelectorAll('qti-custom-operator[class="js.org"] > qti-base-value').forEach(t=>{let s=document.createComment(t.textContent);t.replaceChild(s,t.firstChild)})}function y(e){e.querySelectorAll("qti-stylesheet").forEach(r=>r.remove())}export{L as qtiTransformItem,M as qtiTransformTest};
24
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2xpYi9xdGktdHJhbnNmb3JtZXJzL3F0aS10cmFuc2Zvcm1lcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IHhtbCA9IFN0cmluZy5yYXc7XG5cbi8qKlxuICogQnJvd3NlciBiYXNlZCBRVEktWE1MIHRvIEhUTUwgdHJhbnNmb3JtZXIuXG4gKiBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIG1ldGhvZHMgdG8gbG9hZCwgcGFyc2UsIHRyYW5zZm9ybSBhbmQgc2VyaWFsaXplIFFUSSBYTUwgaXRlbXMuXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBtZXRob2RzIHRvIGxvYWQsIHBhcnNlLCB0cmFuc2Zvcm0gYW5kIHNlcmlhbGl6ZSBRVEkgWE1MIGl0ZW1zLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHF0aVRyYW5zZm9ybWVyID0gcXRpVHJhbnNmb3JtSXRlbSgpO1xuICogYXdhaXQgcXRpVHJhbnNmb3JtZXIubG9hZCgncGF0aC90by94bWwvZmlsZS54bWwnKTtcbiAqIHF0aVRyYW5zZm9ybWVyLnBhdGgoJy9hc3Nlc3NtZW50SXRlbS9pdGVtQm9keScpO1xuICogY29uc3QgaHRtbCA9IHF0aVRyYW5zZm9ybWVyLmh0bWwoKTtcbiAqIGNvbnN0IHhtbCA9IHF0aVRyYW5zZm9ybWVyLnhtbCgpO1xuICogY29uc3QgaHRtbGRvYyA9IHF0aVRyYW5zZm9ybWVyLmh0bWxkb2MoKTtcbiAqIGNvbnN0IHhtbGRvYyA9IHF0aVRyYW5zZm9ybWVyLnhtbGRvYygpO1xuICpcbiAqIHF0aVRyYW5zZm9ybUl0ZW0oKS5wYXJzZShzdG9yeVhNTCkuaHRtbCgpXG4gKi9cblxuZXhwb3J0IGNvbnN0IHF0aVRyYW5zZm9ybUl0ZW0gPSAoKToge1xuICBsb2FkOiAodXJpOiBzdHJpbmcsIGNhbmNlbFByZXZpb3VzUmVxdWVzdD86IGJvb2xlYW4pID0+IFByb21pc2U8dHlwZW9mIGFwaT47XG4gIHBhcnNlOiAoeG1sU3RyaW5nOiBzdHJpbmcpID0+IHR5cGVvZiBhcGk7XG4gIHBhdGg6IChsb2NhdGlvbjogc3RyaW5nKSA9PiB0eXBlb2YgYXBpO1xuICBmbjogKGZuOiAoeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50KSA9PiB2b2lkKSA9PiB0eXBlb2YgYXBpO1xuICBodG1sOiAoKSA9PiBzdHJpbmc7XG4gIHhtbDogKCkgPT4gc3RyaW5nO1xuICBodG1sZG9jOiAoKSA9PiBEb2N1bWVudEZyYWdtZW50O1xuICB4bWxkb2M6ICgpID0+IFhNTERvY3VtZW50O1xufSA9PiB7XG4gIGxldCB4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQ7XG5cbiAgY29uc3QgYXBpID0ge1xuICAgIGFzeW5jIGxvYWQodXJpOiBzdHJpbmcsIGNhbmNlbFByZXZpb3VzUmVxdWVzdCA9IGZhbHNlKSB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8dHlwZW9mIGFwaT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBsb2FkWE1MKHVyaSwgY2FuY2VsUHJldmlvdXNSZXF1ZXN0KS50aGVuKHhtbCA9PiB7XG4gICAgICAgICAgeG1sRnJhZ21lbnQgPSB4bWw7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoYXBpKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIHBhcnNlKHhtbFN0cmluZzogc3RyaW5nKSB7XG4gICAgICB4bWxGcmFnbWVudCA9IHBhcnNlWE1MKHhtbFN0cmluZyk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgcGF0aDogKGxvY2F0aW9uOiBzdHJpbmcpID0+IHtcbiAgICAgIHNldExvY2F0aW9uKHhtbEZyYWdtZW50LCBsb2NhdGlvbik7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgZm4oZm46ICh4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQpID0+IHZvaWQpIHtcbiAgICAgIGZuKHhtbEZyYWdtZW50KTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBwY2lIb29rcyh1cmk6IHN0cmluZykge1xuICAgICAgY29uc3QgYXR0cmlidXRlcyA9IFsnaG9vaycsICdtb2R1bGUnXTtcbiAgICAgIGNvbnN0IGRvY3VtZW50UGF0aCA9IHVyaS5zdWJzdHJpbmcoMCwgdXJpLmxhc3RJbmRleE9mKCcvJykpO1xuICAgICAgZm9yIChjb25zdCBhdHRyaWJ1dGUgb2YgYXR0cmlidXRlcykge1xuICAgICAgICBjb25zdCBzcmNBdHRyaWJ1dGVzID0geG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgnWycgKyBhdHRyaWJ1dGUgKyAnXScpO1xuICAgICAgICBzcmNBdHRyaWJ1dGVzLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3JjVmFsdWUgPSBub2RlLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpITtcbiAgICAgICAgICBpZiAoIXNyY1ZhbHVlLnN0YXJ0c1dpdGgoJ2RhdGE6JykgJiYgIXNyY1ZhbHVlLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgICAgLy8gSnVzdCBwYXN0ZSB0aGUgcmVsYXRpdmUgcGF0aCBvZiB0aGUgc3JjIGxvY2F0aW9uIGFmdGVyIHRoZSBkb2N1bWVudHJvb3RQYXRoXG4gICAgICAgICAgICAvLyBvbGQgcGNpcyBjYW4gaGF2ZSBhIC5qcywgbmV3IHBjaSdzIGRvbid0XG4gICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZSgnYmFzZS11cmwnLCB1cmkpO1xuICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICdtb2R1bGUnLFxuICAgICAgICAgICAgICBkb2N1bWVudFBhdGggKyAnLycgKyBlbmNvZGVVUklDb21wb25lbnQoc3JjVmFsdWUgKyAoc3JjVmFsdWUuZW5kc1dpdGgoJy5qcycpID8gJycgOiAnLmpzJykpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgY29udmVydENEQVRBdG9Db21tZW50KCkge1xuICAgICAgY29udmVydENEQVRBdG9Db21tZW50KHhtbEZyYWdtZW50KTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBzdHJpcFN0eWxlU2hlZXRzKCkge1xuICAgICAgc3RyaXBTdHlsZVNoZWV0cyh4bWxGcmFnbWVudCk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgaHRtbCgpIHtcbiAgICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHRvSFRNTCh4bWxGcmFnbWVudCkpO1xuICAgIH0sXG4gICAgeG1sKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyh4bWxGcmFnbWVudCk7XG4gICAgfSxcbiAgICBodG1sZG9jKCkge1xuICAgICAgcmV0dXJuIHRvSFRNTCh4bWxGcmFnbWVudCk7XG4gICAgfSxcbiAgICB4bWxkb2MoKTogWE1MRG9jdW1lbnQge1xuICAgICAgcmV0dXJuIHhtbEZyYWdtZW50OyAvLyBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHhtbEZyYWdtZW50KTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBhcGk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYW4gb2JqZWN0IHdpdGggbWV0aG9kcyB0byBsb2FkLCBwYXJzZSBhbmQgdHJhbnNmb3JtIFFUSSB0ZXN0cy5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIG1ldGhvZHMgdG8gbG9hZCwgcGFyc2UgYW5kIHRyYW5zZm9ybSBRVEkgdGVzdHMuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcXRpVHJhbnNmb3JtZXIgPSBxdGlUcmFuc2Zvcm1UZXN0KCk7XG4gKiBhd2FpdCBxdGlUcmFuc2Zvcm1lci5sb2FkKCdodHRwczovL2V4YW1wbGUuY29tL3Rlc3QueG1sJyk7XG4gKiBjb25zdCBpdGVtcyA9IHF0aVRyYW5zZm9ybWVyLml0ZW1zKCk7XG4gKiBjb25zdCBodG1sID0gcXRpVHJhbnNmb3JtZXIuaHRtbCgpO1xuICogY29uc3QgeG1sID0gcXRpVHJhbnNmb3JtZXIueG1sKCk7XG4gKi9cbmV4cG9ydCBjb25zdCBxdGlUcmFuc2Zvcm1UZXN0ID0gKCk6IHtcbiAgbG9hZDogKHVyaTogc3RyaW5nKSA9PiBQcm9taXNlPHR5cGVvZiBhcGk+O1xuICBwYXJzZTogKHhtbFN0cmluZzogc3RyaW5nKSA9PiB0eXBlb2YgYXBpO1xuICBmbjogKGZuOiAoeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50KSA9PiB2b2lkKSA9PiB0eXBlb2YgYXBpO1xuICBpdGVtczogKCkgPT4geyBpZGVudGlmaWVyOiBzdHJpbmc7IGhyZWY6IHN0cmluZzsgY2F0ZWdvcnk6IHN0cmluZyB9W107XG4gIGh0bWw6ICgpID0+IHN0cmluZztcbiAgeG1sOiAoKSA9PiBzdHJpbmc7XG4gIGh0bWxkb2M6ICgpID0+IERvY3VtZW50RnJhZ21lbnQ7XG4gIHhtbGRvYzogKCkgPT4gWE1MRG9jdW1lbnQ7XG59ID0+IHtcbiAgbGV0IHhtbEZyYWdtZW50OiBYTUxEb2N1bWVudDtcblxuICBjb25zdCBhcGkgPSB7XG4gICAgYXN5bmMgbG9hZCh1cmkpIHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx0eXBlb2YgYXBpPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxvYWRYTUwodXJpKS50aGVuKHhtbCA9PiB7XG4gICAgICAgICAgeG1sRnJhZ21lbnQgPSB4bWw7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoYXBpKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIHBhcnNlKHhtbFN0cmluZzogc3RyaW5nKSB7XG4gICAgICB4bWxGcmFnbWVudCA9IHBhcnNlWE1MKHhtbFN0cmluZyk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgZm4oZm46ICh4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQpID0+IHZvaWQpIHtcbiAgICAgIGZuKHhtbEZyYWdtZW50KTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBpdGVtcygpIHtcbiAgICAgIHJldHVybiBpdGVtc0Zyb21UZXN0KHhtbEZyYWdtZW50KTtcbiAgICB9LFxuICAgIGh0bWwoKSB7XG4gICAgICByZXR1cm4gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyh0b0hUTUwoeG1sRnJhZ21lbnQpKTtcbiAgICB9LFxuICAgIHhtbCgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoeG1sRnJhZ21lbnQpO1xuICAgIH0sXG4gICAgaHRtbGRvYygpIHtcbiAgICAgIHJldHVybiB0b0hUTUwoeG1sRnJhZ21lbnQpO1xuICAgIH0sXG4gICAgeG1sZG9jKCk6IFhNTERvY3VtZW50IHtcbiAgICAgIHJldHVybiB4bWxGcmFnbWVudDtcbiAgICB9XG4gIH07XG4gIHJldHVybiBhcGk7XG59O1xuXG4vKiAgIDwhLS0gY29udmVydCBDREFUQSB0byBjb21tZW50cyAtLT5cbiAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD1cInRleHQoKVtjb250YWlucyguLCAnQ0RBVEEnKV1cIj5cbiAgPHhzbDpjb21tZW50PlxuICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PVwiLlwiLz5cbiAgPC94c2w6Y29tbWVudD5cbjwveHNsOnRlbXBsYXRlPlxuKi9cblxuLypcbiAgPCEtLSByZW1vdmUgeG1sIGNvbW1lbnRzIC0tPlxuICA8eHNsOnRlbXBsYXRlIG1hdGNoPVwiY29tbWVudCgpXCIgLz5cbiAgKi9cblxuY29uc3QgeG1sVG9IVE1MID0geG1sYDx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPVwiMS4wXCIgeG1sbnM6eHNsPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtXCI+XG48eHNsOm91dHB1dCBtZXRob2Q9XCJodG1sXCIgdmVyc2lvbj1cIjUuMFwiIGVuY29kaW5nPVwiVVRGLThcIiBpbmRlbnQ9XCJ5ZXNcIiAvPlxuICA8eHNsOnRlbXBsYXRlIG1hdGNoPVwiQCp8bm9kZSgpXCI+XG4gICAgPHhzbDpjb3B5PlxuICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PVwiQCp8bm9kZSgpXCIvPlxuICAgIDwveHNsOmNvcHk+XG4gIDwveHNsOnRlbXBsYXRlPlxuXG4gIDwhLS0gcmVtb3ZlIGV4aXN0aW5nIG5hbWVzcGFjZXMgLS0+XG4gIDx4c2w6dGVtcGxhdGUgbWF0Y2g9XCIqXCI+XG4gICAgPCEtLSByZW1vdmUgZWxlbWVudCBwcmVmaXggLS0+XG4gICAgPHhzbDplbGVtZW50IG5hbWU9XCJ7bG9jYWwtbmFtZSgpfVwiPlxuICAgICAgPCEtLSBwcm9jZXNzIGF0dHJpYnV0ZXMgLS0+XG4gICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD1cIkAqXCI+XG4gICAgICAgIDwhLS0gcmVtb3ZlIGF0dHJpYnV0ZSBwcmVmaXggLS0+XG4gICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9XCJ7bG9jYWwtbmFtZSgpfVwiPlxuICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PVwiLlwiLz5cbiAgICAgICAgPC94c2w6YXR0cmlidXRlPlxuICAgICAgPC94c2w6Zm9yLWVhY2g+XG4gICAgPHhzbDphcHBseS10ZW1wbGF0ZXMvPlxuICA8L3hzbDplbGVtZW50PlxuPC94c2w6dGVtcGxhdGU+XG48L3hzbDpzdHlsZXNoZWV0PmA7XG5cbmZ1bmN0aW9uIGl0ZW1zRnJvbVRlc3QoeG1sRnJhZ21lbnQ6IERvY3VtZW50RnJhZ21lbnQpIHtcbiAgY29uc3QgaXRlbXM6IHsgaWRlbnRpZmllcjogc3RyaW5nOyBocmVmOiBzdHJpbmc7IGNhdGVnb3J5OiBzdHJpbmcgfVtdID0gW107XG4gIHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3F0aS1hc3Nlc3NtZW50LWl0ZW0tcmVmJykuZm9yRWFjaChlbCA9PiB7XG4gICAgY29uc3QgaWRlbnRpZmllciA9IGVsLmdldEF0dHJpYnV0ZSgnaWRlbnRpZmllcicpO1xuICAgIGNvbnN0IGhyZWYgPSBlbC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTtcbiAgICBjb25zdCBjYXRlZ29yeSA9IGVsLmdldEF0dHJpYnV0ZSgnY2F0ZWdvcnknKTtcbiAgICBpdGVtcy5wdXNoKHsgaWRlbnRpZmllciwgaHJlZiwgY2F0ZWdvcnkgfSk7XG4gIH0pO1xuICByZXR1cm4gaXRlbXM7XG59XG5cbmxldCBjdXJyZW50UmVxdWVzdDogWE1MSHR0cFJlcXVlc3QgfCBudWxsID0gbnVsbDtcblxuZnVuY3Rpb24gbG9hZFhNTCh1cmwsIGNhbmNlbFByZXZpb3VzUmVxdWVzdCA9IHRydWUpIHtcbiAgaWYgKGNhbmNlbFByZXZpb3VzUmVxdWVzdCAmJiBjdXJyZW50UmVxdWVzdCAhPT0gbnVsbCkge1xuICAgIGN1cnJlbnRSZXF1ZXN0LmFib3J0KCk7IC8vIEFib3J0IHRoZSBvbmdvaW5nIHJlcXVlc3QgaWYgdGhlcmUgaXMgb25lXG4gIH1cblxuICByZXR1cm4gbmV3IFByb21pc2U8WE1MRG9jdW1lbnQgfCBudWxsPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgY3VycmVudFJlcXVlc3QgPSB4aHI7IC8vIFN0b3JlIHRoZSBjdXJyZW50IHJlcXVlc3RcblxuICAgIHhoci5vcGVuKCdHRVQnLCB1cmwsIHRydWUpO1xuICAgIHhoci5yZXNwb25zZVR5cGUgPSAnZG9jdW1lbnQnO1xuXG4gICAgeGhyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgIGlmICh4aHIuc3RhdHVzID49IDIwMCAmJiB4aHIuc3RhdHVzIDwgMzAwKSB7XG4gICAgICAgIHJlc29sdmUoeGhyLnJlc3BvbnNlWE1MKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlamVjdCh4aHIuc3RhdHVzVGV4dCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHhoci5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgcmVqZWN0KHhoci5zdGF0dXNUZXh0KTtcbiAgICB9O1xuXG4gICAgeGhyLnNlbmQoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlWE1MKHhtbERvY3VtZW50OiBzdHJpbmcpIHtcbiAgY29uc3QgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuICBjb25zdCB4bWxGcmFnbWVudCA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoeG1sRG9jdW1lbnQsICd0ZXh0L3htbCcpO1xuICByZXR1cm4geG1sRnJhZ21lbnQ7XG59XG5cbmZ1bmN0aW9uIHRvSFRNTCh4bWxGcmFnbWVudDogRG9jdW1lbnQpOiBEb2N1bWVudEZyYWdtZW50IHtcbiAgY29uc3QgcHJvY2Vzc29yID0gbmV3IFhTTFRQcm9jZXNzb3IoKTtcbiAgY29uc3QgeHNsdERvY3VtZW50ID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyh4bWxUb0hUTUwsICd0ZXh0L3htbCcpO1xuICBwcm9jZXNzb3IuaW1wb3J0U3R5bGVzaGVldCh4c2x0RG9jdW1lbnQpO1xuICBjb25zdCBpdGVtSFRNTEZyYWdtZW50ID0gcHJvY2Vzc29yLnRyYW5zZm9ybVRvRnJhZ21lbnQoeG1sRnJhZ21lbnQsIGRvY3VtZW50KTtcbiAgcmV0dXJuIGl0ZW1IVE1MRnJhZ21lbnQ7XG59XG5cbmZ1bmN0aW9uIHNldExvY2F0aW9uKHhtbEZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50LCBsb2NhdGlvbjogc3RyaW5nKSB7XG4gIGlmICghbG9jYXRpb24uZW5kc1dpdGgoJy8nKSkge1xuICAgIGxvY2F0aW9uICs9ICcvJztcbiAgfVxuXG4gIHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tzcmNdLFtocmVmXScpLmZvckVhY2goZWxXaXRoU3JjID0+IHtcbiAgICBsZXQgYXR0cjogJ3NyYycgfCAnaHJlZicgfCAnJyA9ICcnO1xuXG4gICAgaWYgKGVsV2l0aFNyYy5nZXRBdHRyaWJ1dGUoJ3NyYycpKSB7XG4gICAgICBhdHRyID0gJ3NyYyc7XG4gICAgfVxuICAgIGlmIChlbFdpdGhTcmMuZ2V0QXR0cmlidXRlKCdocmVmJykpIHtcbiAgICAgIGF0dHIgPSAnaHJlZic7XG4gICAgfVxuICAgIGNvbnN0IGF0dHJWYWx1ZSA9IGVsV2l0aFNyYy5nZXRBdHRyaWJ1dGUoYXR0cik/LnRyaW0oKTtcblxuICAgIGlmICghYXR0clZhbHVlLnN0YXJ0c1dpdGgoJ2RhdGE6JykgJiYgIWF0dHJWYWx1ZS5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgIGNvbnN0IG5ld1NyY1ZhbHVlID0gbG9jYXRpb24gKyBlbmNvZGVVUkkoYXR0clZhbHVlKTtcbiAgICAgIGVsV2l0aFNyYy5zZXRBdHRyaWJ1dGUoYXR0ciwgbmV3U3JjVmFsdWUpO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRDREFUQXRvQ29tbWVudCh4bWxGcmFnbWVudDogRG9jdW1lbnRGcmFnbWVudCkge1xuICBjb25zdCBjZGF0YUVsZW1lbnRzID0geG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgncXRpLWN1c3RvbS1vcGVyYXRvcltjbGFzcz1cImpzLm9yZ1wiXSA+IHF0aS1iYXNlLXZhbHVlJyk7XG4gIGNkYXRhRWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb21tZW50VGV4dCA9IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoZWxlbWVudC50ZXh0Q29udGVudCk7XG4gICAgZWxlbWVudC5yZXBsYWNlQ2hpbGQoY29tbWVudFRleHQsIGVsZW1lbnQuZmlyc3RDaGlsZCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzdHJpcFN0eWxlU2hlZXRzKHhtbEZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50KSB7XG4gIC8vIHJlbW92ZSBxdGktc3R5bGVzaGVldCB0YWdcbiAgeG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgncXRpLXN0eWxlc2hlZXQnKS5mb3JFYWNoKHN0eWxlc2hlZXQgPT4gc3R5bGVzaGVldC5yZW1vdmUoKSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiNkJBQUEsSUFBTUEsRUFBTSxPQUFPLElBa0JOQyxFQUFtQixJ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Y0FBYyxFQUFFLFFBQVFrQyxHQUFhLENBMVBwRSxJQUFBQyxFQTJQSSxJQUFJQyxFQUE0QixHQUU1QkYsRUFBVSxhQUFhLEtBQUssSUFDOUJFLEVBQU8sT0FFTEYsRUFBVSxhQUFhLE1BQU0sSUFDL0JFLEVBQU8sUUFFVCxJQUFNQyxHQUFZRixFQUFBRCxFQUFVLGFBQWFFLENBQUksSUFBM0IsWUFBQUQsRUFBOEIsT0FFaEQsR0FBSSxDQUFDRSxFQUFVLFdBQVcsT0FBTyxHQUFLLENBQUNBLEVBQVUsV0FBVyxNQUFNLEVBQUcsQ0FDbkUsSUFBTUMsRUFBYzdCLEVBQVcsVUFBVTRCLENBQVMsRUFDbERILEVBQVUsYUFBYUUsRUFBTUUsQ0FBVyxDQUMxQyxDQUNGLENBQUMsQ0FDSCxDQUVBLFNBQVNyQixFQUFzQmpCLEVBQStCLENBQ3RDQSxFQUFZLGlCQUFpQixzREFBc0QsRUFDM0YsUUFBUXVDLEdBQVcsQ0FDL0IsSUFBTUMsRUFBYyxTQUFTLGNBQWNELEVBQVEsV0FBVyxFQUM5REEsRUFBUSxhQUFhQyxFQUFhRCxFQUFRLFVBQVUsQ0FDdEQsQ0FBQyxDQUNILENBRUEsU0FBU3JCLEVBQWlCbEIsRUFBK0IsQ0FFdkRBLEVBQVksaUJBQWlCLGdCQUFnQixFQUFFLFFBQVF5QyxHQUFjQSxFQUFXLE9BQU8sQ0FBQyxDQUMxRiIsCiAgIm5hbWVzIjogWyJ4bWwiLCAicXRpVHJhbnNmb3JtSXRlbSIsICJ4bWxGcmFnbWVudCIsICJhcGkiLCAidXJpIiwgImNhbmNlbFByZXZpb3VzUmVxdWVzdCIsICJyZXNvbHZlIiwgInJlamVjdCIsICJsb2FkWE1MIiwgInhtbFN0cmluZyIsICJwYXJzZVhNTCIsICJsb2NhdGlvbiIsICJzZXRMb2NhdGlvbiIsICJmbiIsICJhdHRyaWJ1dGVzIiwgImRvY3VtZW50UGF0aCIsICJhdHRyaWJ1dGUiLCAibm9kZSIsICJzcmNWYWx1ZSIsICJjb252ZXJ0Q0RBVEF0b0NvbW1lbnQiLCAic3RyaXBTdHlsZVNoZWV0cyIsICJ0b0hUTUwiLCAicXRpVHJhbnNmb3JtVGVzdCIsICJpdGVtc0Zyb21UZXN0IiwgInhtbFRvSFRNTCIsICJpdGVtcyIsICJlbCIsICJpZGVudGlmaWVyIiwgImhyZWYiLCAiY2F0ZWdvcnkiLCAiY3VycmVudFJlcXVlc3QiLCAidXJsIiwgInhociIsICJ4bWxEb2N1bWVudCIsICJwcm9jZXNzb3IiLCAieHNsdERvY3VtZW50IiwgImVsV2l0aFNyYyIsICJfYSIsICJhdHRyIiwgImF0dHJWYWx1ZSIsICJuZXdTcmNWYWx1ZSIsICJlbGVtZW50IiwgImNvbW1lbnRUZXh0IiwgInN0eWxlc2hlZXQiXQp9Cg==
package/package.json CHANGED
@@ -10,15 +10,14 @@
10
10
  "license": "GPLv3",
11
11
  "private": false,
12
12
  "engines": {
13
- "node": ">=16.0.0"
13
+ "node": ">=20.0.0"
14
14
  },
15
- "version": "6.7.1-5",
15
+ "version": "6.7.1-51",
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,95 @@
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": "jest",
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",
40
+ "test-browser": "vitest --browser.name=chrome",
44
41
  "dev": "vite",
45
- "build-app": "tsc && vite build",
42
+ "build": "wireit",
46
43
  "build-lib": "tsx scripts/build.ts",
47
44
  "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
45
  "storybook": "storybook dev -p 6006",
50
46
  "storybook:build": "storybook build",
51
47
  "storybook:test": "test-storybook",
52
- "npm publish": "np",
53
48
  "cem": "cem analyze --watch",
54
49
  "lint": "eslint src/lib/**",
55
- "kill 6006": "sudo lsof -i :6006 | grep LISTEN | awk '{print $2}' | xargs kill",
56
- "list-outdated-dependencies": "npx npm-check-updates --format repo --peer",
57
- "update-dependencies": "npx npm-check-updates --peer -u && npm install",
58
- "arethetypeswrong": "npm run build-lib && attw --pack",
59
- "----hooks----": "",
50
+ "arethetypeswrong": "wireit",
51
+ "----hooks----": "-",
60
52
  "prepublishOnly": "echo 'calling prepublishOnly as npm lifecycle hook to build-lib!' && npm run build-lib",
61
53
  "postpublish": "echo 'posthook for prosperity, does nothing for now!'"
62
54
  },
55
+ "wireit": {
56
+ "build": {
57
+ "command": "tsc"
58
+ },
59
+ "arethetypeswrong": {
60
+ "command": "attw --pack",
61
+ "dependencies": [
62
+ "build-lib"
63
+ ]
64
+ }
65
+ },
63
66
  "peerDependencies": {
64
67
  "@lit/context": "^1.1.0",
65
- "lit": "^3.1.0"
68
+ "lit": "^3.1.1"
66
69
  },
67
70
  "devDependencies": {
68
- "@lit/context": "^1.1.0",
69
- "lit": "^3.1.0",
70
- "@arethetypeswrong/cli": "^0.13.2",
71
- "@custom-elements-manifest/analyzer": "^0.9.0",
72
- "@jest/globals": "^29.7.0",
73
- "@storybook/addon-a11y": "^7.6.4",
74
- "@storybook/addon-essentials": "^7.6.4",
75
- "@storybook/addon-interactions": "^7.6.4",
76
- "@storybook/addon-jest": "^7.6.4",
77
- "@storybook/addon-links": "^7.6.4",
78
- "@storybook/blocks": "^7.6.4",
79
- "@storybook/jest": "^0.2.3",
80
- "@storybook/preview-api": "^7.6.4",
81
- "@storybook/test-runner": "^0.16.0",
82
- "@storybook/testing-library": "^0.2.2",
83
- "@storybook/web-components": "^7.6.4",
84
- "@storybook/web-components-vite": "^7.6.4",
85
- "@tailwindcss/nesting": "^0.0.0-insiders.565cd3e",
86
- "@tailwindcss/typography": "^0.5.10",
87
- "@types/node": "^20.9.2",
88
- "@typescript-eslint/eslint-plugin": "^6.11.0",
89
- "autoprefixer": "^10.4.16",
90
- "custom-element-vs-code-integration": "^1.2.1",
91
- "eslint": "^8.54.0",
92
- "eslint-plugin-import": "^2.29.0",
93
- "eslint-plugin-jest": "^27.6.0",
94
- "eslint-plugin-lit": "^1.10.1",
95
- "eslint-plugin-lit-a11y": "^4.1.1",
71
+ "@arethetypeswrong/cli": "^0.15.3",
72
+ "@chromatic-com/storybook": "^1.3.3",
73
+ "@custom-elements-manifest/analyzer": "^0.9.8",
74
+ "@lit/context": "^1.1.1",
75
+ "@storybook/addon-a11y": "^8.0.10",
76
+ "@storybook/addon-essentials": "^8.0.10",
77
+ "@storybook/addon-interactions": "^8.0.10",
78
+ "@storybook/addon-links": "^8.0.10",
79
+ "@storybook/blocks": "^8.0.10",
80
+ "@storybook/preview-api": "^8.0.10",
81
+ "@storybook/test": "^8.0.10",
82
+ "@storybook/test-runner": "^0.17.0",
83
+ "@storybook/web-components": "^8.0.10",
84
+ "@storybook/web-components-vite": "^8.0.10",
85
+ "@types/node": "^20.12.10",
86
+ "@typescript-eslint/eslint-plugin": "^7.8.0",
87
+ "@unocss/postcss": "^0.59.4",
88
+ "@unocss/preset-typography": "^0.59.4",
89
+ "@unocss/preset-wind": "^0.59.4",
90
+ "@unocss/reset": "^0.59.4",
91
+ "@unocss/transformer-directives": "^0.59.4",
92
+ "@vitest/browser": "^1.6.0",
93
+ "@wdio/cli": "^8.36.1",
94
+ "autoprefixer": "^10.4.19",
95
+ "custom-element-vs-code-integration": "^1.2.3",
96
+ "eslint": "^8.57.0",
97
+ "eslint-plugin-import": "^2.29.1",
98
+ "eslint-plugin-lit": "^1.11.0",
99
+ "eslint-plugin-lit-a11y": "^4.1.2",
96
100
  "eslint-plugin-sort-imports-es6-autofix": "^0.6.0",
97
- "eslint-plugin-storybook": "^0.6.15",
98
- "eslint-plugin-wc": "^2.0.4",
99
- "jest-environment-jsdom": "^29.7.0",
100
- "lit-xml": "^0.6.0",
101
- "nodemon": "^3.0.1",
102
- "np": "^8.0.4",
101
+ "eslint-plugin-storybook": "^0.8.0",
102
+ "eslint-plugin-wc": "^2.1.0",
103
+ "lit": "^3.1.3",
104
+ "nodemon": "^3.1.0",
105
+ "np": "^10.0.5",
103
106
  "path-browserify": "^1.0.1",
104
- "playwright": "^1.40.0",
105
- "postcss": "^8.4.31",
106
- "postcss-import": "^15.1.0",
107
- "postcss-nesting": "^12.0.1",
108
- "prettier": "3.1.0",
109
- "prettier-plugin-tailwindcss": "^0.5.7",
110
- "react": "^18.2.0",
111
- "react-dom": "^18.2.0",
107
+ "playwright": "^1.44.0",
108
+ "postcss": "^8.4.38",
109
+ "postcss-import": "^16.1.0",
110
+ "postcss-nesting": "^12.1.2",
111
+ "prettier": "3.2.5",
112
112
  "remark-gfm": "^4.0.0",
113
- "storybook": "^7.6.4",
114
- "tailwindcss": "^3.3.2",
115
- "ts-jest": "^29.1.1",
116
- "ts-node": "^10.9.1",
117
- "tsup": "^8.0.0",
118
- "tsx": "^4.6.2",
119
- "typescript": "^5.2.2",
120
- "vite": "^5.0.7",
121
- "vite-tsconfig-paths": "^4.2.1"
113
+ "storybook": "^8.0.10",
114
+ "tsup": "^8.0.2",
115
+ "tsx": "^4.9.3",
116
+ "typescript": "^5.4.5",
117
+ "unocss": "^0.59.4",
118
+ "vite": "^5.2.11",
119
+ "vite-tsconfig-paths": "^4.3.2",
120
+ "vitest": "^1.6.0",
121
+ "wireit": "^0.14.4"
122
+ },
123
+ "optionalDependencies": {
124
+ "@rollup/rollup-linux-x64-gnu": "^4.17.2"
122
125
  },
123
126
  "customElements": "custom-elements.json"
124
127
  }