@astrale-os/sdk 0.5.0-beta.115 → 0.5.0-beta.116
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/CHANGELOG.md +7 -0
- package/README.md +22 -0
- package/dist/platform/schema/index.d.ts +1 -1
- package/dist/testing/dataset/builder.d.ts +6 -2
- package/dist/testing/dataset/builder.js +28 -0
- package/dist/testing/dataset/codec.js +15 -2
- package/dist/testing/dataset/dataset.d.ts +5 -1
- package/dist/testing/dataset/define.d.ts +2 -1
- package/dist/testing/dataset/define.js +10 -1
- package/dist/testing/dataset/index.d.ts +2 -1
- package/dist/testing/dataset/references.d.ts +13 -0
- package/dist/testing/dataset/references.js +56 -0
- package/dist/testing/index.d.ts +1 -1
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.5.0-beta.116](https://github.com/astrale-os/sdk/compare/sdk-v0.5.0-beta.115...sdk-v0.5.0-beta.116) (2026-09-05)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **app:** support sameNode policies and explicit Dataset references ([#432](https://github.com/astrale-os/sdk/issues/432)) ([29e72b3](https://github.com/astrale-os/sdk/commit/29e72b377c71f1e8cce8ce75a8a0d3920e4c46c6))
|
|
9
|
+
|
|
3
10
|
## [0.5.0-beta.115](https://github.com/astrale-os/sdk/compare/sdk-v0.5.0-beta.114...sdk-v0.5.0-beta.115) (2026-09-05)
|
|
4
11
|
|
|
5
12
|
|
package/README.md
CHANGED
|
@@ -131,6 +131,28 @@ linter tool failures.
|
|
|
131
131
|
Structured review [issues](issues/README.md) retain observation-first evidence and later governance
|
|
132
132
|
attachments without becoming current contract authority.
|
|
133
133
|
|
|
134
|
+
## Dataset references
|
|
135
|
+
|
|
136
|
+
A Dataset can materialize a projected Node explicitly with `ref`, using its resolved local or
|
|
137
|
+
direct-dependency definition:
|
|
138
|
+
|
|
139
|
+
```typescript
|
|
140
|
+
const demo = defineDataset(Schema, {
|
|
141
|
+
id: 'demo',
|
|
142
|
+
graph({ domain, ref }) {
|
|
143
|
+
const member = ref(domain.core.nodes.member)
|
|
144
|
+
// Repeating ref returns the same Dataset Node. node() always creates a separate identity.
|
|
145
|
+
return { member }
|
|
146
|
+
},
|
|
147
|
+
})
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
`ref` uses the canonical symbolic Schema projection for Class, Function, Policy, View and Core
|
|
151
|
+
facts. The Dataset's `references` table retains the explicit association between each projected
|
|
152
|
+
NodePath and its Dataset Node ID through encoding and decoding. Matching properties or slugs do
|
|
153
|
+
not create that association. Studio uses it when simulating `sameNode` and reference endpoints;
|
|
154
|
+
a missing association makes that simulation unavailable.
|
|
155
|
+
|
|
134
156
|
## License
|
|
135
157
|
|
|
136
158
|
Apache License 2.0 — see [LICENSE](LICENSE) for details.
|
|
@@ -7,7 +7,7 @@ export { classIcon } from './class-icon.js';
|
|
|
7
7
|
export type { ClassIcon } from './class-icon.js';
|
|
8
8
|
export type { CallablePolicyBuilder, CallablePolicyContext, CallableProjection, AuthoredMethodProjection, AuthoredPropertyProjection, ClassIdentityProjection, ClassOwnerProjection, CoreEdge, CoreEndpoint, CoreNode, DefinedSchema, DirectedEdgeClass, ClassReferenceProjection, ClassProjection, FunctionProjection, EdgeClass, Function, Method, MethodProjection, Lazy, NodeClass, Policy, PolicyExistsContext, PolicyNodeBinder, PolicyPatternContext, Property, PropertyProjection, ResolvedDomainOfInput, View, } from '@astrale-os/kernel-dsl/v1/builder';
|
|
9
9
|
export type { Array, Object, Value } from '@astrale-os/kernel-dsl/value';
|
|
10
|
-
export type { ClassKind, DirectedEdgeContract, EdgeClassPolicies, NodeClassDefinition, PolicyCheckObject, PropertyFacet, UndirectedEdgeContract, } from '@astrale-os/kernel-dsl/v1/language';
|
|
10
|
+
export type { ClassKind, DirectedEdgeContract, EdgeClassPolicies, NodeClassDefinition, PolicyCheckObject, PolicyObjectRef, PropertyFacet, UndirectedEdgeContract, } from '@astrale-os/kernel-dsl/v1/language';
|
|
11
11
|
export type { DomainSchema } from '@astrale-os/kernel-dsl/v1/schema';
|
|
12
12
|
/** Kernel-owned Schema values used by authored product Schemas and graph operations. */
|
|
13
13
|
export { AuthorityOperationOrder, AuthorityOperations, AuthorityRelations, K, KernelRootFunctions, OperationCore, operationOf, } from '@astrale-os/kernel-core/schema';
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Edge } from '../../platform/graph/edge/index.js';
|
|
2
2
|
import type { Node, NodeId } from '../../platform/graph/node/index.js';
|
|
3
3
|
import type { PropertyInputOf, ResolvedClass, schema } from '../../platform/schema/index.js';
|
|
4
|
-
import type { DatasetNode } from './dataset.js';
|
|
4
|
+
import type { DatasetNode, DatasetReferences } from './dataset.js';
|
|
5
|
+
import { type DatasetReferenceInput } from './references.js';
|
|
5
6
|
/** Resolved Classes of the exact authored Schema, keyed by their authored names. */
|
|
6
7
|
export type DatasetClasses<Schema extends schema.DomainSchema> = schema.DomainOf<Schema>['classes'];
|
|
7
8
|
/** One Dataset Node, or one Node identity that names a Node already added to the same Dataset. */
|
|
@@ -20,10 +21,13 @@ export interface DatasetGraph<Schema extends schema.DomainSchema> {
|
|
|
20
21
|
/** The exact resolved Domain, including dependency Domains under their authored aliases. */
|
|
21
22
|
readonly domain: schema.DomainOf<Schema>;
|
|
22
23
|
readonly classes: DatasetClasses<Schema>;
|
|
24
|
+
/** Materialize one local or direct-dependency projected Node, retaining its reference identity. */
|
|
25
|
+
ref(input: DatasetReferenceInput): DatasetNode;
|
|
23
26
|
node<Class extends ResolvedClass<'node'>>(definition: Class, input?: DatasetNodeInput<Class>): DatasetNode<Class>;
|
|
24
27
|
edge<Class extends ResolvedClass<'edge'>>(definition: Class, source: DatasetEndpoint, target: DatasetEndpoint, input?: DatasetEdgeInput<Class>): Edge;
|
|
25
28
|
}
|
|
26
29
|
export interface DatasetFacts {
|
|
30
|
+
readonly references: DatasetReferences;
|
|
27
31
|
readonly nodes: readonly Node[];
|
|
28
32
|
readonly edges: readonly Edge[];
|
|
29
33
|
/** Exact Node values handed out by `node()`, for variable admission by identity. */
|
|
@@ -35,4 +39,4 @@ export interface DatasetGraphSession<Schema extends schema.DomainSchema> {
|
|
|
35
39
|
seal(): DatasetFacts;
|
|
36
40
|
}
|
|
37
41
|
/** Open one authoring session over a resolved Domain. Authored facts stay un-admitted until sealed. */
|
|
38
|
-
export declare function openDatasetGraph<Schema extends schema.DomainSchema>(domain: schema.
|
|
42
|
+
export declare function openDatasetGraph<Schema extends schema.DomainSchema>(domain: schema.ResolvedDomainOf<Schema>): DatasetGraphSession<Schema>;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { edge as graphEdge, EdgeSlug } from '../../platform/graph/edge/index.js';
|
|
2
2
|
import { node as graphNode, NodeId as admitNodeId } from '../../platform/graph/node/index.js';
|
|
3
|
+
import { Path } from '../../platform/graph/path/index.js';
|
|
3
4
|
import { ClassKey } from '../../platform/schema/index.js';
|
|
5
|
+
import { datasetReferenceNodes } from './references.js';
|
|
4
6
|
/** Open one authoring session over a resolved Domain. Authored facts stay un-admitted until sealed. */
|
|
5
7
|
export function openDatasetGraph(domain) {
|
|
6
8
|
const nodes = [];
|
|
@@ -8,10 +10,35 @@ export function openDatasetGraph(domain) {
|
|
|
8
10
|
const byId = new Map();
|
|
9
11
|
const created = new Set();
|
|
10
12
|
const ordinals = new Map();
|
|
13
|
+
const references = {};
|
|
14
|
+
let projected;
|
|
15
|
+
let referenceOrdinal = 0;
|
|
11
16
|
let sealed = false;
|
|
12
17
|
const graph = Object.freeze({
|
|
13
18
|
domain,
|
|
14
19
|
classes: domain.classes,
|
|
20
|
+
ref(input) {
|
|
21
|
+
open();
|
|
22
|
+
const ref = 'ref' in input ? input.ref : input;
|
|
23
|
+
const path = Path.project(ref).raw;
|
|
24
|
+
const existing = references[path];
|
|
25
|
+
if (existing !== undefined)
|
|
26
|
+
return byId.get(existing);
|
|
27
|
+
projected ??= datasetReferenceNodes(domain);
|
|
28
|
+
const facts = projected.get(path);
|
|
29
|
+
if (facts === undefined)
|
|
30
|
+
throw new TypeError(`Dataset reference ${path} is not local or a direct dependency member.`);
|
|
31
|
+
let id;
|
|
32
|
+
do {
|
|
33
|
+
id = admitNodeId(`reference-${++referenceOrdinal}`);
|
|
34
|
+
} while (byId.has(id));
|
|
35
|
+
const value = graphNode({ id, class: facts.class, props: facts.props });
|
|
36
|
+
nodes.push(value);
|
|
37
|
+
byId.set(id, value);
|
|
38
|
+
created.add(value);
|
|
39
|
+
references[path] = id;
|
|
40
|
+
return value;
|
|
41
|
+
},
|
|
15
42
|
node(definition, input = {}) {
|
|
16
43
|
open();
|
|
17
44
|
acceptClass(definition, 'node');
|
|
@@ -52,6 +79,7 @@ export function openDatasetGraph(domain) {
|
|
|
52
79
|
nodes: Object.freeze([...nodes]),
|
|
53
80
|
edges: Object.freeze([...edges]),
|
|
54
81
|
created,
|
|
82
|
+
references: Object.freeze({ ...references }),
|
|
55
83
|
});
|
|
56
84
|
},
|
|
57
85
|
});
|
|
@@ -4,6 +4,7 @@ import { schema as schemaApi } from '../../platform/schema/index.js';
|
|
|
4
4
|
import { admitDatasetGraph } from './admission.js';
|
|
5
5
|
import { DATASET_FORMAT, DATASET_VERSION } from './dataset.js';
|
|
6
6
|
import { admitId, admitText, admitVariableName, assembleDataset } from './define.js';
|
|
7
|
+
import { decodeDatasetReferences } from './references.js';
|
|
7
8
|
/** Encode exact portable Dataset bytes without retaining runtime object identity. */
|
|
8
9
|
export function encodeDataset(dataset) {
|
|
9
10
|
const variables = Object.freeze(Object.fromEntries(Object.entries(dataset.variables)
|
|
@@ -21,13 +22,24 @@ export function encodeDataset(dataset) {
|
|
|
21
22
|
}),
|
|
22
23
|
graph: GraphData.encode({ nodes: dataset.nodes, edges: dataset.edges }),
|
|
23
24
|
variables,
|
|
25
|
+
references: dataset.references,
|
|
24
26
|
});
|
|
25
27
|
}
|
|
26
28
|
/** Decode one portable Dataset and re-admit its facts against the exact authored Schema. */
|
|
27
29
|
export function decodeDataset(source, input) {
|
|
28
30
|
if (!isRecord(input))
|
|
29
31
|
invalid('Dataset must be an object.');
|
|
30
|
-
exactKeys(input, [
|
|
32
|
+
exactKeys(input, [
|
|
33
|
+
'format',
|
|
34
|
+
'version',
|
|
35
|
+
'id',
|
|
36
|
+
'title',
|
|
37
|
+
'description',
|
|
38
|
+
'domain',
|
|
39
|
+
'graph',
|
|
40
|
+
'variables',
|
|
41
|
+
'references',
|
|
42
|
+
], ['format', 'version', 'id', 'domain', 'graph', 'variables', 'references'], 'Dataset');
|
|
31
43
|
if (input.format !== DATASET_FORMAT || input.version !== DATASET_VERSION) {
|
|
32
44
|
invalid('Dataset format or version is unsupported.');
|
|
33
45
|
}
|
|
@@ -47,7 +59,8 @@ export function decodeDataset(source, input) {
|
|
|
47
59
|
const domain = schemaApi.resolve(source);
|
|
48
60
|
const graph = admitDatasetGraph(id, domain, GraphData.decode(input.graph));
|
|
49
61
|
const variables = decodeVariables(input.variables, graph);
|
|
50
|
-
|
|
62
|
+
const references = decodeDatasetReferences(input.references, domain, graph);
|
|
63
|
+
return assembleDataset({ schema: source, id, title, description, graph, variables, references });
|
|
51
64
|
}
|
|
52
65
|
function encodeVariable(value) {
|
|
53
66
|
return Array.isArray(value)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Graph, GraphDataJson } from '../../platform/graph/document/index.js';
|
|
2
2
|
import type { Edge } from '../../platform/graph/edge/index.js';
|
|
3
|
-
import type { Node } from '../../platform/graph/node/index.js';
|
|
3
|
+
import type { Node, NodeId } from '../../platform/graph/node/index.js';
|
|
4
4
|
import type { ResolvedClass, schema } from '../../platform/schema/index.js';
|
|
5
5
|
export declare const DATASET_FORMAT: 'astrale.sdk.dataset';
|
|
6
6
|
export declare const DATASET_VERSION: 1;
|
|
@@ -9,6 +9,8 @@ declare const DATASET_NODE_CLASS: unique symbol;
|
|
|
9
9
|
export type DatasetNode<Class extends ResolvedClass<'node'> = ResolvedClass<'node'>> = Node & {
|
|
10
10
|
readonly [DATASET_NODE_CLASS]: Class;
|
|
11
11
|
};
|
|
12
|
+
/** Canonical projected NodePath → explicit Dataset Node identity. */
|
|
13
|
+
export type DatasetReferences = Readonly<Record<string, NodeId>>;
|
|
12
14
|
export type DatasetVariable = DatasetNode | readonly DatasetNode[];
|
|
13
15
|
export type DatasetVariables = Readonly<Record<string, DatasetVariable>>;
|
|
14
16
|
/**
|
|
@@ -27,6 +29,7 @@ export interface Dataset<Schema extends schema.DomainSchema = schema.DomainSchem
|
|
|
27
29
|
readonly nodes: readonly Node[];
|
|
28
30
|
readonly edges: readonly Edge[];
|
|
29
31
|
/** Named entry points into the facts, for tooling and tests. */
|
|
32
|
+
readonly references: DatasetReferences;
|
|
30
33
|
readonly variables: Variables;
|
|
31
34
|
}
|
|
32
35
|
export type DatasetVariableJson = {
|
|
@@ -46,6 +49,7 @@ export interface DatasetJson {
|
|
|
46
49
|
readonly revision: string;
|
|
47
50
|
};
|
|
48
51
|
readonly graph: GraphDataJson;
|
|
52
|
+
readonly references: Readonly<Record<string, string>>;
|
|
49
53
|
readonly variables: Readonly<Record<string, DatasetVariableJson>>;
|
|
50
54
|
}
|
|
51
55
|
export type SchemaOfDataset<Value> = Value extends {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Graph } from '../../platform/graph/document/index.js';
|
|
2
2
|
import type { schema as schemaLanguage } from '../../platform/schema/index.js';
|
|
3
3
|
import type { DatasetGraph } from './builder.js';
|
|
4
|
-
import type { Dataset, DatasetVariables } from './dataset.js';
|
|
4
|
+
import type { Dataset, DatasetReferences, DatasetVariables } from './dataset.js';
|
|
5
5
|
/** Variables returned by one graph author; `void` means the Dataset names no entry point. */
|
|
6
6
|
export type AuthoredDatasetVariables = DatasetVariables | void;
|
|
7
7
|
/** The exact variables record retained by a Dataset for one authored return type. */
|
|
@@ -25,6 +25,7 @@ export declare function assembleDataset<Schema extends schemaLanguage.DomainSche
|
|
|
25
25
|
readonly title: string | undefined;
|
|
26
26
|
readonly description: string | undefined;
|
|
27
27
|
readonly graph: Graph;
|
|
28
|
+
readonly references: DatasetReferences;
|
|
28
29
|
readonly variables: DatasetVariables;
|
|
29
30
|
}): Dataset<Schema>;
|
|
30
31
|
export declare function admitId(input: unknown): string;
|
|
@@ -22,7 +22,15 @@ export function defineDataset(source, input) {
|
|
|
22
22
|
const facts = session.seal();
|
|
23
23
|
const graph = admitDatasetGraph(id, domain, { nodes: facts.nodes, edges: facts.edges });
|
|
24
24
|
const variables = admitVariables(returned, facts.created, graph);
|
|
25
|
-
return assembleDataset({
|
|
25
|
+
return assembleDataset({
|
|
26
|
+
schema: source,
|
|
27
|
+
id,
|
|
28
|
+
title,
|
|
29
|
+
description,
|
|
30
|
+
graph,
|
|
31
|
+
variables,
|
|
32
|
+
references: facts.references,
|
|
33
|
+
});
|
|
26
34
|
}
|
|
27
35
|
/** True only for a Dataset produced by defineDataset or decodeDataset in this SDK package root. */
|
|
28
36
|
export function isDataset(input) {
|
|
@@ -41,6 +49,7 @@ export function assembleDataset(input) {
|
|
|
41
49
|
nodes: data.nodes,
|
|
42
50
|
edges: data.edges,
|
|
43
51
|
variables: input.variables,
|
|
52
|
+
references: input.references,
|
|
44
53
|
});
|
|
45
54
|
admittedDatasets.add(dataset);
|
|
46
55
|
return dataset;
|
|
@@ -2,6 +2,7 @@ export { DatasetAdmissionError } from './admission.js';
|
|
|
2
2
|
export type { DatasetClasses, DatasetEdgeInput, DatasetEndpoint, DatasetGraph, DatasetNodeInput, } from './builder.js';
|
|
3
3
|
export { decodeDataset, encodeDataset } from './codec.js';
|
|
4
4
|
export { DATASET_FORMAT, DATASET_VERSION } from './dataset.js';
|
|
5
|
-
export type { Dataset, DatasetJson, DatasetNode, DatasetVariable, DatasetVariableJson, DatasetVariables, SchemaOfDataset, } from './dataset.js';
|
|
5
|
+
export type { Dataset, DatasetJson, DatasetNode, DatasetReferences, DatasetVariable, DatasetVariableJson, DatasetVariables, SchemaOfDataset, } from './dataset.js';
|
|
6
6
|
export { defineDataset, isDataset } from './define.js';
|
|
7
7
|
export type { AuthoredDatasetVariables, DatasetInput, DatasetVariablesOf } from './define.js';
|
|
8
|
+
export type { DatasetReferenceInput } from './references.js';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Graph } from '../../platform/graph/document/index.js';
|
|
2
|
+
import type { Node } from '../../platform/graph/node/index.js';
|
|
3
|
+
import type { PolicyObjectRef, schema } from '../../platform/schema/index.js';
|
|
4
|
+
import type { DatasetReferences } from './dataset.js';
|
|
5
|
+
export type DatasetReferenceInput = PolicyObjectRef | {
|
|
6
|
+
readonly ref: PolicyObjectRef;
|
|
7
|
+
};
|
|
8
|
+
type ReferenceNode = Pick<Node, 'class' | 'props'>;
|
|
9
|
+
/** Symbolic projection supplies facts; only an explicit Dataset reference supplies identity. */
|
|
10
|
+
export declare function datasetReferenceNodes(domain: schema.ResolvedDomainOf<schema.DomainSchema>): ReadonlyMap<string, ReferenceNode>;
|
|
11
|
+
/** Serialized reference associations lose their proof and must match the exact projection again. */
|
|
12
|
+
export declare function decodeDatasetReferences(input: unknown, domain: schema.ResolvedDomainOf<schema.DomainSchema>, graph: Graph): DatasetReferences;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { graph as schemaGraph } from '@astrale-os/kernel-core/schema';
|
|
2
|
+
import { isNodeId } from '../../platform/graph/node/index.js';
|
|
3
|
+
import { Path } from '../../platform/graph/path/index.js';
|
|
4
|
+
import { bundle, schema as schemaApi } from '../../platform/schema/index.js';
|
|
5
|
+
/** Symbolic projection supplies facts; only an explicit Dataset reference supplies identity. */
|
|
6
|
+
export function datasetReferenceNodes(domain) {
|
|
7
|
+
const result = new Map();
|
|
8
|
+
const direct = new Set([
|
|
9
|
+
domain.origin,
|
|
10
|
+
...Object.values(domain.dependencies).map(({ origin }) => origin),
|
|
11
|
+
]);
|
|
12
|
+
const sourceBundle = bundle.create(domain.source);
|
|
13
|
+
for (const source of [sourceBundle.root, ...sourceBundle.closure]) {
|
|
14
|
+
if (!direct.has(source.origin))
|
|
15
|
+
continue;
|
|
16
|
+
const owner = schemaApi.resolve(source);
|
|
17
|
+
const projection = schemaGraph.project(owner);
|
|
18
|
+
const allowed = new Set(owner
|
|
19
|
+
.definitions()
|
|
20
|
+
.filter(({ ref }) => ref.origin === owner.origin &&
|
|
21
|
+
['class', 'function', 'policy', 'view', 'core'].includes(ref.kind))
|
|
22
|
+
.map(({ ref }) => Path.project(ref).raw));
|
|
23
|
+
for (const part of [projection.managed, projection.core]) {
|
|
24
|
+
for (const node of part.graph.nodes) {
|
|
25
|
+
if (!('as' in node))
|
|
26
|
+
continue;
|
|
27
|
+
const path = part.paths.get(node.as);
|
|
28
|
+
if (path !== undefined && allowed.has(path))
|
|
29
|
+
result.set(path, node);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
/** Serialized reference associations lose their proof and must match the exact projection again. */
|
|
36
|
+
export function decodeDatasetReferences(input, domain, graph) {
|
|
37
|
+
if (input === null || typeof input !== 'object' || Array.isArray(input)) {
|
|
38
|
+
throw new TypeError('Dataset references must be an object.');
|
|
39
|
+
}
|
|
40
|
+
const entries = Object.entries(input);
|
|
41
|
+
const projected = entries.length === 0 ? new Map() : datasetReferenceNodes(domain);
|
|
42
|
+
const identities = new Set();
|
|
43
|
+
for (const [path, id] of entries) {
|
|
44
|
+
const expected = projected.get(path);
|
|
45
|
+
const actual = isNodeId(id) ? graph.nodes.byId(id) : undefined;
|
|
46
|
+
if (expected === undefined ||
|
|
47
|
+
actual === undefined ||
|
|
48
|
+
identities.has(actual.id) ||
|
|
49
|
+
expected.class !== actual.class ||
|
|
50
|
+
JSON.stringify(expected.props) !== JSON.stringify(actual.props)) {
|
|
51
|
+
throw new TypeError(`Dataset reference ${path} does not identify its projected Node.`);
|
|
52
|
+
}
|
|
53
|
+
identities.add(actual.id);
|
|
54
|
+
}
|
|
55
|
+
return Object.freeze(Object.fromEntries(entries));
|
|
56
|
+
}
|
package/dist/testing/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Development and test resources: schema-admitted demo Datasets and their lazy project references. */
|
|
2
2
|
export { DATASET_FORMAT, DATASET_VERSION, DatasetAdmissionError, decodeDataset, defineDataset, encodeDataset, isDataset, } from './dataset/index.js';
|
|
3
|
-
export type { AuthoredDatasetVariables, Dataset, DatasetClasses, DatasetEdgeInput, DatasetEndpoint, DatasetGraph, DatasetInput, DatasetJson, DatasetNode, DatasetNodeInput, DatasetVariable, DatasetVariableJson, DatasetVariables, DatasetVariablesOf, SchemaOfDataset, } from './dataset/index.js';
|
|
3
|
+
export type { AuthoredDatasetVariables, Dataset, DatasetClasses, DatasetEdgeInput, DatasetEndpoint, DatasetGraph, DatasetInput, DatasetJson, DatasetNode, DatasetNodeInput, DatasetReferences, DatasetReferenceInput, DatasetVariable, DatasetVariableJson, DatasetVariables, DatasetVariablesOf, SchemaOfDataset, } from './dataset/index.js';
|
|
4
4
|
export { loadDataset, loadDatasets } from './load.js';
|
|
5
5
|
export type { DatasetModuleLoader, LoadedDataset } from './load.js';
|
|
6
6
|
export { dataset, isDatasetReference } from './reference.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astrale-os/sdk",
|
|
3
|
-
"version": "0.5.0-beta.
|
|
3
|
+
"version": "0.5.0-beta.116",
|
|
4
4
|
"description": "Schema-first SDK for defining, composing, and deploying Astrale domains",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"astrale",
|
|
@@ -229,11 +229,11 @@
|
|
|
229
229
|
"registry": "https://registry.npmjs.org/"
|
|
230
230
|
},
|
|
231
231
|
"dependencies": {
|
|
232
|
-
"@astrale-os/kernel-client": "0.6.0-beta.
|
|
233
|
-
"@astrale-os/kernel-core": "0.9.0-beta.
|
|
234
|
-
"@astrale-os/kernel-dsl": "0.2.0-beta.
|
|
235
|
-
"@astrale-os/kernel-protocol": "0.5.0-beta.
|
|
236
|
-
"@astrale-os/kernel-server": "0.5.0-beta.
|
|
232
|
+
"@astrale-os/kernel-client": "0.6.0-beta.51",
|
|
233
|
+
"@astrale-os/kernel-core": "0.9.0-beta.39",
|
|
234
|
+
"@astrale-os/kernel-dsl": "0.2.0-beta.30",
|
|
235
|
+
"@astrale-os/kernel-protocol": "0.5.0-beta.42",
|
|
236
|
+
"@astrale-os/kernel-server": "0.5.0-beta.44",
|
|
237
237
|
"@lucide/icons": "1.34.0",
|
|
238
238
|
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
239
239
|
"hono": "^4.13.2",
|