mancha 0.23.1 → 0.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +25 -7
  2. package/dist/browser.d.ts +454 -3
  3. package/dist/browser.js +32 -1
  4. package/dist/css_custom.d.ts +1 -1
  5. package/dist/css_custom.js +44 -11
  6. package/dist/css_custom.js.map +1 -1
  7. package/dist/css_gen_utils.d.ts +8 -915
  8. package/dist/css_gen_utils.js +382 -641
  9. package/dist/css_gen_utils.js.map +1 -1
  10. package/dist/mancha.js +25 -36
  11. package/dist/plugins.js +11 -1
  12. package/dist/plugins.js.map +1 -1
  13. package/dist/renderer.js +5 -1
  14. package/dist/renderer.js.map +1 -1
  15. package/dist/store.d.ts +38 -2
  16. package/dist/store.js +215 -35
  17. package/dist/store.js.map +1 -1
  18. package/dist/trusted_attributes.d.ts +0 -3
  19. package/dist/trusted_attributes.js +1 -3
  20. package/dist/trusted_attributes.js.map +1 -1
  21. package/docs/02_initialization.md +2 -2
  22. package/docs/03_reactivity.md +26 -3
  23. package/docs/05_css.md +314 -282
  24. package/package.json +19 -4
  25. package/.biomeignore +0 -3
  26. package/.github/workflows/ci.yml +0 -109
  27. package/.vscode/extensions.json +0 -3
  28. package/.vscode/launch.json +0 -34
  29. package/biome.json +0 -46
  30. package/dist/browser.js.map +0 -1
  31. package/dist/expressions/ast.test.d.ts +0 -1
  32. package/dist/expressions/ast.test.js +0 -147
  33. package/dist/expressions/ast.test.js.map +0 -1
  34. package/dist/expressions/ast_factory.test.d.ts +0 -1
  35. package/dist/expressions/ast_factory.test.js +0 -94
  36. package/dist/expressions/ast_factory.test.js.map +0 -1
  37. package/dist/expressions/constants.test.d.ts +0 -1
  38. package/dist/expressions/constants.test.js +0 -84
  39. package/dist/expressions/constants.test.js.map +0 -1
  40. package/dist/expressions/eval.test.d.ts +0 -1
  41. package/dist/expressions/eval.test.js +0 -215
  42. package/dist/expressions/eval.test.js.map +0 -1
  43. package/dist/expressions/expressions.test.d.ts +0 -6
  44. package/dist/expressions/expressions.test.js +0 -7
  45. package/dist/expressions/expressions.test.js.map +0 -1
  46. package/dist/expressions/parser.test.d.ts +0 -1
  47. package/dist/expressions/parser.test.js +0 -174
  48. package/dist/expressions/parser.test.js.map +0 -1
  49. package/dist/expressions/tokenizer.test.d.ts +0 -1
  50. package/dist/expressions/tokenizer.test.js +0 -124
  51. package/dist/expressions/tokenizer.test.js.map +0 -1
  52. package/dist/interfaces-DhL-_vL-.d.ts +0 -423
  53. package/dist/mancha.js.map +0 -1
  54. package/dist/renderer-1jqgJa7K.js +0 -43
  55. package/dist/safe_browser.d.ts +0 -16
  56. package/dist/safe_browser.js +0 -1
  57. package/dist/safe_browser.js.map +0 -1
  58. package/dist/test_types/api.d.ts +0 -11
  59. package/dist/test_types/api.js +0 -3
  60. package/dist/test_types/api.js.map +0 -1
  61. package/dist/test_types/nested/child.d.ts +0 -12
  62. package/dist/test_types/nested/child.js +0 -2
  63. package/dist/test_types/nested/child.js.map +0 -1
  64. package/dist/test_types/product.d.ts +0 -11
  65. package/dist/test_types/product.js +0 -3
  66. package/dist/test_types/product.js.map +0 -1
  67. package/dist/test_types/user.d.ts +0 -10
  68. package/dist/test_types/user.js +0 -3
  69. package/dist/test_types/user.js.map +0 -1
  70. package/dist/test_utils.d.ts +0 -20
  71. package/dist/test_utils.js +0 -94
  72. package/dist/test_utils.js.map +0 -1
  73. package/global.d.ts +0 -4
  74. package/gulpfile.ts +0 -47
  75. package/scripts/generate-css-docs.ts +0 -582
  76. package/tsconfig.json +0 -37
  77. package/tsdown.config.ts +0 -32
  78. package/tsec_exemptions.json +0 -9
@@ -1 +0,0 @@
1
- import{n as e,t}from"./renderer-1jqgJa7K.js";import{safeDomParser as n}from"safevalues/dom";import{HtmlSanitizerBuilder as r}from"safevalues";const i=`:data,:for,:key,:text,:html,:show,:if,:class,:bind,:render,:on:click,:on:click.prevent,:on:input,:on:input.prevent,:on:change,:on:change.prevent,:on:submit,:on:submit.prevent,:attr:src,:attr:href,:attr:title,:attr:data-testid,:prop:src,:prop:href,:prop:checked,:prop:selected,:prop:disabled`.split(`,`),a=e=>`data-${e.slice(1).replace(`:`,`-`)}`,o=i.map(e=>a(e)),s=[`data-testid`,`data-perfid`],c=[...o,...s];var l=class extends t{impl=`safe_browser`;dirpath=e(globalThis.location?.href??`http://localhost/`);parseHTML(e,t={rootDocument:!1}){for(let t of i)e=e.replace(RegExp(`\\s:${t.slice(1)}=`,`g`),` data-${t.slice(1).replace(`:`,`-`)}=`);e=e.replace(/<include(.*) src="([^"]+)"(.*)><\/include>/g,`<link $1 rel="subresource" href="$2" $3>`),e=e.replace(/<template is="([^"]+)">([\s\S]*)<\/template>/g,`<div role="template" alt="$1">$2</div>`),e=e.replace(/<(\w+)-(\w+)(.*)>([\s\S]*)<\/(\w+)-(\w+)>/g,`<div role="$1-$2" $3>$4</div>`);let a=new r().allowDataAttributes(c).allowClassAttributes().allowStyleAttributes().build();if(this.log(`parseHTML`,e),this.log(`sanitized`,String(a.sanitize(e))),t.rootDocument){let t=new DOMParser;return n.parseFromString(t,a.sanitize(e),`text/html`)}else return a.sanitizeToFragment(e)}serializeHTML(e){return new XMLSerializer().serializeToString(e).replace(/\s?xmlns="[^"]+"/gm,``)}preprocessLocal(e,t){return this.preprocessRemote(e,t)}createElement(e,t){return(t||document).createElement(e)}createComment(e,t){return(t||document).createComment(e)}textContent(e,t){e.textContent=t}};const u=new l;export{u as Mancha,l as Renderer};
@@ -1 +0,0 @@
1
- {"version":3,"file":"safe_browser.js","sourceRoot":"","sources":["../src/safe_browser.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- export interface ApiResponse<T> {
2
- data: T;
3
- status: number;
4
- message: string;
5
- }
6
- export interface PaginatedResponse<T> {
7
- data: T[];
8
- total: number;
9
- page: number;
10
- pageSize: number;
11
- }
@@ -1,3 +0,0 @@
1
- // Test type definitions for type checker import tests
2
- export {};
3
- //# sourceMappingURL=api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/test_types/api.ts"],"names":[],"mappings":"AAAA,sDAAsD"}
@@ -1,12 +0,0 @@
1
- export interface ChildData {
2
- id: number;
3
- name: string;
4
- tags: string[];
5
- }
6
- export interface NestedConfig {
7
- enabled: boolean;
8
- settings: {
9
- theme: string;
10
- count: number;
11
- };
12
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=child.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"child.js","sourceRoot":"","sources":["../../../src/test_types/nested/child.ts"],"names":[],"mappings":""}
@@ -1,11 +0,0 @@
1
- export interface Product {
2
- id: number;
3
- name: string;
4
- price: number;
5
- inStock: boolean;
6
- }
7
- export interface Category {
8
- id: number;
9
- name: string;
10
- products: Product[];
11
- }
@@ -1,3 +0,0 @@
1
- // Test type definitions for type checker import tests
2
- export {};
3
- //# sourceMappingURL=product.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"product.js","sourceRoot":"","sources":["../../src/test_types/product.ts"],"names":[],"mappings":"AAAA,sDAAsD"}
@@ -1,10 +0,0 @@
1
- export interface User {
2
- name: string;
3
- email: string;
4
- age: number;
5
- }
6
- export interface Admin extends User {
7
- role: string;
8
- permissions: string[];
9
- }
10
- export type UserRole = "admin" | "user" | "guest";
@@ -1,3 +0,0 @@
1
- // Test type definitions for type checker import tests
2
- export {};
3
- //# sourceMappingURL=user.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/test_types/user.ts"],"names":[],"mappings":"AAAA,sDAAsD"}
@@ -1,20 +0,0 @@
1
- /** Time to sleep for reactive side effects to complete (1.1x debounce time). */
2
- export declare const REACTIVE_SLEEP_MS: number;
3
- /** Sleep for the reactive debounce period to allow side effects to complete. */
4
- export declare function sleepForReactivity(): Promise<void>;
5
- export declare function innerHTML(elem: Element): string;
6
- export declare function setInnerHTML(elem: Element, html: string): void;
7
- export declare function getTextContent(node: Element | unknown): string | null;
8
- export declare const isNode: boolean;
9
- export declare function setupGlobalTestEnvironment(): Promise<void>;
10
- export declare function createFragment(html: string): DocumentFragment;
11
- export declare const assert: {
12
- equal: (actual: unknown, expected: unknown, message?: string) => void;
13
- deepEqual: (actual: unknown, expected: unknown, message?: string) => void;
14
- notEqual: (actual: unknown, expected: unknown, message?: string) => void;
15
- greaterEqual: (actual: unknown, expected: unknown, message?: string) => void;
16
- ok: (value: unknown, message?: string) => void;
17
- fail: (message?: string) => never;
18
- throws: (fn: () => void, message?: string) => void;
19
- rejects: (p: Promise<unknown>, message?: string) => Promise<void>;
20
- };
@@ -1,94 +0,0 @@
1
- import * as chai from "chai";
2
- import chaiAsPromised from "chai-as-promised";
3
- import { DomUtils } from "htmlparser2";
4
- import { hasProperty } from "./dome.js";
5
- import { REACTIVE_DEBOUNCE_MILLIS } from "./store.js";
6
- /** Time to sleep for reactive side effects to complete (1.1x debounce time). */
7
- export const REACTIVE_SLEEP_MS = Math.ceil(REACTIVE_DEBOUNCE_MILLIS * 1.1);
8
- /** Sleep for the reactive debounce period to allow side effects to complete. */
9
- export function sleepForReactivity() {
10
- return new Promise((resolve) => setTimeout(resolve, REACTIVE_SLEEP_MS));
11
- }
12
- export function innerHTML(elem) {
13
- if (hasProperty(elem, "innerHTML"))
14
- return elem.innerHTML;
15
- else
16
- return DomUtils.getInnerHTML(elem);
17
- }
18
- export function setInnerHTML(elem, html) {
19
- // tsec-disable-next-line
20
- elem.innerHTML = html;
21
- }
22
- // Custom recursive textContent that skips <template> tags for domhandler nodes.
23
- export function getTextContent(node) {
24
- if (hasProperty(node, "textContent"))
25
- return node.textContent;
26
- const n = node;
27
- if (n.type === "text")
28
- return n.data || null;
29
- if (node.type === "tag" && node.name === "template")
30
- return "";
31
- if (node.children)
32
- return node.children?.map(getTextContent).join("") ?? "";
33
- return "";
34
- }
35
- export const isNode = typeof process !== "undefined" && process.versions != null && process.versions.node != null;
36
- export async function setupGlobalTestEnvironment() {
37
- // Set up global test environment for DOM manipulation.
38
- // Fall back to JSDOM for DOM manipulation during testing.
39
- if (!globalThis.window) {
40
- // Import JSDOM dynamically, because it's not available in browser context.
41
- const jsdomName = "jsdom";
42
- const { JSDOM } = await import(jsdomName);
43
- const dom = new JSDOM(``, { url: "http://localhost/" });
44
- // Types.
45
- globalThis.Document = globalThis.Document || dom.window.Document;
46
- globalThis.DocumentFragment = globalThis.DocumentFragment || dom.window.DocumentFragment;
47
- // Objects and Classes.
48
- globalThis.window = globalThis.window || dom.window;
49
- globalThis.document = globalThis.document || dom.window.document;
50
- globalThis.DOMParser = globalThis.DOMParser || dom.window.DOMParser;
51
- globalThis.XMLSerializer = globalThis.XMLSerializer || dom.window.XMLSerializer;
52
- globalThis.PopStateEvent = globalThis.PopStateEvent || dom.window.PopStateEvent;
53
- }
54
- }
55
- export function createFragment(html) {
56
- // Use DOMParser to avoid tsec innerHTML violation and unify Node/Browser behavior.
57
- const parser = new DOMParser();
58
- const doc = parser.parseFromString(html, "text/html");
59
- const fragment = document.createDocumentFragment();
60
- // Move nodes to fragment
61
- while (doc.body.firstChild) {
62
- fragment.appendChild(doc.body.firstChild);
63
- }
64
- return fragment;
65
- }
66
- // Map the assert methods using Chai.
67
- chai.use(chaiAsPromised);
68
- export const assert = {
69
- equal: (actual, expected, message) => {
70
- chai.expect(actual, message).to.equal(expected);
71
- },
72
- deepEqual: (actual, expected, message) => {
73
- chai.expect(actual, message).to.deep.equal(expected);
74
- },
75
- notEqual: (actual, expected, message) => {
76
- chai.expect(actual, message).to.not.equal(expected);
77
- },
78
- greaterEqual: (actual, expected, message) => {
79
- chai.expect(actual, message).to.be.gte(expected);
80
- },
81
- ok: (value, message) => {
82
- chai.expect(value, message).to.be.ok;
83
- },
84
- fail: (message) => {
85
- throw new Error(message);
86
- },
87
- throws: (fn, message) => {
88
- chai.expect(fn, message).to.throw();
89
- },
90
- rejects: async (p, message) => {
91
- await chai.expect(p, message).to.eventually.be.rejected;
92
- },
93
- };
94
- //# sourceMappingURL=test_utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test_utils.js","sourceRoot":"","sources":["../src/test_utils.ts"],"names":[],"mappings":"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"}
package/global.d.ts DELETED
@@ -1,4 +0,0 @@
1
- declare module "*.css" {
2
- const content: string;
3
- export default content;
4
- }
package/gulpfile.ts DELETED
@@ -1,47 +0,0 @@
1
- import { exec } from "node:child_process";
2
- import * as fs from "node:fs/promises";
3
- import GulpClient from "gulp";
4
- import csso from "gulp-csso";
5
-
6
- const execTask = (command: string) => {
7
- return async (done: (err?: Error | null) => void) => {
8
- const { err, stderr, stdout } = await new Promise<{
9
- err: Error | null;
10
- stderr: string;
11
- stdout: string;
12
- }>((resolve) => exec(command, (err, stdout, stderr) => resolve({ err, stderr, stdout })));
13
- if (stdout) console.log(stdout);
14
- if (stderr) console.error(stderr);
15
- done(err);
16
- };
17
- };
18
-
19
- // Clean tasks
20
-
21
- GulpClient.task("clean", (done) =>
22
- fs.rm("dist", { recursive: true, force: true }).then(() => done()),
23
- );
24
-
25
- // Build tasks
26
-
27
- GulpClient.task("ts", execTask("tsec -m NodeNext -p ."));
28
-
29
- GulpClient.task("chmod", (done) => fs.chmod("dist/cli.js", 0o755).then(() => done()));
30
-
31
- GulpClient.task("css", () =>
32
- GulpClient.src("src/**/*.css").pipe(csso()).pipe(GulpClient.dest("dist")),
33
- );
34
-
35
- GulpClient.task("tsdown", execTask("npx tsdown"));
36
-
37
- GulpClient.task("rename:iife", (done) =>
38
- fs.rename("dist/mancha.iife.js", "dist/mancha.js").then(() => done()),
39
- );
40
-
41
- GulpClient.task("fixtures", () =>
42
- GulpClient.src("src/fixtures/**/*").pipe(GulpClient.dest("dist/fixtures")),
43
- );
44
-
45
- GulpClient.task("bundle", GulpClient.series("tsdown", "rename:iife"));
46
- GulpClient.task("build", GulpClient.series("ts", "chmod", "css", "bundle", "fixtures"));
47
- GulpClient.task("default", GulpClient.series("build"));