@seedprotocol/mapping 0.5.3 → 0.6.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.
Files changed (49) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +202 -36
  3. package/dist/adapters/rss.d.ts +2 -1
  4. package/dist/adapters/rss.d.ts.map +1 -1
  5. package/dist/applyMapping.d.ts +14 -1
  6. package/dist/applyMapping.d.ts.map +1 -1
  7. package/dist/autoMap-PTFd4l-9.js +534 -0
  8. package/dist/autoMap-PTFd4l-9.js.map +1 -0
  9. package/dist/autoMap.d.ts +3 -3
  10. package/dist/autoMap.d.ts.map +1 -1
  11. package/dist/classifyUrl.d.ts +14 -0
  12. package/dist/classifyUrl.d.ts.map +1 -0
  13. package/dist/index.d.ts +7 -3
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +91 -402
  16. package/dist/index.js.map +1 -1
  17. package/dist/react/FieldMapper.d.ts +65 -5
  18. package/dist/react/FieldMapper.d.ts.map +1 -1
  19. package/dist/react/FieldMapperWires.d.ts +19 -0
  20. package/dist/react/FieldMapperWires.d.ts.map +1 -0
  21. package/dist/react/LookupEditor.d.ts +24 -0
  22. package/dist/react/LookupEditor.d.ts.map +1 -0
  23. package/dist/react/PropertyRows.d.ts +19 -0
  24. package/dist/react/PropertyRows.d.ts.map +1 -0
  25. package/dist/react/SourceRows.d.ts +18 -0
  26. package/dist/react/SourceRows.d.ts.map +1 -0
  27. package/dist/react/fieldMapperControls.d.ts +9 -0
  28. package/dist/react/fieldMapperControls.d.ts.map +1 -0
  29. package/dist/react/fieldMapperCore.d.ts +79 -0
  30. package/dist/react/fieldMapperCore.d.ts.map +1 -0
  31. package/dist/react/fieldMapperSlots.d.ts +69 -0
  32. package/dist/react/fieldMapperSlots.d.ts.map +1 -0
  33. package/dist/react/fieldMapperTheme.d.ts +34 -0
  34. package/dist/react/fieldMapperTheme.d.ts.map +1 -0
  35. package/dist/react/fieldMapperTypes.d.ts +63 -0
  36. package/dist/react/fieldMapperTypes.d.ts.map +1 -0
  37. package/dist/react/useFieldMapper.d.ts +8 -0
  38. package/dist/react/useFieldMapper.d.ts.map +1 -0
  39. package/dist/react.d.ts +10 -0
  40. package/dist/react.d.ts.map +1 -0
  41. package/dist/react.js +1617 -0
  42. package/dist/react.js.map +1 -0
  43. package/dist/relationLookup.d.ts +14 -0
  44. package/dist/relationLookup.d.ts.map +1 -0
  45. package/dist/resolvedSources.d.ts +32 -0
  46. package/dist/resolvedSources.d.ts.map +1 -0
  47. package/dist/types.d.ts +57 -2
  48. package/dist/types.d.ts.map +1 -1
  49. package/package.json +19 -1
@@ -0,0 +1,63 @@
1
+ import type { FieldMapping, MappingLookups, ResolveJob, SourceNode, TargetProperty } from '../types';
2
+ /** Authoring surface. Prefer `'rows'`; `'wires'` is deprecated but still supported. */
3
+ export type FieldMapperLayout = 'rows' | 'wires';
4
+ export type FieldMapperRowKey = 'property' | 'source';
5
+ export type FieldMapperDefaultRows = 'requiredAndMapped' | 'mapped' | 'all';
6
+ export type FieldMapperOption = {
7
+ value: string;
8
+ label: string;
9
+ sample?: string;
10
+ kind?: string;
11
+ dataType?: string;
12
+ };
13
+ export type FieldMapperRowState = 'empty' | 'mapped' | 'needsResolve' | 'conflict';
14
+ export type FieldMapperRow = {
15
+ /** Property name in property mode; synthetic edge id in source mode. */
16
+ id: string;
17
+ target?: TargetProperty;
18
+ mapping?: FieldMapping;
19
+ source?: SourceNode;
20
+ /** Sync preview, or a description of what the host resolver will produce. */
21
+ preview: string;
22
+ /** Transform this edge needs to yield a usable value, if any. */
23
+ requiredResolve: ResolveJob | null;
24
+ state: FieldMapperRowState;
25
+ };
26
+ export type FieldMapperCoverage = {
27
+ mapped: number;
28
+ total: number;
29
+ missingRequired: string[];
30
+ };
31
+ export type UseFieldMapperArgs = {
32
+ sources: SourceNode[];
33
+ targets: TargetProperty[];
34
+ mappings: FieldMapping[];
35
+ onChange: (mappings: FieldMapping[]) => void;
36
+ lookups?: MappingLookups;
37
+ onLookupsChange?: (lookups: MappingLookups) => void;
38
+ rowKey?: FieldMapperRowKey;
39
+ onAutoMap?: () => FieldMapping[];
40
+ };
41
+ export type UseFieldMapperResult = {
42
+ rows: FieldMapperRow[];
43
+ sourceOptions: FieldMapperOption[];
44
+ propertyOptions: FieldMapperOption[];
45
+ addableProperties: TargetProperty[];
46
+ coverage: FieldMapperCoverage;
47
+ /** Row ids whose property is already filled by an earlier row. Empty in property mode. */
48
+ conflicts: Set<string>;
49
+ setSource: (rowId: string, sourceId: string | null) => void;
50
+ setProperty: (rowId: string, propertyName: string) => void;
51
+ setTransform: (rowId: string, resolve: ResolveJob | null) => void;
52
+ addRow: (propertyName?: string) => void;
53
+ removeRow: (rowId: string) => void;
54
+ autoMap: () => void;
55
+ /**
56
+ * Wires-layout helper: property-exclusive connect from a (possibly derived)
57
+ * source id. Normalizes `@extract`/`@file` and auto-attaches lookup.
58
+ */
59
+ connect: (sourceId: string, propertyName: string) => void;
60
+ /** Remove every edge for a source (including derived resolve ids). */
61
+ removeBySource: (sourceId: string) => void;
62
+ };
63
+ //# sourceMappingURL=fieldMapperTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldMapperTypes.d.ts","sourceRoot":"","sources":["../../src/react/fieldMapperTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { TargetProperty } from '../types';
2
+ import { filterPropertyNames } from './fieldMapperCore';
3
+ import type { UseFieldMapperArgs, UseFieldMapperResult } from './fieldMapperTypes';
4
+ export declare function useFieldMapper({ sources, targets, mappings, onChange, lookups, onLookupsChange, rowKey, onAutoMap, }: UseFieldMapperArgs): UseFieldMapperResult;
5
+ /** Re-export filter helper for row renderers. */
6
+ export { filterPropertyNames };
7
+ export type { TargetProperty };
8
+ //# sourceMappingURL=useFieldMapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFieldMapper.d.ts","sourceRoot":"","sources":["../../src/react/useFieldMapper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA4B,cAAc,EAAE,MAAM,UAAU,CAAA;AACxE,OAAO,EAUL,mBAAmB,EAOpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,oBAAoB,CAAA;AAE3B,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,OAAY,EACZ,eAAe,EACf,MAAmB,EACnB,SAAS,GACV,EAAE,kBAAkB,GAAG,oBAAoB,CAsa3C;AAED,iDAAiD;AACjD,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAC9B,YAAY,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * React UI entry for `@seedprotocol/mapping/react`.
3
+ * Import FieldMapper from here — not from `@seedprotocol/mapping` — so Node
4
+ * consumers of the headless API never resolve the React peer.
5
+ */
6
+ export { FieldMapper, connectionStrokeForIndex, FIELD_MAPPER_PAIR_SLOTS, resolveTheme, ensureThemeInjected, buildThemeCss, wrapInThemeLayer, DEFAULT_THEME_CSS, STRUCTURAL_THEME_CSS, PAINT_THEME_CSS, THEME_STYLE_ID, resetThemeInjectionForTests, slotClass, resolveSlots, showRowPreview, showJsonPreview, SLOT_BASE_CLASS, type FieldMapperProps, type FieldMapperTheme, type ResolvedFieldMapperTheme, type FieldMapperLayout, type FieldMapperRowKey, type FieldMapperDefaultRows, type FieldMapperSlot, type FieldMapperSlots, type ResolvedFieldMapperSlots, type FieldMapperComponents, type ResolvedFieldMapperComponents, type FieldMapperSelectProps, type FieldMapperButtonProps, type FieldMapperPillProps, } from './react/FieldMapper';
7
+ export { useFieldMapper, filterPropertyNames, } from './react/useFieldMapper';
8
+ export type { FieldMapperOption, FieldMapperRow, FieldMapperRowState, FieldMapperCoverage, UseFieldMapperArgs, UseFieldMapperResult, } from './react/fieldMapperTypes';
9
+ export { computeRequiredResolve, computeCoverage, buildSourceOptions, buildPropertyModeRows, buildSyncPreviewBag, previewForEdge, findConflicts, connectSourceToProperty, } from './react/fieldMapperCore';
10
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,2BAA2B,EAC3B,SAAS,EACT,YAAY,EACZ,cAAc,EACd,eAAe,EACf,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,cAAc,EACd,mBAAmB,GACpB,MAAM,wBAAwB,CAAA;AAE/B,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,uBAAuB,GACxB,MAAM,yBAAyB,CAAA"}