@astrale-os/shell-react 0.2.10-beta.2 → 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/dist/application/apps/app-host.d.ts +5 -5
- package/dist/application/apps/app-host.d.ts.map +1 -1
- package/dist/application/apps/app-host.js +18 -39
- package/dist/application/apps/apps.hook.d.ts +4 -11
- package/dist/application/apps/apps.hook.d.ts.map +1 -1
- package/dist/application/apps/apps.hook.js +9 -49
- package/dist/application/apps/open-app.hook.d.ts +4 -7
- package/dist/application/apps/open-app.hook.d.ts.map +1 -1
- package/dist/application/apps/open-app.hook.js +2 -2
- package/dist/application/index.d.ts +1 -3
- package/dist/application/index.d.ts.map +1 -1
- package/dist/application/index.js +1 -2
- package/dist/application/spaces/space.hook.d.ts.map +1 -1
- package/dist/application/spaces/space.hook.js +4 -1
- package/dist/auth/act-as.context.d.ts +1 -1
- package/dist/auth/act-as.context.d.ts.map +1 -1
- package/dist/auth/auth.hook.d.ts +1 -1
- package/dist/auth/auth.hook.d.ts.map +1 -1
- package/dist/auth/can.hook.d.ts +2 -2
- package/dist/auth/can.hook.d.ts.map +1 -1
- package/dist/auth/self.hook.d.ts +1 -1
- package/dist/auth/self.hook.d.ts.map +1 -1
- package/dist/components/astrale.d.ts +14 -0
- package/dist/components/astrale.d.ts.map +1 -0
- package/dist/components/astrale.js +12 -0
- package/dist/components/can.d.ts +2 -2
- package/dist/components/can.d.ts.map +1 -1
- package/dist/components/index.d.ts +2 -3
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -2
- package/dist/graph/call/call.hook.d.ts +2 -2
- package/dist/graph/call/call.hook.d.ts.map +1 -1
- package/dist/graph/call/stream.hook.d.ts +2 -2
- package/dist/graph/call/stream.hook.d.ts.map +1 -1
- package/dist/graph/graph.context.d.ts +1 -1
- package/dist/graph/graph.context.d.ts.map +1 -1
- package/dist/graph/guards.error.d.ts +4 -4
- package/dist/graph/guards.error.d.ts.map +1 -1
- package/dist/graph/guards.error.js +4 -4
- package/dist/graph/query-definition.hook.d.ts +1 -2
- package/dist/graph/query-definition.hook.d.ts.map +1 -1
- package/dist/graph/query-definition.hook.js +4 -10
- package/dist/graph/resource.d.ts +1 -1
- package/dist/graph/resource.d.ts.map +1 -1
- package/dist/graph/store.d.ts +2 -2
- package/dist/graph/store.d.ts.map +1 -1
- package/dist/graph/store.js +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/navigation/adapters/url.adapter.d.ts.map +1 -1
- package/dist/navigation/adapters/url.adapter.js +2 -5
- package/dist/navigation/codec.d.ts.map +1 -1
- package/dist/navigation/codec.js +1 -7
- package/dist/navigation/link.js +1 -1
- package/dist/navigation/scope.context.d.ts +1 -1
- package/dist/navigation/scope.context.d.ts.map +1 -1
- package/dist/navigation/scope.context.js +3 -6
- package/dist/navigation/snapshot.d.ts +1 -1
- package/dist/navigation/snapshot.d.ts.map +1 -1
- package/dist/navigation/snapshot.js +2 -8
- package/dist/navigation/view-key.d.ts +3 -0
- package/dist/navigation/view-key.d.ts.map +1 -0
- package/dist/navigation/view-key.js +8 -0
- package/dist/schema/action.hook.d.ts +11 -7
- package/dist/schema/action.hook.d.ts.map +1 -1
- package/dist/schema/action.hook.js +11 -6
- package/dist/schema/domain.hook.js +12 -13
- package/dist/schema/kernel.hook.d.ts +1 -1
- package/dist/schema/kernel.hook.d.ts.map +1 -1
- package/dist/schema/kernel.hook.js +1 -1
- package/dist/schema/mutation.hook.d.ts +2 -2
- package/dist/schema/mutation.hook.d.ts.map +1 -1
- package/dist/schema/mutation.hook.js +6 -5
- package/dist/schema/object.hook.d.ts +3 -6
- package/dist/schema/object.hook.d.ts.map +1 -1
- package/dist/schema/object.hook.js +4 -5
- package/dist/schema/relation.hook.d.ts +29 -19
- package/dist/schema/relation.hook.d.ts.map +1 -1
- package/dist/schema/relation.hook.js +45 -63
- package/dist/selection/live.d.ts.map +1 -1
- package/dist/selection/live.js +1 -2
- package/dist/session/session.context.d.ts +3 -4
- package/dist/session/session.context.d.ts.map +1 -1
- package/package.json +6 -5
- package/src/application/apps/app-host.tsx +22 -52
- package/src/application/apps/apps.hook.ts +14 -64
- package/src/application/apps/open-app.hook.ts +5 -10
- package/src/application/index.ts +2 -12
- package/src/application/spaces/space.hook.ts +6 -1
- package/src/auth/act-as.context.tsx +1 -1
- package/src/auth/auth.hook.ts +1 -1
- package/src/auth/can.hook.ts +3 -3
- package/src/auth/self.hook.ts +1 -1
- package/src/components/astrale.tsx +40 -0
- package/src/components/can.tsx +2 -2
- package/src/components/index.ts +2 -3
- package/src/graph/call/call.hook.ts +2 -2
- package/src/graph/call/stream.hook.ts +2 -2
- package/src/graph/graph.context.ts +1 -1
- package/src/graph/guards.error.ts +4 -4
- package/src/graph/query-definition.hook.ts +13 -23
- package/src/graph/resource.ts +1 -1
- package/src/graph/store.ts +3 -3
- package/src/index.ts +5 -14
- package/src/navigation/adapters/url.adapter.ts +3 -4
- package/src/navigation/codec.ts +1 -7
- package/src/navigation/link.tsx +1 -1
- package/src/navigation/scope.context.tsx +5 -6
- package/src/navigation/snapshot.ts +4 -9
- package/src/navigation/view-key.ts +11 -0
- package/src/schema/action.hook.ts +45 -28
- package/src/schema/domain.hook.ts +9 -10
- package/src/schema/kernel.hook.ts +1 -1
- package/src/schema/mutation.hook.ts +13 -9
- package/src/schema/object.hook.ts +10 -18
- package/src/schema/relation.hook.ts +127 -145
- package/src/selection/live.ts +1 -2
- package/src/session/session.context.ts +3 -4
- package/dist/application/apps/domains.hook.d.ts +0 -7
- package/dist/application/apps/domains.hook.d.ts.map +0 -1
- package/dist/application/apps/domains.hook.js +0 -18
- package/dist/components/mount-domain-frontend.d.ts +0 -22
- package/dist/components/mount-domain-frontend.d.ts.map +0 -1
- package/dist/components/mount-domain-frontend.js +0 -85
- package/dist/components/view-app.d.ts +0 -16
- package/dist/components/view-app.d.ts.map +0 -1
- package/dist/components/view-app.js +0 -16
- package/src/application/apps/domains.hook.ts +0 -37
- package/src/components/mount-domain-frontend.tsx +0 -158
- package/src/components/view-app.tsx +0 -49
package/dist/graph/resource.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GraphStore, StoreQueryResponse } from '@astrale-os/
|
|
1
|
+
import type { GraphStore, StoreQueryResponse } from '@astrale-os/sdk/client/store';
|
|
2
2
|
import type { QueryAST } from '@astrale-os/sdk/query';
|
|
3
3
|
export type GraphResourceState = 'idle' | 'loading' | 'ready' | 'stale' | 'refreshing' | 'optimistic' | 'failed';
|
|
4
4
|
export interface GraphResource<T> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/graph/resource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAiB,MAAM,
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/graph/resource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAiB,MAAM,8BAA8B,CAAA;AACjG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAMrD,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,SAAS,GACT,OAAO,GACP,OAAO,GACP,YAAY,GACZ,YAAY,GACZ,QAAQ,CAAA;AAEZ,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;IAClC,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;KAAE,CAAA;IACnE,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IACpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;QACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;QACzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;KACtB,CAAA;CACF;AAED,MAAM,WAAW,oBAAoB,CAAC,MAAM;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,CAAA;IACrD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;CAC5C;AAsID,+FAA+F;AAC/F,wBAAgB,gBAAgB,CAAC,KAAK,SAAS,QAAQ,EAAE,MAAM,EAC7D,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,MAAM,EACxD,OAAO,GAAE,oBAAoB,CAAC,MAAM,CAAM,GACzC,aAAa,CAAC,MAAM,CAAC,CA2EvB;AAoCD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,GAAG,SAAS,GACzB,MAAM,IAAI,CAkCZ"}
|
package/dist/graph/store.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { GraphApi } from '@astrale-os/
|
|
2
|
-
import type { GraphStore as GraphStoreValue } from '@astrale-os/
|
|
1
|
+
import type { GraphApi } from '@astrale-os/sdk/client';
|
|
2
|
+
import type { GraphStore as GraphStoreValue } from '@astrale-os/sdk/client/store';
|
|
3
3
|
import type { Shell } from '@astrale-os/shell';
|
|
4
4
|
interface StoreEntry {
|
|
5
5
|
readonly shell: Shell;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/graph/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/graph/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACjF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAO9C,UAAU,UAAU;IAClB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;CACnB;AAID,4FAA4F;AAC5F,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAChC;AAED,KAAK,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAE3E,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,KAAK,EACZ,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,GACnC,OAAO,CAAC,eAAe,CAAC,CAc1B;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,GAAG,UAAU,CAwBzE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,IAAI,CAezD;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,IAAI,eAAe,CAI/C"}
|
package/dist/graph/store.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -18,15 +18,15 @@ export type { ExternalOpenApi, HostDialogApi, NotifyApi, OpenViewApi, RequestAcc
|
|
|
18
18
|
export { HostCapabilityUnavailableError } from './host/index.js';
|
|
19
19
|
export { useEmitIntent, useIntent, useSendIntent } from './intents/index.js';
|
|
20
20
|
export type { EmitIntent, IntentCtx, IntentPayload, IntentReply, SendIntent, } from './intents/index.js';
|
|
21
|
-
export { Can, ConnectionBoundary, CredentialBoundary, defaultViewError, defaultViewLoading, GraphBoundary,
|
|
22
|
-
export type {
|
|
23
|
-
export { AppHost, AppLogo, useApps, useCurrentSpace,
|
|
24
|
-
export type { AppHostFallbackState, AppHostProps, AppLogoProps, AppsResult, CurrentSpaceResult,
|
|
21
|
+
export { Can, ConnectionBoundary, CredentialBoundary, defaultViewError, defaultViewLoading, GraphBoundary, Astrale, ViewBoundary, ViewErrorBoundary, } from './components/index.js';
|
|
22
|
+
export type { AstraleProps, ViewErrorBoundaryProps } from './components/index.js';
|
|
23
|
+
export { AppHost, AppLogo, useApps, useCurrentSpace, useOpenApp, useSpace, useSpaces, useUser, } from './application/index.js';
|
|
24
|
+
export type { AppHostFallbackState, AppHostProps, AppLogoProps, AppsResult, CurrentSpaceResult, SpaceResult, SpacesResult, } from './application/index.js';
|
|
25
25
|
export { NodeId } from '@astrale-os/sdk/graph/node';
|
|
26
26
|
export { NodePath, Path } from '@astrale-os/sdk/graph/path';
|
|
27
27
|
export type { Node } from '@astrale-os/sdk/graph/node';
|
|
28
28
|
export type { PathLike } from '@astrale-os/sdk/graph/path';
|
|
29
|
-
export type { AuthApi, Identity, PolicyDecisionInput } from '@astrale-os/
|
|
30
|
-
export type { DomainBinding
|
|
31
|
-
export type {
|
|
29
|
+
export type { AuthApi, Identity, PolicyDecisionInput } from '@astrale-os/sdk/auth';
|
|
30
|
+
export type { DomainBinding } from '@astrale-os/shell';
|
|
31
|
+
export type { App, CloseResult, CredentialSnapshot, HostCapabilities, IntentRegistry, KernelClient, MountCredential, NodeTarget, Shell, ShellConfig, SpaceNode, UserNode, ViewLocation, ViewPresentation, ViewPresentationRequest, Window, } from '@astrale-os/shell';
|
|
32
32
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -15,9 +15,9 @@ export { HostDialog, NestedView, Notify, RequestAccess, useExternalOpen, useHost
|
|
|
15
15
|
export { HostCapabilityUnavailableError } from './host/index.js';
|
|
16
16
|
export { useEmitIntent, useIntent, useSendIntent } from './intents/index.js';
|
|
17
17
|
// Headless composition kit.
|
|
18
|
-
export { Can, ConnectionBoundary, CredentialBoundary, defaultViewError, defaultViewLoading, GraphBoundary,
|
|
18
|
+
export { Can, ConnectionBoundary, CredentialBoundary, defaultViewError, defaultViewLoading, GraphBoundary, Astrale, ViewBoundary, ViewErrorBoundary, } from './components/index.js';
|
|
19
19
|
// Shell application conveniences.
|
|
20
|
-
export { AppHost, AppLogo, useApps, useCurrentSpace,
|
|
20
|
+
export { AppHost, AppLogo, useApps, useCurrentSpace, useOpenApp, useSpace, useSpaces, useUser, } from './application/index.js';
|
|
21
21
|
// Canonical identity carriers used by View props and rich hooks.
|
|
22
22
|
export { NodeId } from '@astrale-os/sdk/graph/node';
|
|
23
23
|
export { NodePath, Path } from '@astrale-os/sdk/graph/path';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.adapter.d.ts","sourceRoot":"","sources":["../../../src/navigation/adapters/url.adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"url.adapter.d.ts","sourceRoot":"","sources":["../../../src/navigation/adapters/url.adapter.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAO9C,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CA+EhE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NodePath } from '@astrale-os/sdk/graph/path';
|
|
2
|
-
import {
|
|
2
|
+
import { viewKey } from '../view-key.js';
|
|
3
3
|
const VIEW_KEY = 'astrale.view';
|
|
4
4
|
const PARAM_PREFIX = 'astrale.param.';
|
|
5
5
|
/** History-API adapter — the location lives in the query string. */
|
|
@@ -51,10 +51,7 @@ export function urlAdapter(opts) {
|
|
|
51
51
|
node = NodePath(rawNode);
|
|
52
52
|
const rawView = sp.get(VIEW_KEY);
|
|
53
53
|
if (rawView !== null) {
|
|
54
|
-
|
|
55
|
-
if (!Key.ref(admitted).startsWith('view.'))
|
|
56
|
-
throw new TypeError('Invalid View key.');
|
|
57
|
-
view = admitted;
|
|
54
|
+
view = viewKey(rawView);
|
|
58
55
|
}
|
|
59
56
|
}
|
|
60
57
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/navigation/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEpD,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/navigation/codec.ts"],"names":[],"mappings":"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"}
|
package/dist/navigation/codec.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Path } from '@astrale-os/sdk/graph/path';
|
|
2
|
-
import { Key as admitKey } from '@astrale-os/sdk/schema';
|
|
3
2
|
import { createElement } from 'react';
|
|
4
3
|
import { NavScope } from './scope.context.js';
|
|
5
4
|
import { useNavCtx } from './scope.context.js';
|
|
6
5
|
import { useHistoryVersion } from './scope.context.js';
|
|
6
|
+
import { viewKey } from './view-key.js';
|
|
7
7
|
export function pathParam(_name) {
|
|
8
8
|
return Object.freeze({
|
|
9
9
|
encode: (value) => Path.from(value).raw,
|
|
@@ -113,9 +113,3 @@ export function useNavigation(navigation) {
|
|
|
113
113
|
snapshot: () => context.history.snapshot(),
|
|
114
114
|
});
|
|
115
115
|
}
|
|
116
|
-
function viewKey(input) {
|
|
117
|
-
const key = admitKey(input);
|
|
118
|
-
if (!admitKey.ref(key).startsWith('view.'))
|
|
119
|
-
throw new TypeError(`Invalid View key '${input}'.`);
|
|
120
|
-
return key;
|
|
121
|
-
}
|
package/dist/navigation/link.js
CHANGED
|
@@ -16,7 +16,7 @@ export function Link(props) {
|
|
|
16
16
|
const href = ctx.adapter.href?.(target);
|
|
17
17
|
const nodeRef = target.node;
|
|
18
18
|
const preload = useCallback(() => {
|
|
19
|
-
const query = Query.from({
|
|
19
|
+
const query = Query.from({ nodes: [nodeRef] }).select({ kind: 'graph' });
|
|
20
20
|
void ctx.store.preload(query, { page: { size: 1 } }).catch(() => { });
|
|
21
21
|
}, [ctx.store, nodeRef]);
|
|
22
22
|
useEffect(() => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GraphStore } from '@astrale-os/
|
|
1
|
+
import type { GraphStore } from '@astrale-os/sdk/client/store';
|
|
2
2
|
import type { ReactElement, ReactNode } from 'react';
|
|
3
3
|
import { NodePath } from '@astrale-os/sdk/graph/path';
|
|
4
4
|
import type { NavAdapter } from './adapters/adapter.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.context.d.ts","sourceRoot":"","sources":["../../src/navigation/scope.context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,
|
|
1
|
+
{"version":3,"file":"scope.context.d.ts","sourceRoot":"","sources":["../../src/navigation/scope.context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,8BAA8B,CAAA;AAElF,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAarD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAO9C,OAAO,EAAE,UAAU,EAAe,MAAM,cAAc,CAAA;AAKtD,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;IACnD,IAAI,IAAI,IAAI,CAAA;IACZ,OAAO,IAAI,IAAI,CAAA;IACf,2EAA2E;IAC3E,EAAE,IAAI,KAAK,CAAA;IACX,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IACnE,IAAI,IAAI,IAAI,CAAA;IACZ,OAAO,IAAI,IAAI,CAAA;IACf,EAAE,IAAI,KAAK,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;CACnC;AAED,eAAO,MAAM,UAAU,wCAAqC,CAAA;AAG5D,wBAAgB,SAAS,IAAI,MAAM,CAIlC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAEjD;AAID,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,GAAG,MAAM,CAOpE;AAED,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,CA6BzE;AAED,KAAK,eAAe,GAAG,CAAC,QAAQ,EAAE,WAAW,KAAK,SAAS,GAAG,IAAI,CAAA;AAClE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,eAAe,CAAA;AAEpD,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAA;IACjE,gFAAgF;IAChF,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,kBAAkB,GAAG,IAAI,CAAA;IACnE,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,CAsH3D"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { NodePath } from '@astrale-os/sdk/graph/path';
|
|
3
3
|
import { Query } from '@astrale-os/sdk/query';
|
|
4
|
-
import { Key } from '@astrale-os/sdk/schema';
|
|
5
4
|
import { createContext, startTransition, useCallback, useContext, useEffect, useMemo, useRef, useSyncExternalStore, } from 'react';
|
|
6
5
|
import { UnsupportedFeatureError } from '../graph/memory/read/envelope.js';
|
|
7
6
|
import { useStoreResource } from '../graph/resource.js';
|
|
@@ -11,6 +10,7 @@ import { memoryAdapter } from './adapters/memory.adapter.js';
|
|
|
11
10
|
import { NavHistory, seedEntries } from './history.js';
|
|
12
11
|
import { buildLocation } from './location.js';
|
|
13
12
|
import { revalidateAndPrune, serializeTarget } from './snapshot.js';
|
|
13
|
+
import { viewKey } from './view-key.js';
|
|
14
14
|
export const NavContext = createContext(null);
|
|
15
15
|
NavContext.displayName = 'AstraleNavContext';
|
|
16
16
|
export function useNavCtx() {
|
|
@@ -32,7 +32,7 @@ export function useHistoryVersion(history) {
|
|
|
32
32
|
export function useGraphPoint(target) {
|
|
33
33
|
const query = useMemo(() => target === null
|
|
34
34
|
? null
|
|
35
|
-
: Query.from({
|
|
35
|
+
: Query.from({ nodes: [target], binding: 'navigation_target' }).select({
|
|
36
36
|
kind: 'graph',
|
|
37
37
|
}), [target]);
|
|
38
38
|
const project = useCallback((response) => {
|
|
@@ -181,10 +181,7 @@ function admitLocation(location) {
|
|
|
181
181
|
const node = NodePath(location.node);
|
|
182
182
|
let view;
|
|
183
183
|
if (location.view !== undefined) {
|
|
184
|
-
|
|
185
|
-
if (!Key.ref(key).startsWith('view.'))
|
|
186
|
-
throw new TypeError('Navigation View key is invalid.');
|
|
187
|
-
view = key;
|
|
184
|
+
view = viewKey(location.view);
|
|
188
185
|
}
|
|
189
186
|
const params = {};
|
|
190
187
|
if (location.params !== undefined) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GraphStore } from '@astrale-os/
|
|
1
|
+
import type { GraphStore } from '@astrale-os/sdk/client/store';
|
|
2
2
|
import type { Node } from '@astrale-os/sdk/graph/node';
|
|
3
3
|
import type { PathLike } from '@astrale-os/sdk/graph/path';
|
|
4
4
|
import type { Key } from '@astrale-os/sdk/schema';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/navigation/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/navigation/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,KAAK,EAAY,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAK9C,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAIlE,uFAAuF;AACvF,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,IAAI,GACJ;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACzC,CAAA;AAgBL,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,kBAAkB,CAOrE;AAED,6FAA6F;AAC7F,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,OAAO,CAAC,CAkBlB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Path } from '@astrale-os/sdk/graph/path';
|
|
2
2
|
import { Query } from '@astrale-os/sdk/query';
|
|
3
|
-
import {
|
|
3
|
+
import { viewKey } from './view-key.js';
|
|
4
4
|
function isNode(value) {
|
|
5
5
|
return typeof value === 'object' && value !== null && 'id' in value && 'class' in value;
|
|
6
6
|
}
|
|
@@ -20,12 +20,6 @@ export function serializeTarget(target) {
|
|
|
20
20
|
...(target.params === undefined ? {} : { params: { ...target.params } }),
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
|
-
function viewKey(input) {
|
|
24
|
-
const key = admitKey(input);
|
|
25
|
-
if (!admitKey.ref(key).startsWith('view.'))
|
|
26
|
-
throw new TypeError(`Invalid View key '${input}'.`);
|
|
27
|
-
return key;
|
|
28
|
-
}
|
|
29
23
|
/** Drop restored entries that no longer resolve under the authenticated Graph capability. */
|
|
30
24
|
export async function revalidateAndPrune(history, store, shell) {
|
|
31
25
|
const { entries, cursor } = history.snapshot();
|
|
@@ -52,7 +46,7 @@ export async function revalidateAndPrune(history, store, shell) {
|
|
|
52
46
|
}
|
|
53
47
|
async function resolves(store, shell, entry) {
|
|
54
48
|
try {
|
|
55
|
-
const query = Query.from({
|
|
49
|
+
const query = Query.from({ nodes: [entry.node] }).select({ kind: 'graph' });
|
|
56
50
|
const response = await store.read(query, { page: { size: 1 } });
|
|
57
51
|
if (response.result.kind !== 'graph' ||
|
|
58
52
|
response.result.selection.kind !== 'node' ||
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-key.d.ts","sourceRoot":"","sources":["../../src/navigation/view-key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AAIjD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,IAAI,CAM/C"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BoundNodeFor } from '@astrale-os/sdk/client';
|
|
2
|
+
import type { SessionRequestOptions } from '@astrale-os/sdk/client/session';
|
|
2
3
|
import type { QueryAST } from '@astrale-os/sdk/query';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
type
|
|
4
|
+
import type { CallableInputOf, CallableResultOf, MethodOwnerKeyOf, MethodInheritance, ResolvedFunction, ResolvedMethod } from '@astrale-os/sdk/schema';
|
|
5
|
+
type ExecutableInheritance = Exclude<MethodInheritance, 'abstract'>;
|
|
6
|
+
type InstanceMethod = ResolvedMethod<unknown, unknown, false, ExecutableInheritance>;
|
|
7
|
+
type StaticMethod = ResolvedMethod<unknown, unknown, true, ExecutableInheritance>;
|
|
8
|
+
type Callable = ResolvedFunction | InstanceMethod | StaticMethod;
|
|
9
|
+
type MethodReceiver<C extends InstanceMethod> = BoundNodeFor<MethodOwnerKeyOf<C>>;
|
|
6
10
|
declare const QUERY_REFRESH: unique symbol;
|
|
7
11
|
export interface QueryRefresh {
|
|
8
12
|
readonly id: string;
|
|
@@ -26,11 +30,11 @@ export declare function queryRefresh<Input, Query extends QueryAST>(definition:
|
|
|
26
30
|
export type ActionRefresh = 'all' | 'none' | {
|
|
27
31
|
readonly queries: readonly QueryRefresh[];
|
|
28
32
|
};
|
|
29
|
-
export interface ActionOptions extends
|
|
33
|
+
export interface ActionOptions extends SessionRequestOptions {
|
|
30
34
|
readonly refresh?: ActionRefresh;
|
|
31
35
|
readonly onError?: (error: unknown) => void;
|
|
32
36
|
}
|
|
33
|
-
type ActionArgs<C extends Callable> = C extends InstanceMethod ? [receiver:
|
|
37
|
+
type ActionArgs<C extends Callable> = C extends InstanceMethod ? [receiver: MethodReceiver<C>, input: CallableInputOf<C>] : [input: CallableInputOf<C>];
|
|
34
38
|
export interface DomainAction<Args extends unknown[], Result> {
|
|
35
39
|
run(...args: Args): Promise<Result>;
|
|
36
40
|
readonly pending: boolean;
|
|
@@ -39,6 +43,6 @@ export interface DomainAction<Args extends unknown[], Result> {
|
|
|
39
43
|
reset(): void;
|
|
40
44
|
}
|
|
41
45
|
/** Invoke one schema-declared Function or Method and invalidate Store by explicit policy. */
|
|
42
|
-
export declare function useAction<C extends Callable>(callable: C, options?: ActionOptions): DomainAction<ActionArgs<C>,
|
|
46
|
+
export declare function useAction<C extends Callable>(callable: C, options?: ActionOptions): DomainAction<ActionArgs<C>, CallableResultOf<C>>;
|
|
43
47
|
export {};
|
|
44
48
|
//# sourceMappingURL=action.hook.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.hook.d.ts","sourceRoot":"","sources":["../../src/schema/action.hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"action.hook.d.ts","sourceRoot":"","sources":["../../src/schema/action.hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { reference } from '@astrale-os/sdk/client/session';
|
|
1
2
|
import { Path } from '@astrale-os/sdk/graph/path';
|
|
2
3
|
import { useCallback, useMemo, useRef } from 'react';
|
|
4
|
+
import { useSessionKernel } from '../auth/session-kernel.js';
|
|
3
5
|
import { useAction as useAsyncAction } from '../graph/action.js';
|
|
4
6
|
import { useGraphStore } from '../graph/store.js';
|
|
5
7
|
import { bindingFor } from './domain.hook.js';
|
|
@@ -17,6 +19,7 @@ export function queryRefresh(definition, input) {
|
|
|
17
19
|
/** Invoke one schema-declared Function or Method and invalidate Store by explicit policy. */
|
|
18
20
|
export function useAction(callable, options = {}) {
|
|
19
21
|
const binding = bindingFor(callable);
|
|
22
|
+
const kernel = useSessionKernel();
|
|
20
23
|
const store = useGraphStore();
|
|
21
24
|
const callableRef = useRef(callable);
|
|
22
25
|
callableRef.current = callable;
|
|
@@ -29,10 +32,9 @@ export function useAction(callable, options = {}) {
|
|
|
29
32
|
const policy = optionsRef.current;
|
|
30
33
|
const { refresh: _refresh, onError: _onError, ...request } = policy;
|
|
31
34
|
try {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
: await invokeExact(current, args[0], request);
|
|
35
|
+
const result = isInstanceMethod(current)
|
|
36
|
+
? await kernel.session.invoke(reference(bindingRef.current.domain, current)(receiverPath(args[0])), args[1], request)
|
|
37
|
+
: await kernel.session.invoke(reference(bindingRef.current.domain, current), args[0], request);
|
|
36
38
|
const refresh = policy.refresh ?? 'all';
|
|
37
39
|
if (refresh === 'all')
|
|
38
40
|
store.invalidate();
|
|
@@ -48,7 +50,7 @@ export function useAction(callable, options = {}) {
|
|
|
48
50
|
policy.onError?.(error);
|
|
49
51
|
throw error;
|
|
50
52
|
}
|
|
51
|
-
}, [store]);
|
|
53
|
+
}, [kernel, store]);
|
|
52
54
|
const action = useAsyncAction(invoke);
|
|
53
55
|
return useMemo(() => projectAction(action), [action]);
|
|
54
56
|
}
|
|
@@ -67,6 +69,9 @@ function projectAction(action) {
|
|
|
67
69
|
reset: action.reset,
|
|
68
70
|
};
|
|
69
71
|
}
|
|
72
|
+
function isInstanceMethod(callable) {
|
|
73
|
+
return 'owner' in callable && callable.static === false;
|
|
74
|
+
}
|
|
70
75
|
function receiverPath(receiver) {
|
|
71
|
-
return Path.id(receiver.id)
|
|
76
|
+
return Path.id(receiver.id);
|
|
72
77
|
}
|
|
@@ -67,19 +67,18 @@ export function bindingFor(value) {
|
|
|
67
67
|
return binding;
|
|
68
68
|
}
|
|
69
69
|
function registerBinding(binding) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
for (const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
visit(binding, 0);
|
|
70
|
+
bindingByValue.set(binding, binding);
|
|
71
|
+
bindingByValue.set(binding.domain, binding);
|
|
72
|
+
for (const definition of Object.values(binding.domain.classes)) {
|
|
73
|
+
bindingByValue.set(definition, binding);
|
|
74
|
+
for (const method of definition.methods)
|
|
75
|
+
bindingByValue.set(method, binding);
|
|
76
|
+
for (const method of definition.static.methods)
|
|
77
|
+
bindingByValue.set(method, binding);
|
|
78
|
+
}
|
|
79
|
+
for (const callable of Object.values(binding.domain.functions)) {
|
|
80
|
+
bindingByValue.set(callable, binding);
|
|
81
|
+
}
|
|
83
82
|
}
|
|
84
83
|
function createResource(promise) {
|
|
85
84
|
const cell = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DomainBinding } from '@astrale-os/shell';
|
|
2
|
-
import { KernelSchema } from '@astrale-os/sdk/schema
|
|
2
|
+
import { KernelSchema } from '@astrale-os/sdk/schema';
|
|
3
3
|
/** The verified, exactly typed Kernel Domain binding. */
|
|
4
4
|
export declare function useKernel(): DomainBinding<typeof KernelSchema>;
|
|
5
5
|
//# sourceMappingURL=kernel.hook.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.hook.d.ts","sourceRoot":"","sources":["../../src/schema/kernel.hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"kernel.hook.d.ts","sourceRoot":"","sources":["../../src/schema/kernel.hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAIrD,yDAAyD;AACzD,wBAAgB,SAAS,IAAI,aAAa,CAAC,OAAO,YAAY,CAAC,CAE9D"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Mutation } from '@astrale-os/sdk/mutation';
|
|
2
2
|
import type { DomainAction } from './action.hook.js';
|
|
3
3
|
export interface MutationOptions {
|
|
4
4
|
readonly optimistic?: boolean;
|
|
5
5
|
readonly onError?: (error: unknown) => void;
|
|
6
6
|
}
|
|
7
7
|
/** Execute one named SDK Mutation definition through GraphStore optimism/invalidation. */
|
|
8
|
-
export declare function useMutation<Input, Output>(definition:
|
|
8
|
+
export declare function useMutation<Input, Output>(definition: Mutation<Input, Output>, options?: MutationOptions): DomainAction<[Input], Output>;
|
|
9
9
|
//# sourceMappingURL=mutation.hook.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation.hook.d.ts","sourceRoot":"","sources":["../../src/schema/mutation.hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"mutation.hook.d.ts","sourceRoot":"","sources":["../../src/schema/mutation.hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAMxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAKpD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAC5C;AAED,0FAA0F;AAC1F,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EACvC,UAAU,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,EACnC,OAAO,GAAE,eAAoB,GAC5B,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CA4B/B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { executeMutation } from '@astrale-os/sdk/mutation';
|
|
2
2
|
import { useCallback, useMemo, useRef } from 'react';
|
|
3
3
|
import { useAction as useAsyncAction } from '../graph/action.js';
|
|
4
4
|
import { useGraphStore } from '../graph/store.js';
|
|
@@ -10,11 +10,12 @@ export function useMutation(definition, options = {}) {
|
|
|
10
10
|
const optionsRef = useRef(options);
|
|
11
11
|
optionsRef.current = options;
|
|
12
12
|
const run = useCallback(async (input) => {
|
|
13
|
-
const execute = bindMutations((ast) => store.mutate(ast, {
|
|
14
|
-
optimistic: optionsRef.current.optimistic ?? true,
|
|
15
|
-
}));
|
|
16
13
|
try {
|
|
17
|
-
return await
|
|
14
|
+
return await executeMutation({
|
|
15
|
+
mutate: (ast) => store.mutate(ast, {
|
|
16
|
+
optimistic: optionsRef.current.optimistic ?? true,
|
|
17
|
+
}),
|
|
18
|
+
}, definitionRef.current, input);
|
|
18
19
|
}
|
|
19
20
|
catch (error) {
|
|
20
21
|
optionsRef.current.onError?.(error);
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BoundNode } from '@astrale-os/sdk/client';
|
|
2
2
|
import type { Node } from '@astrale-os/sdk/graph/node';
|
|
3
3
|
import type { PathLike } from '@astrale-os/sdk/graph/path';
|
|
4
|
+
import type { ResolvedClass } from '@astrale-os/sdk/schema';
|
|
4
5
|
import type { GraphResource } from '../graph/resource.js';
|
|
5
6
|
export interface RichReadOptions {
|
|
6
7
|
readonly pageSize?: number;
|
|
7
8
|
}
|
|
8
|
-
type ObjectDefinition = Pick<Definition<'class' | 'interface'>, 'kind' | 'origin' | 'name' | 'key' | 'schemaRef' | 'definition'> & {
|
|
9
|
-
readonly family: 'node';
|
|
10
|
-
};
|
|
11
9
|
/** Read and bind one exact rich object definition exclusively through GraphStore. */
|
|
12
|
-
export declare function useObject<
|
|
10
|
+
export declare function useObject<Class extends ResolvedClass<'node'>>(definition: Class, target: PathLike | null | undefined, options?: RichReadOptions): GraphResource<BoundNode<Class> | null>;
|
|
13
11
|
/** Explicitly untyped point read for inspectors; it never impersonates `useObject`. */
|
|
14
12
|
export declare function useDynamicObject(target: PathLike | null | undefined, options?: RichReadOptions): GraphResource<Node | null>;
|
|
15
|
-
export {};
|
|
16
13
|
//# sourceMappingURL=object.hook.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.hook.d.ts","sourceRoot":"","sources":["../../src/schema/object.hook.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"object.hook.d.ts","sourceRoot":"","sources":["../../src/schema/object.hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAM3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAKzD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,qFAAqF;AACrF,wBAAgB,SAAS,CAAC,KAAK,SAAS,aAAa,CAAC,MAAM,CAAC,EAC3D,UAAU,EAAE,KAAK,EACjB,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EACnC,OAAO,GAAE,eAAoB,GAC5B,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CA0BxC;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EACnC,OAAO,GAAE,eAAoB,GAC5B,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,CAoB5B"}
|
|
@@ -9,8 +9,8 @@ export function useObject(definition, target, options = {}) {
|
|
|
9
9
|
const path = target === null || target === undefined ? null : Path.from(target);
|
|
10
10
|
const query = useMemo(() => path === null
|
|
11
11
|
? null
|
|
12
|
-
: Query.from({
|
|
13
|
-
.filter({
|
|
12
|
+
: Query.from({ nodes: [path], binding: 'object' })
|
|
13
|
+
.filter({ class: definition })
|
|
14
14
|
.select({ kind: 'graph' }), [definition, path?.raw]);
|
|
15
15
|
const project = useCallback((response) => {
|
|
16
16
|
const result = response.result;
|
|
@@ -20,8 +20,7 @@ export function useObject(definition, target, options = {}) {
|
|
|
20
20
|
const node = id === undefined
|
|
21
21
|
? undefined
|
|
22
22
|
: result.graph.nodes.find((candidate) => candidate.id === id);
|
|
23
|
-
|
|
24
|
-
return node === undefined ? null : bind(definition, node);
|
|
23
|
+
return node === undefined ? null : binding.wrapNode(definition, node);
|
|
25
24
|
}, [binding, definition]);
|
|
26
25
|
return useStoreResource(query, options.pageSize ?? 1, project);
|
|
27
26
|
}
|
|
@@ -30,7 +29,7 @@ export function useDynamicObject(target, options = {}) {
|
|
|
30
29
|
const path = target === null || target === undefined ? null : Path.from(target);
|
|
31
30
|
const query = useMemo(() => path === null
|
|
32
31
|
? null
|
|
33
|
-
: Query.from({
|
|
32
|
+
: Query.from({ nodes: [path], binding: 'dynamic_object' }).select({
|
|
34
33
|
kind: 'graph',
|
|
35
34
|
}), [path?.raw]);
|
|
36
35
|
const project = useCallback((response) => {
|