@pilotiq/pilotiq 0.6.0 → 0.6.2
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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +15 -0
- package/dist/elements/dispatchTable.js +1 -1
- package/dist/elements/dispatchTable.js.map +1 -1
- package/dist/react/RightSidebarContext.d.ts.map +1 -1
- package/dist/react/RightSidebarContext.js +35 -15
- package/dist/react/RightSidebarContext.js.map +1 -1
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +6 -2
- package/dist/routes.js.map +1 -1
- package/dist/schema/Html.d.ts +2 -2
- package/dist/schema/Html.d.ts.map +1 -1
- package/dist/schema/Html.js +2 -2
- package/dist/schema/Html.js.map +1 -1
- package/dist/schema/Markdown.d.ts +2 -2
- package/dist/schema/Markdown.d.ts.map +1 -1
- package/dist/schema/Markdown.js +2 -2
- package/dist/schema/Markdown.js.map +1 -1
- package/dist/schema/sanitize.d.ts +3 -3
- package/dist/schema/sanitize.d.ts.map +1 -1
- package/dist/schema/sanitize.js +10 -3
- package/dist/schema/sanitize.js.map +1 -1
- package/package.json +1 -1
- package/src/elements/dispatchTable.ts +1 -1
- package/src/react/RightSidebarContext.tsx +34 -11
- package/src/routes.ts +6 -2
- package/src/schema/Html.ts +2 -2
- package/src/schema/Markdown.ts +2 -2
- package/src/schema/sanitize.ts +13 -4
package/dist/schema/Html.d.ts
CHANGED
|
@@ -38,11 +38,11 @@ export declare class Html extends Element {
|
|
|
38
38
|
/** Sugar — opt out of the default-secure sanitizer entirely. */
|
|
39
39
|
allowRaw(): this;
|
|
40
40
|
getType(): string;
|
|
41
|
-
toMeta(): {
|
|
41
|
+
toMeta(): Promise<{
|
|
42
42
|
size?: MarkdownProseSize;
|
|
43
43
|
type: "html";
|
|
44
44
|
html: string;
|
|
45
45
|
prose: boolean;
|
|
46
|
-
}
|
|
46
|
+
}>;
|
|
47
47
|
}
|
|
48
48
|
//# sourceMappingURL=Html.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Html.d.ts","sourceRoot":"","sources":["../../src/schema/Html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAEjE;;;;;;;;;;;;;;GAcG;AACH,qBAAa,IAAK,SAAQ,OAAO;IAKX,OAAO,CAAC,IAAI;IAJhC,OAAO,CAAC,MAAM,CAAO;IACrB,OAAO,CAAC,KAAK,CAAC,CAAmB;IACjC,OAAO,CAAC,SAAS,CAAiC;IAElD,OAAO;IAIP,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI/B,8EAA8E;IAC9E,KAAK,CAAC,CAAC,UAAO,GAAG,IAAI;IAErB,yEAAyE;IACzE,IAAI,CAAC,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAEhC;;;;;;OAMG;IACH,QAAQ,CAAC,CAAC,GAAE,OAAO,GAAG,cAAqB,GAAG,IAAI;IAKlD,gEAAgE;IAChE,QAAQ,IAAI,IAAI;IAEhB,OAAO,IAAI,MAAM;
|
|
1
|
+
{"version":3,"file":"Html.d.ts","sourceRoot":"","sources":["../../src/schema/Html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAEjE;;;;;;;;;;;;;;GAcG;AACH,qBAAa,IAAK,SAAQ,OAAO;IAKX,OAAO,CAAC,IAAI;IAJhC,OAAO,CAAC,MAAM,CAAO;IACrB,OAAO,CAAC,KAAK,CAAC,CAAmB;IACjC,OAAO,CAAC,SAAS,CAAiC;IAElD,OAAO;IAIP,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI/B,8EAA8E;IAC9E,KAAK,CAAC,CAAC,UAAO,GAAG,IAAI;IAErB,yEAAyE;IACzE,IAAI,CAAC,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAEhC;;;;;;OAMG;IACH,QAAQ,CAAC,CAAC,GAAE,OAAO,GAAG,cAAqB,GAAG,IAAI;IAKlD,gEAAgE;IAChE,QAAQ,IAAI,IAAI;IAEhB,OAAO,IAAI,MAAM;IAEX,MAAM;;;;;;CAWb"}
|
package/dist/schema/Html.js
CHANGED
|
@@ -45,10 +45,10 @@ export class Html extends Element {
|
|
|
45
45
|
/** Sugar — opt out of the default-secure sanitizer entirely. */
|
|
46
46
|
allowRaw() { this._sanitize = false; return this; }
|
|
47
47
|
getType() { return 'html'; }
|
|
48
|
-
toMeta() {
|
|
48
|
+
async toMeta() {
|
|
49
49
|
const html = this._sanitize === false
|
|
50
50
|
? this.html
|
|
51
|
-
: sanitizeHtml(this.html, this._sanitize === true ? undefined : this._sanitize);
|
|
51
|
+
: await sanitizeHtml(this.html, this._sanitize === true ? undefined : this._sanitize);
|
|
52
52
|
return {
|
|
53
53
|
type: 'html',
|
|
54
54
|
html,
|
package/dist/schema/Html.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Html.js","sourceRoot":"","sources":["../../src/schema/Html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAA;AAEjE;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,IAAK,SAAQ,OAAO;IAKH;IAJpB,MAAM,GAAG,IAAI,CAAA;IACb,KAAK,CAAoB;IACzB,SAAS,GAA6B,IAAI,CAAA;IAElD,YAA4B,IAAY;QACtC,KAAK,EAAE,CAAA;QADmB,SAAI,GAAJ,IAAI,CAAQ;IAExC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAAY;QACtB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,CAAC,GAAG,IAAI,IAAU,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC;IAEtD,yEAAyE;IACzE,IAAI,CAAC,CAAoB,IAAU,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC;IAEhE;;;;;;OAMG;IACH,QAAQ,CAAC,IAA8B,IAAI;QACzC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,gEAAgE;IAChE,QAAQ,KAAW,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC;IAExD,OAAO,KAAa,OAAO,MAAM,CAAA,CAAC,CAAC;IAEnC,MAAM;
|
|
1
|
+
{"version":3,"file":"Html.js","sourceRoot":"","sources":["../../src/schema/Html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAA;AAEjE;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,IAAK,SAAQ,OAAO;IAKH;IAJpB,MAAM,GAAG,IAAI,CAAA;IACb,KAAK,CAAoB;IACzB,SAAS,GAA6B,IAAI,CAAA;IAElD,YAA4B,IAAY;QACtC,KAAK,EAAE,CAAA;QADmB,SAAI,GAAJ,IAAI,CAAQ;IAExC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAAY;QACtB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,CAAC,GAAG,IAAI,IAAU,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC;IAEtD,yEAAyE;IACzE,IAAI,CAAC,CAAoB,IAAU,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC;IAEhE;;;;;;OAMG;IACH,QAAQ,CAAC,IAA8B,IAAI;QACzC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,gEAAgE;IAChE,QAAQ,KAAW,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC;IAExD,OAAO,KAAa,OAAO,MAAM,CAAA,CAAC,CAAC;IAEnC,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,KAAK,KAAK;YACnC,CAAC,CAAC,IAAI,CAAC,IAAI;YACX,CAAC,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACvF,OAAO;YACL,IAAI,EAAG,MAAe;YACtB,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAA;IACH,CAAC;CACF"}
|
|
@@ -47,11 +47,11 @@ export declare class Markdown extends Element {
|
|
|
47
47
|
/** Sugar — opt out of the default-secure sanitizer entirely. */
|
|
48
48
|
allowRaw(): this;
|
|
49
49
|
getType(): string;
|
|
50
|
-
toMeta(): {
|
|
50
|
+
toMeta(): Promise<{
|
|
51
51
|
size?: MarkdownProseSize;
|
|
52
52
|
type: "markdown";
|
|
53
53
|
html: string;
|
|
54
54
|
prose: boolean;
|
|
55
|
-
}
|
|
55
|
+
}>;
|
|
56
56
|
}
|
|
57
57
|
//# sourceMappingURL=Markdown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../src/schema/Markdown.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAEjE,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;AAEpD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,QAAS,SAAQ,OAAO;IAOf,OAAO,CAAC,MAAM;IANlC,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,KAAK,CAAC,CAAoB;IAClC,OAAO,CAAC,SAAS,CAAiC;IAElD,OAAO;IAIP,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IAIrC,gDAAgD;IAChD,GAAG,CAAC,CAAC,UAAO,GAAG,IAAI;IAEnB,kEAAkE;IAClE,MAAM,CAAC,CAAC,UAAO,GAAG,IAAI;IAEtB;wEACoE;IACpE,KAAK,CAAC,CAAC,UAAO,GAAG,IAAI;IAErB,yEAAyE;IACzE,IAAI,CAAC,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAEhC;;;;;;OAMG;IACH,QAAQ,CAAC,CAAC,GAAE,OAAO,GAAG,cAAqB,GAAG,IAAI;IAKlD,gEAAgE;IAChE,QAAQ,IAAI,IAAI;IAEhB,OAAO,IAAI,MAAM;
|
|
1
|
+
{"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../src/schema/Markdown.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAEjE,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;AAEpD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,QAAS,SAAQ,OAAO;IAOf,OAAO,CAAC,MAAM;IANlC,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,KAAK,CAAC,CAAoB;IAClC,OAAO,CAAC,SAAS,CAAiC;IAElD,OAAO;IAIP,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IAIrC,gDAAgD;IAChD,GAAG,CAAC,CAAC,UAAO,GAAG,IAAI;IAEnB,kEAAkE;IAClE,MAAM,CAAC,CAAC,UAAO,GAAG,IAAI;IAEtB;wEACoE;IACpE,KAAK,CAAC,CAAC,UAAO,GAAG,IAAI;IAErB,yEAAyE;IACzE,IAAI,CAAC,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAEhC;;;;;;OAMG;IACH,QAAQ,CAAC,CAAC,GAAE,OAAO,GAAG,cAAqB,GAAG,IAAI;IAKlD,gEAAgE;IAChE,QAAQ,IAAI,IAAI;IAEhB,OAAO,IAAI,MAAM;IAEX,MAAM;;;;;;CAgBb"}
|
package/dist/schema/Markdown.js
CHANGED
|
@@ -55,7 +55,7 @@ export class Markdown extends Element {
|
|
|
55
55
|
/** Sugar — opt out of the default-secure sanitizer entirely. */
|
|
56
56
|
allowRaw() { this._sanitize = false; return this; }
|
|
57
57
|
getType() { return 'markdown'; }
|
|
58
|
-
toMeta() {
|
|
58
|
+
async toMeta() {
|
|
59
59
|
const html = marked.parse(this.source, {
|
|
60
60
|
gfm: this._gfm,
|
|
61
61
|
breaks: this._breaks,
|
|
@@ -63,7 +63,7 @@ export class Markdown extends Element {
|
|
|
63
63
|
});
|
|
64
64
|
const finalHtml = this._sanitize === false
|
|
65
65
|
? html
|
|
66
|
-
: sanitizeHtml(html, this._sanitize === true ? undefined : this._sanitize);
|
|
66
|
+
: await sanitizeHtml(html, this._sanitize === true ? undefined : this._sanitize);
|
|
67
67
|
return {
|
|
68
68
|
type: 'markdown',
|
|
69
69
|
html: finalHtml,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../src/schema/Markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAA;AAIjE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,QAAS,SAAQ,OAAO;IAOP;IANpB,IAAI,GAAM,IAAI,CAAA;IACd,OAAO,GAAG,KAAK,CAAA;IACf,MAAM,GAAI,IAAI,CAAA;IACd,KAAK,CAAqB;IAC1B,SAAS,GAA6B,IAAI,CAAA;IAElD,YAA4B,MAAc;QACxC,KAAK,EAAE,CAAA;QADmB,WAAM,GAAN,MAAM,CAAQ;IAE1C,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,MAAc;QACxB,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED,gDAAgD;IAChD,GAAG,CAAC,CAAC,GAAG,IAAI,IAAU,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC;IAElD,kEAAkE;IAClE,MAAM,CAAC,CAAC,GAAG,IAAI,IAAU,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC;IAExD;wEACoE;IACpE,KAAK,CAAC,CAAC,GAAG,IAAI,IAAU,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC;IAEtD,yEAAyE;IACzE,IAAI,CAAC,CAAoB,IAAU,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC;IAEhE;;;;;;OAMG;IACH,QAAQ,CAAC,IAA8B,IAAI;QACzC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,gEAAgE;IAChE,QAAQ,KAAW,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC;IAExD,OAAO,KAAa,OAAO,UAAU,CAAA,CAAC,CAAC;IAEvC,MAAM;
|
|
1
|
+
{"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../src/schema/Markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAA;AAIjE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,QAAS,SAAQ,OAAO;IAOP;IANpB,IAAI,GAAM,IAAI,CAAA;IACd,OAAO,GAAG,KAAK,CAAA;IACf,MAAM,GAAI,IAAI,CAAA;IACd,KAAK,CAAqB;IAC1B,SAAS,GAA6B,IAAI,CAAA;IAElD,YAA4B,MAAc;QACxC,KAAK,EAAE,CAAA;QADmB,WAAM,GAAN,MAAM,CAAQ;IAE1C,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,MAAc;QACxB,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED,gDAAgD;IAChD,GAAG,CAAC,CAAC,GAAG,IAAI,IAAU,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC;IAElD,kEAAkE;IAClE,MAAM,CAAC,CAAC,GAAG,IAAI,IAAU,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC;IAExD;wEACoE;IACpE,KAAK,CAAC,CAAC,GAAG,IAAI,IAAU,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC;IAEtD,yEAAyE;IACzE,IAAI,CAAC,CAAoB,IAAU,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC;IAEhE;;;;;;OAMG;IACH,QAAQ,CAAC,IAA8B,IAAI;QACzC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,gEAAgE;IAChE,QAAQ,KAAW,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC;IAExD,OAAO,KAAa,OAAO,UAAU,CAAA,CAAC,CAAC;IAEvC,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;YACrC,GAAG,EAAK,IAAI,CAAC,IAAI;YACjB,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,KAAK,EAAG,KAAK;SACd,CAAW,CAAA;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,KAAK;YACxC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAClF,OAAO;YACL,IAAI,EAAG,UAAmB;YAC1B,IAAI,EAAG,SAAS;YAChB,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAA;IACH,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
export type SanitizeConfig =
|
|
1
|
+
import type sanitizeHtmlNs from 'sanitize-html';
|
|
2
|
+
export type SanitizeConfig = sanitizeHtmlNs.IOptions;
|
|
3
3
|
/**
|
|
4
4
|
* Default-secure allowlist for `Markdown` and `Html` primes — covers prose
|
|
5
5
|
* content (headings, lists, code, links, images, tables) while blocking
|
|
@@ -17,5 +17,5 @@ export declare const DEFAULT_SANITIZE_CONFIG: SanitizeConfig;
|
|
|
17
17
|
* caller-supplied config). Server-side only — never call from a renderer,
|
|
18
18
|
* since the wire shape ships pre-rendered HTML.
|
|
19
19
|
*/
|
|
20
|
-
export declare function sanitizeHtml(html: string, config?: SanitizeConfig): string
|
|
20
|
+
export declare function sanitizeHtml(html: string, config?: SanitizeConfig): Promise<string>;
|
|
21
21
|
//# sourceMappingURL=sanitize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/schema/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/schema/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,eAAe,CAAA;AAE/C,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAA;AAEpD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAwBrC,CAAA;AAUD;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAGzF"}
|
package/dist/schema/sanitize.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import sanitizeHtmlLib from 'sanitize-html';
|
|
2
1
|
/**
|
|
3
2
|
* Default-secure allowlist for `Markdown` and `Html` primes — covers prose
|
|
4
3
|
* content (headings, lists, code, links, images, tables) while blocking
|
|
@@ -35,12 +34,20 @@ export const DEFAULT_SANITIZE_CONFIG = {
|
|
|
35
34
|
allowProtocolRelative: false,
|
|
36
35
|
disallowedTagsMode: 'discard',
|
|
37
36
|
};
|
|
37
|
+
// Lazy import — keeps `sanitize-html` (and its transitive `postcss` chain that
|
|
38
|
+
// reaches into Node built-ins) out of the client bundle. Cached after first
|
|
39
|
+
// resolve so per-call overhead is just the `sanitize-html` invocation itself.
|
|
40
|
+
let sanitizerPromise = null;
|
|
41
|
+
function loadSanitizer() {
|
|
42
|
+
return sanitizerPromise ??= import('sanitize-html').then(m => m.default ?? m);
|
|
43
|
+
}
|
|
38
44
|
/**
|
|
39
45
|
* Sanitizes an HTML string against `DEFAULT_SANITIZE_CONFIG` (or a
|
|
40
46
|
* caller-supplied config). Server-side only — never call from a renderer,
|
|
41
47
|
* since the wire shape ships pre-rendered HTML.
|
|
42
48
|
*/
|
|
43
|
-
export function sanitizeHtml(html, config) {
|
|
44
|
-
|
|
49
|
+
export async function sanitizeHtml(html, config) {
|
|
50
|
+
const sanitizer = await loadSanitizer();
|
|
51
|
+
return sanitizer(html, config ?? DEFAULT_SANITIZE_CONFIG);
|
|
45
52
|
}
|
|
46
53
|
//# sourceMappingURL=sanitize.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/schema/sanitize.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/schema/sanitize.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,WAAW,EAAE;QACX,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK;QAC9B,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM;QACxD,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;QACpC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAClC,IAAI,EAAE,IAAI,EAAE,IAAI;QAChB,YAAY,EAAE,KAAK,EAAE,MAAM;QAC3B,GAAG,EAAE,KAAK;QACV,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS;KAChE;IACD,iBAAiB,EAAE;QACjB,CAAC,EAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;QAChD,GAAG,EAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;QAChD,IAAI,EAAE,CAAC,OAAO,CAAC;QACf,EAAE,EAAI,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;QACrC,EAAE,EAAI,CAAC,SAAS,EAAE,SAAS,CAAC;QAC5B,IAAI,EAAE,CAAC,OAAO,CAAC;QACf,GAAG,EAAG,CAAC,OAAO,CAAC;KAChB;IACD,cAAc,EAAS,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC;IACzD,mBAAmB,EAAI,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;IACzD,qBAAqB,EAAE,KAAK;IAC5B,kBAAkB,EAAK,SAAS;CACjC,CAAA;AAED,+EAA+E;AAC/E,4EAA4E;AAC5E,8EAA8E;AAC9E,IAAI,gBAAgB,GAA0C,IAAI,CAAA;AAClE,SAAS,aAAa;IACpB,OAAO,gBAAgB,KAAK,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAA;AAC/E,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY,EAAE,MAAuB;IACtE,MAAM,SAAS,GAAG,MAAM,aAAa,EAAE,CAAA;IACvC,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,IAAI,uBAAuB,CAAC,CAAA;AAC3D,CAAC"}
|
package/package.json
CHANGED
|
@@ -419,7 +419,7 @@ export async function loadTableRecords(
|
|
|
419
419
|
const sanitizeOpt = col.getSanitize()
|
|
420
420
|
const finalHtml = sanitizeOpt === false
|
|
421
421
|
? html
|
|
422
|
-
: sanitizeHtml(html, sanitizeOpt === true ? undefined : sanitizeOpt)
|
|
422
|
+
: await sanitizeHtml(html, sanitizeOpt === true ? undefined : sanitizeOpt)
|
|
423
423
|
formatted[col.name] = finalHtml
|
|
424
424
|
rich[col.name] = true
|
|
425
425
|
}
|
|
@@ -93,20 +93,43 @@ export function RightSidebarProvider({ meta, basePath, children }: RightSidebarP
|
|
|
93
93
|
|
|
94
94
|
const fallbackId = meta.panels[0]?.id ?? null
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
const [
|
|
103
|
-
|
|
104
|
-
|
|
96
|
+
// SSR-safety: initialise to closed / fallback / default-width so the
|
|
97
|
+
// server-rendered tree matches a fresh client (no localStorage). The
|
|
98
|
+
// useEffect below rehydrates from localStorage AFTER mount, avoiding a
|
|
99
|
+
// hydration mismatch warning every time a returning user reloads with
|
|
100
|
+
// the panel previously open. Brief closed→open flash is acceptable and
|
|
101
|
+
// identical to first-visit behaviour.
|
|
102
|
+
const [open, setOpenState] = useState<boolean>(false)
|
|
103
|
+
const [activeId, setActiveIdState] = useState<string | null>(fallbackId)
|
|
104
|
+
const [width, setWidthState] = useState<number>(() =>
|
|
105
|
+
clampPanelWidth(meta.defaultWidth, {
|
|
105
106
|
min: meta.minWidth,
|
|
106
107
|
max: meta.maxWidth,
|
|
107
108
|
defaultWidth: meta.defaultWidth,
|
|
108
|
-
})
|
|
109
|
-
|
|
109
|
+
}),
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
useEffect(() => {
|
|
113
|
+
if (typeof window === 'undefined') return
|
|
114
|
+
const storedOpen = readBool(openKey, false)
|
|
115
|
+
setOpenState(storedOpen)
|
|
116
|
+
const storedActive = readString(activeKey)
|
|
117
|
+
if (storedActive && meta.panels.some(p => p.id === storedActive)) {
|
|
118
|
+
setActiveIdState(storedActive)
|
|
119
|
+
}
|
|
120
|
+
const storedWidth = readString(widthKey)
|
|
121
|
+
if (storedWidth !== null) {
|
|
122
|
+
setWidthState(clampPanelWidth(storedWidth, {
|
|
123
|
+
min: meta.minWidth,
|
|
124
|
+
max: meta.maxWidth,
|
|
125
|
+
defaultWidth: meta.defaultWidth,
|
|
126
|
+
}))
|
|
127
|
+
}
|
|
128
|
+
// Run once on mount per basePath. Width / activeId / open keys are
|
|
129
|
+
// basePath-derived, so the dependency list is effectively static for
|
|
130
|
+
// a given panel — no stale-closure risk on subsequent renders.
|
|
131
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
132
|
+
}, [basePath])
|
|
110
133
|
|
|
111
134
|
// Re-validate `activeId` when the contribution set changes (e.g.,
|
|
112
135
|
// canAccess gating flipped after a route nav). If the stored id has
|
package/src/routes.ts
CHANGED
|
@@ -556,7 +556,10 @@ async function handleUploadRequest(
|
|
|
556
556
|
}
|
|
557
557
|
}
|
|
558
558
|
|
|
559
|
-
// Server-side resize via @rudderjs/image (optional peer dep)
|
|
559
|
+
// Server-side resize via @rudderjs/image (optional peer dep). Variable-
|
|
560
|
+
// string `import(name)` keeps Vite's static import-analysis from trying
|
|
561
|
+
// to pre-resolve the module on host apps that don't have @rudderjs/image
|
|
562
|
+
// installed — same pattern as `notifications/database.ts` for `@rudderjs/orm`.
|
|
560
563
|
const resizeWidthStr = typeof body['resize_width'] === 'string' ? body['resize_width'] : ''
|
|
561
564
|
const resizeHeightStr = typeof body['resize_height'] === 'string' ? body['resize_height'] : ''
|
|
562
565
|
let uploadFile: File = file
|
|
@@ -565,8 +568,9 @@ async function handleUploadRequest(
|
|
|
565
568
|
const h = Number(resizeHeightStr)
|
|
566
569
|
if (Number.isFinite(w) && w > 0 && Number.isFinite(h) && h > 0) {
|
|
567
570
|
try {
|
|
571
|
+
const imageModuleName = '@rudderjs/image'
|
|
568
572
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
569
|
-
const pkg = await import(
|
|
573
|
+
const pkg = await import(/* @vite-ignore */ imageModuleName) as { image: (input: unknown) => { resize(w: number, h: number): { format(f: string): { toBuffer(): Promise<Buffer> } } } }
|
|
570
574
|
const buf = await pkg.image(file).resize(w, h).format('webp').toBuffer()
|
|
571
575
|
const baseName = file.name.replace(/\.[^.]+$/, '')
|
|
572
576
|
uploadFile = new File([buf.buffer as ArrayBuffer], `${baseName}.webp`, { type: 'image/webp' })
|
package/src/schema/Html.ts
CHANGED
|
@@ -53,10 +53,10 @@ export class Html extends Element {
|
|
|
53
53
|
|
|
54
54
|
getType(): string { return 'html' }
|
|
55
55
|
|
|
56
|
-
toMeta() {
|
|
56
|
+
async toMeta() {
|
|
57
57
|
const html = this._sanitize === false
|
|
58
58
|
? this.html
|
|
59
|
-
: sanitizeHtml(this.html, this._sanitize === true ? undefined : this._sanitize)
|
|
59
|
+
: await sanitizeHtml(this.html, this._sanitize === true ? undefined : this._sanitize)
|
|
60
60
|
return {
|
|
61
61
|
type: 'html' as const,
|
|
62
62
|
html,
|
package/src/schema/Markdown.ts
CHANGED
|
@@ -66,7 +66,7 @@ export class Markdown extends Element {
|
|
|
66
66
|
|
|
67
67
|
getType(): string { return 'markdown' }
|
|
68
68
|
|
|
69
|
-
toMeta() {
|
|
69
|
+
async toMeta() {
|
|
70
70
|
const html = marked.parse(this.source, {
|
|
71
71
|
gfm: this._gfm,
|
|
72
72
|
breaks: this._breaks,
|
|
@@ -74,7 +74,7 @@ export class Markdown extends Element {
|
|
|
74
74
|
}) as string
|
|
75
75
|
const finalHtml = this._sanitize === false
|
|
76
76
|
? html
|
|
77
|
-
: sanitizeHtml(html, this._sanitize === true ? undefined : this._sanitize)
|
|
77
|
+
: await sanitizeHtml(html, this._sanitize === true ? undefined : this._sanitize)
|
|
78
78
|
return {
|
|
79
79
|
type: 'markdown' as const,
|
|
80
80
|
html: finalHtml,
|
package/src/schema/sanitize.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type sanitizeHtmlNs from 'sanitize-html'
|
|
2
2
|
|
|
3
|
-
export type SanitizeConfig =
|
|
3
|
+
export type SanitizeConfig = sanitizeHtmlNs.IOptions
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Default-secure allowlist for `Markdown` and `Html` primes — covers prose
|
|
@@ -39,11 +39,20 @@ export const DEFAULT_SANITIZE_CONFIG: SanitizeConfig = {
|
|
|
39
39
|
disallowedTagsMode: 'discard',
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
// Lazy import — keeps `sanitize-html` (and its transitive `postcss` chain that
|
|
43
|
+
// reaches into Node built-ins) out of the client bundle. Cached after first
|
|
44
|
+
// resolve so per-call overhead is just the `sanitize-html` invocation itself.
|
|
45
|
+
let sanitizerPromise: Promise<typeof sanitizeHtmlNs> | null = null
|
|
46
|
+
function loadSanitizer(): Promise<typeof sanitizeHtmlNs> {
|
|
47
|
+
return sanitizerPromise ??= import('sanitize-html').then(m => m.default ?? m)
|
|
48
|
+
}
|
|
49
|
+
|
|
42
50
|
/**
|
|
43
51
|
* Sanitizes an HTML string against `DEFAULT_SANITIZE_CONFIG` (or a
|
|
44
52
|
* caller-supplied config). Server-side only — never call from a renderer,
|
|
45
53
|
* since the wire shape ships pre-rendered HTML.
|
|
46
54
|
*/
|
|
47
|
-
export function sanitizeHtml(html: string, config?: SanitizeConfig): string {
|
|
48
|
-
|
|
55
|
+
export async function sanitizeHtml(html: string, config?: SanitizeConfig): Promise<string> {
|
|
56
|
+
const sanitizer = await loadSanitizer()
|
|
57
|
+
return sanitizer(html, config ?? DEFAULT_SANITIZE_CONFIG)
|
|
49
58
|
}
|