@master/css-binding 0.0.0-site.1793659883.g69c9aebcf628

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 (66) hide show
  1. package/artifacts/mastercss.node +0 -0
  2. package/artifacts/mcss +0 -0
  3. package/dist/binding-options.d.ts +14 -0
  4. package/dist/binding-options.js +15 -0
  5. package/dist/binding.d.ts +12 -0
  6. package/dist/binding.js +23 -0
  7. package/dist/browser.d.ts +3 -0
  8. package/dist/browser.js +3 -0
  9. package/dist/compiler-binding-adapter.js +55 -0
  10. package/dist/compiler-binding-browser.d.ts +6 -0
  11. package/dist/compiler-binding-browser.js +24 -0
  12. package/dist/compiler-binding-contract.d.ts +45 -0
  13. package/dist/compiler-binding-node.d.ts +5 -0
  14. package/dist/compiler-binding-node.js +20 -0
  15. package/dist/compiler-binding-wasm.js +58 -0
  16. package/dist/compiler-binding.d.ts +6 -0
  17. package/dist/compiler-binding.js +42 -0
  18. package/dist/compiler.js +52 -0
  19. package/dist/engine-binding-adapter.js +61 -0
  20. package/dist/engine-binding-browser.d.ts +8 -0
  21. package/dist/engine-binding-browser.js +35 -0
  22. package/dist/engine-binding-js.js +81 -0
  23. package/dist/engine-binding-node.d.ts +9 -0
  24. package/dist/engine-binding-node.js +38 -0
  25. package/dist/engine-binding-wasm.js +64 -0
  26. package/dist/engine-binding.d.ts +40 -0
  27. package/dist/engine-binding.js +57 -0
  28. package/dist/engine-contract.d.ts +14 -0
  29. package/dist/engine-js/src/animation.js +154 -0
  30. package/dist/engine-js/src/apply.js +207 -0
  31. package/dist/engine-js/src/class-syntax.js +333 -0
  32. package/dist/engine-js/src/condition.js +440 -0
  33. package/dist/engine-js/src/css-syntax.js +247 -0
  34. package/dist/engine-js/src/generate.js +288 -0
  35. package/dist/engine-js/src/mixin.js +328 -0
  36. package/dist/engine-js/src/native-properties.js +5 -0
  37. package/dist/engine-js/src/order.js +97 -0
  38. package/dist/engine-js/src/program-model.js +19 -0
  39. package/dist/engine-js/src/program.js +434 -0
  40. package/dist/engine-js/src/selector.js +195 -0
  41. package/dist/engine-js/src/session.js +540 -0
  42. package/dist/engine-js/src/state.js +62 -0
  43. package/dist/engine-js/src/text.js +51 -0
  44. package/dist/engine-js/src/utility.js +236 -0
  45. package/dist/engine-js/src/value.js +254 -0
  46. package/dist/engine.js +86 -0
  47. package/dist/errors.js +10 -0
  48. package/dist/index.d.ts +4 -0
  49. package/dist/index.js +3 -0
  50. package/dist/native-loader.js +134 -0
  51. package/dist/normalize-error.js +63 -0
  52. package/dist/protocol.d.ts +1119 -0
  53. package/dist/protocol.js +14 -0
  54. package/dist/tooling-binding-adapter.js +23 -0
  55. package/dist/tooling-binding-browser.d.ts +5 -0
  56. package/dist/tooling-binding-browser.js +15 -0
  57. package/dist/tooling-binding-contract.d.ts +92 -0
  58. package/dist/tooling-binding-native.js +46 -0
  59. package/dist/tooling-binding-node.d.ts +4 -0
  60. package/dist/tooling-binding-node.js +11 -0
  61. package/dist/tooling-binding-wasm.js +127 -0
  62. package/dist/tooling-binding.d.ts +5 -0
  63. package/dist/tooling-binding.js +21 -0
  64. package/dist/tooling.js +144 -0
  65. package/dist/version.js +3 -0
  66. package/package.json +78 -0
@@ -0,0 +1,14 @@
1
+ // src/protocol.ts
2
+ const MASTER_CSS_BINDING_ABI_VERSION = 32;
3
+ const MASTER_CSS_LANGUAGE_VERSION = 18;
4
+ const MASTER_CSS_MANIFEST_VERSION = 6;
5
+ const MASTER_CSS_PROGRAM_VERSION = 3;
6
+ const MASTER_CSS_HYDRATION_MANIFEST_VERSION = 5;
7
+ const MASTER_CSS_ENGINE_TRANSITION_VERSION = 5;
8
+ const MASTER_CSS_VALIDATOR_BATCH_VERSION = 4;
9
+ const MASTER_CSS_DIAGNOSTICS_REPORT_VERSION = 5;
10
+ const MASTER_CSS_LINT_BATCH_VERSION = 4;
11
+ const MASTER_CSS_LANGUAGE_BATCH_VERSION = 8;
12
+ const MASTER_CSS_LEXER_BATCH_VERSION = 1;
13
+ const MASTER_CSS_SOURCE_BATCH_VERSION = 2;
14
+ export { MASTER_CSS_BINDING_ABI_VERSION, MASTER_CSS_DIAGNOSTICS_REPORT_VERSION, MASTER_CSS_ENGINE_TRANSITION_VERSION, MASTER_CSS_HYDRATION_MANIFEST_VERSION, MASTER_CSS_LANGUAGE_BATCH_VERSION, MASTER_CSS_LANGUAGE_VERSION, MASTER_CSS_LEXER_BATCH_VERSION, MASTER_CSS_LINT_BATCH_VERSION, MASTER_CSS_MANIFEST_VERSION, MASTER_CSS_PROGRAM_VERSION, MASTER_CSS_SOURCE_BATCH_VERSION, MASTER_CSS_VALIDATOR_BATCH_VERSION };
@@ -0,0 +1,23 @@
1
+ import { callBinding } from "./normalize-error.js";
2
+ // src/tooling-binding-adapter.ts
3
+ function sourceText(args) {
4
+ for (const value of args) {
5
+ if (!value || typeof value !== "object") continue;
6
+ if ("content" in value && typeof value.content === "string") return value.content;
7
+ if ("text" in value && typeof value.text === "string") return value.text;
8
+ }
9
+ }
10
+ function protectToolingSession(session) {
11
+ const protectedSession = Object.create(Object.getPrototypeOf(session));
12
+ for (const property of Reflect.ownKeys(session)) {
13
+ const value = Reflect.get(session, property);
14
+ Object.defineProperty(protectedSession, property, {
15
+ configurable: false,
16
+ enumerable: Object.prototype.propertyIsEnumerable.call(session, property),
17
+ writable: false,
18
+ value: typeof value === "function" ? (...args) => callBinding("tooling", () => Reflect.apply(value, session, args), sourceText(args)) : value
19
+ });
20
+ }
21
+ return Object.freeze(protectedSession);
22
+ }
23
+ export { protectToolingSession };
@@ -0,0 +1,5 @@
1
+ import { MASTER_CSS_LANGUAGE_BATCH_VERSION, MASTER_CSS_LANGUAGE_VERSION, MASTER_CSS_LEXER_BATCH_VERSION, MASTER_CSS_LINT_BATCH_VERSION, MASTER_CSS_SOURCE_BATCH_VERSION, MASTER_CSS_VALIDATOR_BATCH_VERSION, MasterCSSBrowserSupport, MasterCSSClassSuggestions, MasterCSSDesignSystemCollision, MasterCSSDesignSystemComponent, MasterCSSDesignSystemDiagnostic, MasterCSSDesignSystemReport, MasterCSSDesignSystemRequest, MasterCSSDesignSystemStylesheet, MasterCSSDesignTokenMetadata, MasterCSSDiagnostic, MasterCSSEngineSnapshot, MasterCSSEngineTransition, MasterCSSLanguageClassifications, MasterCSSLanguageInspection, MasterCSSLanguageTokenFamilies, MasterCSSLexerBatch, MasterCSSLexerBatchRequest, MasterCSSLexerCSSAnalysis, MasterCSSLexerClassListInput, MasterCSSLexerClassListItem, MasterCSSLintBatch, MasterCSSLintCanonicalClassGroupSuggestions, MasterCSSLintCanonicalClassSuggestions, MasterCSSLintRawValueCandidates, MasterCSSMatchStatus, MasterCSSNativeDeclarationCandidate, MasterCSSScannerSourceInput, MasterCSSScannerSourceOptions, MasterCSSScannerState, MasterCSSScannerUpdate, MasterCSSSourceBatch, MasterCSSSourceBatchRequest, MasterCSSSourceExtractorKind, MasterCSSSourceOccurrence, MasterCSSSourceRange, MasterCSSStylesheetAncestor, MasterCSSStylesheetTokenReference, MasterCSSSyntaxStatus, MasterCSSTokenFamily, MasterCSSValidatorBatch, MasterCSSValueStatus } from "./protocol.js";
2
+ import { MasterCSSBindingLoadOptions, MasterCSSNativeBindingLoadOptions, MasterCSSWasmBindingLoadOptions } from "./binding-options.js";
3
+ import { MasterCSSLanguageBindingSession, MasterCSSLexerBindingSession, MasterCSSLintBindingSession, MasterCSSScannerBindingSession, MasterCSSSourceBindingSession, MasterCSSToolingBinding, MasterCSSToolingBindingSession, MasterCSSValidatorBindingSession } from "./tooling-binding-contract.js";
4
+ declare function createToolingBinding(options?: MasterCSSBindingLoadOptions): Promise<MasterCSSToolingBinding>;
5
+ export { MASTER_CSS_LANGUAGE_BATCH_VERSION, MASTER_CSS_LANGUAGE_VERSION, MASTER_CSS_LEXER_BATCH_VERSION, MASTER_CSS_LINT_BATCH_VERSION, MASTER_CSS_SOURCE_BATCH_VERSION, MASTER_CSS_VALIDATOR_BATCH_VERSION, type MasterCSSBindingLoadOptions, type MasterCSSBrowserSupport, type MasterCSSClassSuggestions, type MasterCSSDesignSystemCollision, type MasterCSSDesignSystemComponent, type MasterCSSDesignSystemDiagnostic, type MasterCSSDesignSystemReport, type MasterCSSDesignSystemRequest, type MasterCSSDesignSystemStylesheet, type MasterCSSDesignTokenMetadata, type MasterCSSDiagnostic, type MasterCSSEngineSnapshot, type MasterCSSEngineTransition, type MasterCSSLanguageBindingSession, type MasterCSSLanguageClassifications, type MasterCSSLanguageInspection, type MasterCSSLanguageTokenFamilies, type MasterCSSLexerBatch, type MasterCSSLexerBatchRequest, type MasterCSSLexerBindingSession, type MasterCSSLexerCSSAnalysis, type MasterCSSLexerClassListInput, type MasterCSSLexerClassListItem, type MasterCSSLintBatch, type MasterCSSLintBindingSession, type MasterCSSLintCanonicalClassGroupSuggestions, type MasterCSSLintCanonicalClassSuggestions, type MasterCSSLintRawValueCandidates, type MasterCSSMatchStatus, type MasterCSSNativeBindingLoadOptions, type MasterCSSNativeDeclarationCandidate, type MasterCSSScannerBindingSession, type MasterCSSScannerSourceInput, type MasterCSSScannerSourceOptions, type MasterCSSScannerState, type MasterCSSScannerUpdate, type MasterCSSSourceBatch, type MasterCSSSourceBatchRequest, type MasterCSSSourceBindingSession, type MasterCSSSourceExtractorKind, type MasterCSSSourceOccurrence, type MasterCSSSourceRange, type MasterCSSStylesheetAncestor, type MasterCSSStylesheetTokenReference, type MasterCSSSyntaxStatus, type MasterCSSTokenFamily, type MasterCSSToolingBinding, type MasterCSSToolingBindingSession, type MasterCSSValidatorBatch, type MasterCSSValidatorBindingSession, type MasterCSSValueStatus, type MasterCSSWasmBindingLoadOptions, createToolingBinding };
@@ -0,0 +1,15 @@
1
+ import { MASTER_CSS_LANGUAGE_BATCH_VERSION, MASTER_CSS_LANGUAGE_VERSION, MASTER_CSS_LEXER_BATCH_VERSION, MASTER_CSS_LINT_BATCH_VERSION, MASTER_CSS_SOURCE_BATCH_VERSION, MASTER_CSS_VALIDATOR_BATCH_VERSION } from "./protocol.js";
2
+ import { callBindingAsync } from "./normalize-error.js";
3
+ import { createWasmToolingBinding } from "./tooling-binding-wasm.js";
4
+ import { MasterCSSError } from "@master/css-schema";
5
+ import { createMasterCSSToolingWasmProvider } from "@master/css-binding-wasm-tooling";
6
+ // src/tooling-binding-browser.ts
7
+ function createToolingBinding(options = {}) {
8
+ if (options.binding === "native") throw new MasterCSSError({
9
+ code: "NATIVE_UNAVAILABLE",
10
+ domain: "binding",
11
+ message: "Master CSS native tooling bindings are unavailable in browsers."
12
+ });
13
+ return callBindingAsync("tooling", () => createWasmToolingBinding(options.wasm, createMasterCSSToolingWasmProvider));
14
+ }
15
+ export { MASTER_CSS_LANGUAGE_BATCH_VERSION, MASTER_CSS_LANGUAGE_VERSION, MASTER_CSS_LEXER_BATCH_VERSION, MASTER_CSS_LINT_BATCH_VERSION, MASTER_CSS_SOURCE_BATCH_VERSION, MASTER_CSS_VALIDATOR_BATCH_VERSION, createToolingBinding };
@@ -0,0 +1,92 @@
1
+ import { MasterCSSBindingInfo, MasterCSSClassSuggestions, MasterCSSDesignSystemReport, MasterCSSDesignSystemRequest, MasterCSSDiagnosticsReportInput, MasterCSSEngineTransition, MasterCSSInspectionReport, MasterCSSLanguageClassifications, MasterCSSLanguageColorCandidateInput, MasterCSSLanguageColorPresentation, MasterCSSLanguageColorTokens, MasterCSSLanguageCompletionIndex, MasterCSSLanguageDocument, MasterCSSLanguageDocumentRequest, MasterCSSLanguageFormatEdits, MasterCSSLanguageFormatRequest, MasterCSSLanguageInspection, MasterCSSLanguageNativeDeclarationCompletion, MasterCSSLanguageNativeDeclarationCompletionRequest, MasterCSSLanguageTokenFamilies, MasterCSSLexerBatch, MasterCSSLexerBatchRequest, MasterCSSLintBatch, MasterCSSLintCanonicalClassGroupSuggestions, MasterCSSLintCanonicalClassNameOptions, MasterCSSLintCanonicalClassSuggestions, MasterCSSLintClassList, MasterCSSLintClassListPolicyRequest, MasterCSSLintHostValidation, MasterCSSLintRawValueCandidates, MasterCSSNativeDeclarationCandidate, MasterCSSRegex, MasterCSSResolvedBinding, MasterCSSScannerSourceInput, MasterCSSScannerSourceOptions, MasterCSSScannerState, MasterCSSScannerUpdate, MasterCSSSourceBatch, MasterCSSSourceBatchRequest, MasterCSSValidatorBatch } from "./protocol.js";
2
+ import { MasterCSSBindingLoadOptions, MasterCSSNativeBindingLoadOptions, MasterCSSWasmBindingLoadOptions } from "./binding-options.js";
3
+ import { MasterCSSManifest } from "@master/css-schema/manifest";
4
+ interface MasterCSSToolingBindingSession extends Disposable {
5
+ dispose(): void;
6
+ }
7
+ interface MasterCSSLexerBindingSession extends MasterCSSToolingBindingSession {
8
+ analyze(request: MasterCSSLexerBatchRequest): MasterCSSLexerBatch;
9
+ }
10
+ interface MasterCSSSourceBindingSession extends MasterCSSToolingBindingSession {
11
+ extract(request: MasterCSSSourceBatchRequest): MasterCSSSourceBatch;
12
+ }
13
+ interface MasterCSSValidatorBindingSession extends MasterCSSToolingBindingSession {
14
+ nativeDeclarationCandidates(classNames: readonly string[]): readonly MasterCSSNativeDeclarationCandidate[];
15
+ generateClassRules(classNames: readonly string[], nativeSupport?: readonly boolean[]): MasterCSSValidatorBatch;
16
+ }
17
+ interface MasterCSSLanguagePreparedDocument {
18
+ readonly id: number;
19
+ readonly nativeCandidates: readonly MasterCSSNativeDeclarationCandidate[];
20
+ }
21
+ interface MasterCSSLanguageBindingSession extends MasterCSSToolingBindingSession {
22
+ prepareDocument(request: MasterCSSLanguageDocumentRequest): MasterCSSLanguagePreparedDocument;
23
+ finishDocument(id: number, nativeSupport: readonly boolean[]): MasterCSSLanguageDocument;
24
+ cancelDocument(id: number): void;
25
+ analyzeDocument(request: MasterCSSLanguageDocumentRequest): MasterCSSLanguageDocument;
26
+ formatDirectives(request: MasterCSSLanguageFormatRequest): MasterCSSLanguageFormatEdits;
27
+ nativeDeclarationCompletion(request: MasterCSSLanguageNativeDeclarationCompletionRequest): MasterCSSLanguageNativeDeclarationCompletion | null;
28
+ nativeDeclarationCandidates(classNames: readonly string[]): readonly MasterCSSNativeDeclarationCandidate[];
29
+ classifyClassNames(classNames: readonly string[], nativeSupport?: readonly boolean[]): MasterCSSLanguageClassifications;
30
+ inspectClassName(className: string, nativeSupport?: readonly boolean[]): MasterCSSLanguageInspection;
31
+ tokenFamilies(): MasterCSSLanguageTokenFamilies;
32
+ completionIndex(): MasterCSSLanguageCompletionIndex;
33
+ colorPresentation(colorToken: string): MasterCSSLanguageColorPresentation;
34
+ colorTokens(candidates: readonly MasterCSSLanguageColorCandidateInput[]): MasterCSSLanguageColorTokens;
35
+ }
36
+ interface MasterCSSLintBindingSession extends MasterCSSToolingBindingSession {
37
+ suggestClasses(declarations: string): MasterCSSClassSuggestions;
38
+ inspectDesignSystem(request: MasterCSSDesignSystemRequest): MasterCSSDesignSystemReport;
39
+ nativeDeclarationCandidates(classNames: readonly string[]): readonly MasterCSSNativeDeclarationCandidate[];
40
+ resolveValidation(batch: MasterCSSValidatorBatch, ruleErrors: readonly (readonly (readonly string[])[])[]): MasterCSSLintHostValidation;
41
+ canonicalClassNames(classNames: readonly string[], nativeSupport: readonly boolean[] | undefined, options?: Partial<MasterCSSLintCanonicalClassNameOptions>): MasterCSSLintCanonicalClassSuggestions;
42
+ canonicalClassGroups(classNames: readonly string[], nativeSupport: readonly boolean[] | undefined, options?: Partial<MasterCSSLintCanonicalClassNameOptions>): MasterCSSLintCanonicalClassGroupSuggestions;
43
+ rawValueCandidates(classNames: readonly string[], nativeSupport: readonly boolean[] | undefined, invalidGeneratedClasses: readonly string[]): MasterCSSLintRawValueCandidates;
44
+ analyze(classNames: readonly string[], nativeSupport: readonly boolean[] | undefined, invalidGeneratedClasses: readonly string[]): MasterCSSLintBatch;
45
+ analyzeClassList(classList: string, classNames: readonly string[], nativeSupport: readonly boolean[] | undefined, invalidGeneratedClasses: readonly string[]): MasterCSSLintBatch;
46
+ analyzeClassListPolicy(request: MasterCSSLintClassListPolicyRequest): MasterCSSLintClassList;
47
+ }
48
+ interface MasterCSSScannerBindingSession extends MasterCSSToolingBindingSession {
49
+ scan(source: string, content: string): MasterCSSScannerUpdate;
50
+ extractCandidates(source: string, content: string, options?: MasterCSSScannerSourceOptions): readonly string[];
51
+ collectCandidates(candidates: readonly string[]): readonly string[];
52
+ filterCandidates(candidates: readonly string[], blocklist: readonly (string | MasterCSSRegex)[]): readonly string[];
53
+ scanCandidates(source: string, content: string, candidates: readonly string[], blocklist: readonly (string | MasterCSSRegex)[], options?: MasterCSSScannerSourceOptions): MasterCSSScannerUpdate;
54
+ removeSource(source: string, options?: MasterCSSScannerSourceOptions): MasterCSSScannerUpdate;
55
+ reconcileSources(owner: string, inputs: readonly MasterCSSScannerSourceInput[]): MasterCSSScannerUpdate;
56
+ removeOwner(owner: string): MasterCSSScannerUpdate;
57
+ ensureClassRules(classNames: readonly string[]): MasterCSSEngineTransition;
58
+ registerNativeClassNames(owner: string, classNames: readonly string[]): boolean;
59
+ reset(): void;
60
+ snapshot(): MasterCSSScannerState;
61
+ }
62
+ interface MasterCSSToolingBinding {
63
+ readonly info: MasterCSSBindingInfo;
64
+ readonly binding: MasterCSSResolvedBinding;
65
+ createLexerSession(): Promise<MasterCSSLexerBindingSession>;
66
+ createSourceSession(): Promise<MasterCSSSourceBindingSession>;
67
+ createValidatorSession(manifest: MasterCSSManifest): Promise<MasterCSSValidatorBindingSession>;
68
+ createLanguageSession(manifest: MasterCSSManifest): Promise<MasterCSSLanguageBindingSession>;
69
+ createLintSession(manifest: MasterCSSManifest): Promise<MasterCSSLintBindingSession>;
70
+ createScannerSession(manifest: MasterCSSManifest): Promise<MasterCSSScannerBindingSession>;
71
+ extractClassCandidates(content: string): readonly string[];
72
+ extractOxcClasses(source: string, content: string): readonly string[];
73
+ extractHTMLClasses(source: string, content: string): readonly string[];
74
+ extractAstroClasses(source: string, content: string): readonly string[];
75
+ createInspectionReport(input: MasterCSSDiagnosticsReportInput): Promise<MasterCSSInspectionReport>;
76
+ }
77
+ interface MasterCSSToolingBindingSync {
78
+ readonly info: MasterCSSBindingInfo;
79
+ readonly binding: 'native';
80
+ createLexerSession(): MasterCSSLexerBindingSession;
81
+ createSourceSession(): MasterCSSSourceBindingSession;
82
+ createValidatorSession(manifest: MasterCSSManifest): MasterCSSValidatorBindingSession;
83
+ createLanguageSession(manifest: MasterCSSManifest): MasterCSSLanguageBindingSession;
84
+ createLintSession(manifest: MasterCSSManifest): MasterCSSLintBindingSession;
85
+ createScannerSession(manifest: MasterCSSManifest): MasterCSSScannerBindingSession;
86
+ extractClassCandidates(content: string): readonly string[];
87
+ extractOxcClasses(source: string, content: string): readonly string[];
88
+ extractHTMLClasses(source: string, content: string): readonly string[];
89
+ extractAstroClasses(source: string, content: string): readonly string[];
90
+ createInspectionReport(input: MasterCSSDiagnosticsReportInput): MasterCSSInspectionReport;
91
+ }
92
+ export { type MasterCSSBindingLoadOptions, MasterCSSLanguageBindingSession, MasterCSSLanguagePreparedDocument, MasterCSSLexerBindingSession, MasterCSSLintBindingSession, type MasterCSSNativeBindingLoadOptions, MasterCSSScannerBindingSession, MasterCSSSourceBindingSession, MasterCSSToolingBinding, MasterCSSToolingBindingSession, MasterCSSToolingBindingSync, MasterCSSValidatorBindingSession, type MasterCSSWasmBindingLoadOptions };
@@ -0,0 +1,46 @@
1
+ import { callBinding } from "./normalize-error.js";
2
+ import { protectToolingSession } from "./tooling-binding-adapter.js";
3
+ import { loadNativeToolingBinding } from "./tooling.js";
4
+ // src/tooling-binding-native.ts
5
+ function createNativeToolingBinding(options, required) {
6
+ const native = loadNativeToolingBinding({
7
+ ...options,
8
+ required
9
+ });
10
+ if (!native) return;
11
+ const bound = {
12
+ binding: "native",
13
+ info: native.info,
14
+ createLexerSession: () => protectToolingSession(native.createLexerSession()),
15
+ createSourceSession: () => protectToolingSession(native.createSourceSession()),
16
+ createValidatorSession: (manifest) => protectToolingSession(native.createValidatorSession(manifest)),
17
+ createLanguageSession: (manifest) => protectToolingSession(native.createLanguageSession(manifest)),
18
+ createLintSession: (manifest) => protectToolingSession(native.createLintSession(manifest)),
19
+ createScannerSession: (manifest) => protectToolingSession(native.createScannerSession(manifest)),
20
+ extractClassCandidates: (content) => callBinding("tooling", () => native.extractClassCandidates(content), content),
21
+ extractOxcClasses: (source, content) => callBinding("tooling", () => native.extractOxcClasses(source, content), content),
22
+ extractHTMLClasses: (source, content) => callBinding("tooling", () => native.extractHTMLClasses(source, content), content),
23
+ extractAstroClasses: (source, content) => callBinding("tooling", () => native.extractAstroClasses(source, content), content),
24
+ createInspectionReport: (input) => callBinding("tooling", () => native.createInspectionReport(input))
25
+ };
26
+ return Object.freeze(bound);
27
+ }
28
+ function asAsyncToolingBinding(binding) {
29
+ const bound = {
30
+ binding: binding.binding,
31
+ info: binding.info,
32
+ createLexerSession: async () => binding.createLexerSession(),
33
+ createSourceSession: async () => binding.createSourceSession(),
34
+ createValidatorSession: async (manifest) => binding.createValidatorSession(manifest),
35
+ createLanguageSession: async (manifest) => binding.createLanguageSession(manifest),
36
+ createLintSession: async (manifest) => binding.createLintSession(manifest),
37
+ createScannerSession: async (manifest) => binding.createScannerSession(manifest),
38
+ extractClassCandidates: (content) => binding.extractClassCandidates(content),
39
+ extractOxcClasses: (source, content) => binding.extractOxcClasses(source, content),
40
+ extractHTMLClasses: (source, content) => binding.extractHTMLClasses(source, content),
41
+ extractAstroClasses: (source, content) => binding.extractAstroClasses(source, content),
42
+ createInspectionReport: async (input) => binding.createInspectionReport(input)
43
+ };
44
+ return Object.freeze(bound);
45
+ }
46
+ export { asAsyncToolingBinding, createNativeToolingBinding };
@@ -0,0 +1,4 @@
1
+ import { MasterCSSNativeBindingLoadOptions } from "./binding-options.js";
2
+ import { MasterCSSLanguageBindingSession, MasterCSSLexerBindingSession, MasterCSSLintBindingSession, MasterCSSScannerBindingSession, MasterCSSSourceBindingSession, MasterCSSToolingBindingSession, MasterCSSToolingBindingSync, MasterCSSValidatorBindingSession } from "./tooling-binding-contract.js";
3
+ declare function createToolingBindingSync(options?: MasterCSSNativeBindingLoadOptions): MasterCSSToolingBindingSync;
4
+ export { type MasterCSSLanguageBindingSession, type MasterCSSLexerBindingSession, type MasterCSSLintBindingSession, type MasterCSSNativeBindingLoadOptions, type MasterCSSScannerBindingSession, type MasterCSSSourceBindingSession, type MasterCSSToolingBindingSession, type MasterCSSToolingBindingSync, type MasterCSSValidatorBindingSession, createToolingBindingSync };
@@ -0,0 +1,11 @@
1
+ import { normalizeBindingError } from "./normalize-error.js";
2
+ import { createNativeToolingBinding } from "./tooling-binding-native.js";
3
+ // src/tooling-binding-node.ts
4
+ function createToolingBindingSync(options = {}) {
5
+ try {
6
+ return createNativeToolingBinding(options, true);
7
+ } catch (cause) {
8
+ throw normalizeBindingError(cause, "tooling");
9
+ }
10
+ }
11
+ export { createToolingBindingSync };
@@ -0,0 +1,127 @@
1
+ import { assertMasterCSSBindingInfo } from "./binding.js";
2
+ import { callBinding, callBindingAsync } from "./normalize-error.js";
3
+ import { protectToolingSession } from "./tooling-binding-adapter.js";
4
+ import { serializeMasterCSSManifest } from "@master/css-schema/manifest";
5
+ // src/tooling-binding-wasm.ts
6
+ async function loadDefaultWasmProvider(options) {
7
+ const { createMasterCSSToolingWasmProvider } = await import("@master/css-binding-wasm-tooling");
8
+ return await createMasterCSSToolingWasmProvider(options);
9
+ }
10
+ function withLifecycle(session) {
11
+ let disposed = false;
12
+ const dispose = () => {
13
+ if (disposed) return;
14
+ disposed = true;
15
+ session.dispose();
16
+ };
17
+ return {
18
+ dispose,
19
+ [Symbol.dispose]: dispose
20
+ };
21
+ }
22
+ async function createWasmToolingBinding(options, providerFactory = loadDefaultWasmProvider) {
23
+ const wasm = await providerFactory(options);
24
+ assertMasterCSSBindingInfo(wasm.info, {
25
+ surface: "tooling",
26
+ features: [
27
+ "diagnostics",
28
+ "language",
29
+ "lint",
30
+ "scanner",
31
+ "source",
32
+ "validator"
33
+ ]
34
+ });
35
+ const bound = {
36
+ binding: "wasm",
37
+ info: wasm.info,
38
+ async createLexerSession() {
39
+ const session = await callBindingAsync("tooling", () => wasm.createLexerSession());
40
+ const bound = {
41
+ ...withLifecycle(session),
42
+ analyze: (request) => session.analyze(request)
43
+ };
44
+ return protectToolingSession(Object.freeze(bound));
45
+ },
46
+ async createSourceSession() {
47
+ const session = await callBindingAsync("tooling", () => wasm.createSourceSession());
48
+ const bound = {
49
+ ...withLifecycle(session),
50
+ extract: (request) => session.extract(request)
51
+ };
52
+ return protectToolingSession(Object.freeze(bound));
53
+ },
54
+ async createValidatorSession(manifest) {
55
+ const session = await callBindingAsync("tooling", () => wasm.createValidatorSession(serializeMasterCSSManifest(manifest)));
56
+ const bound = {
57
+ ...withLifecycle(session),
58
+ nativeDeclarationCandidates: (classNames) => session.nativeDeclarationCandidates([...classNames]),
59
+ generateClassRules: (classNames, nativeSupport) => session.generateClasses([...classNames], nativeSupport ? [...nativeSupport] : void 0)
60
+ };
61
+ return protectToolingSession(Object.freeze(bound));
62
+ },
63
+ async createLanguageSession(manifest) {
64
+ const session = await callBindingAsync("tooling", () => wasm.createLanguageSession(serializeMasterCSSManifest(manifest)));
65
+ const bound = {
66
+ ...withLifecycle(session),
67
+ prepareDocument: (request) => session.prepareDocument(request),
68
+ finishDocument: (id, support) => session.finishDocument(id, [...support]),
69
+ cancelDocument: (id) => session.cancelDocument(id),
70
+ analyzeDocument: (request) => session.analyzeDocument(request),
71
+ formatDirectives: (request) => session.formatDirectives(request),
72
+ nativeDeclarationCompletion: (request) => session.nativeDeclarationCompletion(request),
73
+ nativeDeclarationCandidates: (classNames) => session.nativeDeclarationCandidates([...classNames]),
74
+ classifyClassNames: (classNames, nativeSupport) => session.classifyClassNames([...classNames], nativeSupport ? [...nativeSupport] : void 0),
75
+ inspectClassName: (className, nativeSupport) => session.inspectClassName(className, nativeSupport ? [...nativeSupport] : void 0),
76
+ tokenFamilies: () => session.tokenFamilies(),
77
+ completionIndex: () => session.completionIndex(),
78
+ colorPresentation: (colorToken) => session.colorPresentation(colorToken),
79
+ colorTokens: (candidates) => session.colorTokens(candidates)
80
+ };
81
+ return protectToolingSession(Object.freeze(bound));
82
+ },
83
+ async createLintSession(manifest) {
84
+ const session = await callBindingAsync("tooling", () => wasm.createLintSession(serializeMasterCSSManifest(manifest)));
85
+ const bound = {
86
+ ...withLifecycle(session),
87
+ inspectDesignSystem: (request) => session.inspectDesignSystem(request),
88
+ suggestClasses: (declarations) => session.suggestClasses(declarations),
89
+ nativeDeclarationCandidates: (classNames) => session.nativeDeclarationCandidates([...classNames]),
90
+ resolveValidation: (batch, ruleErrors) => session.resolveValidation(batch, ruleErrors),
91
+ canonicalClassNames: (classNames, nativeSupport, lintOptions) => session.canonicalClassNames([...classNames], nativeSupport ? [...nativeSupport] : void 0, lintOptions),
92
+ canonicalClassGroups: (classNames, nativeSupport, lintOptions) => session.canonicalClassGroups([...classNames], nativeSupport ? [...nativeSupport] : void 0, lintOptions),
93
+ rawValueCandidates: (classNames, nativeSupport, invalidGeneratedClasses) => session.rawValueCandidates([...classNames], nativeSupport ? [...nativeSupport] : void 0, [...invalidGeneratedClasses]),
94
+ analyze: (classNames, nativeSupport, invalidGeneratedClasses) => session.analyze([...classNames], nativeSupport ? [...nativeSupport] : void 0, [...invalidGeneratedClasses]),
95
+ analyzeClassList: (classList, classNames, nativeSupport, invalidGeneratedClasses) => session.analyzeClassList(classList, [...classNames], nativeSupport ? [...nativeSupport] : void 0, [...invalidGeneratedClasses]),
96
+ analyzeClassListPolicy: (request) => session.analyzeClassListPolicy(typeof request === "string" ? request : JSON.stringify(request))
97
+ };
98
+ return protectToolingSession(Object.freeze(bound));
99
+ },
100
+ async createScannerSession(manifest) {
101
+ const session = await callBindingAsync("tooling", () => wasm.createScannerSession(serializeMasterCSSManifest(manifest)));
102
+ const bound = {
103
+ ...withLifecycle(session),
104
+ scan: (source, content) => session.scan(source, content),
105
+ extractCandidates: (source, content, options = {}) => session.extractCandidates(source, content, options),
106
+ collectCandidates: (candidates) => session.collectCandidates([...candidates]),
107
+ filterCandidates: (candidates, blocklist) => session.filterCandidates([...candidates], blocklist),
108
+ scanCandidates: (source, content, candidates, blocklist, options = {}) => session.scanCandidates(source, content, [...candidates], blocklist, options),
109
+ removeSource: (source, options = {}) => session.removeSource(source, options),
110
+ reconcileSources: (owner, inputs) => session.reconcileSources(owner, inputs),
111
+ removeOwner: (owner) => session.removeOwner(owner),
112
+ ensureClassRules: (classNames) => session.ensureClasses([...classNames]),
113
+ registerNativeClassNames: (owner, classNames) => session.registerNativeClasses(owner, [...classNames]),
114
+ reset: () => session.reset(),
115
+ snapshot: () => session.state()
116
+ };
117
+ return protectToolingSession(Object.freeze(bound));
118
+ },
119
+ extractClassCandidates: (content) => callBinding("tooling", () => wasm.extractClassCandidates(content), content),
120
+ extractOxcClasses: (source, content) => callBinding("tooling", () => wasm.extractOxcClasses(source, content), content),
121
+ extractHTMLClasses: (source, content) => callBinding("tooling", () => wasm.extractHTMLClasses(source, content), content),
122
+ extractAstroClasses: (source, content) => callBinding("tooling", () => wasm.extractAstroClasses(source, content), content),
123
+ createInspectionReport: (input) => callBindingAsync("tooling", () => wasm.createInspectionReport(input))
124
+ };
125
+ return Object.freeze(bound);
126
+ }
127
+ export { createWasmToolingBinding };
@@ -0,0 +1,5 @@
1
+ import { MASTER_CSS_LANGUAGE_BATCH_VERSION, MASTER_CSS_LANGUAGE_VERSION, MASTER_CSS_LEXER_BATCH_VERSION, MASTER_CSS_LINT_BATCH_VERSION, MASTER_CSS_SOURCE_BATCH_VERSION, MASTER_CSS_VALIDATOR_BATCH_VERSION, MasterCSSBrowserSupport, MasterCSSClassSuggestions, MasterCSSDesignSystemCollision, MasterCSSDesignSystemComponent, MasterCSSDesignSystemDiagnostic, MasterCSSDesignSystemReport, MasterCSSDesignSystemRequest, MasterCSSDesignSystemStylesheet, MasterCSSDesignTokenMetadata, MasterCSSDiagnostic, MasterCSSEngineSnapshot, MasterCSSEngineTransition, MasterCSSLanguageClassifications, MasterCSSLanguageInspection, MasterCSSLanguageTokenFamilies, MasterCSSLexerBatch, MasterCSSLexerBatchRequest, MasterCSSLexerCSSAnalysis, MasterCSSLexerClassListInput, MasterCSSLexerClassListItem, MasterCSSLintBatch, MasterCSSLintCanonicalClassGroupSuggestions, MasterCSSLintCanonicalClassSuggestions, MasterCSSLintRawValueCandidates, MasterCSSMatchStatus, MasterCSSNativeDeclarationCandidate, MasterCSSScannerSourceInput, MasterCSSScannerSourceOptions, MasterCSSScannerState, MasterCSSScannerUpdate, MasterCSSSourceBatch, MasterCSSSourceBatchRequest, MasterCSSSourceExtractorKind, MasterCSSSourceOccurrence, MasterCSSSourceRange, MasterCSSStylesheetAncestor, MasterCSSStylesheetTokenReference, MasterCSSSyntaxStatus, MasterCSSTokenFamily, MasterCSSValidatorBatch, MasterCSSValueStatus } from "./protocol.js";
2
+ import { MasterCSSBindingLoadOptions, MasterCSSNativeBindingLoadOptions, MasterCSSWasmBindingLoadOptions } from "./binding-options.js";
3
+ import { MasterCSSLanguageBindingSession, MasterCSSLexerBindingSession, MasterCSSLintBindingSession, MasterCSSScannerBindingSession, MasterCSSSourceBindingSession, MasterCSSToolingBinding, MasterCSSToolingBindingSession, MasterCSSValidatorBindingSession } from "./tooling-binding-contract.js";
4
+ declare function createToolingBinding(options?: MasterCSSBindingLoadOptions): Promise<MasterCSSToolingBinding>;
5
+ export { MASTER_CSS_LANGUAGE_BATCH_VERSION, MASTER_CSS_LANGUAGE_VERSION, MASTER_CSS_LEXER_BATCH_VERSION, MASTER_CSS_LINT_BATCH_VERSION, MASTER_CSS_SOURCE_BATCH_VERSION, MASTER_CSS_VALIDATOR_BATCH_VERSION, type MasterCSSBindingLoadOptions, type MasterCSSBrowserSupport, type MasterCSSClassSuggestions, type MasterCSSDesignSystemCollision, type MasterCSSDesignSystemComponent, type MasterCSSDesignSystemDiagnostic, type MasterCSSDesignSystemReport, type MasterCSSDesignSystemRequest, type MasterCSSDesignSystemStylesheet, type MasterCSSDesignTokenMetadata, type MasterCSSDiagnostic, type MasterCSSEngineSnapshot, type MasterCSSEngineTransition, type MasterCSSLanguageBindingSession, type MasterCSSLanguageClassifications, type MasterCSSLanguageInspection, type MasterCSSLanguageTokenFamilies, type MasterCSSLexerBatch, type MasterCSSLexerBatchRequest, type MasterCSSLexerBindingSession, type MasterCSSLexerCSSAnalysis, type MasterCSSLexerClassListInput, type MasterCSSLexerClassListItem, type MasterCSSLintBatch, type MasterCSSLintBindingSession, type MasterCSSLintCanonicalClassGroupSuggestions, type MasterCSSLintCanonicalClassSuggestions, type MasterCSSLintRawValueCandidates, type MasterCSSMatchStatus, type MasterCSSNativeBindingLoadOptions, type MasterCSSNativeDeclarationCandidate, type MasterCSSScannerBindingSession, type MasterCSSScannerSourceInput, type MasterCSSScannerSourceOptions, type MasterCSSScannerState, type MasterCSSScannerUpdate, type MasterCSSSourceBatch, type MasterCSSSourceBatchRequest, type MasterCSSSourceBindingSession, type MasterCSSSourceExtractorKind, type MasterCSSSourceOccurrence, type MasterCSSSourceRange, type MasterCSSStylesheetAncestor, type MasterCSSStylesheetTokenReference, type MasterCSSSyntaxStatus, type MasterCSSTokenFamily, type MasterCSSToolingBinding, type MasterCSSToolingBindingSession, type MasterCSSValidatorBatch, type MasterCSSValidatorBindingSession, type MasterCSSValueStatus, type MasterCSSWasmBindingLoadOptions, createToolingBinding };
@@ -0,0 +1,21 @@
1
+ import { MASTER_CSS_LANGUAGE_BATCH_VERSION, MASTER_CSS_LANGUAGE_VERSION, MASTER_CSS_LEXER_BATCH_VERSION, MASTER_CSS_LINT_BATCH_VERSION, MASTER_CSS_SOURCE_BATCH_VERSION, MASTER_CSS_VALIDATOR_BATCH_VERSION } from "./protocol.js";
2
+ import { normalizeBindingError } from "./normalize-error.js";
3
+ import { shouldLoadMasterCSSNativeBinding } from "./binding-options.js";
4
+ import { createWasmToolingBinding } from "./tooling-binding-wasm.js";
5
+ // src/tooling-binding.ts
6
+ async function loadNativeToolingFactory() {
7
+ return await (import.meta.url.endsWith(".ts") ? import("./tooling-binding-native.js") : import("./tooling-binding-native.js"));
8
+ }
9
+ async function createToolingBinding(options = {}) {
10
+ try {
11
+ if (shouldLoadMasterCSSNativeBinding(options.binding)) {
12
+ const { asAsyncToolingBinding, createNativeToolingBinding } = await loadNativeToolingFactory();
13
+ const native = createNativeToolingBinding(options.native ?? {}, options.binding === "native");
14
+ if (native) return asAsyncToolingBinding(native);
15
+ }
16
+ return await createWasmToolingBinding(options.wasm);
17
+ } catch (cause) {
18
+ throw normalizeBindingError(cause, "tooling");
19
+ }
20
+ }
21
+ export { MASTER_CSS_LANGUAGE_BATCH_VERSION, MASTER_CSS_LANGUAGE_VERSION, MASTER_CSS_LEXER_BATCH_VERSION, MASTER_CSS_LINT_BATCH_VERSION, MASTER_CSS_SOURCE_BATCH_VERSION, MASTER_CSS_VALIDATOR_BATCH_VERSION, createToolingBinding };
@@ -0,0 +1,144 @@
1
+ import "./protocol.js";
2
+ import { NativeBindingError } from "./errors.js";
3
+ import { loadNativeBinding } from "./native-loader.js";
4
+ import { MasterCSSError } from "@master/css-schema";
5
+ import { serializeMasterCSSManifest } from "@master/css-schema/manifest";
6
+ // src/tooling.ts
7
+ function parse(value) {
8
+ return JSON.parse(value);
9
+ }
10
+ function request(value) {
11
+ return typeof value === "string" ? value : JSON.stringify(value);
12
+ }
13
+ function disposable(session) {
14
+ let disposed = false;
15
+ return () => {
16
+ if (disposed) return;
17
+ disposed = true;
18
+ session.dispose();
19
+ };
20
+ }
21
+ function bindingError(cause) {
22
+ if (cause instanceof MasterCSSError) return cause;
23
+ const code = cause instanceof NativeBindingError ? cause.code : "NATIVE_LOAD_FAILED";
24
+ return new MasterCSSError({
25
+ code,
26
+ domain: "binding",
27
+ message: cause instanceof Error ? cause.message : String(cause)
28
+ }, { cause });
29
+ }
30
+ function loadNativeToolingBinding(moduleOptions = {}) {
31
+ try {
32
+ const loaded = loadNativeBinding(moduleOptions);
33
+ if (!loaded) return;
34
+ const nativeBinding = loaded.binding;
35
+ const toolingBinding = {
36
+ info: loaded.info,
37
+ createLexerSession() {
38
+ const session = new nativeBinding.LexerSession();
39
+ const dispose = disposable(session);
40
+ return {
41
+ analyze: (input) => parse(session.analyze(request(input))),
42
+ dispose,
43
+ [Symbol.dispose]: dispose
44
+ };
45
+ },
46
+ createSourceSession() {
47
+ const session = new nativeBinding.SourceSession();
48
+ const dispose = disposable(session);
49
+ return {
50
+ extract: (input) => parse(session.extract(request(input))),
51
+ dispose,
52
+ [Symbol.dispose]: dispose
53
+ };
54
+ },
55
+ createValidatorSession(manifest) {
56
+ const session = new nativeBinding.ValidatorSession(serializeMasterCSSManifest(manifest));
57
+ const dispose = disposable(session);
58
+ return {
59
+ nativeDeclarationCandidates: (classNames) => parse(session.nativeDeclarationCandidates([...classNames])),
60
+ generateClassRules: (classNames, nativeSupport) => parse(session.generateClasses([...classNames], nativeSupport ? [...nativeSupport] : void 0)),
61
+ dispose,
62
+ [Symbol.dispose]: dispose
63
+ };
64
+ },
65
+ createLanguageSession(manifest) {
66
+ const session = new nativeBinding.LanguageSession(serializeMasterCSSManifest(manifest));
67
+ const dispose = disposable(session);
68
+ return {
69
+ prepareDocument: (input) => parse(session.prepareDocument(request(input))),
70
+ finishDocument: (id, support) => {
71
+ try {
72
+ return parse(session.finishDocument(id, [...support]));
73
+ } finally {
74
+ session.cancelDocument(id);
75
+ }
76
+ },
77
+ cancelDocument: (id) => session.cancelDocument(id),
78
+ analyzeDocument: (input) => parse(session.analyzeDocument(request(input))),
79
+ formatDirectives: (input) => parse(session.formatDirectives(request(input))),
80
+ nativeDeclarationCompletion: (input) => parse(session.nativeDeclarationCompletion(request(input))),
81
+ nativeDeclarationCandidates: (classNames) => parse(session.nativeDeclarationCandidates([...classNames])),
82
+ classifyClassNames: (classNames, nativeSupport) => parse(session.classifyClassNames([...classNames], nativeSupport ? [...nativeSupport] : void 0)),
83
+ inspectClassName: (className, nativeSupport) => parse(session.inspectClassName(className, nativeSupport ? [...nativeSupport] : void 0)),
84
+ tokenFamilies: () => parse(session.tokenFamilies()),
85
+ completionIndex: () => parse(session.completionIndex()),
86
+ colorPresentation: (colorToken) => parse(session.colorPresentation(colorToken)),
87
+ colorTokens: (candidates) => parse(session.colorTokens(request(candidates))),
88
+ dispose,
89
+ [Symbol.dispose]: dispose
90
+ };
91
+ },
92
+ createLintSession(manifest) {
93
+ const session = new nativeBinding.LintSession(serializeMasterCSSManifest(manifest));
94
+ const dispose = disposable(session);
95
+ return {
96
+ suggestClasses: (declarations) => {
97
+ if (typeof session.suggestClasses !== "function") throw new Error("The native binding does not support suggestClasses. Rebuild or update the Master CSS binding to match the tooling package.");
98
+ return parse(session.suggestClasses(declarations));
99
+ },
100
+ inspectDesignSystem: (input) => parse(session.inspectDesignSystem(request(input))),
101
+ nativeDeclarationCandidates: (classNames) => parse(session.nativeDeclarationCandidates([...classNames])),
102
+ resolveValidation: (batch, ruleErrors) => parse(session.resolveValidation(request(batch), request(ruleErrors))),
103
+ canonicalClassNames: (classNames, nativeSupport, options) => parse(session.canonicalClassNames([...classNames], nativeSupport ? [...nativeSupport] : void 0, options === void 0 ? void 0 : request(options))),
104
+ canonicalClassGroups: (classNames, nativeSupport, options) => parse(session.canonicalClassGroups([...classNames], nativeSupport ? [...nativeSupport] : void 0, options === void 0 ? void 0 : request(options))),
105
+ rawValueCandidates: (classNames, nativeSupport, invalidGeneratedClasses) => parse(session.rawValueCandidates([...classNames], nativeSupport ? [...nativeSupport] : void 0, [...invalidGeneratedClasses])),
106
+ analyze: (classNames, nativeSupport, invalidGeneratedClasses) => parse(session.analyze([...classNames], nativeSupport ? [...nativeSupport] : void 0, [...invalidGeneratedClasses])),
107
+ analyzeClassList: (classList, classNames, nativeSupport, invalidGeneratedClasses) => parse(session.analyzeClassList(classList, [...classNames], nativeSupport ? [...nativeSupport] : void 0, [...invalidGeneratedClasses])),
108
+ analyzeClassListPolicy: (input) => parse(session.analyzeClassListPolicy(request(input))),
109
+ dispose,
110
+ [Symbol.dispose]: dispose
111
+ };
112
+ },
113
+ createScannerSession(manifest) {
114
+ const session = new nativeBinding.ScannerSession(serializeMasterCSSManifest(manifest));
115
+ const dispose = disposable(session);
116
+ return {
117
+ scan: (source, content) => parse(session.scan(source, content)),
118
+ extractCandidates: (source, content, options = {}) => session.extractCandidates(source, content, request(options)),
119
+ collectCandidates: (candidates) => session.collectCandidates([...candidates]),
120
+ filterCandidates: (candidates, blocklist) => session.filterCandidates([...candidates], request(blocklist)),
121
+ scanCandidates: (source, content, candidates, blocklist, options = {}) => parse(session.scanCandidates(source, content, [...candidates], request(blocklist), request(options))),
122
+ removeSource: (source, options = {}) => parse(session.removeSource(source, request(options))),
123
+ reconcileSources: (owner, inputs) => parse(session.reconcileSources(owner, request(inputs))),
124
+ removeOwner: (owner) => parse(session.removeOwner(owner)),
125
+ ensureClassRules: (classNames) => parse(session.ensureClasses([...classNames])),
126
+ registerNativeClassNames: (owner, classNames) => session.registerNativeClasses(owner, [...classNames]),
127
+ reset: () => session.reset(),
128
+ snapshot: () => parse(session.state()),
129
+ dispose,
130
+ [Symbol.dispose]: dispose
131
+ };
132
+ },
133
+ extractClassCandidates: (content) => nativeBinding.extractClassCandidates(content),
134
+ extractOxcClasses: (source, content) => nativeBinding.extractOxcClasses(source, content),
135
+ extractHTMLClasses: (source, content) => nativeBinding.extractHtmlClasses(source, content),
136
+ extractAstroClasses: (source, content) => nativeBinding.extractAstroClasses(source, content),
137
+ createInspectionReport: (input) => parse(nativeBinding.createInspectionReportJson(request(input)))
138
+ };
139
+ return Object.freeze(toolingBinding);
140
+ } catch (cause) {
141
+ throw bindingError(cause);
142
+ }
143
+ }
144
+ export { loadNativeToolingBinding };
@@ -0,0 +1,3 @@
1
+ // src/version.ts
2
+ const MASTER_CSS_PACKAGE_VERSION = "0.0.0";
3
+ export { MASTER_CSS_PACKAGE_VERSION };
package/package.json ADDED
@@ -0,0 +1,78 @@
1
+ {
2
+ "name": "@master/css-binding",
3
+ "type": "module",
4
+ "engines": {
5
+ "node": "^24"
6
+ },
7
+ "license": "MIT",
8
+ "description": "Internal Master CSS native and Wasm binding loader.",
9
+ "sideEffects": false,
10
+ "types": "./dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "browser": "./dist/browser.js",
15
+ "import": "./dist/index.js",
16
+ "default": "./dist/index.js"
17
+ },
18
+ "./engine": {
19
+ "types": "./dist/engine-binding.d.ts",
20
+ "browser": "./dist/engine-binding-browser.js",
21
+ "import": "./dist/engine-binding.js",
22
+ "default": "./dist/engine-binding.js"
23
+ },
24
+ "./engine/node": {
25
+ "types": "./dist/engine-binding-node.d.ts",
26
+ "import": "./dist/engine-binding-node.js",
27
+ "default": "./dist/engine-binding-node.js"
28
+ },
29
+ "./compiler": {
30
+ "types": "./dist/compiler-binding.d.ts",
31
+ "browser": "./dist/compiler-binding-browser.js",
32
+ "import": "./dist/compiler-binding.js",
33
+ "default": "./dist/compiler-binding.js"
34
+ },
35
+ "./compiler/node": {
36
+ "types": "./dist/compiler-binding-node.d.ts",
37
+ "import": "./dist/compiler-binding-node.js",
38
+ "default": "./dist/compiler-binding-node.js"
39
+ },
40
+ "./tooling": {
41
+ "types": "./dist/tooling-binding.d.ts",
42
+ "browser": "./dist/tooling-binding-browser.js",
43
+ "import": "./dist/tooling-binding.js",
44
+ "default": "./dist/tooling-binding.js"
45
+ },
46
+ "./tooling/node": {
47
+ "types": "./dist/tooling-binding-node.d.ts",
48
+ "import": "./dist/tooling-binding-node.js",
49
+ "default": "./dist/tooling-binding-node.js"
50
+ }
51
+ },
52
+ "files": [
53
+ "dist",
54
+ "artifacts"
55
+ ],
56
+ "publishConfig": {
57
+ "access": "public",
58
+ "provenance": true
59
+ },
60
+ "optionalDependencies": {
61
+ "@master/css-binding-darwin-arm64": "0.0.0-site.1793659883.g69c9aebcf628",
62
+ "@master/css-binding-darwin-x64": "0.0.0-site.1793659883.g69c9aebcf628",
63
+ "@master/css-binding-linux-arm64-gnu": "0.0.0-site.1793659883.g69c9aebcf628",
64
+ "@master/css-binding-linux-arm64-musl": "0.0.0-site.1793659883.g69c9aebcf628",
65
+ "@master/css-binding-linux-x64-gnu": "0.0.0-site.1793659883.g69c9aebcf628",
66
+ "@master/css-binding-linux-x64-musl": "0.0.0-site.1793659883.g69c9aebcf628",
67
+ "@master/css-binding-win32-arm64-msvc": "0.0.0-site.1793659883.g69c9aebcf628",
68
+ "@master/css-binding-win32-x64-msvc": "0.0.0-site.1793659883.g69c9aebcf628"
69
+ },
70
+ "dependencies": {
71
+ "@master/css-schema": "0.0.0-site.1793659883.g69c9aebcf628",
72
+ "@master/css-binding-wasm-compiler": "0.0.0-site.1793659883.g69c9aebcf628",
73
+ "@master/css-binding-wasm-engine": "0.0.0-site.1793659883.g69c9aebcf628",
74
+ "@master/css-binding-wasm-tooling": "0.0.0-site.1793659883.g69c9aebcf628"
75
+ },
76
+ "version": "0.0.0-site.1793659883.g69c9aebcf628",
77
+ "gitHead": "69c9aebcf628eb529001b9fa1b3536306f1b139e"
78
+ }