@panproto/core 0.12.0 → 0.14.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/index.d.ts CHANGED
@@ -32,6 +32,12 @@ export { FullDiffReport, CompatReport, ValidationResult } from './check.js';
32
32
  export type { FullSchemaDiff, CompatReportData, BreakingChange, NonBreakingChange, ConstraintChange, ConstraintDiff, KindChange, SchemaValidationIssue, } from './types.js';
33
33
  export { SchemaEnrichment } from './enrichment.js';
34
34
  export { ExprBuilder } from './expr.js';
35
+ export { parseExpr, evalExpr, formatExpr } from './expr-parser.js';
36
+ export { executeQuery } from './query.js';
37
+ export type { InstanceQuery, QueryMatch } from './query.js';
38
+ export { fiberAt, fiberDecomposition, type Fiber, type FiberDecomposition } from './fiber.js';
39
+ export { polyHom } from './hom.js';
40
+ export { preferredPath, distance, type GraphEdge, type PreferredPath } from './graph.js';
35
41
  export { MigrationAnalysis } from './coverage.js';
36
42
  export type { ValueKind, SortKind, DirectedEquation, ConflictStrategy, ConflictPolicy, Pattern, Expr, Literal, BuiltinOp, CoverageReport, PartialFailure, PartialReason, OpticKind, EnrichmentSummary, } from './types.js';
37
43
  export type { LawCheckResult, ProtocolSpec, EdgeRule, Vertex, Edge, HyperEdge, Constraint, Variant, RecursionPoint, UsageMode, Span, VertexOptions, EdgeOptions, SchemaData, MigrationSpec, LiftResult, GetResult, DiffReport, SchemaChange, Compatibility, ExistenceReport, ExistenceError, WasmModule, WasmExports, InstanceShape, InstanceValidationResult, } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGrE,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAGnB,YAAY,EACV,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC5E,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGlD,YAAY,EACV,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,IAAI,EACJ,OAAO,EACP,SAAS,EACT,cAAc,EACd,cAAc,EACd,aAAa,EACb,SAAS,EACT,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,SAAS,EACT,UAAU,EACV,OAAO,EACP,cAAc,EACd,SAAS,EACT,IAAI,EACJ,aAAa,EACb,WAAW,EACX,UAAU,EACV,aAAa,EACb,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,UAAU,EACV,WAAW,EACX,aAAa,EACb,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,OAAO,EACP,aAAa,EACb,YAAY,EACZ,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,UAAU,EACV,cAAc,EACd,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAClE,YAAY,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACX,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,EACL,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,cAAc,EACd,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -119,7 +119,16 @@ async function loadWasm(input) {
119
119
  check_dataset_staleness: glue.check_dataset_staleness,
120
120
  store_protocol_definition: glue.store_protocol_definition,
121
121
  get_protocol_definition: glue.get_protocol_definition,
122
- get_migration_complement: glue.get_migration_complement
122
+ get_migration_complement: glue.get_migration_complement,
123
+ parse_expr: glue.parse_expr,
124
+ eval_func_expr: glue.eval_func_expr,
125
+ execute_query: glue.execute_query,
126
+ // Phase 12: Fiber, hom, and graph
127
+ fiber_at: glue.fiber_at,
128
+ fiber_decomposition_wasm: glue.fiber_decomposition_wasm,
129
+ poly_hom: glue.poly_hom,
130
+ preferred_conversion_path: glue.preferred_conversion_path,
131
+ conversion_distance: glue.conversion_distance
123
132
  };
124
133
  const memory = initOutput.memory;
125
134
  if (!memory) {
@@ -2835,6 +2844,178 @@ class ExprBuilder {
2835
2844
  return ExprBuilder.builtin("Concat", a, b);
2836
2845
  }
2837
2846
  }
2847
+ function parseExpr(source, wasm) {
2848
+ try {
2849
+ const resultBytes = wasm.exports.parse_expr(source);
2850
+ return unpackFromWasm(resultBytes);
2851
+ } catch (error) {
2852
+ throw new WasmError(
2853
+ `Failed to parse expression: ${error instanceof Error ? error.message : String(error)}`,
2854
+ { cause: error }
2855
+ );
2856
+ }
2857
+ }
2858
+ function evalExpr(expr, env, wasm) {
2859
+ try {
2860
+ const exprBytes = packToWasm(expr);
2861
+ const envBytes = packToWasm(env ?? {});
2862
+ const resultBytes = wasm.exports.eval_func_expr(exprBytes, envBytes);
2863
+ return unpackFromWasm(resultBytes);
2864
+ } catch (error) {
2865
+ throw new WasmError(
2866
+ `Failed to evaluate expression: ${error instanceof Error ? error.message : String(error)}`,
2867
+ { cause: error }
2868
+ );
2869
+ }
2870
+ }
2871
+ function formatExpr(source, wasm) {
2872
+ const expr = parseExpr(source, wasm);
2873
+ return exprToString(expr);
2874
+ }
2875
+ function exprToString(expr) {
2876
+ switch (expr.type) {
2877
+ case "var":
2878
+ return expr.name;
2879
+ case "lit":
2880
+ return literalToString(expr.value);
2881
+ case "lam":
2882
+ return `\\${expr.param} -> ${exprToString(expr.body)}`;
2883
+ case "app":
2884
+ return `(${exprToString(expr.func)} ${exprToString(expr.arg)})`;
2885
+ case "let":
2886
+ return `let ${expr.name} = ${exprToString(expr.value)} in ${exprToString(expr.body)}`;
2887
+ case "field":
2888
+ return `${exprToString(expr.expr)}.${expr.name}`;
2889
+ case "record": {
2890
+ const fields = expr.fields.map(([k, v]) => `${k} = ${exprToString(v)}`).join(", ");
2891
+ return `{ ${fields} }`;
2892
+ }
2893
+ case "list": {
2894
+ const items = expr.items.map(exprToString).join(", ");
2895
+ return `[${items}]`;
2896
+ }
2897
+ case "index":
2898
+ return `${exprToString(expr.expr)}[${exprToString(expr.index)}]`;
2899
+ case "match": {
2900
+ const arms = expr.arms.map(([pat, body]) => `${patternToString(pat)} -> ${exprToString(body)}`).join("; ");
2901
+ return `match ${exprToString(expr.scrutinee)} { ${arms} }`;
2902
+ }
2903
+ case "builtin": {
2904
+ const args = expr.args.map(exprToString).join(", ");
2905
+ return `${expr.op}(${args})`;
2906
+ }
2907
+ }
2908
+ }
2909
+ function literalToString(lit) {
2910
+ switch (lit.type) {
2911
+ case "bool":
2912
+ return String(lit.value);
2913
+ case "int":
2914
+ return String(lit.value);
2915
+ case "float":
2916
+ return String(lit.value);
2917
+ case "str":
2918
+ return JSON.stringify(lit.value);
2919
+ case "bytes":
2920
+ return `<bytes:${lit.value.length}>`;
2921
+ case "null":
2922
+ return "null";
2923
+ case "record": {
2924
+ const fields = lit.fields.map(([k, v]) => `${k} = ${literalToString(v)}`).join(", ");
2925
+ return `{ ${fields} }`;
2926
+ }
2927
+ case "list": {
2928
+ const items = lit.items.map(literalToString).join(", ");
2929
+ return `[${items}]`;
2930
+ }
2931
+ }
2932
+ }
2933
+ function patternToString(pat) {
2934
+ switch (pat.type) {
2935
+ case "wildcard":
2936
+ return "_";
2937
+ case "var":
2938
+ return pat.name;
2939
+ case "lit":
2940
+ return literalToString(pat.value);
2941
+ case "record": {
2942
+ const fields = pat.fields.map(([k, v]) => `${k} = ${patternToString(v)}`).join(", ");
2943
+ return `{ ${fields} }`;
2944
+ }
2945
+ case "list": {
2946
+ const items = pat.items.map(patternToString).join(", ");
2947
+ return `[${items}]`;
2948
+ }
2949
+ }
2950
+ }
2951
+ function executeQuery(query, instance, wasm) {
2952
+ try {
2953
+ const queryBytes = packToWasm(query);
2954
+ const resultBytes = wasm.exports.execute_query(queryBytes, instance._bytes);
2955
+ return unpackFromWasm(resultBytes);
2956
+ } catch (error) {
2957
+ throw new WasmError(
2958
+ `Failed to execute query: ${error instanceof Error ? error.message : String(error)}`,
2959
+ { cause: error }
2960
+ );
2961
+ }
2962
+ }
2963
+ function fiberAt(instance, migration, targetAnchor, wasm) {
2964
+ try {
2965
+ const resultBytes = wasm.exports.fiber_at(instance, migration, targetAnchor);
2966
+ return unpackFromWasm(resultBytes);
2967
+ } catch (error) {
2968
+ throw new WasmError(
2969
+ `Failed to compute fiber at "${targetAnchor}": ${error instanceof Error ? error.message : String(error)}`,
2970
+ { cause: error }
2971
+ );
2972
+ }
2973
+ }
2974
+ function fiberDecomposition(instance, migration, wasm) {
2975
+ try {
2976
+ const resultBytes = wasm.exports.fiber_decomposition_wasm(instance, migration);
2977
+ return unpackFromWasm(resultBytes);
2978
+ } catch (error) {
2979
+ throw new WasmError(
2980
+ `Failed to compute fiber decomposition: ${error instanceof Error ? error.message : String(error)}`,
2981
+ { cause: error }
2982
+ );
2983
+ }
2984
+ }
2985
+ function polyHom(sourceSchema, targetSchema, wasm) {
2986
+ try {
2987
+ return wasm.exports.poly_hom(sourceSchema, targetSchema);
2988
+ } catch (error) {
2989
+ throw new WasmError(
2990
+ `Failed to construct internal hom: ${error instanceof Error ? error.message : String(error)}`,
2991
+ { cause: error }
2992
+ );
2993
+ }
2994
+ }
2995
+ function preferredPath(edges, sourceSchema, targetSchema, wasm) {
2996
+ try {
2997
+ const graphBytes = packToWasm(edges);
2998
+ const resultBytes = wasm.exports.preferred_conversion_path(
2999
+ graphBytes,
3000
+ sourceSchema,
3001
+ targetSchema
3002
+ );
3003
+ return unpackFromWasm(resultBytes);
3004
+ } catch {
3005
+ return null;
3006
+ }
3007
+ }
3008
+ function distance(edges, sourceSchema, targetSchema, wasm) {
3009
+ try {
3010
+ const graphBytes = packToWasm(edges);
3011
+ return wasm.exports.conversion_distance(graphBytes, sourceSchema, targetSchema);
3012
+ } catch (error) {
3013
+ throw new WasmError(
3014
+ `Failed to compute conversion distance: ${error instanceof Error ? error.message : String(error)}`,
3015
+ { cause: error }
3016
+ );
3017
+ }
3018
+ }
2838
3019
  function classifyOpticKind(chain, schema, _wasm) {
2839
3020
  const spec = chain.requirements(schema);
2840
3021
  const hasDefaults = spec.forwardDefaults.length > 0;
@@ -3120,9 +3301,18 @@ export {
3120
3301
  checkMorphism,
3121
3302
  colimit,
3122
3303
  createTheory,
3304
+ distance,
3305
+ evalExpr,
3306
+ executeQuery,
3123
3307
  factorizeMorphism,
3308
+ fiberAt,
3309
+ fiberDecomposition,
3310
+ formatExpr,
3124
3311
  getBuiltinProtocol,
3125
3312
  getProtocolNames,
3126
- migrateModel
3313
+ migrateModel,
3314
+ parseExpr,
3315
+ polyHom,
3316
+ preferredPath
3127
3317
  };
3128
3318
  //# sourceMappingURL=index.js.map