@moxellabs/drift 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bin.js ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import{spawnSync as p}from"node:child_process";import{existsSync as o}from"node:fs";import{dirname as i,join as a}from"node:path";import{createRequire as g}from"node:module";import{fileURLToPath as f}from"node:url";var u=g(import.meta.url),c=i(f(import.meta.url)),R=i(c);function l(){return process.report?.getReport?.()?.header?.glibcVersionRuntime?"glibc":"musl"}function d(){let{platform:r,arch:e}=process;if(r==="linux"&&e==="x64"&&l()==="glibc")return{packageName:"@moxellabs/drift-linux-x64-gnu",addonFilename:"moxel-drift.linux-x64-gnu.node",bridgeFilename:"moxel-drift-bridge",cliFilename:"moxel-drift-cli"};if(r==="linux"&&e==="arm64"&&l()==="glibc")return{packageName:"@moxellabs/drift-linux-arm64-gnu",addonFilename:"moxel-drift.linux-arm64-gnu.node",bridgeFilename:"moxel-drift-bridge",cliFilename:"moxel-drift-cli"};if(r==="darwin"&&e==="x64")return{packageName:"@moxellabs/drift-darwin-x64",addonFilename:"moxel-drift.darwin-x64.node",bridgeFilename:"moxel-drift-bridge",cliFilename:"moxel-drift-cli"};if(r==="darwin"&&e==="arm64")return{packageName:"@moxellabs/drift-darwin-arm64",addonFilename:"moxel-drift.darwin-arm64.node",bridgeFilename:"moxel-drift-bridge",cliFilename:"moxel-drift-cli"};if(r==="win32"&&e==="x64")return{packageName:"@moxellabs/drift-win32-x64-msvc",addonFilename:"moxel-drift.win32-x64-msvc.node",bridgeFilename:"moxel-drift-bridge.exe",cliFilename:"moxel-drift-cli.exe"};throw Error(`unsupported moxel-drift target ${r}-${e}. Supported targets: linux-x64-glibc, linux-arm64-glibc, darwin-x64, darwin-arm64, win32-x64.`)}function x(){let r=d();try{let e=u.resolve(`${r.packageName}/package.json`);return i(e)}catch{return null}}function m(){let r=x();if(r){let s=d(),t=a(r,"bin",s.cliFilename);if(o(t))return t}let e=process.platform==="win32"?"moxel-drift-cli.exe":"moxel-drift-cli",n=a(c,"bin",e);if(o(n))return n;throw Error(`missing packaged CLI binary for ${process.platform}-${process.arch}. Install the matching @moxellabs/drift carrier package or run \`bun run build\` locally.`)}function b(){let r=m(),e=p(r,process.argv.slice(2),{stdio:"inherit"});if(e.error)throw e.error;process.exit(e.status??1)}b();
@@ -0,0 +1,140 @@
1
+ export type ModuleKind = "react_component" | "react_hook" | "navigation_module" | "composite";
2
+ export type DriftStatus = "clean" | "drift_detected" | "partial" | "error";
3
+ export type CompatibilityClass = "none" | "patch_safe" | "minor_additive" | "breaking" | "unknown";
4
+ export type FindingKind = "missing_generated_docs" | "stale_generated_docs" | "broken_example" | "partial_extraction" | "extraction_error" | "missing_baseline_snapshot" | "new_public_module" | "removed_public_module" | "breaking_interface_change" | "minor_additive_interface_change" | "unknown_compatibility";
5
+ export type ReportFormat = "json" | "terminal" | "sarif" | "github_markdown" | "github-markdown" | "compact";
6
+ export type BridgeRuntimeKind = "node" | "bun" | "standalone";
7
+ export interface Provenance {
8
+ file_path: string;
9
+ line_start?: number;
10
+ line_end?: number;
11
+ }
12
+ export interface Diagnostic {
13
+ level: "info" | "warn" | "error";
14
+ message: string;
15
+ provenance: Provenance[];
16
+ }
17
+ export type ExampleStatus = "not_checked" | "passed" | "failed";
18
+ export interface ExampleContract {
19
+ example_id: string;
20
+ file_path: string;
21
+ status: ExampleStatus;
22
+ diagnostics: Diagnostic[];
23
+ }
24
+ export interface Finding {
25
+ finding_id: string;
26
+ kind: FindingKind;
27
+ severity: "info" | "low" | "medium" | "high" | "critical";
28
+ message: string;
29
+ provenance: Provenance[];
30
+ expected?: string;
31
+ actual?: string;
32
+ remediation?: string;
33
+ }
34
+ export interface ModuleArtifacts {
35
+ ledger_path: string;
36
+ docs_path: string;
37
+ }
38
+ export interface ModuleReport {
39
+ module_id: string;
40
+ module_kind: ModuleKind;
41
+ contract_hash?: string;
42
+ compatibility: CompatibilityClass;
43
+ status: DriftStatus;
44
+ examples: ExampleContract[];
45
+ findings: Finding[];
46
+ diagnostics: Diagnostic[];
47
+ artifacts: ModuleArtifacts;
48
+ }
49
+ export interface ScanSummary {
50
+ total_modules: number;
51
+ clean_modules: number;
52
+ drift_modules: number;
53
+ partial_modules: number;
54
+ error_modules: number;
55
+ }
56
+ export interface DriftReport {
57
+ schema_version: number;
58
+ scan_summary: ScanSummary;
59
+ execution: ExecutionSummary;
60
+ modules: ModuleReport[];
61
+ }
62
+ export interface ExecutionSummary {
63
+ schema_version: number;
64
+ modules_discovered: number;
65
+ modules_processed: number;
66
+ modules_reused: number;
67
+ cache_hits: number;
68
+ cache_misses: number;
69
+ ledger_writes: number;
70
+ docs_writes: number;
71
+ }
72
+ export interface BridgeRuntimeOptions {
73
+ kind?: BridgeRuntimeKind;
74
+ executable_path?: string;
75
+ bridge_entrypoint?: string;
76
+ }
77
+ export interface ScanOptions {
78
+ config_path?: string;
79
+ incremental?: IncrementalOptions;
80
+ bridge?: BridgeRuntimeOptions;
81
+ }
82
+ export interface CheckOptions {
83
+ config_path?: string;
84
+ incremental?: IncrementalOptions;
85
+ bridge?: BridgeRuntimeOptions;
86
+ }
87
+ export interface GenerateDocsOptions {
88
+ config_path?: string;
89
+ incremental?: IncrementalOptions;
90
+ bridge?: BridgeRuntimeOptions;
91
+ }
92
+ export interface DiffOptions {
93
+ baseline_path?: string;
94
+ config_path?: string;
95
+ incremental?: IncrementalOptions;
96
+ bridge?: BridgeRuntimeOptions;
97
+ }
98
+ export interface IncrementalOptions {
99
+ enabled?: boolean;
100
+ since?: string;
101
+ base?: string;
102
+ }
103
+ export interface RenderReportOptions {
104
+ format: ReportFormat;
105
+ }
106
+ export interface GenerationSummary {
107
+ report: DriftReport;
108
+ ledger_writes: number;
109
+ docs_writes: number;
110
+ }
111
+ export type BindingsErrorCode = "invalid_argument" | "invalid_config" | "runtime_resolution" | "extraction_failure" | "io" | "serialization" | "cache_corruption" | "git_failure";
112
+ export declare class MoxelDriftError extends Error {
113
+ readonly code: BindingsErrorCode;
114
+ constructor(code: BindingsErrorCode, message: string);
115
+ }
116
+ /**
117
+ * Returns the native bindings implementation version.
118
+ */
119
+ export declare function bindingsVersion(): string;
120
+ /**
121
+ * Runs the source scan pipeline through the native Rust runtime and packaged TS
122
+ * bridge.
123
+ */
124
+ export declare function scan(path: string, options?: ScanOptions): Promise<DriftReport>;
125
+ /**
126
+ * Runs policy-aware verification through the native Rust runtime.
127
+ */
128
+ export declare function check(path: string, options?: CheckOptions): Promise<DriftReport>;
129
+ /**
130
+ * Generates canonical ledgers and docs through the native Rust runtime.
131
+ */
132
+ export declare function generateDocs(path: string, options?: GenerateDocsOptions): Promise<GenerationSummary>;
133
+ /**
134
+ * Computes compatibility drift against baseline ledgers.
135
+ */
136
+ export declare function diff(path: string, options?: DiffOptions): Promise<DriftReport>;
137
+ /**
138
+ * Renders a report into one of the supported deterministic output formats.
139
+ */
140
+ export declare function renderReport(report: DriftReport, options: RenderReportOptions): Promise<string>;
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ import{createRequire as h}from"node:module";import{existsSync as l}from"node:fs";import{dirname as m,join as c}from"node:path";import{createRequire as F}from"node:module";import{fileURLToPath as k}from"node:url";var w=F(import.meta.url),d=m(k(import.meta.url)),_=m(d);function x(){return process.report?.getReport?.()?.header?.glibcVersionRuntime?"glibc":"musl"}function g(){let{platform:e,arch:r}=process;if(e==="linux"&&r==="x64"&&x()==="glibc")return{packageName:"@moxellabs/drift-linux-x64-gnu",addonFilename:"moxel-drift.linux-x64-gnu.node",bridgeFilename:"moxel-drift-bridge",cliFilename:"moxel-drift-cli"};if(e==="linux"&&r==="arm64"&&x()==="glibc")return{packageName:"@moxellabs/drift-linux-arm64-gnu",addonFilename:"moxel-drift.linux-arm64-gnu.node",bridgeFilename:"moxel-drift-bridge",cliFilename:"moxel-drift-cli"};if(e==="darwin"&&r==="x64")return{packageName:"@moxellabs/drift-darwin-x64",addonFilename:"moxel-drift.darwin-x64.node",bridgeFilename:"moxel-drift-bridge",cliFilename:"moxel-drift-cli"};if(e==="darwin"&&r==="arm64")return{packageName:"@moxellabs/drift-darwin-arm64",addonFilename:"moxel-drift.darwin-arm64.node",bridgeFilename:"moxel-drift-bridge",cliFilename:"moxel-drift-cli"};if(e==="win32"&&r==="x64")return{packageName:"@moxellabs/drift-win32-x64-msvc",addonFilename:"moxel-drift.win32-x64-msvc.node",bridgeFilename:"moxel-drift-bridge.exe",cliFilename:"moxel-drift-cli.exe"};throw Error(`unsupported moxel-drift target ${e}-${r}. Supported targets: linux-x64-glibc, linux-arm64-glibc, darwin-x64, darwin-arm64, win32-x64.`)}function f(){let e=g();try{let r=w.resolve(`${e.packageName}/package.json`);return m(r)}catch{return null}}function s(){let e=g(),r=f();if(r){let a=c(r,"native",e.addonFilename);if(l(a))return a}let i=c(d,"native",`moxel-drift.${process.platform}-${process.arch}.node`);if(l(i))return i;throw Error(`missing native addon for ${process.platform}-${process.arch}. Install the matching @moxellabs/drift carrier package or run \`bun run build\` locally.`)}function u(){let e=f();if(e){let i=g(),a=c(e,"bridge",i.bridgeFilename);if(l(a))return{kind:"standalone",executable_path:a}}let r=c(d,"bridge","index.js");if(l(r))return{kind:process.versions.bun?"bun":"node",executable_path:process.execPath,bridge_entrypoint:r};throw Error(`missing packaged bridge runtime for ${process.platform}-${process.arch}. Install the matching @moxellabs/drift carrier package or run \`bun run build\` locally.`)}class b extends Error{code;constructor(e,r){super(r);this.name="MoxelDriftError",this.code=e}}var p=h(import.meta.url),n=$();function $(){return p(s())}function o(e){let r=u();return{...e??{},bridge:{kind:r.kind,executable_path:r.executable_path,bridge_entrypoint:r.bridge_entrypoint,...e?.bridge??{}}}}function t(e){let r=JSON.parse(e);if(!r.ok||!("data"in r)){let i=r.error??{code:"serialization",message:"native runtime returned an invalid envelope"};throw new b(i.code,i.message)}return r.data}function T(){return n.bindingsVersion()}async function j(e,r){let i=await n.scanSerialized(e,JSON.stringify(o(r)));return t(i)}async function K(e,r){let i=await n.checkSerialized(e,JSON.stringify(o(r)));return t(i)}async function S(e,r){let i=await n.generateDocsSerialized(e,JSON.stringify(o(r)));return t(i)}async function V(e,r){let i=await n.diffSerialized(e,JSON.stringify(o(r)));return t(i)}async function A(e,r){let i=await n.renderReportSerialized(JSON.stringify(e),JSON.stringify(r));return t(i)}export{j as scan,A as renderReport,S as generateDocs,V as diff,K as check,T as bindingsVersion,b as MoxelDriftError};
@@ -0,0 +1 @@
1
+ import{existsSync as t}from"node:fs";import{dirname as c,join as a}from"node:path";import{createRequire as g}from"node:module";import{fileURLToPath as u}from"node:url";var f=g(import.meta.url),o=c(u(import.meta.url)),F=c(o);function s(){return process.report?.getReport?.()?.header?.glibcVersionRuntime?"glibc":"musl"}function l(){let{platform:e,arch:r}=process;if(e==="linux"&&r==="x64"&&s()==="glibc")return{packageName:"@moxellabs/drift-linux-x64-gnu",addonFilename:"moxel-drift.linux-x64-gnu.node",bridgeFilename:"moxel-drift-bridge",cliFilename:"moxel-drift-cli"};if(e==="linux"&&r==="arm64"&&s()==="glibc")return{packageName:"@moxellabs/drift-linux-arm64-gnu",addonFilename:"moxel-drift.linux-arm64-gnu.node",bridgeFilename:"moxel-drift-bridge",cliFilename:"moxel-drift-cli"};if(e==="darwin"&&r==="x64")return{packageName:"@moxellabs/drift-darwin-x64",addonFilename:"moxel-drift.darwin-x64.node",bridgeFilename:"moxel-drift-bridge",cliFilename:"moxel-drift-cli"};if(e==="darwin"&&r==="arm64")return{packageName:"@moxellabs/drift-darwin-arm64",addonFilename:"moxel-drift.darwin-arm64.node",bridgeFilename:"moxel-drift-bridge",cliFilename:"moxel-drift-cli"};if(e==="win32"&&r==="x64")return{packageName:"@moxellabs/drift-win32-x64-msvc",addonFilename:"moxel-drift.win32-x64-msvc.node",bridgeFilename:"moxel-drift-bridge.exe",cliFilename:"moxel-drift-cli.exe"};throw Error(`unsupported moxel-drift target ${e}-${r}. Supported targets: linux-x64-glibc, linux-arm64-glibc, darwin-x64, darwin-arm64, win32-x64.`)}function d(){let e=l();try{let r=f.resolve(`${e.packageName}/package.json`);return c(r)}catch{return null}}function w(){let e=l(),r=d();if(r){let n=a(r,"native",e.addonFilename);if(t(n))return n}let i=a(o,"native",`moxel-drift.${process.platform}-${process.arch}.node`);if(t(i))return i;throw Error(`missing native addon for ${process.platform}-${process.arch}. Install the matching @moxellabs/drift carrier package or run \`bun run build\` locally.`)}function k(){let e=d();if(e){let i=l(),n=a(e,"bridge",i.bridgeFilename);if(t(n))return{kind:"standalone",executable_path:n}}let r=a(o,"bridge","index.js");if(t(r))return{kind:process.versions.bun?"bun":"node",executable_path:process.execPath,bridge_entrypoint:r};throw Error(`missing packaged bridge runtime for ${process.platform}-${process.arch}. Install the matching @moxellabs/drift carrier package or run \`bun run build\` locally.`)}function R(){let e=d();if(e){let n=l(),m=a(e,"bin",n.cliFilename);if(t(m))return m}let r=process.platform==="win32"?"moxel-drift-cli.exe":"moxel-drift-cli",i=a(o,"bin",r);if(t(i))return i;throw Error(`missing packaged CLI binary for ${process.platform}-${process.arch}. Install the matching @moxellabs/drift carrier package or run \`bun run build\` locally.`)}export{w as resolveNativeAddonPath,R as resolveCliBinaryPath,k as resolveBridgeRuntime};
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@moxellabs/drift",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "moxel-drift": "./dist/bin.js"
9
+ },
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "default": "./dist/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "publishConfig": {
20
+ "access": "public"
21
+ },
22
+ "engines": {
23
+ "node": ">=20.0.0",
24
+ "bun": ">=1.3.0"
25
+ },
26
+ "optionalDependencies": {
27
+ "@moxellabs/drift-linux-x64-gnu": "0.1.0",
28
+ "@moxellabs/drift-linux-arm64-gnu": "0.1.0",
29
+ "@moxellabs/drift-darwin-x64": "0.1.0",
30
+ "@moxellabs/drift-darwin-arm64": "0.1.0",
31
+ "@moxellabs/drift-win32-x64-msvc": "0.1.0"
32
+ }
33
+ }