@weiliang0121/capix-invocation 0.1.0 → 0.3.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/README.md +4 -1
- package/dist/checkpoint/contract.d.ts +2 -5
- package/dist/checkpoint/observation.d.ts +5 -11
- package/dist/checkpoint/observation.js +1 -1
- package/dist/context/view.d.ts +2 -2
- package/dist/events.d.ts +32 -0
- package/dist/events.js +2 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -1
- package/dist/invocation/changes.d.ts +1 -1
- package/dist/invocation/facts.d.ts +1 -1
- package/dist/invocation/resources.js +1 -1
- package/dist/observation/facts.d.ts +3 -3
- package/dist/observation/invocation.d.ts +2 -3
- package/dist/observation/invocation.js +1 -1
- package/dist/observation/observer.d.ts +2 -3
- package/package.json +13 -9
package/README.md
CHANGED
|
@@ -11,9 +11,12 @@ npm install @weiliang0121/capix-invocation
|
|
|
11
11
|
## Public entry points
|
|
12
12
|
|
|
13
13
|
- `@weiliang0121/capix-invocation`
|
|
14
|
+
- `@weiliang0121/capix-invocation/events`
|
|
14
15
|
|
|
15
16
|
This package is part of CAPiX. The npm distribution contains compiled JavaScript, type declarations, and this package's MIT license. Reference services and client applications are not included in this package or the initial npm release.
|
|
16
17
|
|
|
18
|
+
`/events` owns the pure `InvocationEvent` data contract and its process stage, action, and relation phase vocabulary. It imports no live invocation implementation or Node APIs. The root explicitly exports the same definitions. Shared callable kinds, failure facts and relation identity belong to `contracts`; transport framing belongs to its adapter.
|
|
19
|
+
|
|
17
20
|
## License
|
|
18
21
|
|
|
19
|
-
MIT. Copyright (c) 2026 wei.liang. See [LICENSE](
|
|
22
|
+
MIT. Copyright (c) 2026 wei.liang. See [LICENSE](LICENSE).
|
|
@@ -32,11 +32,8 @@ export type CheckpointFact = Readonly<{
|
|
|
32
32
|
kind: 'resource';
|
|
33
33
|
fact: import('../observation/facts.js').ResourceObservation;
|
|
34
34
|
} | {
|
|
35
|
-
kind: '
|
|
36
|
-
fact: import('@weiliang0121/capix-
|
|
37
|
-
} | {
|
|
38
|
-
kind: 'memory';
|
|
39
|
-
fact: import('@weiliang0121/capix-protocol').MemoryEvent;
|
|
35
|
+
kind: 'fact';
|
|
36
|
+
fact: import('@weiliang0121/capix-resources').ResourceFact;
|
|
40
37
|
} | {
|
|
41
38
|
kind: 'failed';
|
|
42
39
|
stage: 'capture' | 'save' | 'restore' | 'finish';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ResourceFact } from '@weiliang0121/capix-resources';
|
|
2
2
|
import type { InvocationFact, ResourceObservation } from '../observation/facts.js';
|
|
3
3
|
import { InvocationObservation } from '../observation/invocation.js';
|
|
4
4
|
type CheckpointActivityEvent = {
|
|
@@ -8,11 +8,8 @@ type CheckpointActivityEvent = {
|
|
|
8
8
|
kind: 'resource';
|
|
9
9
|
fact: ResourceObservation;
|
|
10
10
|
} | {
|
|
11
|
-
kind: '
|
|
12
|
-
fact:
|
|
13
|
-
} | {
|
|
14
|
-
kind: 'memory';
|
|
15
|
-
fact: MemoryEvent;
|
|
11
|
+
kind: 'fact';
|
|
12
|
+
fact: ResourceFact;
|
|
16
13
|
};
|
|
17
14
|
export declare class CheckpointObservation extends InvocationObservation {
|
|
18
15
|
private readonly emit;
|
|
@@ -21,11 +18,8 @@ export declare class CheckpointObservation extends InvocationObservation {
|
|
|
21
18
|
readonly resource: {
|
|
22
19
|
publish: (fact: ResourceObservation) => unknown | undefined;
|
|
23
20
|
};
|
|
24
|
-
readonly
|
|
25
|
-
publish: (fact:
|
|
26
|
-
};
|
|
27
|
-
readonly memory: {
|
|
28
|
-
publish: (fact: MemoryEvent) => unknown | undefined;
|
|
21
|
+
readonly facts: {
|
|
22
|
+
publish: (fact: ResourceFact) => unknown | undefined;
|
|
29
23
|
};
|
|
30
24
|
private forward;
|
|
31
25
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! MIT License | Copyright (c) 2026 wei.liang | See LICENSE */
|
|
2
|
-
var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});import{InvocationObservation}from"../observation/invocation.js";import{ObservationError}from"../observation/error.js";class CheckpointObservation extends InvocationObservation{static{__name(this,"CheckpointObservation")}emit;constructor(emit){super([],new Map),this.emit=emit}publish(fact){return this.forward({kind:"activity",fact})}resource={publish:__name(fact=>this.forward({kind:"resource",fact}),"publish")};
|
|
2
|
+
var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});import{InvocationObservation}from"../observation/invocation.js";import{ObservationError}from"../observation/error.js";class CheckpointObservation extends InvocationObservation{static{__name(this,"CheckpointObservation")}emit;constructor(emit){super([],new Map),this.emit=emit}publish(fact){return this.forward({kind:"activity",fact})}resource={publish:__name(fact=>this.forward({kind:"resource",fact}),"publish")};facts={publish:__name(fact=>this.forward({kind:"fact",fact}),"publish")};forward(event){try{this.emit(event);return}catch(cause){return new ObservationError(cause)}}}export{CheckpointObservation};
|
package/dist/context/view.d.ts
CHANGED
|
@@ -16,12 +16,12 @@ interface ResourceContextView<Input, Output, Resources extends object> extends I
|
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
export interface CallableContextView<Input = unknown, Output = unknown, Resources extends object = object> extends ResourceContextView<Input, Output, Resources> {
|
|
19
|
-
readonly kind: import('@weiliang0121/capix-
|
|
19
|
+
readonly kind: import('@weiliang0121/capix-contracts').CallableKind;
|
|
20
20
|
}
|
|
21
21
|
export type ContextViewOf<Context extends InvocationContext<any, any>> = Context extends InvocationContext<infer Input, infer Output> & {
|
|
22
22
|
readonly resources: InvocationResources<infer Resources>;
|
|
23
23
|
readonly signal: AbortSignal;
|
|
24
|
-
readonly kind: import('@weiliang0121/capix-
|
|
24
|
+
readonly kind: import('@weiliang0121/capix-contracts').CallableKind;
|
|
25
25
|
} ? CallableContextView<Input, Output, Resources> : Context extends InvocationContext<infer Input, infer Output> ? InvocationContextView<Input, Output> : never;
|
|
26
26
|
export type ContextViewResources<ContextView extends InvocationContextView<any, any>, Resources extends object> = Omit<ContextView, 'resources'> & {
|
|
27
27
|
readonly resources: {
|
package/dist/events.d.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { CallableKind, InvocationFailureFact, InvocationRelationIdentity } from '@weiliang0121/capix-contracts';
|
|
2
|
+
export declare const invocationProcessStages: readonly ["execute", "receive", "handling", "control"];
|
|
3
|
+
export declare const invocationProcessActions: readonly ["start", "return", "throw", "continue", "unhandled", "stop"];
|
|
4
|
+
export type InvocationProcessStage = (typeof invocationProcessStages)[number];
|
|
5
|
+
export type InvocationProcessAction = (typeof invocationProcessActions)[number];
|
|
6
|
+
export type InvocationRelationPhase = 'attached' | 'returned' | 'receiving' | 'accepted' | 'handled' | 'failed';
|
|
7
|
+
export type InvocationEvent = Readonly<{
|
|
8
|
+
type: 'invocation';
|
|
9
|
+
contextId: string;
|
|
10
|
+
parentContextId?: string;
|
|
11
|
+
kind: CallableKind;
|
|
12
|
+
sequence: number;
|
|
13
|
+
occurredAt: string;
|
|
14
|
+
change: Readonly<{
|
|
15
|
+
kind: 'started';
|
|
16
|
+
}> | Readonly<{
|
|
17
|
+
kind: 'process';
|
|
18
|
+
processSequence: number;
|
|
19
|
+
round: number;
|
|
20
|
+
stage: InvocationProcessStage;
|
|
21
|
+
action: InvocationProcessAction;
|
|
22
|
+
}> | Readonly<{
|
|
23
|
+
kind: 'relation';
|
|
24
|
+
identity: InvocationRelationIdentity;
|
|
25
|
+
phase: InvocationRelationPhase;
|
|
26
|
+
status?: 'succeeded' | 'failed';
|
|
27
|
+
failure?: InvocationFailureFact;
|
|
28
|
+
}> | Readonly<{
|
|
29
|
+
kind: 'finished';
|
|
30
|
+
status: 'succeeded' | 'failed';
|
|
31
|
+
}>;
|
|
32
|
+
}>;
|
package/dist/events.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! MIT License | Copyright (c) 2026 wei.liang | See LICENSE */
|
|
2
|
+
const invocationProcessStages=["execute","receive","handling","control"],invocationProcessActions=["start","return","throw","continue","unhandled","stop"];export{invocationProcessActions,invocationProcessStages};
|
package/dist/index.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export { combineOutputReceivers } from './output/delivery.js';
|
|
|
19
19
|
export { InvocationChangeEmitter } from './invocation/changes.js';
|
|
20
20
|
export type { InvocationProgress } from './invocation/progress.js';
|
|
21
21
|
export { invocationProgress } from './invocation/facts.js';
|
|
22
|
-
export type { InvocationFact, InvocationChange, InvocationDescription, InvocationIdentity, InvocationRelationIdentity, InvocationRelationChange, ResourceObservation, BusinessObservation, BusinessEvent } from './observation/facts.js';
|
|
22
|
+
export type { InvocationFact, InvocationChange, InvocationDescription, InvocationIdentity, InvocationRelationIdentity, InvocationRelationChange, ResourceObservation, ResourceFact, BusinessObservation, BusinessEvent } from './observation/facts.js';
|
|
23
23
|
export type { InvocationObserver, EventConsumer } from './observation/observer.js';
|
|
24
24
|
export { InvocationObservation } from './observation/invocation.js';
|
|
25
25
|
export { ObserverSession, publishSessions } from './observation/session.js';
|
|
@@ -35,3 +35,4 @@ export { RuntimeErrorHelper } from '@weiliang0121/capix-diagnostics';
|
|
|
35
35
|
export { isNonEmptyArray, hasUniqueItems } from './value/array.js';
|
|
36
36
|
export { isObjectLike, isObject } from './value/object.js';
|
|
37
37
|
export { nonBlankStringPattern, isNonBlankString } from './value/string.js';
|
|
38
|
+
export { invocationProcessStages, invocationProcessActions, type InvocationEvent, type InvocationProcessStage, type InvocationProcessAction, type InvocationRelationPhase } from './events.js';
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! MIT License | Copyright (c) 2026 wei.liang | See LICENSE */
|
|
2
|
-
import{Invocation}from"./invocation/invocation.js";import{InvocationContext}from"./context/context.js";import{CallableContext}from"./context/callable.js";import{failureFact,failureDiagnostic}from"./invocation/failure.js";import{Clock}from"./clock.js";import{InvocationChildren}from"./invocation/children.js";import{InvocationRelation}from"./invocation/relation.js";import{invocationContextView}from"./context/view.js";import{invocationView,childInvocationView}from"./invocation/view.js";import{InvocationResources}from"./invocation/resource-access.js";import{attachInvocationResources,invocationResourceFailures}from"./invocation/resources.js";import{InvocationCancelled,isInvocationCancelled,requireNotCancelled}from"./invocation/cancellation.js";import{ExceptionContract,DeclaredException}from"./exception/contract.js";import{ChildCallFailure,inspectChildCallFailure}from"./invocation/provenance.js";import{combineOutputReceivers}from"./output/delivery.js";import{InvocationChangeEmitter}from"./invocation/changes.js";import{invocationProgress}from"./invocation/facts.js";import{InvocationObservation}from"./observation/invocation.js";import{ObserverSession,publishSessions}from"./observation/session.js";import{ObservationError}from"./observation/error.js";import{prepareCheckpointRestoration}from"./checkpoint/restoration.js";import{captureCheckpointContinuation,restoreCheckpointContinuation}from"./checkpoint/continuation.js";import{checkpointChildBinding,checkpointReceptionBinding,decodeCheckpointReception,decodeCheckpointHandledReception,checkCheckpointReferences,decodeCheckpointFrame,decodeCheckpointDiagnostic}from"./checkpoint/facts.js";import{RuntimeError}from"@weiliang0121/capix-contracts";import{PersistenceError}from"@weiliang0121/capix-diagnostics";import{RuntimeErrorHelper}from"@weiliang0121/capix-diagnostics";import{isNonEmptyArray,hasUniqueItems}from"./value/array.js";import{isObjectLike,isObject}from"./value/object.js";import{nonBlankStringPattern,isNonBlankString}from"./value/string.js";export{CallableContext,ChildCallFailure,Clock,DeclaredException,ExceptionContract,Invocation,InvocationCancelled,InvocationChangeEmitter,InvocationChildren,InvocationContext,InvocationObservation,InvocationRelation,InvocationResources,ObservationError,ObserverSession,PersistenceError,RuntimeError,RuntimeErrorHelper,attachInvocationResources,captureCheckpointContinuation,checkCheckpointReferences,checkpointChildBinding,checkpointReceptionBinding,childInvocationView,combineOutputReceivers,decodeCheckpointDiagnostic,decodeCheckpointFrame,decodeCheckpointHandledReception,decodeCheckpointReception,failureDiagnostic,failureFact,hasUniqueItems,inspectChildCallFailure,invocationContextView,invocationProgress,invocationResourceFailures,invocationView,isInvocationCancelled,isNonBlankString,isNonEmptyArray,isObject,isObjectLike,nonBlankStringPattern,prepareCheckpointRestoration,publishSessions,requireNotCancelled,restoreCheckpointContinuation};
|
|
2
|
+
import{Invocation}from"./invocation/invocation.js";import{InvocationContext}from"./context/context.js";import{CallableContext}from"./context/callable.js";import{failureFact,failureDiagnostic}from"./invocation/failure.js";import{Clock}from"./clock.js";import{InvocationChildren}from"./invocation/children.js";import{InvocationRelation}from"./invocation/relation.js";import{invocationContextView}from"./context/view.js";import{invocationView,childInvocationView}from"./invocation/view.js";import{InvocationResources}from"./invocation/resource-access.js";import{attachInvocationResources,invocationResourceFailures}from"./invocation/resources.js";import{InvocationCancelled,isInvocationCancelled,requireNotCancelled}from"./invocation/cancellation.js";import{ExceptionContract,DeclaredException}from"./exception/contract.js";import{ChildCallFailure,inspectChildCallFailure}from"./invocation/provenance.js";import{combineOutputReceivers}from"./output/delivery.js";import{InvocationChangeEmitter}from"./invocation/changes.js";import{invocationProgress}from"./invocation/facts.js";import{InvocationObservation}from"./observation/invocation.js";import{ObserverSession,publishSessions}from"./observation/session.js";import{ObservationError}from"./observation/error.js";import{prepareCheckpointRestoration}from"./checkpoint/restoration.js";import{captureCheckpointContinuation,restoreCheckpointContinuation}from"./checkpoint/continuation.js";import{checkpointChildBinding,checkpointReceptionBinding,decodeCheckpointReception,decodeCheckpointHandledReception,checkCheckpointReferences,decodeCheckpointFrame,decodeCheckpointDiagnostic}from"./checkpoint/facts.js";import{RuntimeError}from"@weiliang0121/capix-contracts";import{PersistenceError}from"@weiliang0121/capix-diagnostics";import{RuntimeErrorHelper}from"@weiliang0121/capix-diagnostics";import{isNonEmptyArray,hasUniqueItems}from"./value/array.js";import{isObjectLike,isObject}from"./value/object.js";import{nonBlankStringPattern,isNonBlankString}from"./value/string.js";import{invocationProcessStages,invocationProcessActions}from"./events.js";export{CallableContext,ChildCallFailure,Clock,DeclaredException,ExceptionContract,Invocation,InvocationCancelled,InvocationChangeEmitter,InvocationChildren,InvocationContext,InvocationObservation,InvocationRelation,InvocationResources,ObservationError,ObserverSession,PersistenceError,RuntimeError,RuntimeErrorHelper,attachInvocationResources,captureCheckpointContinuation,checkCheckpointReferences,checkpointChildBinding,checkpointReceptionBinding,childInvocationView,combineOutputReceivers,decodeCheckpointDiagnostic,decodeCheckpointFrame,decodeCheckpointHandledReception,decodeCheckpointReception,failureDiagnostic,failureFact,hasUniqueItems,inspectChildCallFailure,invocationContextView,invocationProcessActions,invocationProcessStages,invocationProgress,invocationResourceFailures,invocationView,isInvocationCancelled,isNonBlankString,isNonEmptyArray,isObject,isObjectLike,nonBlankStringPattern,prepareCheckpointRestoration,publishSessions,requireNotCancelled,restoreCheckpointContinuation};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { InvocationEvent } from '
|
|
1
|
+
import type { InvocationEvent } from '../events.js';
|
|
2
2
|
import type { ChangeCapture } from '@weiliang0121/capix-changes';
|
|
3
3
|
import type { InvocationIdentity } from '../observation/facts.js';
|
|
4
4
|
export declare class InvocationChangeEmitter {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { InvocationEvent } from '
|
|
1
|
+
import type { InvocationEvent } from '../events.js';
|
|
2
2
|
import type { InvocationFact } from '../observation/facts.js';
|
|
3
3
|
import type { InvocationProgress } from './progress.js';
|
|
4
4
|
export declare function invocationProgress(fact: InvocationFact, signal: AbortSignal): InvocationProgress;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! MIT License | Copyright (c) 2026 wei.liang | See LICENSE */
|
|
2
|
-
var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});import"./resource-access.js";import{isProtectedOperationFailure}from"../operation/failure.js";import{RuntimeErrorHelper}from"@weiliang0121/capix-diagnostics";import{isInvocationCancelled}from"./cancellation.js";const invocationResourceFailures=Object.freeze({isProtected:isProtectedOperationFailure,isCancellation:isInvocationCancelled,describe:RuntimeErrorHelper.format});function attachInvocationResources(invocation,resources){resources.attach({contextId:invocation.context.id,failures:invocationResourceFailures,signal:invocation.context.signal,round:__name(()=>invocation.context.progress.round,"round"),reception:__name(()=>invocation.children.reception,"reception"),nextSequence:__name(()=>invocation.nextResourceSequence(),"nextSequence"),validate:__name(()=>invocation.requireActive(),"validate"),observation:invocation.observation?.resource,
|
|
2
|
+
var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});import"./resource-access.js";import{isProtectedOperationFailure}from"../operation/failure.js";import{RuntimeErrorHelper}from"@weiliang0121/capix-diagnostics";import{isInvocationCancelled}from"./cancellation.js";const invocationResourceFailures=Object.freeze({isProtected:isProtectedOperationFailure,isCancellation:isInvocationCancelled,describe:RuntimeErrorHelper.format});function attachInvocationResources(invocation,resources){resources.attach({contextId:invocation.context.id,failures:invocationResourceFailures,signal:invocation.context.signal,round:__name(()=>invocation.context.progress.round,"round"),reception:__name(()=>invocation.children.reception,"reception"),nextSequence:__name(()=>invocation.nextResourceSequence(),"nextSequence"),validate:__name(()=>invocation.requireActive(),"validate"),observation:invocation.observation?.resource,facts:invocation.observation?.facts,error:__name((error,allowException)=>invocation.reject(error,allowException),"error")})}__name(attachInvocationResources,"attachInvocationResources");export{attachInvocationResources,invocationResourceFailures};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { InvocationRelationIdentity } from '@weiliang0121/capix-
|
|
1
|
+
import type { InvocationRelationIdentity } from '@weiliang0121/capix-contracts';
|
|
2
2
|
import type { BusinessEvent } from '@weiliang0121/capix-contracts';
|
|
3
3
|
import type { InvocationIdentity } from '@weiliang0121/capix-contracts';
|
|
4
4
|
import type { ContextState } from '../context/context.js';
|
|
5
5
|
import type { InvocationProcess } from '../invocation/work.js';
|
|
6
6
|
import type { InvocationResult } from '../invocation/result.js';
|
|
7
7
|
import type { InvocationFailure } from '../invocation/failure.js';
|
|
8
|
-
export type { InvocationRelationIdentity } from '@weiliang0121/capix-
|
|
8
|
+
export type { InvocationRelationIdentity } from '@weiliang0121/capix-contracts';
|
|
9
9
|
export type { InvocationIdentity } from '@weiliang0121/capix-contracts';
|
|
10
10
|
export interface InvocationDescription {
|
|
11
11
|
readonly role?: string;
|
|
@@ -54,7 +54,7 @@ export type InvocationFact = InvocationChange & {
|
|
|
54
54
|
readonly occurredAt: string;
|
|
55
55
|
readonly monotonicTime: number;
|
|
56
56
|
};
|
|
57
|
-
export type { ResourceObservation } from '@weiliang0121/capix-resources';
|
|
57
|
+
export type { ResourceObservation, ResourceFact } from '@weiliang0121/capix-resources';
|
|
58
58
|
export type { BusinessEvent } from '@weiliang0121/capix-contracts';
|
|
59
59
|
export interface BusinessObservation {
|
|
60
60
|
readonly identity: InvocationIdentity;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ResourceFact } from '@weiliang0121/capix-resources';
|
|
2
2
|
import type { InvocationFact, ResourceObservation, BusinessObservation } from './facts.js';
|
|
3
3
|
import type { EventConsumer } from '@weiliang0121/capix-changes';
|
|
4
4
|
import type { InvocationObserver } from './observer.js';
|
|
@@ -11,7 +11,6 @@ export declare class InvocationObservation {
|
|
|
11
11
|
publish(fact: InvocationFact): unknown | undefined;
|
|
12
12
|
readonly resource: EventConsumer<ResourceObservation>;
|
|
13
13
|
readonly business: EventConsumer<BusinessObservation>;
|
|
14
|
-
readonly
|
|
15
|
-
readonly memory: EventConsumer<MemoryEvent>;
|
|
14
|
+
readonly facts: EventConsumer<ResourceFact>;
|
|
16
15
|
private dispatch;
|
|
17
16
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! MIT License | Copyright (c) 2026 wei.liang | See LICENSE */
|
|
2
|
-
var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});import{publishSessions}from"./session.js";class InvocationObservation{static{__name(this,"InvocationObservation")}#sessions;#installed;constructor(sessions,installed){this.#sessions=Object.freeze([...sessions]),this.#installed=new Map(installed)}observerFor(installation){const session=this.#installed.get(installation);return session?.available()?session.observer:void 0}sessionFor(installation){return this.#installed.get(installation)}publish(fact){return this.dispatch(observer=>observer.observe(fact))}resource={publish:__name(event=>this.dispatch(observer=>observer.resource?.(event)),"publish")};business={publish:__name(event=>this.dispatch(observer=>observer.business?.(event)),"publish")};
|
|
2
|
+
var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});import{publishSessions}from"./session.js";class InvocationObservation{static{__name(this,"InvocationObservation")}#sessions;#installed;constructor(sessions,installed){this.#sessions=Object.freeze([...sessions]),this.#installed=new Map(installed)}observerFor(installation){const session=this.#installed.get(installation);return session?.available()?session.observer:void 0}sessionFor(installation){return this.#installed.get(installation)}publish(fact){return this.dispatch(observer=>observer.observe(fact))}resource={publish:__name(event=>this.dispatch(observer=>observer.resource?.(event)),"publish")};business={publish:__name(event=>this.dispatch(observer=>observer.business?.(event)),"publish")};facts={publish:__name(fact=>this.dispatch(observer=>observer.fact?.(fact)),"publish")};dispatch(work){return publishSessions(this.#sessions,work)}}export{InvocationObservation};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { InvocationResources } from '../invocation/resource-access.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ResourceFact } from '@weiliang0121/capix-resources';
|
|
3
3
|
import type { InvocationFact, ResourceObservation, BusinessObservation } from './facts.js';
|
|
4
4
|
export type { EventConsumer } from '@weiliang0121/capix-changes';
|
|
5
5
|
export interface InvocationObserver {
|
|
@@ -7,7 +7,6 @@ export interface InvocationObserver {
|
|
|
7
7
|
observe(fact: InvocationFact): void;
|
|
8
8
|
business?(fact: BusinessObservation): void;
|
|
9
9
|
resource?(fact: ResourceObservation): void;
|
|
10
|
-
|
|
11
|
-
memory?(event: MemoryEvent): void;
|
|
10
|
+
fact?(fact: ResourceFact): void;
|
|
12
11
|
available?(): boolean;
|
|
13
12
|
}
|
package/package.json
CHANGED
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weiliang0121/capix-invocation",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
9
|
"import": "./dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"./events": {
|
|
12
|
+
"types": "./dist/events.d.ts",
|
|
13
|
+
"import": "./dist/events.js"
|
|
10
14
|
}
|
|
11
15
|
},
|
|
12
16
|
"dependencies": {
|
|
13
17
|
"es-toolkit": "1.52.0",
|
|
14
|
-
"@weiliang0121/capix-contracts": "0.
|
|
15
|
-
"@weiliang0121/capix-
|
|
16
|
-
"@weiliang0121/capix-
|
|
17
|
-
"@weiliang0121/capix-
|
|
18
|
-
"@weiliang0121/capix-
|
|
19
|
-
"@weiliang0121/capix-checkpoint": "0.1.0"
|
|
18
|
+
"@weiliang0121/capix-contracts": "0.3.0",
|
|
19
|
+
"@weiliang0121/capix-changes": "0.3.0",
|
|
20
|
+
"@weiliang0121/capix-resources": "0.3.0",
|
|
21
|
+
"@weiliang0121/capix-checkpoint": "0.3.0",
|
|
22
|
+
"@weiliang0121/capix-diagnostics": "0.3.0"
|
|
20
23
|
},
|
|
21
24
|
"description": "Invocation lifecycle, child relations, reception, output, and checkpoint activity for CAPiX.",
|
|
22
25
|
"license": "MIT",
|
|
@@ -24,7 +27,7 @@
|
|
|
24
27
|
"repository": {
|
|
25
28
|
"type": "git",
|
|
26
29
|
"url": "git+https://github.com/weiliang0121/capix.git",
|
|
27
|
-
"directory": "
|
|
30
|
+
"directory": "packages/invocation"
|
|
28
31
|
},
|
|
29
32
|
"engines": {
|
|
30
33
|
"node": ">=22.23.2"
|
|
@@ -43,6 +46,7 @@
|
|
|
43
46
|
},
|
|
44
47
|
"scripts": {
|
|
45
48
|
"build": "tsc -p tsconfig.json",
|
|
46
|
-
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
49
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
50
|
+
"test": "node ../../scripts/test/run.mjs --package ."
|
|
47
51
|
}
|
|
48
52
|
}
|