@powerhousedao/reactor 5.0.0-staging.12 → 5.0.0-staging.14

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 (131) hide show
  1. package/dist/src/client/reactor-client.d.ts +103 -0
  2. package/dist/src/client/reactor-client.d.ts.map +1 -0
  3. package/dist/src/client/reactor-client.js +182 -0
  4. package/dist/src/client/reactor-client.js.map +1 -0
  5. package/dist/src/client/types.d.ts +213 -0
  6. package/dist/src/client/types.d.ts.map +1 -0
  7. package/dist/src/client/types.js +14 -0
  8. package/dist/src/client/types.js.map +1 -0
  9. package/dist/src/core/builder.d.ts +20 -0
  10. package/dist/src/core/builder.d.ts.map +1 -0
  11. package/dist/src/core/builder.js +47 -0
  12. package/dist/src/core/builder.js.map +1 -0
  13. package/dist/src/{reactor.d.ts → core/reactor.d.ts} +4 -5
  14. package/dist/src/core/reactor.d.ts.map +1 -0
  15. package/dist/src/{reactor.js → core/reactor.js} +37 -6
  16. package/dist/src/core/reactor.js.map +1 -0
  17. package/dist/src/{interfaces/reactor.d.ts → core/types.d.ts} +3 -3
  18. package/dist/src/core/types.d.ts.map +1 -0
  19. package/dist/src/core/types.js +2 -0
  20. package/dist/src/core/types.js.map +1 -0
  21. package/dist/src/{utils.d.ts → core/utils.d.ts} +1 -1
  22. package/dist/src/core/utils.d.ts.map +1 -0
  23. package/dist/src/core/utils.js.map +1 -0
  24. package/dist/src/index.d.ts +9 -2
  25. package/dist/src/index.d.ts.map +1 -1
  26. package/dist/src/index.js +8 -1
  27. package/dist/src/index.js.map +1 -1
  28. package/dist/src/queue/queue.d.ts.map +1 -1
  29. package/dist/src/queue/queue.js +43 -28
  30. package/dist/src/queue/queue.js.map +1 -1
  31. package/dist/src/shared/awaiter.d.ts +32 -0
  32. package/dist/src/shared/awaiter.d.ts.map +1 -0
  33. package/dist/src/shared/awaiter.js +132 -0
  34. package/dist/src/shared/awaiter.js.map +1 -0
  35. package/dist/src/shared/types.d.ts +3 -0
  36. package/dist/src/shared/types.d.ts.map +1 -1
  37. package/dist/src/shared/types.js.map +1 -1
  38. package/dist/src/signer/passthrough-signer.d.ts +6 -0
  39. package/dist/src/signer/passthrough-signer.d.ts.map +1 -0
  40. package/dist/src/signer/passthrough-signer.js +6 -0
  41. package/dist/src/signer/passthrough-signer.js.map +1 -0
  42. package/dist/src/signer/types.d.ts +15 -0
  43. package/dist/src/signer/types.d.ts.map +1 -0
  44. package/dist/src/signer/types.js +2 -0
  45. package/dist/src/signer/types.js.map +1 -0
  46. package/dist/src/subs/default-error-handler.d.ts +13 -0
  47. package/dist/src/subs/default-error-handler.d.ts.map +1 -0
  48. package/dist/src/subs/default-error-handler.js +27 -0
  49. package/dist/src/subs/default-error-handler.js.map +1 -0
  50. package/dist/src/subs/react-subscription-manager.d.ts +45 -0
  51. package/dist/src/subs/react-subscription-manager.d.ts.map +1 -0
  52. package/dist/src/subs/react-subscription-manager.js +185 -0
  53. package/dist/src/subs/react-subscription-manager.js.map +1 -0
  54. package/dist/src/subs/types.d.ts +64 -0
  55. package/dist/src/subs/types.d.ts.map +1 -0
  56. package/dist/src/subs/types.js +2 -0
  57. package/dist/src/subs/types.js.map +1 -0
  58. package/package.json +6 -6
  59. package/dist/bench/event-bus.bench.d.ts +0 -2
  60. package/dist/bench/event-bus.bench.d.ts.map +0 -1
  61. package/dist/bench/event-bus.bench.js +0 -228
  62. package/dist/bench/event-bus.bench.js.map +0 -1
  63. package/dist/bench/queue-only.bench.d.ts +0 -2
  64. package/dist/bench/queue-only.bench.d.ts.map +0 -1
  65. package/dist/bench/queue-only.bench.js +0 -46
  66. package/dist/bench/queue-only.bench.js.map +0 -1
  67. package/dist/bench/reactor-throughput.bench.d.ts +0 -2
  68. package/dist/bench/reactor-throughput.bench.d.ts.map +0 -1
  69. package/dist/bench/reactor-throughput.bench.js +0 -144
  70. package/dist/bench/reactor-throughput.bench.js.map +0 -1
  71. package/dist/src/interfaces/reactor.d.ts.map +0 -1
  72. package/dist/src/interfaces/reactor.js +0 -2
  73. package/dist/src/interfaces/reactor.js.map +0 -1
  74. package/dist/src/reactor.d.ts.map +0 -1
  75. package/dist/src/reactor.js.map +0 -1
  76. package/dist/src/utils.d.ts.map +0 -1
  77. package/dist/src/utils.js.map +0 -1
  78. package/dist/test/event-bus.test.d.ts +0 -2
  79. package/dist/test/event-bus.test.d.ts.map +0 -1
  80. package/dist/test/event-bus.test.js +0 -541
  81. package/dist/test/event-bus.test.js.map +0 -1
  82. package/dist/test/executor/executor-integration.test.d.ts +0 -2
  83. package/dist/test/executor/executor-integration.test.d.ts.map +0 -1
  84. package/dist/test/executor/executor-integration.test.js +0 -287
  85. package/dist/test/executor/executor-integration.test.js.map +0 -1
  86. package/dist/test/executor/job-execution-handle.test.d.ts +0 -2
  87. package/dist/test/executor/job-execution-handle.test.d.ts.map +0 -1
  88. package/dist/test/executor/job-execution-handle.test.js +0 -272
  89. package/dist/test/executor/job-execution-handle.test.js.map +0 -1
  90. package/dist/test/executor/simple-job-executor-manager.test.d.ts +0 -2
  91. package/dist/test/executor/simple-job-executor-manager.test.d.ts.map +0 -1
  92. package/dist/test/executor/simple-job-executor-manager.test.js +0 -132
  93. package/dist/test/executor/simple-job-executor-manager.test.js.map +0 -1
  94. package/dist/test/executor/simple-job-executor.test.d.ts +0 -2
  95. package/dist/test/executor/simple-job-executor.test.d.ts.map +0 -1
  96. package/dist/test/executor/simple-job-executor.test.js +0 -139
  97. package/dist/test/executor/simple-job-executor.test.js.map +0 -1
  98. package/dist/test/factories.d.ts +0 -123
  99. package/dist/test/factories.d.ts.map +0 -1
  100. package/dist/test/factories.js +0 -319
  101. package/dist/test/factories.js.map +0 -1
  102. package/dist/test/integration/document-drive-integration.test.d.ts +0 -2
  103. package/dist/test/integration/document-drive-integration.test.d.ts.map +0 -1
  104. package/dist/test/integration/document-drive-integration.test.js +0 -1102
  105. package/dist/test/integration/document-drive-integration.test.js.map +0 -1
  106. package/dist/test/integration/reactor-read.test.d.ts +0 -2
  107. package/dist/test/integration/reactor-read.test.d.ts.map +0 -1
  108. package/dist/test/integration/reactor-read.test.js +0 -291
  109. package/dist/test/integration/reactor-read.test.js.map +0 -1
  110. package/dist/test/queue/queue-integration.test.d.ts +0 -2
  111. package/dist/test/queue/queue-integration.test.d.ts.map +0 -1
  112. package/dist/test/queue/queue-integration.test.js +0 -322
  113. package/dist/test/queue/queue-integration.test.js.map +0 -1
  114. package/dist/test/queue/queue.test.d.ts +0 -2
  115. package/dist/test/queue/queue.test.d.ts.map +0 -1
  116. package/dist/test/queue/queue.test.js +0 -770
  117. package/dist/test/queue/queue.test.js.map +0 -1
  118. package/dist/test/registry/registry.test.d.ts +0 -2
  119. package/dist/test/registry/registry.test.d.ts.map +0 -1
  120. package/dist/test/registry/registry.test.js +0 -182
  121. package/dist/test/registry/registry.test.js.map +0 -1
  122. package/dist/test/utils.test.d.ts +0 -2
  123. package/dist/test/utils.test.d.ts.map +0 -1
  124. package/dist/test/utils.test.js +0 -66
  125. package/dist/test/utils.test.js.map +0 -1
  126. package/dist/tsconfig.tsbuildinfo +0 -1
  127. package/dist/vitest.config.d.ts +0 -3
  128. package/dist/vitest.config.d.ts.map +0 -1
  129. package/dist/vitest.config.js +0 -11
  130. package/dist/vitest.config.js.map +0 -1
  131. /package/dist/src/{utils.js → core/utils.js} +0 -0
@@ -0,0 +1,103 @@
1
+ import type { Action, DocumentModelState, PHDocument } from "document-model";
2
+ import type { IReactor } from "../core/types.js";
3
+ import { type IJobAwaiter } from "../shared/awaiter.js";
4
+ import { type JobInfo, type PagedResults, type PagingOptions, type PropagationMode, type SearchFilter, type ViewFilter } from "../shared/types.js";
5
+ import type { ISigner } from "../signer/types.js";
6
+ import type { IReactorSubscriptionManager } from "../subs/types.js";
7
+ import type { DocumentChangeEvent, IReactorClient } from "./types.js";
8
+ /**
9
+ * ReactorClient implementation that wraps lower-level APIs to provide
10
+ * a simpler interface for document operations.
11
+ *
12
+ * Features:
13
+ * - Wraps Jobs with Promises for easier async handling
14
+ * - Manages signing of submitted Action objects
15
+ * - Provides quality-of-life functions for common tasks
16
+ * - Wraps subscription interface with ViewFilters
17
+ */
18
+ export declare class ReactorClient implements IReactorClient {
19
+ private reactor;
20
+ private signer;
21
+ private subscriptionManager;
22
+ private jobAwaiter;
23
+ constructor(reactor: IReactor, signer: ISigner, subscriptionManager: IReactorSubscriptionManager, jobAwaiter: IJobAwaiter);
24
+ /**
25
+ * Retrieves a list of document model specifications
26
+ */
27
+ getDocumentModels(namespace?: string, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<DocumentModelState>>;
28
+ /**
29
+ * Retrieves a specific PHDocument
30
+ */
31
+ get<TDocument extends PHDocument>(identifier: string, view?: ViewFilter, signal?: AbortSignal): Promise<{
32
+ document: TDocument;
33
+ childIds: string[];
34
+ }>;
35
+ /**
36
+ * Retrieves children of a document
37
+ */
38
+ getChildren(parentIdentifier: string, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<PHDocument>>;
39
+ /**
40
+ * Retrieves parents of a document
41
+ */
42
+ getParents(childIdentifier: string, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<PHDocument>>;
43
+ /**
44
+ * Filters documents by criteria and returns a list of them
45
+ */
46
+ find(search: SearchFilter, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<PHDocument>>;
47
+ /**
48
+ * Creates a document and waits for completion
49
+ */
50
+ create(document: PHDocument, parentIdentifier?: string, signal?: AbortSignal): Promise<PHDocument>;
51
+ /**
52
+ * Creates an empty document and waits for completion
53
+ */
54
+ createEmpty<TDocument extends PHDocument>(documentType: string, parentIdentifier?: string, signal?: AbortSignal): Promise<TDocument>;
55
+ /**
56
+ * Applies a list of actions to a document and waits for completion
57
+ */
58
+ mutate<TDocument extends PHDocument>(documentIdentifier: string, actions: Action[], view?: ViewFilter, signal?: AbortSignal): Promise<TDocument>;
59
+ /**
60
+ * Submits a list of actions to a document
61
+ */
62
+ mutateAsync(documentIdentifier: string, actions: Action[], view?: ViewFilter, signal?: AbortSignal): Promise<JobInfo>;
63
+ /**
64
+ * Renames a document and waits for completion
65
+ */
66
+ rename(documentIdentifier: string, name: string, view?: ViewFilter, signal?: AbortSignal): Promise<PHDocument>;
67
+ /**
68
+ * Adds multiple documents as children to another and waits for completion
69
+ */
70
+ addChildren(parentIdentifier: string, documentIdentifiers: string[], view?: ViewFilter, signal?: AbortSignal): Promise<PHDocument>;
71
+ /**
72
+ * Removes multiple documents as children from another and waits for completion
73
+ */
74
+ removeChildren(parentIdentifier: string, documentIdentifiers: string[], view?: ViewFilter, signal?: AbortSignal): Promise<PHDocument>;
75
+ /**
76
+ * Moves multiple documents from one parent to another and waits for completion
77
+ */
78
+ moveChildren(sourceParentIdentifier: string, targetParentIdentifier: string, documentIdentifiers: string[], view?: ViewFilter, signal?: AbortSignal): Promise<{
79
+ source: PHDocument;
80
+ target: PHDocument;
81
+ }>;
82
+ /**
83
+ * Deletes a document and waits for completion
84
+ */
85
+ deleteDocument(identifier: string, propagate?: PropagationMode, signal?: AbortSignal): Promise<void>;
86
+ /**
87
+ * Deletes documents and waits for completion
88
+ */
89
+ deleteDocuments(identifiers: string[], propagate?: PropagationMode, signal?: AbortSignal): Promise<void>;
90
+ /**
91
+ * Retrieves the status of a job
92
+ */
93
+ getJobStatus(jobId: string, signal?: AbortSignal): Promise<JobInfo>;
94
+ /**
95
+ * Waits for a job to complete
96
+ */
97
+ waitForJob(jobId: string | JobInfo, signal?: AbortSignal): Promise<JobInfo>;
98
+ /**
99
+ * Subscribes to changes for documents matching specified filters
100
+ */
101
+ subscribe(search: SearchFilter, callback: (event: DocumentChangeEvent) => void, view?: ViewFilter): () => void;
102
+ }
103
+ //# sourceMappingURL=reactor-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactor-client.d.ts","sourceRoot":"","sources":["../../../src/client/reactor-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEtE;;;;;;;;;GASG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,UAAU,CAAc;gBAG9B,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,OAAO,EACf,mBAAmB,EAAE,2BAA2B,EAChD,UAAU,EAAE,WAAW;IAQzB;;OAEG;IACG,iBAAiB,CACrB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,aAAa,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAI5C;;OAEG;IACG,GAAG,CAAC,SAAS,SAAS,UAAU,EACpC,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,UAAU,EACjB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;QACT,QAAQ,EAAE,SAAS,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IAUF;;OAEG;IACG,WAAW,CACf,gBAAgB,EAAE,MAAM,EACxB,IAAI,CAAC,EAAE,UAAU,EACjB,MAAM,CAAC,EAAE,aAAa,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAIpC;;OAEG;IACG,UAAU,CACd,eAAe,EAAE,MAAM,EACvB,IAAI,CAAC,EAAE,UAAU,EACjB,MAAM,CAAC,EAAE,aAAa,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAIpC;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,YAAY,EACpB,IAAI,CAAC,EAAE,UAAU,EACjB,MAAM,CAAC,EAAE,aAAa,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAIpC;;OAEG;IACG,MAAM,CACV,QAAQ,EAAE,UAAU,EACpB,gBAAgB,CAAC,EAAE,MAAM,EACzB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;IAItB;;OAEG;IACG,WAAW,CAAC,SAAS,SAAS,UAAU,EAC5C,YAAY,EAAE,MAAM,EACpB,gBAAgB,CAAC,EAAE,MAAM,EACzB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,CAAC;IAIrB;;OAEG;IACG,MAAM,CAAC,SAAS,SAAS,UAAU,EACvC,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,CAAC,EAAE,UAAU,EACjB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,CAAC;IAarB;;OAEG;IACG,WAAW,CACf,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,CAAC,EAAE,UAAU,EACjB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC;IA8BnB;;OAEG;IACG,MAAM,CACV,kBAAkB,EAAE,MAAM,EAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,UAAU,EACjB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;IAItB;;OAEG;IACG,WAAW,CACf,gBAAgB,EAAE,MAAM,EACxB,mBAAmB,EAAE,MAAM,EAAE,EAC7B,IAAI,CAAC,EAAE,UAAU,EACjB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;IAiBtB;;OAEG;IACG,cAAc,CAClB,gBAAgB,EAAE,MAAM,EACxB,mBAAmB,EAAE,MAAM,EAAE,EAC7B,IAAI,CAAC,EAAE,UAAU,EACjB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;IAiBtB;;OAEG;IACG,YAAY,CAChB,sBAAsB,EAAE,MAAM,EAC9B,sBAAsB,EAAE,MAAM,EAC9B,mBAAmB,EAAE,MAAM,EAAE,EAC7B,IAAI,CAAC,EAAE,UAAU,EACjB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;QACT,MAAM,EAAE,UAAU,CAAC;QACnB,MAAM,EAAE,UAAU,CAAC;KACpB,CAAC;IAIF;;OAEG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAehB;;OAEG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EAAE,EACrB,SAAS,CAAC,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAIhB;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzE;;OAEG;IACG,UAAU,CACd,KAAK,EAAE,MAAM,GAAG,OAAO,EACvB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC;IAKnB;;OAEG;IACH,SAAS,CACP,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,EAC9C,IAAI,CAAC,EAAE,UAAU,GAChB,MAAM,IAAI;CAGd"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * ReactorClient implementation that wraps lower-level APIs to provide
3
+ * a simpler interface for document operations.
4
+ *
5
+ * Features:
6
+ * - Wraps Jobs with Promises for easier async handling
7
+ * - Manages signing of submitted Action objects
8
+ * - Provides quality-of-life functions for common tasks
9
+ * - Wraps subscription interface with ViewFilters
10
+ */
11
+ export class ReactorClient {
12
+ reactor;
13
+ signer;
14
+ subscriptionManager;
15
+ jobAwaiter;
16
+ constructor(reactor, signer, subscriptionManager, jobAwaiter) {
17
+ this.reactor = reactor;
18
+ this.signer = signer;
19
+ this.subscriptionManager = subscriptionManager;
20
+ this.jobAwaiter = jobAwaiter;
21
+ }
22
+ /**
23
+ * Retrieves a list of document model specifications
24
+ */
25
+ async getDocumentModels(namespace, paging, signal) {
26
+ return this.reactor.getDocumentModels(namespace, paging, signal);
27
+ }
28
+ /**
29
+ * Retrieves a specific PHDocument
30
+ */
31
+ async get(identifier, view, signal) {
32
+ // First try to get by ID
33
+ try {
34
+ return await this.reactor.get(identifier, view, signal);
35
+ }
36
+ catch (error) {
37
+ // If failed, try to get by slug
38
+ return await this.reactor.getBySlug(identifier, view, signal);
39
+ }
40
+ }
41
+ /**
42
+ * Retrieves children of a document
43
+ */
44
+ async getChildren(parentIdentifier, view, paging, signal) {
45
+ throw new Error("Method not implemented.");
46
+ }
47
+ /**
48
+ * Retrieves parents of a document
49
+ */
50
+ async getParents(childIdentifier, view, paging, signal) {
51
+ throw new Error("Method not implemented.");
52
+ }
53
+ /**
54
+ * Filters documents by criteria and returns a list of them
55
+ */
56
+ async find(search, view, paging, signal) {
57
+ return this.reactor.find(search, view, paging, signal);
58
+ }
59
+ /**
60
+ * Creates a document and waits for completion
61
+ */
62
+ async create(document, parentIdentifier, signal) {
63
+ throw new Error("Method not implemented.");
64
+ }
65
+ /**
66
+ * Creates an empty document and waits for completion
67
+ */
68
+ async createEmpty(documentType, parentIdentifier, signal) {
69
+ throw new Error("Method not implemented.");
70
+ }
71
+ /**
72
+ * Applies a list of actions to a document and waits for completion
73
+ */
74
+ async mutate(documentIdentifier, actions, view, signal) {
75
+ const jobInfo = await this.reactor.mutate(documentIdentifier, actions);
76
+ await this.waitForJob(jobInfo, signal);
77
+ const document = await this.get(documentIdentifier, view, signal);
78
+ return document.document;
79
+ }
80
+ /**
81
+ * Submits a list of actions to a document
82
+ */
83
+ async mutateAsync(documentIdentifier, actions, view, signal) {
84
+ // Sign actions with the required signer
85
+ const signedActions = await Promise.all(actions.map(async (action) => {
86
+ const signature = await this.signer.sign(action, signal);
87
+ return {
88
+ ...action,
89
+ context: {
90
+ ...action.context,
91
+ signer: {
92
+ user: {
93
+ address: signature[0],
94
+ networkId: "",
95
+ chainId: 0,
96
+ },
97
+ app: {
98
+ name: "",
99
+ key: "",
100
+ },
101
+ signatures: [signature],
102
+ },
103
+ },
104
+ };
105
+ }));
106
+ // Note: reactor.mutate doesn't use view or signal currently
107
+ return this.reactor.mutate(documentIdentifier, signedActions);
108
+ }
109
+ /**
110
+ * Renames a document and waits for completion
111
+ */
112
+ async rename(documentIdentifier, name, view, signal) {
113
+ throw new Error("Method not implemented.");
114
+ }
115
+ /**
116
+ * Adds multiple documents as children to another and waits for completion
117
+ */
118
+ async addChildren(parentIdentifier, documentIdentifiers, view, signal) {
119
+ // Call reactor.addChildren to get JobInfo
120
+ const jobInfo = await this.reactor.addChildren(parentIdentifier, documentIdentifiers, view, signal);
121
+ // Wait for job completion
122
+ await this.waitForJob(jobInfo, signal);
123
+ // Fetch and return updated parent document
124
+ const result = await this.get(parentIdentifier, view, signal);
125
+ return result.document;
126
+ }
127
+ /**
128
+ * Removes multiple documents as children from another and waits for completion
129
+ */
130
+ async removeChildren(parentIdentifier, documentIdentifiers, view, signal) {
131
+ // Call reactor.removeChildren to get JobInfo
132
+ const jobInfo = await this.reactor.removeChildren(parentIdentifier, documentIdentifiers, view, signal);
133
+ // Wait for job completion
134
+ await this.waitForJob(jobInfo, signal);
135
+ // Fetch and return updated parent document
136
+ const result = await this.get(parentIdentifier, view, signal);
137
+ return result.document;
138
+ }
139
+ /**
140
+ * Moves multiple documents from one parent to another and waits for completion
141
+ */
142
+ async moveChildren(sourceParentIdentifier, targetParentIdentifier, documentIdentifiers, view, signal) {
143
+ throw new Error("Method not implemented.");
144
+ }
145
+ /**
146
+ * Deletes a document and waits for completion
147
+ */
148
+ async deleteDocument(identifier, propagate, signal) {
149
+ // Call reactor.deleteDocument to get JobInfo
150
+ const jobInfo = await this.reactor.deleteDocument(identifier, propagate, signal);
151
+ // Wait for job completion
152
+ await this.waitForJob(jobInfo, signal);
153
+ // Return void
154
+ return;
155
+ }
156
+ /**
157
+ * Deletes documents and waits for completion
158
+ */
159
+ async deleteDocuments(identifiers, propagate, signal) {
160
+ throw new Error("Method not implemented.");
161
+ }
162
+ /**
163
+ * Retrieves the status of a job
164
+ */
165
+ async getJobStatus(jobId, signal) {
166
+ return this.reactor.getJobStatus(jobId, signal);
167
+ }
168
+ /**
169
+ * Waits for a job to complete
170
+ */
171
+ async waitForJob(jobId, signal) {
172
+ const id = typeof jobId === "string" ? jobId : jobId.id;
173
+ return this.jobAwaiter.waitForJob(id, signal);
174
+ }
175
+ /**
176
+ * Subscribes to changes for documents matching specified filters
177
+ */
178
+ subscribe(search, callback, view) {
179
+ throw new Error("Method not implemented.");
180
+ }
181
+ }
182
+ //# sourceMappingURL=reactor-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactor-client.js","sourceRoot":"","sources":["../../../src/client/reactor-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,213 @@
1
+ import type { Action, DocumentModelState, PHDocument } from "document-model";
2
+ import type { JobInfo, PagedResults, PagingOptions, PropagationMode, SearchFilter, ViewFilter } from "../shared/types.js";
3
+ /**
4
+ * Describes the types of document changes that can occur.
5
+ */
6
+ export declare enum DocumentChangeType {
7
+ Created = "created",
8
+ Deleted = "deleted",
9
+ Updated = "updated",
10
+ ParentAdded = "parent_added",
11
+ ParentRemoved = "parent_removed",
12
+ ChildAdded = "child_added",
13
+ ChildRemoved = "child_removed"
14
+ }
15
+ /**
16
+ * Represents a change event for documents.
17
+ */
18
+ export type DocumentChangeEvent = {
19
+ type: DocumentChangeType;
20
+ documents: PHDocument[];
21
+ context?: {
22
+ parentId?: string;
23
+ childId?: string;
24
+ };
25
+ };
26
+ /**
27
+ * The ReactorClient interface that wraps lower-level APIs to provide
28
+ * a simpler interface for document operations.
29
+ *
30
+ * Features:
31
+ * - Wraps Jobs with Promises for easier async handling
32
+ * - Manages signing of submitted Action objects
33
+ * - Provides quality-of-life functions for common tasks
34
+ * - Wraps subscription interface with ViewFilters
35
+ */
36
+ export interface IReactorClient {
37
+ /**
38
+ * Retrieves a list of document model specifications
39
+ *
40
+ * @param namespace - Optional namespace like "powerhouse" or "sky", defaults to ""
41
+ * @param paging - Optional pagination options
42
+ * @param signal - Optional abort signal to cancel the request
43
+ * @returns List of document models
44
+ */
45
+ getDocumentModels(namespace?: string, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<DocumentModelState>>;
46
+ /**
47
+ * Retrieves a specific PHDocument
48
+ *
49
+ * @param identifier - Required, this is either a document "id" field or a "slug"
50
+ * @param view - Optional filter containing branch and scopes information
51
+ * @param signal - Optional abort signal to cancel the request
52
+ * @returns The up-to-date PHDocument with scopes and list of child document ids
53
+ */
54
+ get<TDocument extends PHDocument>(identifier: string, view?: ViewFilter, signal?: AbortSignal): Promise<{
55
+ document: TDocument;
56
+ childIds: string[];
57
+ }>;
58
+ /**
59
+ * Retrieves children of a document.
60
+ *
61
+ * @param parentIdentifier - Required, this is either a document "id" field or a "slug"
62
+ * @param view - Optional filter containing branch and scopes information
63
+ * @param paging - Optional pagination options
64
+ * @param signal - Optional abort signal to cancel the request
65
+ * @returns The up-to-date PHDocument and paging cursor
66
+ */
67
+ getChildren(parentIdentifier: string, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<PHDocument>>;
68
+ /**
69
+ * Retrieves parents of a document.
70
+ *
71
+ * @param childIdentifier - Required, this is either a document "id" field or a "slug"
72
+ * @param view - Optional filter containing branch and scopes information
73
+ * @param paging - Optional pagination options
74
+ * @param signal - Optional abort signal to cancel the request
75
+ * @returns The up-to-date PHDocument and paging cursor
76
+ */
77
+ getParents(childIdentifier: string, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<PHDocument>>;
78
+ /**
79
+ * Filters documents by criteria and returns a list of them
80
+ *
81
+ * @param search - Search filter options (type, parentId, identifiers)
82
+ * @param view - Optional filter containing branch and scopes information
83
+ * @param paging - Optional pagination options
84
+ * @param signal - Optional abort signal to cancel the request
85
+ * @returns List of documents matching criteria and pagination cursor
86
+ */
87
+ find(search: SearchFilter, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<PHDocument>>;
88
+ /**
89
+ * Creates a document and waits for completion
90
+ *
91
+ * @param document - Document with optional id, slug, parent, model type, and initial state
92
+ * @param parentIdentifier - Optional "id" or "slug" of parent document
93
+ * @param signal - Optional abort signal to cancel the request
94
+ * @returns The created document
95
+ */
96
+ create(document: PHDocument, parentIdentifier?: string, signal?: AbortSignal): Promise<PHDocument>;
97
+ /**
98
+ * Creates an empty document and waits for completion
99
+ *
100
+ * @param documentType - Type of document to create.
101
+ * @param parentIdentifier - Optional "id" or "slug" of parent document
102
+ * @param signal - Optional abort signal to cancel the request
103
+ */
104
+ createEmpty<TDocument extends PHDocument>(documentType: string, parentIdentifier?: string, signal?: AbortSignal): Promise<TDocument>;
105
+ /**
106
+ * Applies a list of actions to a document and waits for completion
107
+ *
108
+ * @param documentIdentifier - Target document id or slug
109
+ * @param actions - List of actions to apply
110
+ * @param view - Optional filter containing branch and scopes information
111
+ * @param signal - Optional abort signal to cancel the request
112
+ * @returns The updated document
113
+ */
114
+ mutate<TDocument extends PHDocument>(documentIdentifier: string, actions: Action[], view?: ViewFilter, signal?: AbortSignal): Promise<TDocument>;
115
+ /**
116
+ * Submits a list of actions to a document
117
+ *
118
+ * @param documentIdentifier - Target document id or slug
119
+ * @param actions - List of actions to apply
120
+ * @param view - Optional filter containing branch and scopes information
121
+ * @param signal - Optional abort signal to cancel the request
122
+ * @returns The job
123
+ */
124
+ mutateAsync(documentIdentifier: string, actions: Action[], view?: ViewFilter, signal?: AbortSignal): Promise<JobInfo>;
125
+ /**
126
+ * Renames a document and waits for completion
127
+ *
128
+ * @param documentIdentifier - Target document id or slug
129
+ * @param name - The new name of the document
130
+ * @param view - Optional filter
131
+ * @param signal - Optional abort signal to cancel the request
132
+ * @returns The updated document.
133
+ */
134
+ rename(documentIdentifier: string, name: string, view?: ViewFilter, signal?: AbortSignal): Promise<PHDocument>;
135
+ /**
136
+ * Adds multiple documents as children to another and waits for completion
137
+ *
138
+ * @param parentIdentifier - Parent document id or slug
139
+ * @param documentIdentifiers - List of document identifiers to add as children
140
+ * @param view - Optional filter containing branch and scopes information
141
+ * @param signal - Optional abort signal to cancel the request
142
+ * @returns The updated parent document
143
+ */
144
+ addChildren(parentIdentifier: string, documentIdentifiers: string[], view?: ViewFilter, signal?: AbortSignal): Promise<PHDocument>;
145
+ /**
146
+ * Removes multiple documents as children from another and waits for completion
147
+ *
148
+ * @param parentIdentifier - Parent document identifiers
149
+ * @param documentIdentifiers - List of document ids to remove as children
150
+ * @param view - Optional filter containing branch and scopes information
151
+ * @param signal - Optional abort signal to cancel the request
152
+ * @returns The updated parent document
153
+ */
154
+ removeChildren(parentIdentifier: string, documentIdentifiers: string[], view?: ViewFilter, signal?: AbortSignal): Promise<PHDocument>;
155
+ /**
156
+ * Moves multiple documents from one parent to another and waits for completion
157
+ *
158
+ * @param sourceParentIdentifier - Source parent document id or slug
159
+ * @param targetParentIdentifier - Target parent document id or slug
160
+ * @param documentIdentifiers - List of document identifiers to move
161
+ * @param view - Optional filter containing branch and scopes information
162
+ * @param signal - Optional abort signal to cancel the request
163
+ * @returns The updated source and target documents
164
+ */
165
+ moveChildren(sourceParentIdentifier: string, targetParentIdentifier: string, documentIdentifiers: string[], view?: ViewFilter, signal?: AbortSignal): Promise<{
166
+ source: PHDocument;
167
+ target: PHDocument;
168
+ }>;
169
+ /**
170
+ * Deletes a document and waits for completion
171
+ *
172
+ * @param identifier - Document identifier (id or slug)
173
+ * @param propagate - Optional mode for handling children, CASCADE deletes child documents
174
+ * @param signal - Optional abort signal to cancel the request
175
+ * @returns a promise, resolving on deletion confirmation
176
+ */
177
+ deleteDocument(identifier: string, propagate?: PropagationMode, signal?: AbortSignal): Promise<void>;
178
+ /**
179
+ * Deletes documents and waits for completion
180
+ *
181
+ * @param identifiers - Document identifiers (ids or slugs)
182
+ * @param propagate - Optional mode for handling children, CASCADE deletes child documents
183
+ * @param signal - Optional abort signal to cancel the request
184
+ * @returns a promise, resolving on deletion confirmation
185
+ */
186
+ deleteDocuments(identifiers: string[], propagate?: PropagationMode, signal?: AbortSignal): Promise<void>;
187
+ /**
188
+ * Retrieves the status of a job
189
+ *
190
+ * @param jobId - The job id
191
+ * @param signal - Optional abort signal to cancel the request
192
+ * @returns The job status
193
+ */
194
+ getJobStatus(jobId: string, signal?: AbortSignal): Promise<JobInfo>;
195
+ /**
196
+ * Waits for a job to complete
197
+ *
198
+ * @param jobId - The job id or job object
199
+ * @param signal - Optional abort signal to cancel the request
200
+ * @returns The result of the job
201
+ */
202
+ waitForJob(jobId: string | JobInfo, signal?: AbortSignal): Promise<JobInfo>;
203
+ /**
204
+ * Subscribes to changes for documents matching specified filters
205
+ *
206
+ * @param search - Search filter options (type, parentId, identifiers)
207
+ * @param callback - Function called when documents change with the change event details
208
+ * @param view - Optional filter containing branch and scopes information
209
+ * @returns A function that unsubscribes from the changes
210
+ */
211
+ subscribe(search: SearchFilter, callback: (event: DocumentChangeEvent) => void, view?: ViewFilter): () => void;
212
+ }
213
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Describes the types of document changes that can occur.
3
+ */
4
+ export var DocumentChangeType;
5
+ (function (DocumentChangeType) {
6
+ DocumentChangeType["Created"] = "created";
7
+ DocumentChangeType["Deleted"] = "deleted";
8
+ DocumentChangeType["Updated"] = "updated";
9
+ DocumentChangeType["ParentAdded"] = "parent_added";
10
+ DocumentChangeType["ParentRemoved"] = "parent_removed";
11
+ DocumentChangeType["ChildAdded"] = "child_added";
12
+ DocumentChangeType["ChildRemoved"] = "child_removed";
13
+ })(DocumentChangeType || (DocumentChangeType = {}));
14
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/client/types.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,CAAN,IAAY,kBAQX;AARD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,yCAAmB,CAAA;IACnB,yCAAmB,CAAA;IACnB,kDAA4B,CAAA;IAC5B,sDAAgC,CAAA;IAChC,gDAA0B,CAAA;IAC1B,oDAA8B,CAAA;AAChC,CAAC,EARW,kBAAkB,KAAlB,kBAAkB,QAQ7B"}
@@ -0,0 +1,20 @@
1
+ import { ReactorClient } from "../client/reactor-client.js";
2
+ import { type IJobAwaiter } from "../shared/awaiter.js";
3
+ import type { ISigner } from "../signer/types.js";
4
+ import type { IReactorSubscriptionManager } from "../subs/types.js";
5
+ import type { IReactor } from "./types.js";
6
+ /**
7
+ * Builder class for constructing ReactorClient instances with proper configuration
8
+ */
9
+ export declare class ReactorClientBuilder {
10
+ private reactor?;
11
+ private signer?;
12
+ private subscriptionManager?;
13
+ private jobAwaiter?;
14
+ withReactor(reactor: IReactor): this;
15
+ withSigner(signer: ISigner): this;
16
+ withSubscriptionManager(subscriptionManager: IReactorSubscriptionManager): this;
17
+ withJobAwaiter(jobAwaiter: IJobAwaiter): this;
18
+ build(): ReactorClient;
19
+ }
20
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/core/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAW;IAC3B,OAAO,CAAC,MAAM,CAAC,CAAU;IACzB,OAAO,CAAC,mBAAmB,CAAC,CAA8B;IAC1D,OAAO,CAAC,UAAU,CAAC,CAAc;IAE1B,WAAW,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAKpC,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAKjC,uBAAuB,CAC5B,mBAAmB,EAAE,2BAA2B,GAC/C,IAAI;IAKA,cAAc,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAK7C,KAAK,IAAI,aAAa;CA6B9B"}
@@ -0,0 +1,47 @@
1
+ import { ReactorClient } from "../client/reactor-client.js";
2
+ import { JobAwaiter } from "../shared/awaiter.js";
3
+ import { PassthroughSigner } from "../signer/passthrough-signer.js";
4
+ import { DefaultSubscriptionErrorHandler } from "../subs/default-error-handler.js";
5
+ import { ReactorSubscriptionManager } from "../subs/react-subscription-manager.js";
6
+ /**
7
+ * Builder class for constructing ReactorClient instances with proper configuration
8
+ */
9
+ export class ReactorClientBuilder {
10
+ reactor;
11
+ signer;
12
+ subscriptionManager;
13
+ jobAwaiter;
14
+ withReactor(reactor) {
15
+ this.reactor = reactor;
16
+ return this;
17
+ }
18
+ withSigner(signer) {
19
+ this.signer = signer;
20
+ return this;
21
+ }
22
+ withSubscriptionManager(subscriptionManager) {
23
+ this.subscriptionManager = subscriptionManager;
24
+ return this;
25
+ }
26
+ withJobAwaiter(jobAwaiter) {
27
+ this.jobAwaiter = jobAwaiter;
28
+ return this;
29
+ }
30
+ build() {
31
+ if (!this.reactor) {
32
+ throw new Error("Reactor is required to build ReactorClient");
33
+ }
34
+ if (!this.signer) {
35
+ this.signer = new PassthroughSigner();
36
+ }
37
+ // Use default SubscriptionManager with default error handler if not provided
38
+ if (!this.subscriptionManager) {
39
+ this.subscriptionManager = new ReactorSubscriptionManager(new DefaultSubscriptionErrorHandler());
40
+ }
41
+ if (!this.jobAwaiter) {
42
+ this.jobAwaiter = new JobAwaiter((jobId, signal) => this.reactor.getJobStatus(jobId, signal));
43
+ }
44
+ return new ReactorClient(this.reactor, this.signer, this.subscriptionManager, this.jobAwaiter);
45
+ }
46
+ }
47
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/core/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAoB,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAInF;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACvB,OAAO,CAAY;IACnB,MAAM,CAAW;IACjB,mBAAmB,CAA+B;IAClD,UAAU,CAAe;IAE1B,WAAW,CAAC,OAAiB;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,UAAU,CAAC,MAAe;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,uBAAuB,CAC5B,mBAAgD;QAEhD,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,cAAc,CAAC,UAAuB;QAC3C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACxC,CAAC;QAED,6EAA6E;QAC7E,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,0BAA0B,CACvD,IAAI,+BAA+B,EAAE,CACtC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CACjD,IAAI,CAAC,OAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAC1C,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,aAAa,CACtB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;CACF"}
@@ -1,10 +1,9 @@
1
1
  import type { BaseDocumentDriveServer } from "document-drive";
2
2
  import type { IDocumentStorage } from "document-drive/storage/types";
3
3
  import type { Action, DocumentModelState, Operation, PHDocument } from "document-model";
4
- import type { IReactor } from "./interfaces/reactor.js";
5
- import type { IQueue } from "./queue/interfaces.js";
6
- import type { JobInfo, PagedResults, PagingOptions, PropagationMode, SearchFilter, ShutdownStatus, ViewFilter } from "./shared/types.js";
7
- import { JobStatus } from "./shared/types.js";
4
+ import type { IQueue } from "../queue/interfaces.js";
5
+ import type { JobInfo, PagedResults, PagingOptions, PropagationMode, SearchFilter, ShutdownStatus, ViewFilter } from "../shared/types.js";
6
+ import type { IReactor } from "./types.js";
8
7
  /**
9
8
  * The Reactor facade implementation.
10
9
  *
@@ -59,7 +58,7 @@ export declare class Reactor implements IReactor {
59
58
  /**
60
59
  * Creates a document
61
60
  */
62
- create(document: PHDocument, signal?: AbortSignal): Promise<JobStatus>;
61
+ create(document: PHDocument, signal?: AbortSignal): Promise<JobInfo>;
63
62
  /**
64
63
  * Deletes a document
65
64
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../../src/core/reactor.ts"],"names":[],"mappings":"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"}