@stonecrop/stonecrop 0.10.16 → 0.11.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 (71) hide show
  1. package/README.md +72 -29
  2. package/dist/composables/lazy-link.js +125 -0
  3. package/dist/composables/stonecrop.js +123 -68
  4. package/dist/doctype.js +10 -2
  5. package/dist/field-triggers.js +15 -3
  6. package/dist/index.js +4 -3
  7. package/dist/registry.js +261 -101
  8. package/dist/schema-validator.js +105 -1
  9. package/dist/src/composables/lazy-link.d.ts +25 -0
  10. package/dist/src/composables/lazy-link.d.ts.map +1 -0
  11. package/dist/src/composables/operation-log.d.ts +5 -5
  12. package/dist/src/composables/operation-log.d.ts.map +1 -1
  13. package/dist/src/composables/stonecrop.d.ts +11 -1
  14. package/dist/src/composables/stonecrop.d.ts.map +1 -1
  15. package/dist/src/doctype.d.ts +9 -1
  16. package/dist/src/doctype.d.ts.map +1 -1
  17. package/dist/src/field-triggers.d.ts +6 -0
  18. package/dist/src/field-triggers.d.ts.map +1 -1
  19. package/dist/src/index.d.ts +3 -2
  20. package/dist/src/index.d.ts.map +1 -1
  21. package/dist/src/registry.d.ts +102 -23
  22. package/dist/src/registry.d.ts.map +1 -1
  23. package/dist/src/schema-validator.d.ts +8 -1
  24. package/dist/src/schema-validator.d.ts.map +1 -1
  25. package/dist/src/stonecrop.d.ts +73 -28
  26. package/dist/src/stonecrop.d.ts.map +1 -1
  27. package/dist/src/stores/hst.d.ts +5 -75
  28. package/dist/src/stores/hst.d.ts.map +1 -1
  29. package/dist/src/stores/operation-log.d.ts +14 -14
  30. package/dist/src/stores/operation-log.d.ts.map +1 -1
  31. package/dist/src/types/composable.d.ts +50 -12
  32. package/dist/src/types/composable.d.ts.map +1 -1
  33. package/dist/src/types/doctype.d.ts +6 -7
  34. package/dist/src/types/doctype.d.ts.map +1 -1
  35. package/dist/src/types/field-triggers.d.ts +1 -1
  36. package/dist/src/types/field-triggers.d.ts.map +1 -1
  37. package/dist/src/types/hst.d.ts +70 -0
  38. package/dist/src/types/hst.d.ts.map +1 -0
  39. package/dist/src/types/index.d.ts +1 -0
  40. package/dist/src/types/index.d.ts.map +1 -1
  41. package/dist/src/types/operation-log.d.ts +4 -4
  42. package/dist/src/types/operation-log.d.ts.map +1 -1
  43. package/dist/src/types/schema-validator.d.ts +2 -0
  44. package/dist/src/types/schema-validator.d.ts.map +1 -1
  45. package/dist/stonecrop.d.ts +317 -99
  46. package/dist/stonecrop.js +2191 -1897
  47. package/dist/stonecrop.js.map +1 -1
  48. package/dist/stores/hst.js +27 -25
  49. package/dist/stores/operation-log.js +59 -47
  50. package/dist/types/hst.js +0 -0
  51. package/dist/types/index.js +1 -0
  52. package/package.json +5 -5
  53. package/src/composables/lazy-link.ts +146 -0
  54. package/src/composables/operation-log.ts +1 -1
  55. package/src/composables/stonecrop.ts +142 -73
  56. package/src/doctype.ts +13 -4
  57. package/src/field-triggers.ts +18 -4
  58. package/src/index.ts +4 -2
  59. package/src/registry.ts +289 -111
  60. package/src/schema-validator.ts +120 -1
  61. package/src/stonecrop.ts +230 -106
  62. package/src/stores/hst.ts +29 -104
  63. package/src/stores/operation-log.ts +64 -50
  64. package/src/types/composable.ts +55 -12
  65. package/src/types/doctype.ts +6 -7
  66. package/src/types/field-triggers.ts +1 -1
  67. package/src/types/hst.ts +77 -0
  68. package/src/types/index.ts +1 -0
  69. package/src/types/operation-log.ts +4 -4
  70. package/src/types/schema-validator.ts +2 -0
  71. package/dist/stonecrop.css +0 -1
@@ -1,4 +1,4 @@
1
- import type { HSTNode } from '../stores/hst';
1
+ import type { HSTNode } from '../types/hst';
2
2
  import type { OperationLogConfig } from '../types/operation-log';
3
3
  /**
4
4
  * Composable for operation log management
@@ -48,8 +48,8 @@ export declare function useOperationLog(config?: Partial<OperationLogConfig>): {
48
48
  actionError?: string | undefined;
49
49
  userId?: string | undefined;
50
50
  metadata?: Record<string, any> | undefined;
51
- parentOperationId?: string | undefined;
52
- childOperationIds?: string[] | undefined;
51
+ ancestorOperationId?: string | undefined;
52
+ descendantOperationIds?: string[] | undefined;
53
53
  }[], import("..").HSTOperation[] | {
54
54
  id: string;
55
55
  type: import("..").HSTOperationType;
@@ -72,8 +72,8 @@ export declare function useOperationLog(config?: Partial<OperationLogConfig>): {
72
72
  actionError?: string | undefined;
73
73
  userId?: string | undefined;
74
74
  metadata?: Record<string, any> | undefined;
75
- parentOperationId?: string | undefined;
76
- childOperationIds?: string[] | undefined;
75
+ ancestorOperationId?: string | undefined;
76
+ descendantOperationIds?: string[] | undefined;
77
77
  }[]>;
78
78
  currentIndex: import("vue").Ref<number, number>;
79
79
  undoRedoState: import("vue").ComputedRef<import("..").UndoRedoState>;
@@ -1 +1 @@
1
- {"version":3,"file":"operation-log.d.ts","sourceRoot":"","sources":["../../../src/composables/operation-log.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAoB3C,OAAO,KAAG,OAAO;qBAOjB,OAAO,KAAG,OAAO;;gCAcN,MAAM,KAAG,MAAM,GAAG,IAAI;;;gCAqBtB,MAAM,aAAa,MAAM;;oCAgBrB,MAAM,UAAU,MAAM;yBAcnD,MAAM,cACH,MAAM,cACN,MAAM,EAAE,WACZ,SAAS,GAAG,SAAS,GAAG,SAAS,UACjC,MAAM,KACZ,MAAM;yBAQmB,OAAO,CAAC,kBAAkB,CAAC;EA2BvD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,UAAO,QAqCrE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYzG"}
1
+ {"version":3,"file":"operation-log.d.ts","sourceRoot":"","sources":["../../../src/composables/operation-log.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAoB3C,OAAO,KAAG,OAAO;qBAOjB,OAAO,KAAG,OAAO;;gCAcN,MAAM,KAAG,MAAM,GAAG,IAAI;;;gCAqBtB,MAAM,aAAa,MAAM;;oCAgBrB,MAAM,UAAU,MAAM;yBAcnD,MAAM,cACH,MAAM,cACN,MAAM,EAAE,WACZ,SAAS,GAAG,SAAS,GAAG,SAAS,UACjC,MAAM,KACZ,MAAM;yBAQmB,OAAO,CAAC,kBAAkB,CAAC;EA2BvD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,UAAO,QAqCrE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYzG"}
@@ -10,7 +10,17 @@ import type { BaseStonecropReturn, HSTStonecropReturn } from '../types/composabl
10
10
  */
11
11
  export declare function useStonecrop(): BaseStonecropReturn | HSTStonecropReturn;
12
12
  /**
13
- * Unified Stonecrop composable with HST integration for a specific doctype and record
13
+ * Unified Stonecrop composable with HST integration for a specific doctype and record.
14
+ *
15
+ * When a `Doctype` instance is passed, all synchronous initialisation (`hstStore`,
16
+ * `resolvedSchema`, `formData`, `handleHSTChange`, operation-log wiring) is performed
17
+ * during `setup()` — before the first render and without awaiting any lifecycle hook.
18
+ * Callers can read `hstStore.value`, `resolvedSchema.value`, and `formData.value`
19
+ * immediately after calling this composable; no `nextTick`, `flushPromises`, or
20
+ * `setTimeout` is required.
21
+ *
22
+ * The only remaining async work in `onMounted` is fetching an existing record from the
23
+ * server when `recordId` is not `'new'`, and lazy-loading a doctype by slug string.
14
24
  *
15
25
  * @param options - Configuration with doctype (string slug or Doctype instance) and optional recordId
16
26
  * @returns Stonecrop instance with full HST integration utilities
@@ -1 +1 @@
1
- {"version":3,"file":"stonecrop.d.ts","sourceRoot":"","sources":["../../../src/composables/stonecrop.ts"],"names":[],"mappings":"AAIA,OAAO,OAAO,MAAM,YAAY,CAAA;AAChC,OAAO,QAAQ,MAAM,aAAa,CAAA;AAGlC,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAkC,MAAM,qBAAqB,CAAA;AAIlH;;;;;;GAMG;AACH,wBAAgB,YAAY,IAAI,mBAAmB,GAAG,kBAAkB,CAAA;AACxE;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE;IACrC,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,OAAO,EAAE,OAAO,GAAG,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB,GAAG,kBAAkB,CAAA"}
1
+ {"version":3,"file":"stonecrop.d.ts","sourceRoot":"","sources":["../../../src/composables/stonecrop.ts"],"names":[],"mappings":"AAIA,OAAO,OAAO,MAAM,YAAY,CAAA;AAChC,OAAO,QAAQ,MAAM,aAAa,CAAA;AAGlC,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAkC,MAAM,qBAAqB,CAAA;AAIlH;;;;;;GAMG;AACH,wBAAgB,YAAY,IAAI,mBAAmB,GAAG,kBAAkB,CAAA;AACxE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE;IACrC,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,OAAO,EAAE,OAAO,GAAG,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB,GAAG,kBAAkB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import type { SchemaTypes } from '@stonecrop/aform';
2
+ import type { LinkDeclaration } from '@stonecrop/schema';
2
3
  import { Component } from 'vue';
3
4
  import type { ImmutableDoctype } from './types';
4
5
  import type { DoctypeConfig } from './types/doctype';
@@ -43,6 +44,12 @@ export default class Doctype {
43
44
  * @readonly
44
45
  */
45
46
  readonly component?: Component;
47
+ /**
48
+ * Relationship links to other doctypes
49
+ * @public
50
+ * @readonly
51
+ */
52
+ readonly links?: Record<string, LinkDeclaration>;
46
53
  /**
47
54
  * Creates a new Doctype instance
48
55
  * @param doctype - The doctype name
@@ -50,8 +57,9 @@ export default class Doctype {
50
57
  * @param workflow - The doctype workflow configuration (XState machine)
51
58
  * @param actions - The doctype actions and field triggers
52
59
  * @param component - Optional Vue component for rendering the doctype
60
+ * @param links - Optional relationship links to other doctypes
53
61
  */
54
- constructor(doctype: string, schema: ImmutableDoctype['schema'], workflow: ImmutableDoctype['workflow'], actions: ImmutableDoctype['actions'], component?: Component);
62
+ constructor(doctype: string, schema: ImmutableDoctype['schema'], workflow: ImmutableDoctype['workflow'], actions: ImmutableDoctype['actions'], component?: Component, links?: Record<string, LinkDeclaration>);
55
63
  /**
56
64
  * Creates a Doctype instance from a plain configuration object.
57
65
  * Handles conversion of arrays to Immutable.js collections internally.
@@ -1 +1 @@
1
- {"version":3,"file":"doctype.d.ts","sourceRoot":"","sources":["../../src/doctype.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAGnD,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAG/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IAExB;;;;OAIG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IAE3C;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAA;IAE/C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAE7C;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;IAE9B;;;;;;;OAOG;gBAEF,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAClC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,EACtC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,EACpC,SAAS,CAAC,EAAE,SAAS;IAStB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAOjD;;;;;;;;;;;;;;OAcG;IACH,cAAc,IAAI,WAAW,EAAE;IAK/B;;;;;;;OAOG;IACH,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAK5C;;;;;;;;;;;;;;OAcG;IACH,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAsC3F;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAC7B;QACA,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;QACf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;QACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;QACxB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC7B,GACD,SAAS;IAQZ;;;;;;;;;;;;;;;OAeG;IACH,IAAI,IAAI,WAKP;CACD"}
1
+ {"version":3,"file":"doctype.d.ts","sourceRoot":"","sources":["../../src/doctype.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,mBAAmB,CAAA;AAEtE,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAE/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IAExB;;;;OAIG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IAE3C;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAA;IAE/C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAE7C;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;IAE9B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAEhD;;;;;;;;OAQG;gBAEF,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAClC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,EACtC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,EACpC,SAAS,CAAC,EAAE,SAAS,EACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAUxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAOjD;;;;;;;;;;;;;;OAcG;IACH,cAAc,IAAI,WAAW,EAAE;IAK/B;;;;;;;OAOG;IACH,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAK5C;;;;;;;;;;;;;;OAcG;IACH,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAsC3F;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAC7B;QACA,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;QACf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;QACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;QACxB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC7B,GACD,SAAS;IAQZ;;;;;;;;;;;;;;;OAeG;IACH,IAAI,IAAI,WAKP;CACD"}
@@ -27,6 +27,12 @@ export declare class FieldTriggerEngine {
27
27
  * @param fn - The action function
28
28
  */
29
29
  registerAction(name: string, fn: FieldActionFunction): void;
30
+ /**
31
+ * Look up a registered action function by name.
32
+ * Returns `undefined` if the action has not been registered.
33
+ * @param name - The action name
34
+ */
35
+ getAction(name: string): FieldActionFunction | undefined;
30
36
  /**
31
37
  * Register a global XState transition action function
32
38
  * @param name - The name of the transition action
@@ -1 +1 @@
1
- {"version":3,"file":"field-triggers.d.ts","sourceRoot":"","sources":["../../src/field-triggers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field-triggers.d.ts","sourceRoot":"","sources":["../../src/field-triggers.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,19 @@
1
1
  export type * from '@stonecrop/aform/types';
2
2
  export type * from '@stonecrop/atable/types';
3
+ import { useLazyLink } from './composables/lazy-link';
3
4
  import { useStonecrop } from './composables/stonecrop';
4
5
  import { useOperationLog, useUndoRedoShortcuts, withBatch } from './composables/operation-log';
5
6
  import Doctype from './doctype';
6
7
  import { FieldTriggerEngine, getGlobalTriggerEngine, markOperationIrreversible, registerGlobalAction, registerTransitionAction, setFieldRollback, triggerTransition } from './field-triggers';
7
8
  import plugin from './plugins';
8
9
  import Registry from './registry';
9
- import { Stonecrop, collectNestedData } from './stonecrop';
10
+ import { Stonecrop, getStonecrop } from './stonecrop';
10
11
  import { HST, createHST, type HSTNode } from './stores/hst';
11
12
  import { useOperationLogStore } from './stores/operation-log';
12
13
  import { SchemaValidator, createValidator, validateSchema } from './schema-validator';
13
14
  import { ValidationSeverity } from './types/schema-validator';
14
15
  export type * from './types';
15
16
  export { ValidationSeverity };
16
- export { Doctype, Registry, Stonecrop, useStonecrop, HST, createHST, HSTNode, FieldTriggerEngine, getGlobalTriggerEngine, registerGlobalAction, registerTransitionAction, setFieldRollback, triggerTransition, markOperationIrreversible, SchemaValidator, createValidator, validateSchema, useOperationLog, useOperationLogStore, useUndoRedoShortcuts, withBatch, collectNestedData, };
17
+ export { Doctype, Registry, Stonecrop, useLazyLink, useStonecrop, HST, createHST, HSTNode, FieldTriggerEngine, getGlobalTriggerEngine, registerGlobalAction, registerTransitionAction, setFieldRollback, triggerTransition, markOperationIrreversible, SchemaValidator, createValidator, validateSchema, useOperationLog, useOperationLogStore, useUndoRedoShortcuts, withBatch, getStonecrop, };
17
18
  export default plugin;
18
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,wBAAwB,CAAA;AAC3C,mBAAmB,yBAAyB,CAAA;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC9F,OAAO,OAAO,MAAM,WAAW,CAAA;AAC/B,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAG7D,mBAAmB,SAAS,CAAA;AAG5B,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B,OAAO,EACN,OAAO,EACP,QAAQ,EACR,SAAS,EACT,YAAY,EAEZ,GAAG,EACH,SAAS,EACT,OAAO,EAEP,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EAEzB,eAAe,EACf,eAAe,EACf,cAAc,EAEd,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EAET,iBAAiB,GACjB,CAAA;AAGD,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,wBAAwB,CAAA;AAC3C,mBAAmB,yBAAyB,CAAA;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC9F,OAAO,OAAO,MAAM,WAAW,CAAA;AAC/B,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAG7D,mBAAmB,SAAS,CAAA;AAG5B,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B,OAAO,EACN,OAAO,EACP,QAAQ,EACR,SAAS,EACT,WAAW,EACX,YAAY,EAEZ,GAAG,EACH,SAAS,EACT,OAAO,EAEP,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EAEzB,eAAe,EACf,eAAe,EACf,cAAc,EAEd,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EAET,YAAY,GACZ,CAAA;AAGD,eAAe,MAAM,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import type { SchemaTypes } from '@stonecrop/aform';
2
+ import type { DoctypeMeta, LinkDeclaration } from '@stonecrop/schema';
2
3
  import { Router } from 'vue-router';
3
4
  import Doctype from './doctype';
4
5
  import { RouteContext } from './types/registry';
@@ -19,9 +20,27 @@ export default class Registry {
19
20
  readonly name: string;
20
21
  /**
21
22
  * The registry property contains a collection of doctypes
23
+ *
24
+ * @defaultValue `{}`
22
25
  * @see {@link Doctype}
23
26
  */
24
27
  readonly registry: Record<string, Doctype>;
28
+ /**
29
+ * Reverse index: backlink fieldname → list of \{ doctype slug, link fieldname \}.
30
+ * Multiple doctypes can declare a link with the same backlink name, so each key
31
+ * maps to an array. Built at schema load time for O(1) ancestor lookups.
32
+ *
33
+ * @defaultValue `new Map()`
34
+ * @internal
35
+ */
36
+ private _ancestorIndex;
37
+ /**
38
+ * Whether the ancestor index needs rebuilding
39
+ *
40
+ * @defaultValue `true`
41
+ * @internal
42
+ */
43
+ private _ancestorIndexDirty;
25
44
  /**
26
45
  * The Vue router instance
27
46
  * @see {@link https://router.vuejs.org/}
@@ -48,35 +67,32 @@ export default class Registry {
48
67
  /**
49
68
  * Resolve nested Doctype fields in a schema by embedding child schemas inline.
50
69
  *
51
- * @remarks
52
- * Walks the schema array and for each field with `fieldtype: 'Doctype'` and a string
53
- * `options` value, looks up the referenced doctype in the registry and:
70
+ * Accepts a Doctype and extracts `fields` and `links` internally.
71
+ * Fields array contains both scalar fields and link fields (with fieldtype: 'Link').
72
+ * Render order is determined by the order of fields in the fields array.
54
73
  *
55
- * - If `cardinality: 'many'`: auto-derives `columns` from the child doctype's schema,
56
- * sets `component: 'ATable'`, `config: { view: 'list' }`, and initializes `rows: []`.
57
- * - Otherwise (default/`cardinality: 'one'`): embeds the child schema as the field's
58
- * `schema` property for 1:1 nested forms.
74
+ * For each link field:
75
+ * - Looks up the corresponding link declaration in `links` by fieldname
76
+ * - `cardinality: 'noneOrMany'` or `'atLeastOne'`: auto-derives `columns` from the target's schema,
77
+ * sets `component` to `link.component ?? 'ATable'`, `config: { view: 'list' }`, `rows: []`.
78
+ * - `cardinality: 'one'` or `'atMostOne'`: embeds the target schema as the entry's
79
+ * `schema` property, sets `component` to `link.component ?? 'AForm'`.
59
80
  *
60
81
  * Recurses for deeply nested doctypes. Circular references are protected against.
82
+ * Returns a new array — does not mutate the original.
61
83
  *
62
- * Returns a new array does not mutate the original schema.
63
- *
64
- * @param schema - The schema array to resolve
65
- * @returns A new schema array with nested Doctype fields resolved
66
- *
67
- * @example
68
- * ```ts
69
- * registry.addDoctype(addressDoctype)
70
- * registry.addDoctype(customerDoctype)
71
- *
72
- * // Before: customer schema has { fieldname: 'address', fieldtype: 'Doctype', options: 'address' }
73
- * const resolved = registry.resolveSchema(customerSchema)
74
- * // After: address field now has schema: [...address fields...]
75
- * ```
84
+ * @param doctype - The doctype to resolve
85
+ * @param visited - Internal — set of already-visited doctype slugs for cycle detection
86
+ * @returns A new schema array with nested links resolved
76
87
  *
77
88
  * @public
78
89
  */
79
- resolveSchema(schema: SchemaTypes[], visited?: Set<string>): SchemaTypes[];
90
+ resolveSchema(doctype: Doctype, visited?: Set<string>): SchemaTypes[];
91
+ /**
92
+ * Build an ATable configuration from a field and child schema
93
+ * @internal
94
+ */
95
+ private buildTableConfig;
80
96
  /**
81
97
  * Initialize a new record with default values based on a schema.
82
98
  *
@@ -87,7 +103,7 @@ export default class Registry {
87
103
  * - Check → `false`
88
104
  * - Int, Float, Decimal, Currency, Quantity → `0`
89
105
  * - JSON → `{}`
90
- * - Doctype with `cardinality: 'many'` → `[]`
106
+ * - Doctype with `cardinality: 'noneOrMany'` or `'atLeastOne'` → `[]`
91
107
  * - Doctype without `cardinality` or `cardinality: 'one'` → recursively initializes nested record
92
108
  * - All others → `null`
93
109
  *
@@ -113,5 +129,68 @@ export default class Registry {
113
129
  * @public
114
130
  */
115
131
  getDoctype(slug: string): Doctype | undefined;
132
+ /**
133
+ * Get all links declared on a doctype.
134
+ *
135
+ * @param doctypeSlug - The doctype slug to get links for
136
+ * @returns Array of link declarations with fieldname, or empty array if none
137
+ *
138
+ * @example
139
+ * ```ts
140
+ * const links = registry.getDescendantLinks('recipe')
141
+ * // [{ fieldname: 'tasks', target: 'recipe-task', cardinality: 'noneOrMany', backlink: 'recipe' }]
142
+ * ```
143
+ *
144
+ * @public
145
+ */
146
+ getDescendantLinks(doctypeSlug: string): Array<LinkDeclaration & {
147
+ fieldname: string;
148
+ }>;
149
+ /**
150
+ * Get links on other doctypes that target the given doctype.
151
+ *
152
+ * @param doctypeSlug - The doctype slug to find ancestor links for
153
+ * @returns Array of link declarations with fieldname and declaring doctype slug, or empty array
154
+ *
155
+ * @example
156
+ * ```ts
157
+ * const ancestors = registry.getAncestorLinks('recipe-task')
158
+ * // [{ fieldname: 'tasks', target: 'recipe-task', cardinality: 'noneOrMany', backlink: 'recipe', doctype: 'recipe' }]
159
+ * ```
160
+ *
161
+ * @public
162
+ */
163
+ getAncestorLinks(doctypeSlug: string): Array<LinkDeclaration & {
164
+ fieldname: string;
165
+ doctype: string;
166
+ }>;
167
+ /**
168
+ * Ensure the ancestor index is up to date
169
+ * @internal
170
+ */
171
+ private _ensureAncestorIndex;
172
+ /**
173
+ * Convert the registry to a Map of DoctypeMeta objects for use with StonecropClient.
174
+ *
175
+ * This allows passing a Registry instance to StonecropClient by deriving the
176
+ * Map\<string, DoctypeMeta\> that StonecropClient needs for building nested GraphQL queries.
177
+ *
178
+ * @returns Map of doctype metadata keyed by doctype name
179
+ *
180
+ * @example
181
+ * ```typescript
182
+ * const registry = new Registry()
183
+ * registry.addDoctype(Doctype.fromObject(customerSchema))
184
+ * registry.addDoctype(Doctype.fromObject(orderSchema))
185
+ *
186
+ * const client = new StonecropClient({
187
+ * endpoint: '/graphql',
188
+ * registry: registry.toMetaMap(), // Convert once, use with client
189
+ * })
190
+ * ```
191
+ *
192
+ * @public
193
+ */
194
+ toMetaMap(): Map<string, DoctypeMeta>;
116
195
  }
117
196
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,OAAO,OAAO,MAAM,WAAW,CAAA;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC5B;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAA;IAEtB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE1C;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IAExB;;;;OAIG;gBACS,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAWjG;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEpE;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO;IAsB3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,WAAW,EAAE;IA4E1E;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAgD5D;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;CAgB7C"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,kBAAkB,CAAA;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,OAAO,OAAO,MAAM,WAAW,CAAA;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC5B;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAA;IAEtB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAa;IAElC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAK;IAE/C;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc,CAAqE;IAE3F;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB,CAAgB;IAE3C;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IAExB;;;;OAIG;gBACS,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IASjG;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEpE;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO;IAuB3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,WAAW,EAAE;IA6ErE;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAiCxB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAoD5D;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI7C;;;;;;;;;;;;;OAaG;IACH,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,CAAC,eAAe,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAUvF;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,CAAC,eAAe,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAwBtG;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;CA4BrC"}
@@ -4,6 +4,7 @@
4
4
  * @packageDocumentation
5
5
  */
6
6
  import type { SchemaTypes } from '@stonecrop/aform';
7
+ import type { LinkDeclaration } from '@stonecrop/schema';
7
8
  import type { List, Map as ImmutableMap } from 'immutable';
8
9
  import type { AnyStateNodeConfig } from 'xstate';
9
10
  import type Registry from './registry';
@@ -25,9 +26,10 @@ export declare class SchemaValidator {
25
26
  * @param schema - Schema fields (List or Array)
26
27
  * @param workflow - Optional workflow configuration
27
28
  * @param actions - Optional actions map
29
+ * @param links - Optional links object
28
30
  * @returns Validation result
29
31
  */
30
- validate(doctype: string, schema: List<SchemaTypes> | SchemaTypes[] | undefined, workflow?: AnyStateNodeConfig, actions?: ImmutableMap<string, string[]> | Map<string, string[]>): ValidationResult;
32
+ validate(doctype: string, schema: List<SchemaTypes> | SchemaTypes[] | undefined, workflow?: AnyStateNodeConfig, actions?: ImmutableMap<string, string[]> | Map<string, string[]>, links?: Record<string, LinkDeclaration>): ValidationResult;
31
33
  /**
32
34
  * Validates that required schema properties are present
33
35
  * @internal
@@ -38,6 +40,11 @@ export declare class SchemaValidator {
38
40
  * @internal
39
41
  */
40
42
  private validateLinkFields;
43
+ /**
44
+ * Validates link declarations: target resolution, backlink consistency, Link field correspondence
45
+ * @internal
46
+ */
47
+ private validateLinkDeclarations;
41
48
  /**
42
49
  * Validates workflow state machine configuration
43
50
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../src/schema-validator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,EAAE,MAAM,WAAW,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAGhD,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA;AAEtC,OAAO,KAAK,EAAmB,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEnG;;;GAGG;AACH,qBAAa,eAAe;IAC3B,OAAO,CAAC,OAAO,CAA4B;IAE3C;;;OAGG;gBACS,OAAO,GAAE,gBAAqB;IAU1C;;;;;;;OAOG;IACH,QAAQ,CACP,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,WAAW,EAAE,GAAG,SAAS,EACrD,QAAQ,CAAC,EAAE,kBAAkB,EAC7B,OAAO,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAC9D,gBAAgB;IAyCnB;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAwClC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA4D1B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAmFxB;;;OAGG;IACH,OAAO,CAAC,0BAA0B;CAuClC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,eAAe,CAKxG;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,WAAW,EAAE,GAAG,SAAS,EACrD,QAAQ,EAAE,QAAQ,EAClB,QAAQ,CAAC,EAAE,kBAAkB,EAC7B,OAAO,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAC9D,gBAAgB,CAGlB"}
1
+ {"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../src/schema-validator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,EAAE,MAAM,WAAW,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAGhD,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA;AAEtC,OAAO,KAAK,EAAmB,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEnG;;;GAGG;AACH,qBAAa,eAAe;IAC3B,OAAO,CAAC,OAAO,CAA4B;IAE3C;;;OAGG;gBACS,OAAO,GAAE,gBAAqB;IAW1C;;;;;;;;OAQG;IACH,QAAQ,CACP,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,WAAW,EAAE,GAAG,SAAS,EACrD,QAAQ,CAAC,EAAE,kBAAkB,EAC7B,OAAO,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAChE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GACrC,gBAAgB;IA8CnB;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAwClC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA4D1B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IA0GhC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAmFxB;;;OAGG;IACH,OAAO,CAAC,0BAA0B;CAuClC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,eAAe,CAKxG;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,WAAW,EAAE,GAAG,SAAS,EACrD,QAAQ,EAAE,QAAQ,EAClB,QAAQ,CAAC,EAAE,kBAAkB,EAC7B,OAAO,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAC9D,gBAAgB,CAGlB"}
@@ -1,4 +1,3 @@
1
- import { type SchemaTypes } from '@stonecrop/aform';
2
1
  import type { DataClient } from '@stonecrop/schema';
3
2
  import Doctype from './doctype';
4
3
  import Registry from './registry';
@@ -18,6 +17,7 @@ export declare class Stonecrop {
18
17
  * @internal
19
18
  */
20
19
  static _root: Stonecrop;
20
+ /** The HST store instance for reactive state management */
21
21
  private hstStore;
22
22
  private _operationLogStore?;
23
23
  private _operationLogConfig?;
@@ -77,8 +77,8 @@ export declare class Stonecrop {
77
77
  actionError?: string | undefined;
78
78
  userId?: string | undefined;
79
79
  metadata?: Record<string, any> | undefined;
80
- parentOperationId?: string | undefined;
81
- childOperationIds?: string[] | undefined;
80
+ ancestorOperationId?: string | undefined;
81
+ descendantOperationIds?: string[] | undefined;
82
82
  }[], import("./types").HSTOperation[] | {
83
83
  id: string;
84
84
  type: import("./types").HSTOperationType;
@@ -101,8 +101,8 @@ export declare class Stonecrop {
101
101
  actionError?: string | undefined;
102
102
  userId?: string | undefined;
103
103
  metadata?: Record<string, any> | undefined;
104
- parentOperationId?: string | undefined;
105
- childOperationIds?: string[] | undefined;
104
+ ancestorOperationId?: string | undefined;
105
+ descendantOperationIds?: string[] | undefined;
106
106
  }[]>;
107
107
  currentIndex: import("vue").Ref<number, number>;
108
108
  config: import("vue").Ref<{
@@ -140,7 +140,7 @@ export declare class Stonecrop {
140
140
  getSnapshot: () => import("./types").OperationLogSnapshot;
141
141
  markIrreversible: (operationId: string, reason: string) => void;
142
142
  logAction: (doctype: string, actionName: string, recordIds?: string[], result?: "success" | "failure" | "pending", error?: string) => string;
143
- }, "operations" | "clientId" | "currentIndex" | "config">, Pick<{
143
+ }, "operations" | "currentIndex" | "config" | "clientId">, Pick<{
144
144
  operations: import("vue").Ref<{
145
145
  id: string;
146
146
  type: import("./types").HSTOperationType;
@@ -163,8 +163,8 @@ export declare class Stonecrop {
163
163
  actionError?: string | undefined;
164
164
  userId?: string | undefined;
165
165
  metadata?: Record<string, any> | undefined;
166
- parentOperationId?: string | undefined;
167
- childOperationIds?: string[] | undefined;
166
+ ancestorOperationId?: string | undefined;
167
+ descendantOperationIds?: string[] | undefined;
168
168
  }[], import("./types").HSTOperation[] | {
169
169
  id: string;
170
170
  type: import("./types").HSTOperationType;
@@ -187,8 +187,8 @@ export declare class Stonecrop {
187
187
  actionError?: string | undefined;
188
188
  userId?: string | undefined;
189
189
  metadata?: Record<string, any> | undefined;
190
- parentOperationId?: string | undefined;
191
- childOperationIds?: string[] | undefined;
190
+ ancestorOperationId?: string | undefined;
191
+ descendantOperationIds?: string[] | undefined;
192
192
  }[]>;
193
193
  currentIndex: import("vue").Ref<number, number>;
194
194
  config: import("vue").Ref<{
@@ -249,8 +249,8 @@ export declare class Stonecrop {
249
249
  actionError?: string | undefined;
250
250
  userId?: string | undefined;
251
251
  metadata?: Record<string, any> | undefined;
252
- parentOperationId?: string | undefined;
253
- childOperationIds?: string[] | undefined;
252
+ ancestorOperationId?: string | undefined;
253
+ descendantOperationIds?: string[] | undefined;
254
254
  }[], import("./types").HSTOperation[] | {
255
255
  id: string;
256
256
  type: import("./types").HSTOperationType;
@@ -273,8 +273,8 @@ export declare class Stonecrop {
273
273
  actionError?: string | undefined;
274
274
  userId?: string | undefined;
275
275
  metadata?: Record<string, any> | undefined;
276
- parentOperationId?: string | undefined;
277
- childOperationIds?: string[] | undefined;
276
+ ancestorOperationId?: string | undefined;
277
+ descendantOperationIds?: string[] | undefined;
278
278
  }[]>;
279
279
  currentIndex: import("vue").Ref<number, number>;
280
280
  config: import("vue").Ref<{
@@ -370,7 +370,25 @@ export declare class Stonecrop {
370
370
  * @param action - The action to run
371
371
  * @param args - Action arguments (typically record IDs)
372
372
  */
373
- runAction(doctype: Doctype, action: string, args?: any[]): void;
373
+ runAction(doctype: Doctype, action: string, args?: string[]): void;
374
+ /**
375
+ * Get the effective blockWorkflows value for a link.
376
+ * Returns true if blockWorkflows is explicitly true, or if it's absent and fetch method is 'sync'.
377
+ * @param link - The link declaration
378
+ * @returns Whether workflows should be blocked until this link is loaded
379
+ */
380
+ private getEffectiveBlockWorkflows;
381
+ /**
382
+ * Check if workflow actions are ready to run (all required link data is loaded).
383
+ * A link's data is considered loaded if it exists in HST at `slug.recordId.linkname`.
384
+ * @param doctype - The doctype to check
385
+ * @param recordId - The record ID
386
+ * @returns Object with `ready: true` if all blocked links are loaded, or `ready: false` with `blockedLinks` array
387
+ */
388
+ isWorkflowReady(doctype: Doctype, recordId: string): {
389
+ ready: boolean;
390
+ blockedLinks?: string[];
391
+ };
374
392
  /**
375
393
  * Get records from server using the configured data client.
376
394
  * @param doctype - The doctype
@@ -438,23 +456,50 @@ export declare class Stonecrop {
438
456
  */
439
457
  collectRecordPayload(doctype: Doctype, recordId: string): Record<string, any>;
440
458
  /**
441
- * Load nested data from HST or initialize with defaults
442
- * @param parentPath - The HST path to check for existing data
443
- * @param childDoctype - The child doctype metadata
444
- * @param _recordId - Optional record ID to load
445
- * @returns The loaded or initialized data
459
+ * Scaffold empty descendant records from defaults for all descendant links.
460
+ *
461
+ * Initializes all scalar and link fields at their HST paths with default values.
462
+ * For new records, call this after setting up the doctype to ensure all paths exist.
463
+ *
464
+ * @param path - HST path (e.g., "customer.new")
465
+ * @param doctype - The doctype to initialize
466
+ * @public
467
+ */
468
+ initializeNestedData(path: string, doctype: Doctype): void;
469
+ /**
470
+ * Fetch a record and its nested data from the server.
471
+ *
472
+ * Calls `_client.getRecord()` with nested sub-selections and stores each scalar field at its own HST path
473
+ * (`slug.recordId.fieldname`), descendants at the link-level path (`slug.recordId.linkname`).
474
+ *
475
+ * @param path - HST path (e.g., "recipe.r1")
476
+ * @param doctype - The doctype to fetch
477
+ * @param recordId - Record ID to fetch
478
+ * @param options - Query options (includeNested to control which links are fetched)
479
+ * @throws Error with code `"CLIENT_REQUIRED"` if no data client is configured
480
+ * @throws Error with code `"RECORD_NOT_FOUND"` if the server returns null
446
481
  * @public
447
482
  */
448
- loadNestedData(parentPath: string, childDoctype: Doctype, _recordId?: string): Record<string, any>;
483
+ fetchNestedData(path: string, doctype: Doctype, recordId: string, options?: {
484
+ includeNested?: boolean | string[];
485
+ }): Promise<void>;
486
+ /**
487
+ * Recursively collect nested data from HST
488
+ * @param basePath - The base path in HST (e.g., "customer.123.address")
489
+ * @param doctype - The doctype whose links drive the recursive traversal
490
+ * @returns The collected data object
491
+ */
492
+ private collectNestedData;
449
493
  }
450
494
  /**
451
- * Recursively collect nested data from HST using pre-resolved schemas
452
- * @param resolvedSchema - The already-resolved schema (with nested schemas embedded)
453
- * @param basePath - The base path in HST (e.g., "customer.123.address")
454
- * @param hstStore - The HST store instance
455
- * @returns The collected data object
495
+ * Returns the global Stonecrop singleton instance, or `undefined` if no
496
+ * instance has been created yet.
497
+ *
498
+ * Use this when you need the Stonecrop instance outside a Vue component
499
+ * context (e.g., in workflow action handlers, plugin setup code, or
500
+ * non-component utilities). Inside a component, prefer `useStonecrop()`.
501
+ *
456
502
  * @public
457
503
  */
458
- declare function collectNestedData(resolvedSchema: SchemaTypes[], basePath: string, hstStore: HSTNode): Record<string, any>;
459
- export { collectNestedData };
504
+ export declare function getStonecrop(): Stonecrop | undefined;
460
505
  //# sourceMappingURL=stonecrop.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stonecrop.d.ts","sourceRoot":"","sources":["../../src/stonecrop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stonecrop.d.ts","sourceRoot":"","sources":["../../src/stonecrop.ts"],"names":[],"mappings":"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"}