@almadar/core 10.109.0 → 10.111.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/builders.d.ts +5 -5
- package/dist/builders.js +1 -1
- package/dist/builders.js.map +1 -1
- package/dist/{bus-De_T27aq.d.ts → bus-DS-GzSrs.d.ts} +2 -2
- package/dist/{effect-Cv7k1MTO.d.ts → effect-BD47AL48.d.ts} +1 -1
- package/dist/{entityAccess-CH8vC2OG.d.ts → entityAccess-Dc6o3AYo.d.ts} +3 -3
- package/dist/{expression-C6Gs_c5b.d.ts → expression-Dz84kipC.d.ts} +20 -3
- package/dist/factory/index.d.ts +81 -7
- package/dist/factory/index.js +179 -7
- package/dist/factory/index.js.map +1 -1
- package/dist/factory-runtime/index.d.ts +5 -5
- package/dist/factory-runtime/index.js +1 -1
- package/dist/factory-runtime/index.js.map +1 -1
- package/dist/fixtures.d.ts +3 -3
- package/dist/fixtures.js +1 -1
- package/dist/fixtures.js.map +1 -1
- package/dist/{index-BzFToa4c.d.ts → index-DgD_3g5F.d.ts} +101 -10
- package/dist/index.d.ts +16 -16
- package/dist/index.js +235 -11
- package/dist/index.js.map +1 -1
- package/dist/mock/index.d.ts +20 -7
- package/dist/mock/index.js +26 -5
- package/dist/mock/index.js.map +1 -1
- package/dist/patterns/index.d.ts +3 -3
- package/dist/{schema-Chi9QIcZ.d.ts → schema-B3GE83sz.d.ts} +340 -340
- package/dist/state-machine/index.d.ts +1 -1
- package/dist/state-machine/index.js +32 -7
- package/dist/state-machine/index.js.map +1 -1
- package/dist/themes/index.d.ts +1 -1
- package/dist/{trait-A_OGE8xT.d.ts → trait-BNxIGRUF.d.ts} +2 -2
- package/dist/types/index.d.ts +8 -8
- package/dist/types/index.js +32 -2
- package/dist/types/index.js.map +1 -1
- package/dist/{types-DQoBssKq.d.ts → types-5IX1FGgd.d.ts} +2 -2
- package/package.json +1 -1
- package/dist/{domain-DYverojF.d.ts → domain-Bf6sf9NR.d.ts} +210 -210
package/dist/mock/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { O as OrbitalEntity, a as EntityPersistence, E as EntityField, F as FieldValue, g as EntityRow } from '../effect-
|
|
2
|
-
import { a as OrbitalDefinition, O as OrbitalSchema } from '../schema-
|
|
3
|
-
import { S as SExpr } from '../expression-
|
|
4
|
-
export { E as EntityAccessPolicies, e as entityAccessPolicies, a as entityAccessPoliciesByStoreKey, b as entityAccessTable } from '../entityAccess-
|
|
1
|
+
import { O as OrbitalEntity, a as EntityPersistence, E as EntityField, F as FieldValue, g as EntityRow } from '../effect-BD47AL48.js';
|
|
2
|
+
import { a as OrbitalDefinition, O as OrbitalSchema } from '../schema-B3GE83sz.js';
|
|
3
|
+
import { S as SExpr } from '../expression-Dz84kipC.js';
|
|
4
|
+
export { E as EntityAccessPolicies, e as entityAccessPolicies, a as entityAccessPoliciesByStoreKey, b as entityAccessTable } from '../entityAccess-Dc6o3AYo.js';
|
|
5
5
|
import 'zod';
|
|
6
6
|
import '../json-D8gmyK3l.js';
|
|
7
|
-
import '../trait-
|
|
8
|
-
import '../domain-
|
|
7
|
+
import '../trait-BNxIGRUF.js';
|
|
8
|
+
import '../domain-Bf6sf9NR.js';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Lightweight seeded pseudo-random generator for mock data.
|
|
@@ -237,6 +237,8 @@ declare const RESERVED_FIELD_NAMES: ReadonlySet<string>;
|
|
|
237
237
|
interface SampleEntity {
|
|
238
238
|
readonly name: string;
|
|
239
239
|
readonly persistence?: EntityPersistence;
|
|
240
|
+
/** `[identity]`: the rows are the persona roster, so every field is filled. */
|
|
241
|
+
readonly identity?: boolean;
|
|
240
242
|
readonly fields: readonly EntityField[];
|
|
241
243
|
}
|
|
242
244
|
interface SampleContext {
|
|
@@ -246,6 +248,8 @@ interface SampleContext {
|
|
|
246
248
|
readonly strategy: SampleStrategy;
|
|
247
249
|
/** Declared persistence of the OWNING entity; undefined means persistent. */
|
|
248
250
|
readonly persistence?: EntityPersistence;
|
|
251
|
+
/** The owning entity is `[identity]`: its rows are personas, never left partly unset. */
|
|
252
|
+
readonly identity?: boolean;
|
|
249
253
|
readonly depth?: number;
|
|
250
254
|
}
|
|
251
255
|
/**
|
|
@@ -348,5 +352,14 @@ declare function linkSelfRelationField(rows: ReadonlyArray<EntityRow>, field: {
|
|
|
348
352
|
readonly name: string;
|
|
349
353
|
readonly cardinality?: string;
|
|
350
354
|
}, isExcluded?: (row: EntityRow, index: number) => boolean): void;
|
|
355
|
+
/**
|
|
356
|
+
* A cross-entity relation value for row `index` (0-based), deterministic and PRNG-free so every
|
|
357
|
+
* seeder links identically whatever else it draws: a scalar relation takes `targetIds[index % n]`;
|
|
358
|
+
* a list takes 2 (even rows) or 3 (odd rows) consecutive distinct ids from offset `index`. Twin of
|
|
359
|
+
* `orbital-core/src/runtime/seed.rs` `link_relation_fields`. `undefined` when there is no target.
|
|
360
|
+
*/
|
|
361
|
+
declare function crossRelationValue(targetIds: readonly string[], index: number, cardinality?: string): string | string[] | undefined;
|
|
362
|
+
/** A relation cell a seeder may fill: missing, or the `''` / `[]` placeholder `sampleRow` writes. */
|
|
363
|
+
declare function isRelationPlaceholder(value: EntityRow[string]): boolean;
|
|
351
364
|
|
|
352
|
-
export { IMAGE_FIELD_NAMES, RESERVED_FIELD_NAMES, type SampleContext, type SampleEntity, type SampleStrategy, type SelfRelationForest, collectUserFieldLiterals, identityEntitiesOf, identityEntityName, identityEntityNames, isDeclaredDefaultHonored, linkSelfRelationField, ownerColumnsFromPolicy, ownerFieldsFromSchema, randomAnytimeDate, randomArrayElement, randomBoolean, randomColor, randomEmail, randomFloat, randomInt, randomPassword, randomPastDate, randomPhone, randomRecentDate, randomSentence, randomStraddlingDate, randomUrl, randomUuid, randomWords, roleSatisfyingPolicy, roleVocabularyOf, sampleFieldValue, sampleImageUrl, sampleRow, sampleRowCount, sampleRows, seedRandom, selfRelationForest, shuffleArray };
|
|
365
|
+
export { IMAGE_FIELD_NAMES, RESERVED_FIELD_NAMES, type SampleContext, type SampleEntity, type SampleStrategy, type SelfRelationForest, collectUserFieldLiterals, crossRelationValue, identityEntitiesOf, identityEntityName, identityEntityNames, isDeclaredDefaultHonored, isRelationPlaceholder, linkSelfRelationField, ownerColumnsFromPolicy, ownerFieldsFromSchema, randomAnytimeDate, randomArrayElement, randomBoolean, randomColor, randomEmail, randomFloat, randomInt, randomPassword, randomPastDate, randomPhone, randomRecentDate, randomSentence, randomStraddlingDate, randomUrl, randomUuid, randomWords, roleSatisfyingPolicy, roleVocabularyOf, sampleFieldValue, sampleImageUrl, sampleRow, sampleRowCount, sampleRows, seedRandom, selfRelationForest, shuffleArray };
|
package/dist/mock/index.js
CHANGED
|
@@ -816,7 +816,7 @@ var SExprAtomSchema = z.union([
|
|
|
816
816
|
var SExprSchema = z.lazy(
|
|
817
817
|
() => z.union([
|
|
818
818
|
SExprAtomSchema,
|
|
819
|
-
z.array(
|
|
819
|
+
z.array(SExprDataSchema).min(1).refine(
|
|
820
820
|
(arr) => typeof arr[0] === "string",
|
|
821
821
|
{ message: "S-expression array must have a string operator as first element" }
|
|
822
822
|
)
|
|
@@ -1011,7 +1011,8 @@ function sampleObject(field, ctx) {
|
|
|
1011
1011
|
const depth = ctx.depth ?? 0;
|
|
1012
1012
|
if (!field.properties || depth >= MAX_NESTED_DEPTH) return null;
|
|
1013
1013
|
const out = {};
|
|
1014
|
-
|
|
1014
|
+
const entries = Object.entries(field.properties).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
|
|
1015
|
+
for (const [propName, propField] of entries) {
|
|
1015
1016
|
const child = { ...propField, name: propName };
|
|
1016
1017
|
out[propName] = sampleFieldValue(child, { ...ctx, depth: depth + 1 }) ?? null;
|
|
1017
1018
|
}
|
|
@@ -1028,7 +1029,7 @@ function sampleUnion(field, ctx) {
|
|
|
1028
1029
|
return sampleFieldValue(child, { ...ctx, depth: depth + 1 });
|
|
1029
1030
|
}
|
|
1030
1031
|
function omitsUndefaultedOptionalFields(ctx) {
|
|
1031
|
-
return ctx.strategy === "seeded" && ctx.index % 2 === 0;
|
|
1032
|
+
return ctx.strategy === "seeded" && !ctx.identity && (ctx.depth ?? 0) === 0 && ctx.index % 2 === 0;
|
|
1032
1033
|
}
|
|
1033
1034
|
function sampleFieldValue(field, ctx) {
|
|
1034
1035
|
const honoredDefault = field.default !== void 0 && isFieldValue(field.default) ? field.default : void 0;
|
|
@@ -1112,6 +1113,8 @@ function sampleFieldValue(field, ctx) {
|
|
|
1112
1113
|
case "trait":
|
|
1113
1114
|
case "slot":
|
|
1114
1115
|
case "pattern":
|
|
1116
|
+
// An event name is authored on the owning struct, never random text (seed.rs twin).
|
|
1117
|
+
case "event":
|
|
1115
1118
|
// Renderable content is computed by the owning trait's effects, never
|
|
1116
1119
|
// seeded — same no-sample treatment as the config-only reference types.
|
|
1117
1120
|
case "node":
|
|
@@ -1128,7 +1131,8 @@ function sampleRow(entity, ctx) {
|
|
|
1128
1131
|
const value = sampleFieldValue(field, {
|
|
1129
1132
|
...ctx,
|
|
1130
1133
|
entityName: entity.name,
|
|
1131
|
-
persistence: ctx.persistence ?? entity.persistence
|
|
1134
|
+
persistence: ctx.persistence ?? entity.persistence,
|
|
1135
|
+
...entity.identity ? { identity: true } : {}
|
|
1132
1136
|
});
|
|
1133
1137
|
if (value !== void 0) row[name] = value;
|
|
1134
1138
|
}
|
|
@@ -1167,7 +1171,24 @@ function linkSelfRelationField(rows, field, isExcluded) {
|
|
|
1167
1171
|
row[field.name] = scalar ? forest.parentOf(index) : forest.childrenOf(index);
|
|
1168
1172
|
});
|
|
1169
1173
|
}
|
|
1174
|
+
var SCALAR_TARGET_CARDINALITIES = /* @__PURE__ */ new Set(["one", "many-to-one"]);
|
|
1175
|
+
function crossRelationValue(targetIds, index, cardinality) {
|
|
1176
|
+
if (targetIds.length === 0) return void 0;
|
|
1177
|
+
if (SCALAR_TARGET_CARDINALITIES.has(cardinality ?? "many")) return targetIds[index % targetIds.length];
|
|
1178
|
+
const picks = [];
|
|
1179
|
+
const count = Math.min(targetIds.length, 2 + index % 2);
|
|
1180
|
+
for (let offset = 0; offset < count; offset++) {
|
|
1181
|
+
const candidate = targetIds[(index + offset) % targetIds.length];
|
|
1182
|
+
if (!picks.includes(candidate)) picks.push(candidate);
|
|
1183
|
+
}
|
|
1184
|
+
return picks;
|
|
1185
|
+
}
|
|
1186
|
+
function isRelationPlaceholder(value) {
|
|
1187
|
+
if (value === void 0) return true;
|
|
1188
|
+
if (typeof value === "string") return value === "";
|
|
1189
|
+
return Array.isArray(value) && value.length === 0;
|
|
1190
|
+
}
|
|
1170
1191
|
|
|
1171
|
-
export { IMAGE_FIELD_NAMES, RESERVED_FIELD_NAMES, collectUserFieldLiterals, entityAccessPolicies, entityAccessPoliciesByStoreKey, entityAccessTable, identityEntitiesOf, identityEntityName, identityEntityNames, isDeclaredDefaultHonored, linkSelfRelationField, ownerColumnsFromPolicy, ownerFieldsFromSchema, randomAnytimeDate, randomArrayElement, randomBoolean, randomColor, randomEmail, randomFloat, randomInt, randomPassword, randomPastDate, randomPhone, randomRecentDate, randomSentence, randomStraddlingDate, randomUrl, randomUuid, randomWords, roleSatisfyingPolicy, roleVocabularyOf, sampleFieldValue, sampleImageUrl, sampleRow, sampleRowCount, sampleRows, seedRandom, selfRelationForest, shuffleArray };
|
|
1192
|
+
export { IMAGE_FIELD_NAMES, RESERVED_FIELD_NAMES, collectUserFieldLiterals, crossRelationValue, entityAccessPolicies, entityAccessPoliciesByStoreKey, entityAccessTable, identityEntitiesOf, identityEntityName, identityEntityNames, isDeclaredDefaultHonored, isRelationPlaceholder, linkSelfRelationField, ownerColumnsFromPolicy, ownerFieldsFromSchema, randomAnytimeDate, randomArrayElement, randomBoolean, randomColor, randomEmail, randomFloat, randomInt, randomPassword, randomPastDate, randomPhone, randomRecentDate, randomSentence, randomStraddlingDate, randomUrl, randomUuid, randomWords, roleSatisfyingPolicy, roleVocabularyOf, sampleFieldValue, sampleImageUrl, sampleRow, sampleRowCount, sampleRows, seedRandom, selfRelationForest, shuffleArray };
|
|
1172
1193
|
//# sourceMappingURL=index.js.map
|
|
1173
1194
|
//# sourceMappingURL=index.js.map
|