@almadar/core 7.15.1 → 7.17.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 +2 -2
- package/dist/builders.js +8 -1
- package/dist/builders.js.map +1 -1
- package/dist/{compose-behaviors-p4gl4sp1.d.ts → compose-behaviors-DWMFJEz3.d.ts} +1 -1
- package/dist/domain-language/index.d.ts +46 -3
- package/dist/domain-language/index.js +188 -86
- package/dist/domain-language/index.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +188 -86
- package/dist/index.js.map +1 -1
- package/dist/{schema-B-92HhgX.d.ts → schema-WX5fN1Ra.d.ts} +2643 -185
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.js +8 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { bh as OrbitalSchema, ci as State, b6 as OrbitalDefinition } from './schema-
|
|
2
|
-
export { A as AGENT_DOMAIN_CATEGORIES, a as ALLOWED_CUSTOM_COMPONENTS, b as AgentDomainCategory, c as AgentDomainCategorySchema, d as AgentEffect, e as AllowedCustomComponent, f as AnimationDef, g as AnimationDefInput, h as AnimationDefSchema, i as AssetMap, j as AssetMapInput, k as AssetMapSchema, l as AssetMapping, m as AssetMappingInput, n as AssetMappingSchema, o as AtomicEffect, C as CallServiceConfig, p as CallServiceEffect, q as CheckpointLoadEffect, r as CheckpointSaveEffect, s as ComputedEventContract, t as ComputedEventContractSchema, u as ComputedEventListener, v as ComputedEventListenerSchema, w as ConfigFieldDeclaration, x as ConfigFieldDeclarationSchema, y as CustomPatternDefinition, z as CustomPatternDefinitionInput, B as CustomPatternDefinitionSchema, D as CustomPatternMap, E as CustomPatternMapInput, F as CustomPatternMapSchema, G as DeclaredTraitConfig, H as DeclaredTraitConfigSchema, I as DerefEffect, J as DesignPreferences, K as DesignPreferencesInput, L as DesignPreferencesSchema, M as DesignTokens, N as DesignTokensInput, O as DesignTokensSchema, P as DespawnEffect, Q as DoEffect, R as DomainCategory, S as DomainCategorySchema, T as DomainContext, U as DomainContextInput, V as DomainContextSchema, W as DomainVocabulary, X as DomainVocabularySchema, Y as ENTITY_ROLES, Z as Effect, _ as EffectInput, $ as EffectSchema, a0 as EmitConfig, a1 as EmitEffect, a2 as Entity, a3 as EntityCall, a4 as EntityCallSchema, a5 as EntityData, a6 as EntityField, a7 as EntityFieldInput, a8 as EntityFieldSchema, a9 as EntityPersistence, aa as EntityPersistenceSchema, ab as EntityRef, ac as EntityRefSchema, ad as EntityRefStringSchema, ae as EntityRole, af as EntityRoleSchema, ag as EntityRow, ah as EntitySchema, ai as EntitySemanticRole, aj as EntitySemanticRoleSchema, ak as EvaluateConfig, al as EvaluateEffect, am as Event, an as EventInput, ao as EventListener, ap as EventListenerSchema, aq as EventPayloadField, ar as EventPayloadFieldSchema, as as EventSchema, at as EventScope, au as EventScopeSchema, av as EventSemanticRole, aw as EventSemanticRoleSchema, ax as EventSource, ay as EventSourceSchema, az as FetchEffect, aA as FetchOptions, aB as FetchResult, aC as Field, aD as FieldFormat, aE as FieldFormatSchema, aF as FieldSchema, aG as FieldType, aH as FieldTypeSchema, aI as FieldValue, aJ as ForwardConfig, aK as ForwardEffect, b2 as FullOrbitalUnit, aL as GAME_TYPES, aM as GameSubCategory, aN as GameSubCategorySchema, aO as GameType, aP as GameTypeSchema, aQ as Guard, aR as GuardInput, aS as GuardSchema, aT as ListenSource, aU as ListenSourceSchema, aV as LogEffect, aW as McpServiceDef, aX as McpServiceDefSchema, aY as NavigateEffect, aZ as NnConfig, a_ as NnLayer, a$ as NodeClassification, b0 as NodeClassificationSchema, b1 as NotifyEffect, b2 as Orbital, b3 as OrbitalConfig, b4 as OrbitalConfigInput, b5 as OrbitalConfigSchema, b7 as OrbitalDefinitionSchema, b8 as OrbitalEntity, b9 as OrbitalEntityInput, ba as OrbitalEntitySchema, bb as OrbitalInput, bc as OrbitalPage, bd as OrbitalPageInput, be as OrbitalPageSchema, bf as OrbitalPageStrictInput, bg as OrbitalPageStrictSchema, bj as OrbitalSchemaInput, bk as OrbitalSchemaSchema, bl as OrbitalSchemaWithTraits, bm as OrbitalTraitRef, bn as OrbitalTraitRefSchema, bo as OrbitalUnit, bp as OrbitalUnitSchema, bi as OrbitalZodSchema, bq as OsEffect, br as Page, bs as PageRef, bt as PageRefObject, bu as PageRefObjectSchema, bv as PageRefSchema, bw as PageRefStringSchema, bx as PageSchema, by as PageTraitRef, bz as PageTraitRefSchema, bA as PayloadField, bB as PayloadFieldSchema, bC as PersistData, bD as PersistEffect, bE as PersistEmitConfig, bF as PresentationType, bG as RefEffect, bH as RelatedLink, bI as RelatedLinkSchema, bJ as RelationConfig, bK as RelationConfigSchema, bL as RenderItemLambda, bM as RenderUIConfig, bN as RenderUIEffect, bO as RenderUINode, bP as RequiredField, bQ as RequiredFieldSchema, bR as ResolvedAsset, bS as ResolvedAssetInput, bT as ResolvedAssetSchema, bU as ResolvedPatternProps, bV as RestAuthConfig, bW as RestAuthConfigSchema, bX as RestServiceDef, bY as RestServiceDefSchema, bZ as SERVICE_TYPES, b_ as SemanticAssetRef, b$ as SemanticAssetRefInput, c0 as SemanticAssetRefSchema, c1 as ServiceDefinition, c2 as ServiceDefinitionSchema, c3 as ServiceParams, c4 as ServiceParamsValue, c5 as ServiceRef, c6 as ServiceRefObject, c7 as ServiceRefObjectSchema, c8 as ServiceRefSchema, c9 as ServiceRefStringSchema, ca as ServiceType, cb as ServiceTypeSchema, cc as SetEffect, cd as SocketEvents, ce as SocketEventsSchema, cf as SocketServiceDef, cg as SocketServiceDefSchema, ch as SpawnEffect, cj as StateInput, ck as StateMachine, cl as StateMachineInput, cm as StateMachineSchema, cn as StateSchema, co as StateSemanticRole, cp as StateSemanticRoleSchema, cq as SuggestedGuard, cr as SuggestedGuardSchema, cs as SwapEffect, ct as ThemeDefinition, cu as ThemeDefinitionSchema, cv as ThemeRef, cw as ThemeRefSchema, cx as ThemeRefStringSchema, cy as ThemeTokens, cz as ThemeTokensSchema, cA as ThemeVariant, cB as ThemeVariantSchema, cC as TrainConfig, cD as TrainEffect, cE as Trait, cF as TraitCategory, cG as TraitCategorySchema, cH as TraitConfig, cI as TraitConfigObject, cJ as TraitConfigSchema, cK as TraitConfigValue, cL as TraitConfigValueSchema, cM as TraitDataEntity, cN as TraitDataEntitySchema, cO as TraitEntityField, cP as TraitEntityFieldSchema, cQ as TraitEventContract, cR as TraitEventContractSchema, cS as TraitEventListener, cT as TraitEventListenerSchema, cU as TraitInput, cV as TraitRef, cW as TraitRefSchema, cX as TraitReference, cY as TraitReferenceInput, cZ as TraitReferenceSchema, c_ as TraitSchema, c$ as
|
|
1
|
+
import { bh as OrbitalSchema, ci as State, b6 as OrbitalDefinition } from './schema-WX5fN1Ra.js';
|
|
2
|
+
export { A as AGENT_DOMAIN_CATEGORIES, a as ALLOWED_CUSTOM_COMPONENTS, b as AgentDomainCategory, c as AgentDomainCategorySchema, d as AgentEffect, e as AllowedCustomComponent, f as AnimationDef, g as AnimationDefInput, h as AnimationDefSchema, i as AssetMap, j as AssetMapInput, k as AssetMapSchema, l as AssetMapping, m as AssetMappingInput, n as AssetMappingSchema, o as AtomicEffect, C as CallServiceConfig, p as CallServiceEffect, q as CheckpointLoadEffect, r as CheckpointSaveEffect, s as ComputedEventContract, t as ComputedEventContractSchema, u as ComputedEventListener, v as ComputedEventListenerSchema, w as ConfigFieldDeclaration, x as ConfigFieldDeclarationSchema, y as CustomPatternDefinition, z as CustomPatternDefinitionInput, B as CustomPatternDefinitionSchema, D as CustomPatternMap, E as CustomPatternMapInput, F as CustomPatternMapSchema, G as DeclaredTraitConfig, H as DeclaredTraitConfigSchema, I as DerefEffect, J as DesignPreferences, K as DesignPreferencesInput, L as DesignPreferencesSchema, M as DesignTokens, N as DesignTokensInput, O as DesignTokensSchema, P as DespawnEffect, Q as DoEffect, R as DomainCategory, S as DomainCategorySchema, T as DomainContext, U as DomainContextInput, V as DomainContextSchema, W as DomainVocabulary, X as DomainVocabularySchema, Y as ENTITY_ROLES, Z as Effect, _ as EffectInput, $ as EffectSchema, a0 as EmitConfig, a1 as EmitEffect, a2 as Entity, a3 as EntityCall, a4 as EntityCallSchema, a5 as EntityData, a6 as EntityField, a7 as EntityFieldInput, a8 as EntityFieldSchema, a9 as EntityPersistence, aa as EntityPersistenceSchema, ab as EntityRef, ac as EntityRefSchema, ad as EntityRefStringSchema, ae as EntityRole, af as EntityRoleSchema, ag as EntityRow, ah as EntitySchema, ai as EntitySemanticRole, aj as EntitySemanticRoleSchema, ak as EvaluateConfig, al as EvaluateEffect, am as Event, an as EventInput, ao as EventListener, ap as EventListenerSchema, aq as EventPayloadField, ar as EventPayloadFieldSchema, as as EventSchema, at as EventScope, au as EventScopeSchema, av as EventSemanticRole, aw as EventSemanticRoleSchema, ax as EventSource, ay as EventSourceSchema, az as FetchEffect, aA as FetchOptions, aB as FetchResult, aC as Field, aD as FieldFormat, aE as FieldFormatSchema, aF as FieldSchema, aG as FieldType, aH as FieldTypeSchema, aI as FieldValue, aJ as ForwardConfig, aK as ForwardEffect, b2 as FullOrbitalUnit, aL as GAME_TYPES, aM as GameSubCategory, aN as GameSubCategorySchema, aO as GameType, aP as GameTypeSchema, aQ as Guard, aR as GuardInput, aS as GuardSchema, aT as ListenSource, aU as ListenSourceSchema, aV as LogEffect, aW as McpServiceDef, aX as McpServiceDefSchema, aY as NavigateEffect, aZ as NnConfig, a_ as NnLayer, a$ as NodeClassification, b0 as NodeClassificationSchema, b1 as NotifyEffect, b2 as Orbital, b3 as OrbitalConfig, b4 as OrbitalConfigInput, b5 as OrbitalConfigSchema, b7 as OrbitalDefinitionSchema, b8 as OrbitalEntity, b9 as OrbitalEntityInput, ba as OrbitalEntitySchema, bb as OrbitalInput, bc as OrbitalPage, bd as OrbitalPageInput, be as OrbitalPageSchema, bf as OrbitalPageStrictInput, bg as OrbitalPageStrictSchema, bj as OrbitalSchemaInput, bk as OrbitalSchemaSchema, bl as OrbitalSchemaWithTraits, bm as OrbitalTraitRef, bn as OrbitalTraitRefSchema, bo as OrbitalUnit, bp as OrbitalUnitSchema, bi as OrbitalZodSchema, bq as OsEffect, br as Page, bs as PageRef, bt as PageRefObject, bu as PageRefObjectSchema, bv as PageRefSchema, bw as PageRefStringSchema, bx as PageSchema, by as PageTraitRef, bz as PageTraitRefSchema, bA as PayloadField, bB as PayloadFieldSchema, bC as PersistData, bD as PersistEffect, bE as PersistEmitConfig, bF as PresentationType, bG as RefEffect, bH as RelatedLink, bI as RelatedLinkSchema, bJ as RelationConfig, bK as RelationConfigSchema, bL as RenderItemLambda, bM as RenderUIConfig, bN as RenderUIEffect, bO as RenderUINode, bP as RequiredField, bQ as RequiredFieldSchema, bR as ResolvedAsset, bS as ResolvedAssetInput, bT as ResolvedAssetSchema, bU as ResolvedPatternProps, bV as RestAuthConfig, bW as RestAuthConfigSchema, bX as RestServiceDef, bY as RestServiceDefSchema, bZ as SERVICE_TYPES, b_ as SemanticAssetRef, b$ as SemanticAssetRefInput, c0 as SemanticAssetRefSchema, c1 as ServiceDefinition, c2 as ServiceDefinitionSchema, c3 as ServiceParams, c4 as ServiceParamsValue, c5 as ServiceRef, c6 as ServiceRefObject, c7 as ServiceRefObjectSchema, c8 as ServiceRefSchema, c9 as ServiceRefStringSchema, ca as ServiceType, cb as ServiceTypeSchema, cc as SetEffect, cd as SocketEvents, ce as SocketEventsSchema, cf as SocketServiceDef, cg as SocketServiceDefSchema, ch as SpawnEffect, cj as StateInput, ck as StateMachine, cl as StateMachineInput, cm as StateMachineSchema, cn as StateSchema, co as StateSemanticRole, cp as StateSemanticRoleSchema, cq as SuggestedGuard, cr as SuggestedGuardSchema, cs as SwapEffect, ct as ThemeDefinition, cu as ThemeDefinitionSchema, cv as ThemeRef, cw as ThemeRefSchema, cx as ThemeRefStringSchema, cy as ThemeTokens, cz as ThemeTokensSchema, cA as ThemeVariant, cB as ThemeVariantSchema, cC as TrainConfig, cD as TrainEffect, cE as Trait, cF as TraitCategory, cG as TraitCategorySchema, cH as TraitConfig, cI as TraitConfigObject, cJ as TraitConfigSchema, cK as TraitConfigValue, cL as TraitConfigValueSchema, cM as TraitDataEntity, cN as TraitDataEntitySchema, cO as TraitEntityField, cP as TraitEntityFieldSchema, cQ as TraitEventContract, cR as TraitEventContractSchema, cS as TraitEventListener, cT as TraitEventListenerSchema, cU as TraitInput, cV as TraitRef, cW as TraitRefSchema, cX as TraitReference, cY as TraitReferenceInput, cZ as TraitReferenceSchema, c_ as TraitSchema, c$ as TraitScope, d0 as TraitTick, d1 as TraitTickSchema, d2 as TraitUIBinding, d3 as Transition, d4 as TransitionInput, d5 as TransitionSchema, d6 as TypedEffect, d7 as UISlot, d8 as UISlotSchema, d9 as UI_SLOTS, da as UXHints, db as UXHintsSchema, dc as UseDeclaration, dd as UseDeclarationSchema, de as UserPersona, df as UserPersonaInput, dg as UserPersonaSchema, dh as VISUAL_STYLES, di as ViewType, dj as ViewTypeSchema, dk as VisualStyle, dl as VisualStyleSchema, dm as WatchEffect, dn as WatchOptions, dp as atomic, dq as callService, dr as createAssetKey, ds as deref, dt as deriveCollection, du as despawn, dv as doEffects, dw as emit, dx as findService, dy as getDefaultAnimationsForRole, dz as getServiceNames, dA as getTraitConfig, dB as getTraitName, dC as hasService, dD as isCircuitEvent, dE as isEffect, dF as isEntityCall, dG as isEntityReference, dH as isEntityReferenceAny, dI as isImportedTraitRef, dJ as isInlineTrait, dK as isMcpService, dL as isOrbitalDefinition, dM as isPageReference, dN as isPageReferenceObject, dO as isPageReferenceString, dP as isRestService, dQ as isRuntimeEntity, dR as isSExprEffect, dS as isServiceReference, dT as isServiceReferenceObject, dU as isSingletonEntity, dV as isSocketService, dW as isThemeReference, dX as navigate, dY as normalizeTraitRef, dZ as notify, d_ as parseAssetKey, d$ as parseEntityRef, e0 as parseImportedTraitRef, e1 as parseOrbitalSchema, e2 as parsePageRef, e3 as parseServiceRef, e4 as persist, e5 as ref, e6 as renderUI, e7 as safeParseOrbitalSchema, e8 as set, e9 as spawn, ea as swap, eb as validateAssetAnimations, ec as watch } from './schema-WX5fN1Ra.js';
|
|
3
3
|
export { C as CORE_BINDINGS, a as CoreBinding, E as EvalContext, b as EventPayload, c as EventPayloadValue, d as Expression, e as ExpressionInput, f as ExpressionSchema, L as LogMeta, P as ParsedBinding, S as SExpr, g as SExprAtom, h as SExprAtomSchema, i as SExprInput, j as SExprSchema, k as collectBindings, l as getArgs, m as getOperator, n as isBinding, o as isSExpr, p as isSExprAtom, q as isSExprCall, r as isValidBinding, s as parseBinding, t as sexpr, w as walkSExpr } from './expression-BVRFm0sV.js';
|
|
4
4
|
import { ResolvedIR, ResolvedEntity, ResolvedPage, ResolvedTrait, ChangesetValue, SchemaChange, CategorizedRemovals, PageContentReduction, SemanticSchemaChange } from './types/index.js';
|
|
5
5
|
export { AgentCodeSearchResult, AgentCompactResult, AgentCompactStrategy, AgentContext, AgentGenerateOptions, AgentMemoryCategory, AgentMemoryRecord, AppSummary, AssetLoadStatus, BINDING_CONTEXT_RULES, BINDING_DOCS, BINDING_ROOTS, BindingContext, BindingRoot, BindingSchema, BridgeHealth, BusEvent, BusEventListener, BusEventSource, ChangeAuthor, ChangeSetDocument, ChangeSummary, CheckStatus, ContextExtensions, CreateFlow, DEFAULT_INTERACTION_MODELS, DeleteFlow, EditFlow, EffectTrace, EventEmit, EventKey, EventListen, EventLogEntry, GitHubLink, HistoryMeta, InteractionModel, InteractionModelInput, InteractionModelSchema, LazyService, ListInteraction, OrbitalVerificationAPI, PatternTypeSchema, PersistActionName, ResolvedEntityBinding, ResolvedField, ResolvedNavigation, ResolvedPattern, ResolvedSection, ResolvedSectionEvent, ResolvedTraitBinding, ResolvedTraitDataEntity, ResolvedTraitEvent, ResolvedTraitGuard, ResolvedTraitListener, ResolvedTraitState, ResolvedTraitTick, ResolvedTraitTransition, ResolvedTraitUIBinding, SaveOptions, SaveResult, SemanticChangeKind, ServerResponseTrace, ServiceAction, ServiceActionName, ServiceContract, ServiceEvents, SnapshotDocument, StatsView, StoreContract, StoreFilter, StoreFilterOp, TraitFieldRef, TraitFieldRefSchema, TraitStateSnapshot, TransitionFrom, TransitionTrace, Unsubscribe, ValidationDocument, ValidationIssue, ValidationMeta, ValidationResults, VerificationCheck, VerificationSnapshot, VerificationSummary, ViewFlow, createEmptyResolvedPage, createEmptyResolvedTrait, createLazyService, createResolvedField, createTypedEventBus, getAllPatternTypes, getBindingExamples, getInteractionModelForDomain, inferTsType, isResolvedIR, isTraitFieldRef, toBindingRoot, validateBindingInContext } from './types/index.js';
|
|
6
|
-
export { ASTNode, ComparisonCondition, ComparisonOperator, DomainBehavior, DomainChunk, DomainDocument, DomainEffect, DomainEntity, DomainField, DomainFieldType, DomainGuard, DomainPage, DomainPageAction, DomainPageSection, DomainRelationship, DomainTick, DomainToSchemaResult, DomainTransition, EFFECT_REGISTRY, EffectMapping, EffectType, FIELD_TYPE_REGISTRY, FieldCheckCondition, FieldReference, FieldTypeMapping, GUARD_REGISTRY, GuardCondition, GuardMapping, KEYWORDS, Lexer, LogicalCondition, LogicalOperator, MULTI_WORD_KEYWORDS, MappingStore, MergeResult, ParseError, ParseResult, RelationshipType, SchemaToDomainResult, SectionMapping, SourceLocation, SourceRange, Token, TokenType, UserCheckCondition, applySectionUpdate, computeSchemaHash, convertDomainToSchema, convertEntitiesToDomain, convertPagesToDomain, convertSchemaToDomain, convertTraitsToDomain, createMappingStore, deleteSection, detectChanges, domainKeywordToSchemaType, findMapping, findMappingByPath, findMappingsByType, formatBehaviorToDomain, formatBehaviorToSchema, formatDomainGuardToSchema, formatEntityToDomain, formatEntityToSchema, formatGuardConditionToDomain, formatGuardToDomain, formatGuardToSchema, formatMergeSummary, formatPageToDomain, formatPageToSchema, formatSchemaEntityToDomain, formatSchemaGuardToDomain, formatSchemaPageToDomain, formatSchemaTraitToDomain, generateDomainLanguageReference, generateSectionId, getEffectMapping, getFieldTypeMapping, getGuardMapping, getRegisteredEffects, getRegisteredFieldTypes, getRegisteredGuards, getRegistryStats, getSchemaPath, hasSchemaChanged, isEffectRegistered, isFieldTypeRegistered, isGuardRegistered, mergeDomainChunks, parseBehavior, parseDomainEffect, parseDomainEffects, parseDomainGuard, parseEntity, parseGuard, parsePage, parseSectionId, removeMapping, resolveConflict, schemaEntityToDomainEntity, schemaPageToDomainPage, schemaTraitToDomainBehavior, schemaTypeToDomainKeyword, tokenize, updateMappingRange, updateSchemaHash, upsertMapping, validateDomainChunk } from './domain-language/index.js';
|
|
7
|
-
export { C as ComposeBehaviorsInput, a as ComposeBehaviorsResult, E as EventWiringEntry, L as LayoutStrategy, b as applyEventWiring, c as composeBehaviors, d as detectLayoutStrategy } from './compose-behaviors-
|
|
6
|
+
export { ASTNode, ComparisonCondition, ComparisonOperator, DomainBehavior, DomainChunk, DomainDocument, DomainEffect, DomainEntity, DomainField, DomainFieldDefault, DomainFieldItems, DomainFieldType, DomainGuard, DomainPage, DomainPageAction, DomainPageSection, DomainRelationship, DomainTick, DomainToSchemaResult, DomainTransition, EFFECT_REGISTRY, EffectMapping, EffectType, FIELD_TYPE_REGISTRY, FieldCheckCondition, FieldReference, FieldTypeMapping, GUARD_REGISTRY, GuardCondition, GuardMapping, KEYWORDS, Lexer, LogicalCondition, LogicalOperator, MULTI_WORD_KEYWORDS, MappingStore, MergeResult, ParseError, ParseResult, RelationshipType, SchemaToDomainResult, SectionMapping, SourceLocation, SourceRange, Token, TokenType, UserCheckCondition, applySectionUpdate, computeSchemaHash, convertDomainToSchema, convertEntitiesToDomain, convertPagesToDomain, convertSchemaToDomain, convertTraitsToDomain, createMappingStore, deleteSection, detectChanges, domainKeywordToSchemaType, findMapping, findMappingByPath, findMappingsByType, formatBehaviorToDomain, formatBehaviorToSchema, formatDomainGuardToSchema, formatEntityToDomain, formatEntityToSchema, formatGuardConditionToDomain, formatGuardToDomain, formatGuardToSchema, formatMergeSummary, formatPageToDomain, formatPageToSchema, formatSchemaEntityToDomain, formatSchemaGuardToDomain, formatSchemaPageToDomain, formatSchemaTraitToDomain, generateDomainLanguageReference, generateSectionId, getEffectMapping, getFieldTypeMapping, getGuardMapping, getRegisteredEffects, getRegisteredFieldTypes, getRegisteredGuards, getRegistryStats, getSchemaPath, hasSchemaChanged, isEffectRegistered, isFieldTypeRegistered, isGuardRegistered, mergeDomainChunks, parseBehavior, parseDomainEffect, parseDomainEffects, parseDomainGuard, parseEntity, parseGuard, parsePage, parseSectionId, removeMapping, resolveConflict, schemaEntityToDomainEntity, schemaPageToDomainPage, schemaTraitToDomainBehavior, schemaTypeToDomainKeyword, tokenize, updateMappingRange, updateSchemaHash, upsertMapping, validateDomainChunk } from './domain-language/index.js';
|
|
7
|
+
export { C as ComposeBehaviorsInput, a as ComposeBehaviorsResult, E as EventWiringEntry, L as LayoutStrategy, b as applyEventWiring, c as composeBehaviors, d as detectLayoutStrategy } from './compose-behaviors-DWMFJEz3.js';
|
|
8
8
|
export { PATTERN_TYPES, PatternConfig, PatternType, isValidPatternType } from '@almadar/patterns';
|
|
9
9
|
export { BFSNode, BFSPathNode, EdgeWalkTransition, GraphTransition, GuardPayload, ReplayStep, ReplayTransition, StateEdge, WalkStep, buildEdgeCoveringWalk, buildGuardPayloads, buildReplayPaths, buildStateGraph, collectReachableStates, extractPayloadFieldRef, walkStatePairs } from './state-machine/index.js';
|
|
10
10
|
import 'zod';
|
package/dist/index.js
CHANGED
|
@@ -635,6 +635,11 @@ var TraitReferenceSchema = z.object({
|
|
|
635
635
|
}
|
|
636
636
|
);
|
|
637
637
|
var TraitScopeSchema = z.enum(["instance", "collection"]);
|
|
638
|
+
var SourceBehaviorMetadataSchema = z.object({
|
|
639
|
+
behavior: z.string().min(1),
|
|
640
|
+
alias: z.string().min(1),
|
|
641
|
+
originalName: z.string().min(1)
|
|
642
|
+
});
|
|
638
643
|
var TraitSchema = z.object({
|
|
639
644
|
name: z.string().min(1),
|
|
640
645
|
description: z.string().optional(),
|
|
@@ -650,7 +655,9 @@ var TraitSchema = z.object({
|
|
|
650
655
|
emits: z.array(TraitEventContractSchema).optional(),
|
|
651
656
|
listens: z.array(TraitEventListenerSchema).optional(),
|
|
652
657
|
ui: z.record(z.unknown()).optional(),
|
|
653
|
-
config: DeclaredTraitConfigSchema.optional()
|
|
658
|
+
config: DeclaredTraitConfigSchema.optional(),
|
|
659
|
+
sourceBehavior: SourceBehaviorMetadataSchema.optional(),
|
|
660
|
+
sourceEntityDefinition: EntitySchema.optional()
|
|
654
661
|
});
|
|
655
662
|
var TraitRefSchema = z.union([
|
|
656
663
|
z.string().min(1),
|
|
@@ -2686,6 +2693,7 @@ function parseEntity(text) {
|
|
|
2686
2693
|
const tokens = lexer.tokenize();
|
|
2687
2694
|
let pos = 0;
|
|
2688
2695
|
const current = () => tokens[pos] || { type: "EOF" /* EOF */, value: "", line: 0, column: 0, offset: 0 };
|
|
2696
|
+
const peek = (offset = 0) => tokens[pos + offset] || { type: "EOF" /* EOF */, value: "", line: 0, column: 0, offset: 0 };
|
|
2689
2697
|
const advance = () => tokens[pos++];
|
|
2690
2698
|
const isAtEnd = () => current().type === "EOF" /* EOF */;
|
|
2691
2699
|
const skip = (type) => {
|
|
@@ -2767,6 +2775,21 @@ function parseEntity(text) {
|
|
|
2767
2775
|
}
|
|
2768
2776
|
function parseSection(entity2) {
|
|
2769
2777
|
const token = current();
|
|
2778
|
+
if (token.type === "IDENTIFIER" /* IDENTIFIER */ && peek(1).type === "COLON" /* COLON */) {
|
|
2779
|
+
const propName = token.value.toLowerCase();
|
|
2780
|
+
if (propName === "persistence") {
|
|
2781
|
+
advance();
|
|
2782
|
+
advance();
|
|
2783
|
+
if (current().type === "IDENTIFIER" /* IDENTIFIER */) {
|
|
2784
|
+
const val = current().value.toLowerCase();
|
|
2785
|
+
if (val === "persistent" || val === "runtime" || val === "singleton" || val === "instance" || val === "local") {
|
|
2786
|
+
entity2.persistence = val;
|
|
2787
|
+
advance();
|
|
2788
|
+
}
|
|
2789
|
+
}
|
|
2790
|
+
return true;
|
|
2791
|
+
}
|
|
2792
|
+
}
|
|
2770
2793
|
if (token.type === "INDENT" /* INDENT */) {
|
|
2771
2794
|
advance();
|
|
2772
2795
|
parseIndentedFields(entity2);
|
|
@@ -3000,36 +3023,71 @@ function parseEntity(text) {
|
|
|
3000
3023
|
};
|
|
3001
3024
|
const parts = [];
|
|
3002
3025
|
while (!isAtEnd() && current().type !== "NEWLINE" /* NEWLINE */) {
|
|
3003
|
-
|
|
3026
|
+
const tok = current();
|
|
3027
|
+
parts.push(tok.type === "STRING" /* STRING */ ? `"${tok.value}"` : tok.value);
|
|
3004
3028
|
advance();
|
|
3005
3029
|
}
|
|
3006
3030
|
const content = parts.join(" ").trim();
|
|
3007
|
-
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
else
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
else if (
|
|
3027
|
-
else if (
|
|
3028
|
-
|
|
3031
|
+
const segments = content.split(",").map((s) => s.trim());
|
|
3032
|
+
if (segments.length === 0) return field;
|
|
3033
|
+
const typeSpec = segments[0];
|
|
3034
|
+
if (typeSpec.includes("|")) {
|
|
3035
|
+
field.fieldType = "text";
|
|
3036
|
+
field.enumValues = typeSpec.split("|").map((v) => v.trim()).filter((v) => v.length > 0);
|
|
3037
|
+
} else {
|
|
3038
|
+
const lower = typeSpec.toLowerCase();
|
|
3039
|
+
if (lower.startsWith("list of ")) {
|
|
3040
|
+
field.fieldType = "list";
|
|
3041
|
+
field.items = { type: parseDomainFieldType(lower.slice("list of ".length).trim()) };
|
|
3042
|
+
} else {
|
|
3043
|
+
field.fieldType = parseDomainFieldType(lower);
|
|
3044
|
+
}
|
|
3045
|
+
}
|
|
3046
|
+
for (let i = 1; i < segments.length; i++) {
|
|
3047
|
+
const segment = segments[i];
|
|
3048
|
+
const lower = segment.toLowerCase();
|
|
3049
|
+
if (lower === "required") field.required = true;
|
|
3050
|
+
else if (lower === "unique") field.unique = true;
|
|
3051
|
+
else if (lower === "auto") field.auto = true;
|
|
3052
|
+
else if (lower.startsWith("default ")) {
|
|
3053
|
+
field.default = parseDefaultLiteral(segment.slice("default ".length).trim());
|
|
3029
3054
|
}
|
|
3030
3055
|
}
|
|
3031
3056
|
return field;
|
|
3032
3057
|
}
|
|
3058
|
+
function parseDomainFieldType(keyword) {
|
|
3059
|
+
if (keyword === "long text") return "long text";
|
|
3060
|
+
if (keyword === "text" || keyword === "string") return "text";
|
|
3061
|
+
if (keyword === "number" || keyword === "integer") return "number";
|
|
3062
|
+
if (keyword === "currency") return "currency";
|
|
3063
|
+
if (keyword === "date") return "date";
|
|
3064
|
+
if (keyword === "timestamp") return "timestamp";
|
|
3065
|
+
if (keyword === "datetime") return "datetime";
|
|
3066
|
+
if (keyword === "yes/no" || keyword === "boolean") return "yes/no";
|
|
3067
|
+
if (keyword === "list" || keyword === "array") return "list";
|
|
3068
|
+
if (keyword === "object") return "object";
|
|
3069
|
+
if (keyword === "enum") return "enum";
|
|
3070
|
+
if (keyword === "relation") return "relation";
|
|
3071
|
+
return "text";
|
|
3072
|
+
}
|
|
3073
|
+
function parseDefaultLiteral(text2) {
|
|
3074
|
+
const trimmed = text2.trim();
|
|
3075
|
+
if (trimmed.startsWith('"') && trimmed.endsWith('"') || trimmed.startsWith("'") && trimmed.endsWith("'")) {
|
|
3076
|
+
return trimmed.slice(1, -1);
|
|
3077
|
+
}
|
|
3078
|
+
if (trimmed.startsWith("[") && trimmed.endsWith("]") || trimmed.startsWith("{") && trimmed.endsWith("}")) {
|
|
3079
|
+
try {
|
|
3080
|
+
return JSON.parse(trimmed);
|
|
3081
|
+
} catch {
|
|
3082
|
+
}
|
|
3083
|
+
}
|
|
3084
|
+
if (trimmed.toLowerCase() === "true") return true;
|
|
3085
|
+
if (trimmed.toLowerCase() === "false") return false;
|
|
3086
|
+
if (trimmed.toLowerCase() === "null") return null;
|
|
3087
|
+
const num = Number(trimmed);
|
|
3088
|
+
if (!Number.isNaN(num) && trimmed !== "") return num;
|
|
3089
|
+
return trimmed;
|
|
3090
|
+
}
|
|
3033
3091
|
function parseRelationship(entity2, relType) {
|
|
3034
3092
|
if (current().type !== "IDENTIFIER" /* IDENTIFIER */) {
|
|
3035
3093
|
return;
|
|
@@ -3100,27 +3158,32 @@ function formatEntityToDomain(entity) {
|
|
|
3100
3158
|
return lines.join("\n");
|
|
3101
3159
|
}
|
|
3102
3160
|
function formatEntityToSchema(entity) {
|
|
3103
|
-
const fields = entity.fields.map((field) =>
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3161
|
+
const fields = entity.fields.map((field) => {
|
|
3162
|
+
const schemaType = field.enumValues && field.enumValues.length > 0 ? mapFieldTypeToSchema(field.fieldType === "enum" ? "text" : field.fieldType) : mapFieldTypeToSchema(field.fieldType);
|
|
3163
|
+
const out2 = {
|
|
3164
|
+
name: field.name,
|
|
3165
|
+
type: schemaType
|
|
3166
|
+
};
|
|
3167
|
+
if (field.required) out2.required = true;
|
|
3168
|
+
if (field.unique) out2.unique = true;
|
|
3169
|
+
if (field.auto) out2.auto = true;
|
|
3170
|
+
if (field.enumValues && field.enumValues.length > 0) {
|
|
3171
|
+
out2.values = field.enumValues;
|
|
3172
|
+
}
|
|
3173
|
+
if (field.items) {
|
|
3174
|
+
out2.items = { type: mapFieldTypeToSchema(field.items.type) };
|
|
3175
|
+
}
|
|
3176
|
+
if (field.default !== void 0) {
|
|
3177
|
+
out2.default = field.default;
|
|
3178
|
+
}
|
|
3179
|
+
return out2;
|
|
3180
|
+
});
|
|
3113
3181
|
for (const rel of entity.relationships) {
|
|
3114
3182
|
if (rel.relationshipType === "belongs_to") {
|
|
3115
3183
|
const fieldName = rel.alias ? toCamelCase(rel.alias) + "Id" : toCamelCase(rel.targetEntity) + "Id";
|
|
3116
3184
|
fields.push({
|
|
3117
3185
|
name: fieldName,
|
|
3118
3186
|
type: "relation",
|
|
3119
|
-
required: void 0,
|
|
3120
|
-
unique: void 0,
|
|
3121
|
-
auto: void 0,
|
|
3122
|
-
values: void 0,
|
|
3123
|
-
default: void 0,
|
|
3124
3187
|
relation: {
|
|
3125
3188
|
entity: rel.targetEntity,
|
|
3126
3189
|
type: "many-to-one"
|
|
@@ -3128,13 +3191,15 @@ function formatEntityToSchema(entity) {
|
|
|
3128
3191
|
});
|
|
3129
3192
|
}
|
|
3130
3193
|
}
|
|
3131
|
-
|
|
3194
|
+
const out = {
|
|
3132
3195
|
name: entity.name,
|
|
3133
3196
|
collection: toKebabCase(entity.name) + "s",
|
|
3134
|
-
fields: fields.filter((f) => Object.keys(f).length > 0)
|
|
3135
|
-
states: entity.states,
|
|
3136
|
-
initialState: entity.initialState
|
|
3197
|
+
fields: fields.filter((f) => Object.keys(f).length > 0)
|
|
3137
3198
|
};
|
|
3199
|
+
if (entity.states && entity.states.length > 0) out.states = entity.states;
|
|
3200
|
+
if (entity.initialState !== void 0) out.initialState = entity.initialState;
|
|
3201
|
+
if (entity.persistence !== void 0) out.persistence = entity.persistence;
|
|
3202
|
+
return out;
|
|
3138
3203
|
}
|
|
3139
3204
|
function toCamelCase(text) {
|
|
3140
3205
|
return text.toLowerCase().split(/\s+/).map(
|
|
@@ -3157,14 +3222,6 @@ function startsWithVowel(text) {
|
|
|
3157
3222
|
}
|
|
3158
3223
|
return /^[aeiou]/i.test(text);
|
|
3159
3224
|
}
|
|
3160
|
-
function parseValue(text) {
|
|
3161
|
-
text = text.trim();
|
|
3162
|
-
if (text.toLowerCase() === "true") return true;
|
|
3163
|
-
if (text.toLowerCase() === "false") return false;
|
|
3164
|
-
const num = parseFloat(text);
|
|
3165
|
-
if (!isNaN(num)) return num;
|
|
3166
|
-
return text.replace(/^["']|["']$/g, "");
|
|
3167
|
-
}
|
|
3168
3225
|
function formatFieldType(field) {
|
|
3169
3226
|
const parts = [];
|
|
3170
3227
|
if (field.enumValues && field.enumValues.length > 0) {
|
|
@@ -3764,7 +3821,7 @@ function parseFieldCheck(text, ctx) {
|
|
|
3764
3821
|
type: "field_check",
|
|
3765
3822
|
field,
|
|
3766
3823
|
check: "equals",
|
|
3767
|
-
value:
|
|
3824
|
+
value: parseValue(value)
|
|
3768
3825
|
};
|
|
3769
3826
|
}
|
|
3770
3827
|
}
|
|
@@ -3787,7 +3844,7 @@ function parseComparison(text, ctx) {
|
|
|
3787
3844
|
type: "comparison",
|
|
3788
3845
|
field,
|
|
3789
3846
|
operator: "!=",
|
|
3790
|
-
value:
|
|
3847
|
+
value: parseValue(isNotMatch[2])
|
|
3791
3848
|
};
|
|
3792
3849
|
}
|
|
3793
3850
|
}
|
|
@@ -3800,7 +3857,7 @@ function parseComparison(text, ctx) {
|
|
|
3800
3857
|
type: "comparison",
|
|
3801
3858
|
field,
|
|
3802
3859
|
operator,
|
|
3803
|
-
value:
|
|
3860
|
+
value: parseValue(match[2])
|
|
3804
3861
|
};
|
|
3805
3862
|
}
|
|
3806
3863
|
}
|
|
@@ -3824,7 +3881,7 @@ function parseFieldReference(text, ctx) {
|
|
|
3824
3881
|
fieldName
|
|
3825
3882
|
};
|
|
3826
3883
|
}
|
|
3827
|
-
function
|
|
3884
|
+
function parseValue(text) {
|
|
3828
3885
|
text = text.trim();
|
|
3829
3886
|
if (text.startsWith('"') && text.endsWith('"') || text.startsWith("'") && text.endsWith("'")) {
|
|
3830
3887
|
return text.slice(1, -1);
|
|
@@ -4107,37 +4164,37 @@ function parseComparison2(text, ctx) {
|
|
|
4107
4164
|
const atLeastMatch = text.match(/^(.+?)\s+is\s+at\s+least\s+(.+)$/i);
|
|
4108
4165
|
if (atLeastMatch) {
|
|
4109
4166
|
const field = parseFieldRef(atLeastMatch[1]);
|
|
4110
|
-
const value =
|
|
4167
|
+
const value = parseValue2(atLeastMatch[2]);
|
|
4111
4168
|
return [">=", field, value];
|
|
4112
4169
|
}
|
|
4113
4170
|
const atMostMatch = text.match(/^(.+?)\s+is\s+at\s+most\s+(.+)$/i);
|
|
4114
4171
|
if (atMostMatch) {
|
|
4115
4172
|
const field = parseFieldRef(atMostMatch[1]);
|
|
4116
|
-
const value =
|
|
4173
|
+
const value = parseValue2(atMostMatch[2]);
|
|
4117
4174
|
return ["<=", field, value];
|
|
4118
4175
|
}
|
|
4119
4176
|
const greaterThanMatch = text.match(/^(.+?)\s+is\s+greater\s+than\s+(.+)$/i);
|
|
4120
4177
|
if (greaterThanMatch) {
|
|
4121
4178
|
const field = parseFieldRef(greaterThanMatch[1]);
|
|
4122
|
-
const value =
|
|
4179
|
+
const value = parseValue2(greaterThanMatch[2]);
|
|
4123
4180
|
return [">", field, value];
|
|
4124
4181
|
}
|
|
4125
4182
|
const lessThanMatch = text.match(/^(.+?)\s+is\s+less\s+than\s+(.+)$/i);
|
|
4126
4183
|
if (lessThanMatch) {
|
|
4127
4184
|
const field = parseFieldRef(lessThanMatch[1]);
|
|
4128
|
-
const value =
|
|
4185
|
+
const value = parseValue2(lessThanMatch[2]);
|
|
4129
4186
|
return ["<", field, value];
|
|
4130
4187
|
}
|
|
4131
4188
|
const isNotMatch = text.match(/^(.+?)\s+is\s+not\s+(.+)$/i);
|
|
4132
4189
|
if (isNotMatch) {
|
|
4133
4190
|
const field = parseFieldRef(isNotMatch[1]);
|
|
4134
|
-
const value =
|
|
4191
|
+
const value = parseValue2(isNotMatch[2]);
|
|
4135
4192
|
return ["!=", field, value];
|
|
4136
4193
|
}
|
|
4137
4194
|
const isMatch = text.match(/^(.+?)\s+is\s+(.+)$/i);
|
|
4138
4195
|
if (isMatch) {
|
|
4139
4196
|
const field = parseFieldRef(isMatch[1]);
|
|
4140
|
-
const value =
|
|
4197
|
+
const value = parseValue2(isMatch[2]);
|
|
4141
4198
|
return ["=", field, value];
|
|
4142
4199
|
}
|
|
4143
4200
|
const opPatterns = [
|
|
@@ -4152,7 +4209,7 @@ function parseComparison2(text, ctx) {
|
|
|
4152
4209
|
const match = text.match(pattern);
|
|
4153
4210
|
if (match) {
|
|
4154
4211
|
const left = parseFieldRef(match[1]);
|
|
4155
|
-
const right =
|
|
4212
|
+
const right = parseValue2(match[2]);
|
|
4156
4213
|
return [op, left, right];
|
|
4157
4214
|
}
|
|
4158
4215
|
}
|
|
@@ -4313,7 +4370,7 @@ function parseFieldRef(text, ctx) {
|
|
|
4313
4370
|
const fieldName = toCamelCase3(text);
|
|
4314
4371
|
return `@entity.${fieldName}`;
|
|
4315
4372
|
}
|
|
4316
|
-
function
|
|
4373
|
+
function parseValue2(text) {
|
|
4317
4374
|
text = text.trim();
|
|
4318
4375
|
if (text.startsWith('"') && text.endsWith('"') || text.startsWith("'") && text.endsWith("'")) {
|
|
4319
4376
|
return text.slice(1, -1);
|
|
@@ -4361,7 +4418,7 @@ function parseEffectValue(text, ctx) {
|
|
|
4361
4418
|
if (text.includes(".") || text.toLowerCase().startsWith("incoming ") || text.match(/^\w+'s\s+/) || /^[a-z]/.test(text)) {
|
|
4362
4419
|
return parseFieldRef(text);
|
|
4363
4420
|
}
|
|
4364
|
-
return
|
|
4421
|
+
return parseValue2(text);
|
|
4365
4422
|
}
|
|
4366
4423
|
function processBindingsInObject(obj) {
|
|
4367
4424
|
if (obj === null || obj === void 0) {
|
|
@@ -4619,6 +4676,18 @@ function parseBehavior(text, entityName) {
|
|
|
4619
4676
|
}
|
|
4620
4677
|
return true;
|
|
4621
4678
|
}
|
|
4679
|
+
if (token.type === "IDENTIFIER" /* IDENTIFIER */ && token.value.toLowerCase() === "scope") {
|
|
4680
|
+
advance();
|
|
4681
|
+
skip("COLON" /* COLON */);
|
|
4682
|
+
if (current().type === "IDENTIFIER" /* IDENTIFIER */) {
|
|
4683
|
+
const val = current().value.toLowerCase();
|
|
4684
|
+
if (val === "instance" || val === "collection") {
|
|
4685
|
+
behavior2.scope = val;
|
|
4686
|
+
advance();
|
|
4687
|
+
}
|
|
4688
|
+
}
|
|
4689
|
+
return true;
|
|
4690
|
+
}
|
|
4622
4691
|
if (token.type === "STATES" /* STATES */) {
|
|
4623
4692
|
advance();
|
|
4624
4693
|
skip("COLON" /* COLON */);
|
|
@@ -5110,6 +5179,9 @@ function formatBehaviorToSchema(behavior) {
|
|
|
5110
5179
|
name: behavior.name.replace(/\s+/g, ""),
|
|
5111
5180
|
description: behavior.name
|
|
5112
5181
|
};
|
|
5182
|
+
if (behavior.scope !== void 0) {
|
|
5183
|
+
trait.scope = behavior.scope;
|
|
5184
|
+
}
|
|
5113
5185
|
if (behavior.states.length > 0) {
|
|
5114
5186
|
trait.stateMachine = {
|
|
5115
5187
|
states: behavior.states.map((state, index) => ({
|
|
@@ -5124,21 +5196,30 @@ function formatBehaviorToSchema(behavior) {
|
|
|
5124
5196
|
event: t.event
|
|
5125
5197
|
};
|
|
5126
5198
|
if (t.guards.length > 0) {
|
|
5127
|
-
const guardExprs =
|
|
5128
|
-
|
|
5129
|
-
|
|
5199
|
+
const guardExprs = [];
|
|
5200
|
+
for (const g of t.guards) {
|
|
5201
|
+
const raw = g.raw ?? formatGuardToCondition(g);
|
|
5202
|
+
try {
|
|
5203
|
+
guardExprs.push(parseDomainGuard(raw, behavior.entityName));
|
|
5204
|
+
} catch {
|
|
5130
5205
|
}
|
|
5131
|
-
|
|
5132
|
-
|
|
5133
|
-
|
|
5206
|
+
}
|
|
5207
|
+
if (guardExprs.length === 1) transition.guard = guardExprs[0];
|
|
5208
|
+
else if (guardExprs.length > 1) transition.guard = ["and", ...guardExprs];
|
|
5134
5209
|
}
|
|
5135
5210
|
if (t.effects.length > 0) {
|
|
5136
|
-
|
|
5211
|
+
const effectExprs = [];
|
|
5212
|
+
for (const e of t.effects) {
|
|
5137
5213
|
if (e.config && "_rawSExpr" in e.config && Array.isArray(e.config._rawSExpr)) {
|
|
5138
|
-
|
|
5214
|
+
effectExprs.push(e.config._rawSExpr);
|
|
5215
|
+
continue;
|
|
5139
5216
|
}
|
|
5140
|
-
|
|
5141
|
-
|
|
5217
|
+
try {
|
|
5218
|
+
effectExprs.push(parseDomainEffect(e.description, behavior.entityName));
|
|
5219
|
+
} catch {
|
|
5220
|
+
}
|
|
5221
|
+
}
|
|
5222
|
+
if (effectExprs.length > 0) transition.effects = effectExprs;
|
|
5142
5223
|
}
|
|
5143
5224
|
return transition;
|
|
5144
5225
|
})
|
|
@@ -5259,11 +5340,13 @@ function schemaEntityToDomainEntity(entity) {
|
|
|
5259
5340
|
unique: field.unique || false,
|
|
5260
5341
|
auto: field.auto || false
|
|
5261
5342
|
};
|
|
5262
|
-
|
|
5263
|
-
|
|
5264
|
-
|
|
5265
|
-
|
|
5266
|
-
|
|
5343
|
+
const enumValues = field.enumValues ?? field.values;
|
|
5344
|
+
if (enumValues && enumValues.length > 0) {
|
|
5345
|
+
domainField.enumValues = enumValues;
|
|
5346
|
+
}
|
|
5347
|
+
const items = field.items;
|
|
5348
|
+
if (items && typeof items.type === "string") {
|
|
5349
|
+
domainField.items = { type: mapSchemaTypeToDomain(items.type) };
|
|
5267
5350
|
}
|
|
5268
5351
|
if (field.default !== void 0) {
|
|
5269
5352
|
domainField.default = field.default;
|
|
@@ -5272,6 +5355,7 @@ function schemaEntityToDomainEntity(entity) {
|
|
|
5272
5355
|
}
|
|
5273
5356
|
const states = entity.states;
|
|
5274
5357
|
const initialState = entity.initialState;
|
|
5358
|
+
const persistence = entity.persistence;
|
|
5275
5359
|
return {
|
|
5276
5360
|
type: "entity",
|
|
5277
5361
|
name,
|
|
@@ -5279,13 +5363,17 @@ function schemaEntityToDomainEntity(entity) {
|
|
|
5279
5363
|
fields,
|
|
5280
5364
|
relationships,
|
|
5281
5365
|
states,
|
|
5282
|
-
initialState
|
|
5366
|
+
initialState,
|
|
5367
|
+
persistence
|
|
5283
5368
|
};
|
|
5284
5369
|
}
|
|
5285
5370
|
function formatEntityText(entity) {
|
|
5286
5371
|
const lines = [];
|
|
5287
5372
|
const article = startsWithVowel2(entity.name) ? "An" : "A";
|
|
5288
5373
|
lines.push(`${article} ${entity.name} is ${entity.description}`);
|
|
5374
|
+
if (entity.persistence !== void 0 && entity.persistence !== "persistent") {
|
|
5375
|
+
lines.push(`Persistence: ${entity.persistence}`);
|
|
5376
|
+
}
|
|
5289
5377
|
if (entity.fields.length > 0) {
|
|
5290
5378
|
lines.push("");
|
|
5291
5379
|
lines.push("It has:");
|
|
@@ -5332,6 +5420,8 @@ function formatFieldType2(field) {
|
|
|
5332
5420
|
const parts = [];
|
|
5333
5421
|
if (field.enumValues && field.enumValues.length > 0) {
|
|
5334
5422
|
parts.push(field.enumValues.join(" | "));
|
|
5423
|
+
} else if (field.fieldType === "list" && field.items) {
|
|
5424
|
+
parts.push(`list of ${field.items.type}`);
|
|
5335
5425
|
} else {
|
|
5336
5426
|
parts.push(field.fieldType);
|
|
5337
5427
|
}
|
|
@@ -5339,11 +5429,17 @@ function formatFieldType2(field) {
|
|
|
5339
5429
|
if (field.unique) parts.push("unique");
|
|
5340
5430
|
if (field.auto) parts.push("auto");
|
|
5341
5431
|
if (field.default !== void 0) {
|
|
5342
|
-
|
|
5343
|
-
parts.push(`default ${defaultStr}`);
|
|
5432
|
+
parts.push(`default ${formatDefaultValue(field.default)}`);
|
|
5344
5433
|
}
|
|
5345
5434
|
return parts.join(", ");
|
|
5346
5435
|
}
|
|
5436
|
+
function formatDefaultValue(value) {
|
|
5437
|
+
if (typeof value === "string") return `"${value}"`;
|
|
5438
|
+
if (value === null || typeof value === "number" || typeof value === "boolean") {
|
|
5439
|
+
return String(value);
|
|
5440
|
+
}
|
|
5441
|
+
return JSON.stringify(value);
|
|
5442
|
+
}
|
|
5347
5443
|
function toSpaceSeparated3(text) {
|
|
5348
5444
|
return text.replace(/([a-z])([A-Z])/g, "$1 $2").toLowerCase();
|
|
5349
5445
|
}
|
|
@@ -6337,6 +6433,7 @@ function schemaTraitToDomainBehavior(trait, entityName) {
|
|
|
6337
6433
|
effects
|
|
6338
6434
|
});
|
|
6339
6435
|
}
|
|
6436
|
+
const scope = trait.scope;
|
|
6340
6437
|
return {
|
|
6341
6438
|
type: "behavior",
|
|
6342
6439
|
name: formatBehaviorName(name),
|
|
@@ -6345,13 +6442,18 @@ function schemaTraitToDomainBehavior(trait, entityName) {
|
|
|
6345
6442
|
initialState,
|
|
6346
6443
|
transitions,
|
|
6347
6444
|
ticks,
|
|
6348
|
-
rules: []
|
|
6445
|
+
rules: [],
|
|
6446
|
+
scope
|
|
6349
6447
|
};
|
|
6350
6448
|
}
|
|
6351
6449
|
function formatBehaviorText(behavior) {
|
|
6352
6450
|
const lines = [];
|
|
6353
6451
|
lines.push(behavior.name);
|
|
6354
6452
|
lines.push("");
|
|
6453
|
+
if (behavior.scope !== void 0 && behavior.scope !== "instance") {
|
|
6454
|
+
lines.push(`Scope: ${behavior.scope}`);
|
|
6455
|
+
lines.push("");
|
|
6456
|
+
}
|
|
6355
6457
|
if (behavior.states.length > 0) {
|
|
6356
6458
|
lines.push(`States: ${behavior.states.join(", ")}`);
|
|
6357
6459
|
lines.push("");
|
|
@@ -6662,7 +6764,7 @@ function parseSchemaCondition(condition, defaultEntityName) {
|
|
|
6662
6764
|
type: "comparison",
|
|
6663
6765
|
field: fieldRef,
|
|
6664
6766
|
operator: comparisonMatch[2],
|
|
6665
|
-
value:
|
|
6767
|
+
value: parseValue3(comparisonMatch[3])
|
|
6666
6768
|
};
|
|
6667
6769
|
}
|
|
6668
6770
|
}
|
|
@@ -6690,7 +6792,7 @@ function parseFieldReference2(text, defaultEntityName) {
|
|
|
6690
6792
|
}
|
|
6691
6793
|
return null;
|
|
6692
6794
|
}
|
|
6693
|
-
function
|
|
6795
|
+
function parseValue3(text) {
|
|
6694
6796
|
text = text.trim();
|
|
6695
6797
|
if (text.startsWith('"') && text.endsWith('"') || text.startsWith("'") && text.endsWith("'")) {
|
|
6696
6798
|
return text.slice(1, -1);
|
|
@@ -7064,7 +7166,7 @@ function convertDomainToSchema(domainText, baseSchema) {
|
|
|
7064
7166
|
const entity = {
|
|
7065
7167
|
name: entityRecord.name,
|
|
7066
7168
|
fields: entityRecord.fields || [],
|
|
7067
|
-
persistence: "persistent"
|
|
7169
|
+
persistence: entityRecord.persistence ?? "persistent"
|
|
7068
7170
|
};
|
|
7069
7171
|
parsedEntities.push({
|
|
7070
7172
|
name: result.data.name,
|