@almadar/core 7.16.0 → 7.18.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/{compose-behaviors-D2vPjRpX.d.ts → compose-behaviors-DWMFJEz3.d.ts} +1 -1
- package/dist/domain-language/index.d.ts +164 -3
- package/dist/domain-language/index.js +180 -85
- package/dist/domain-language/index.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +180 -85
- package/dist/index.js.map +1 -1
- package/dist/{schema-DJzXvJHi.d.ts → schema-WX5fN1Ra.d.ts} +1 -1
- package/dist/types/index.d.ts +2 -2
- 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, FactoryEntitySignature, FactoryPageSignature, FactorySignature, FactorySignatureCatalog, FactorySignatureEntityField, FactoryTraitKind, FactoryTraitSignature, 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
|
@@ -2693,6 +2693,7 @@ function parseEntity(text) {
|
|
|
2693
2693
|
const tokens = lexer.tokenize();
|
|
2694
2694
|
let pos = 0;
|
|
2695
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 };
|
|
2696
2697
|
const advance = () => tokens[pos++];
|
|
2697
2698
|
const isAtEnd = () => current().type === "EOF" /* EOF */;
|
|
2698
2699
|
const skip = (type) => {
|
|
@@ -2774,6 +2775,21 @@ function parseEntity(text) {
|
|
|
2774
2775
|
}
|
|
2775
2776
|
function parseSection(entity2) {
|
|
2776
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
|
+
}
|
|
2777
2793
|
if (token.type === "INDENT" /* INDENT */) {
|
|
2778
2794
|
advance();
|
|
2779
2795
|
parseIndentedFields(entity2);
|
|
@@ -3007,36 +3023,71 @@ function parseEntity(text) {
|
|
|
3007
3023
|
};
|
|
3008
3024
|
const parts = [];
|
|
3009
3025
|
while (!isAtEnd() && current().type !== "NEWLINE" /* NEWLINE */) {
|
|
3010
|
-
|
|
3026
|
+
const tok = current();
|
|
3027
|
+
parts.push(tok.type === "STRING" /* STRING */ ? `"${tok.value}"` : tok.value);
|
|
3011
3028
|
advance();
|
|
3012
3029
|
}
|
|
3013
3030
|
const content = parts.join(" ").trim();
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
else
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
else if (
|
|
3034
|
-
else if (
|
|
3035
|
-
|
|
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());
|
|
3036
3054
|
}
|
|
3037
3055
|
}
|
|
3038
3056
|
return field;
|
|
3039
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
|
+
}
|
|
3040
3091
|
function parseRelationship(entity2, relType) {
|
|
3041
3092
|
if (current().type !== "IDENTIFIER" /* IDENTIFIER */) {
|
|
3042
3093
|
return;
|
|
@@ -3107,27 +3158,32 @@ function formatEntityToDomain(entity) {
|
|
|
3107
3158
|
return lines.join("\n");
|
|
3108
3159
|
}
|
|
3109
3160
|
function formatEntityToSchema(entity) {
|
|
3110
|
-
const fields = entity.fields.map((field) =>
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
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
|
+
});
|
|
3120
3181
|
for (const rel of entity.relationships) {
|
|
3121
3182
|
if (rel.relationshipType === "belongs_to") {
|
|
3122
3183
|
const fieldName = rel.alias ? toCamelCase(rel.alias) + "Id" : toCamelCase(rel.targetEntity) + "Id";
|
|
3123
3184
|
fields.push({
|
|
3124
3185
|
name: fieldName,
|
|
3125
3186
|
type: "relation",
|
|
3126
|
-
required: void 0,
|
|
3127
|
-
unique: void 0,
|
|
3128
|
-
auto: void 0,
|
|
3129
|
-
values: void 0,
|
|
3130
|
-
default: void 0,
|
|
3131
3187
|
relation: {
|
|
3132
3188
|
entity: rel.targetEntity,
|
|
3133
3189
|
type: "many-to-one"
|
|
@@ -3135,13 +3191,15 @@ function formatEntityToSchema(entity) {
|
|
|
3135
3191
|
});
|
|
3136
3192
|
}
|
|
3137
3193
|
}
|
|
3138
|
-
|
|
3194
|
+
const out = {
|
|
3139
3195
|
name: entity.name,
|
|
3140
3196
|
collection: toKebabCase(entity.name) + "s",
|
|
3141
|
-
fields: fields.filter((f) => Object.keys(f).length > 0)
|
|
3142
|
-
states: entity.states,
|
|
3143
|
-
initialState: entity.initialState
|
|
3197
|
+
fields: fields.filter((f) => Object.keys(f).length > 0)
|
|
3144
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;
|
|
3145
3203
|
}
|
|
3146
3204
|
function toCamelCase(text) {
|
|
3147
3205
|
return text.toLowerCase().split(/\s+/).map(
|
|
@@ -3164,14 +3222,6 @@ function startsWithVowel(text) {
|
|
|
3164
3222
|
}
|
|
3165
3223
|
return /^[aeiou]/i.test(text);
|
|
3166
3224
|
}
|
|
3167
|
-
function parseValue(text) {
|
|
3168
|
-
text = text.trim();
|
|
3169
|
-
if (text.toLowerCase() === "true") return true;
|
|
3170
|
-
if (text.toLowerCase() === "false") return false;
|
|
3171
|
-
const num = parseFloat(text);
|
|
3172
|
-
if (!isNaN(num)) return num;
|
|
3173
|
-
return text.replace(/^["']|["']$/g, "");
|
|
3174
|
-
}
|
|
3175
3225
|
function formatFieldType(field) {
|
|
3176
3226
|
const parts = [];
|
|
3177
3227
|
if (field.enumValues && field.enumValues.length > 0) {
|
|
@@ -3771,7 +3821,7 @@ function parseFieldCheck(text, ctx) {
|
|
|
3771
3821
|
type: "field_check",
|
|
3772
3822
|
field,
|
|
3773
3823
|
check: "equals",
|
|
3774
|
-
value:
|
|
3824
|
+
value: parseValue(value)
|
|
3775
3825
|
};
|
|
3776
3826
|
}
|
|
3777
3827
|
}
|
|
@@ -3794,7 +3844,7 @@ function parseComparison(text, ctx) {
|
|
|
3794
3844
|
type: "comparison",
|
|
3795
3845
|
field,
|
|
3796
3846
|
operator: "!=",
|
|
3797
|
-
value:
|
|
3847
|
+
value: parseValue(isNotMatch[2])
|
|
3798
3848
|
};
|
|
3799
3849
|
}
|
|
3800
3850
|
}
|
|
@@ -3807,7 +3857,7 @@ function parseComparison(text, ctx) {
|
|
|
3807
3857
|
type: "comparison",
|
|
3808
3858
|
field,
|
|
3809
3859
|
operator,
|
|
3810
|
-
value:
|
|
3860
|
+
value: parseValue(match[2])
|
|
3811
3861
|
};
|
|
3812
3862
|
}
|
|
3813
3863
|
}
|
|
@@ -3831,7 +3881,7 @@ function parseFieldReference(text, ctx) {
|
|
|
3831
3881
|
fieldName
|
|
3832
3882
|
};
|
|
3833
3883
|
}
|
|
3834
|
-
function
|
|
3884
|
+
function parseValue(text) {
|
|
3835
3885
|
text = text.trim();
|
|
3836
3886
|
if (text.startsWith('"') && text.endsWith('"') || text.startsWith("'") && text.endsWith("'")) {
|
|
3837
3887
|
return text.slice(1, -1);
|
|
@@ -4114,37 +4164,37 @@ function parseComparison2(text, ctx) {
|
|
|
4114
4164
|
const atLeastMatch = text.match(/^(.+?)\s+is\s+at\s+least\s+(.+)$/i);
|
|
4115
4165
|
if (atLeastMatch) {
|
|
4116
4166
|
const field = parseFieldRef(atLeastMatch[1]);
|
|
4117
|
-
const value =
|
|
4167
|
+
const value = parseValue2(atLeastMatch[2]);
|
|
4118
4168
|
return [">=", field, value];
|
|
4119
4169
|
}
|
|
4120
4170
|
const atMostMatch = text.match(/^(.+?)\s+is\s+at\s+most\s+(.+)$/i);
|
|
4121
4171
|
if (atMostMatch) {
|
|
4122
4172
|
const field = parseFieldRef(atMostMatch[1]);
|
|
4123
|
-
const value =
|
|
4173
|
+
const value = parseValue2(atMostMatch[2]);
|
|
4124
4174
|
return ["<=", field, value];
|
|
4125
4175
|
}
|
|
4126
4176
|
const greaterThanMatch = text.match(/^(.+?)\s+is\s+greater\s+than\s+(.+)$/i);
|
|
4127
4177
|
if (greaterThanMatch) {
|
|
4128
4178
|
const field = parseFieldRef(greaterThanMatch[1]);
|
|
4129
|
-
const value =
|
|
4179
|
+
const value = parseValue2(greaterThanMatch[2]);
|
|
4130
4180
|
return [">", field, value];
|
|
4131
4181
|
}
|
|
4132
4182
|
const lessThanMatch = text.match(/^(.+?)\s+is\s+less\s+than\s+(.+)$/i);
|
|
4133
4183
|
if (lessThanMatch) {
|
|
4134
4184
|
const field = parseFieldRef(lessThanMatch[1]);
|
|
4135
|
-
const value =
|
|
4185
|
+
const value = parseValue2(lessThanMatch[2]);
|
|
4136
4186
|
return ["<", field, value];
|
|
4137
4187
|
}
|
|
4138
4188
|
const isNotMatch = text.match(/^(.+?)\s+is\s+not\s+(.+)$/i);
|
|
4139
4189
|
if (isNotMatch) {
|
|
4140
4190
|
const field = parseFieldRef(isNotMatch[1]);
|
|
4141
|
-
const value =
|
|
4191
|
+
const value = parseValue2(isNotMatch[2]);
|
|
4142
4192
|
return ["!=", field, value];
|
|
4143
4193
|
}
|
|
4144
4194
|
const isMatch = text.match(/^(.+?)\s+is\s+(.+)$/i);
|
|
4145
4195
|
if (isMatch) {
|
|
4146
4196
|
const field = parseFieldRef(isMatch[1]);
|
|
4147
|
-
const value =
|
|
4197
|
+
const value = parseValue2(isMatch[2]);
|
|
4148
4198
|
return ["=", field, value];
|
|
4149
4199
|
}
|
|
4150
4200
|
const opPatterns = [
|
|
@@ -4159,7 +4209,7 @@ function parseComparison2(text, ctx) {
|
|
|
4159
4209
|
const match = text.match(pattern);
|
|
4160
4210
|
if (match) {
|
|
4161
4211
|
const left = parseFieldRef(match[1]);
|
|
4162
|
-
const right =
|
|
4212
|
+
const right = parseValue2(match[2]);
|
|
4163
4213
|
return [op, left, right];
|
|
4164
4214
|
}
|
|
4165
4215
|
}
|
|
@@ -4320,7 +4370,7 @@ function parseFieldRef(text, ctx) {
|
|
|
4320
4370
|
const fieldName = toCamelCase3(text);
|
|
4321
4371
|
return `@entity.${fieldName}`;
|
|
4322
4372
|
}
|
|
4323
|
-
function
|
|
4373
|
+
function parseValue2(text) {
|
|
4324
4374
|
text = text.trim();
|
|
4325
4375
|
if (text.startsWith('"') && text.endsWith('"') || text.startsWith("'") && text.endsWith("'")) {
|
|
4326
4376
|
return text.slice(1, -1);
|
|
@@ -4368,7 +4418,7 @@ function parseEffectValue(text, ctx) {
|
|
|
4368
4418
|
if (text.includes(".") || text.toLowerCase().startsWith("incoming ") || text.match(/^\w+'s\s+/) || /^[a-z]/.test(text)) {
|
|
4369
4419
|
return parseFieldRef(text);
|
|
4370
4420
|
}
|
|
4371
|
-
return
|
|
4421
|
+
return parseValue2(text);
|
|
4372
4422
|
}
|
|
4373
4423
|
function processBindingsInObject(obj) {
|
|
4374
4424
|
if (obj === null || obj === void 0) {
|
|
@@ -4626,6 +4676,18 @@ function parseBehavior(text, entityName) {
|
|
|
4626
4676
|
}
|
|
4627
4677
|
return true;
|
|
4628
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
|
+
}
|
|
4629
4691
|
if (token.type === "STATES" /* STATES */) {
|
|
4630
4692
|
advance();
|
|
4631
4693
|
skip("COLON" /* COLON */);
|
|
@@ -5117,6 +5179,9 @@ function formatBehaviorToSchema(behavior) {
|
|
|
5117
5179
|
name: behavior.name.replace(/\s+/g, ""),
|
|
5118
5180
|
description: behavior.name
|
|
5119
5181
|
};
|
|
5182
|
+
if (behavior.scope !== void 0) {
|
|
5183
|
+
trait.scope = behavior.scope;
|
|
5184
|
+
}
|
|
5120
5185
|
if (behavior.states.length > 0) {
|
|
5121
5186
|
trait.stateMachine = {
|
|
5122
5187
|
states: behavior.states.map((state, index) => ({
|
|
@@ -5131,21 +5196,30 @@ function formatBehaviorToSchema(behavior) {
|
|
|
5131
5196
|
event: t.event
|
|
5132
5197
|
};
|
|
5133
5198
|
if (t.guards.length > 0) {
|
|
5134
|
-
const guardExprs =
|
|
5135
|
-
|
|
5136
|
-
|
|
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 {
|
|
5137
5205
|
}
|
|
5138
|
-
|
|
5139
|
-
|
|
5140
|
-
|
|
5206
|
+
}
|
|
5207
|
+
if (guardExprs.length === 1) transition.guard = guardExprs[0];
|
|
5208
|
+
else if (guardExprs.length > 1) transition.guard = ["and", ...guardExprs];
|
|
5141
5209
|
}
|
|
5142
5210
|
if (t.effects.length > 0) {
|
|
5143
|
-
|
|
5211
|
+
const effectExprs = [];
|
|
5212
|
+
for (const e of t.effects) {
|
|
5144
5213
|
if (e.config && "_rawSExpr" in e.config && Array.isArray(e.config._rawSExpr)) {
|
|
5145
|
-
|
|
5214
|
+
effectExprs.push(e.config._rawSExpr);
|
|
5215
|
+
continue;
|
|
5146
5216
|
}
|
|
5147
|
-
|
|
5148
|
-
|
|
5217
|
+
try {
|
|
5218
|
+
effectExprs.push(parseDomainEffect(e.description, behavior.entityName));
|
|
5219
|
+
} catch {
|
|
5220
|
+
}
|
|
5221
|
+
}
|
|
5222
|
+
if (effectExprs.length > 0) transition.effects = effectExprs;
|
|
5149
5223
|
}
|
|
5150
5224
|
return transition;
|
|
5151
5225
|
})
|
|
@@ -5266,11 +5340,13 @@ function schemaEntityToDomainEntity(entity) {
|
|
|
5266
5340
|
unique: field.unique || false,
|
|
5267
5341
|
auto: field.auto || false
|
|
5268
5342
|
};
|
|
5269
|
-
|
|
5270
|
-
|
|
5271
|
-
|
|
5272
|
-
|
|
5273
|
-
|
|
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) };
|
|
5274
5350
|
}
|
|
5275
5351
|
if (field.default !== void 0) {
|
|
5276
5352
|
domainField.default = field.default;
|
|
@@ -5279,6 +5355,7 @@ function schemaEntityToDomainEntity(entity) {
|
|
|
5279
5355
|
}
|
|
5280
5356
|
const states = entity.states;
|
|
5281
5357
|
const initialState = entity.initialState;
|
|
5358
|
+
const persistence = entity.persistence;
|
|
5282
5359
|
return {
|
|
5283
5360
|
type: "entity",
|
|
5284
5361
|
name,
|
|
@@ -5286,13 +5363,17 @@ function schemaEntityToDomainEntity(entity) {
|
|
|
5286
5363
|
fields,
|
|
5287
5364
|
relationships,
|
|
5288
5365
|
states,
|
|
5289
|
-
initialState
|
|
5366
|
+
initialState,
|
|
5367
|
+
persistence
|
|
5290
5368
|
};
|
|
5291
5369
|
}
|
|
5292
5370
|
function formatEntityText(entity) {
|
|
5293
5371
|
const lines = [];
|
|
5294
5372
|
const article = startsWithVowel2(entity.name) ? "An" : "A";
|
|
5295
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
|
+
}
|
|
5296
5377
|
if (entity.fields.length > 0) {
|
|
5297
5378
|
lines.push("");
|
|
5298
5379
|
lines.push("It has:");
|
|
@@ -5339,6 +5420,8 @@ function formatFieldType2(field) {
|
|
|
5339
5420
|
const parts = [];
|
|
5340
5421
|
if (field.enumValues && field.enumValues.length > 0) {
|
|
5341
5422
|
parts.push(field.enumValues.join(" | "));
|
|
5423
|
+
} else if (field.fieldType === "list" && field.items) {
|
|
5424
|
+
parts.push(`list of ${field.items.type}`);
|
|
5342
5425
|
} else {
|
|
5343
5426
|
parts.push(field.fieldType);
|
|
5344
5427
|
}
|
|
@@ -5346,11 +5429,17 @@ function formatFieldType2(field) {
|
|
|
5346
5429
|
if (field.unique) parts.push("unique");
|
|
5347
5430
|
if (field.auto) parts.push("auto");
|
|
5348
5431
|
if (field.default !== void 0) {
|
|
5349
|
-
|
|
5350
|
-
parts.push(`default ${defaultStr}`);
|
|
5432
|
+
parts.push(`default ${formatDefaultValue(field.default)}`);
|
|
5351
5433
|
}
|
|
5352
5434
|
return parts.join(", ");
|
|
5353
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
|
+
}
|
|
5354
5443
|
function toSpaceSeparated3(text) {
|
|
5355
5444
|
return text.replace(/([a-z])([A-Z])/g, "$1 $2").toLowerCase();
|
|
5356
5445
|
}
|
|
@@ -6344,6 +6433,7 @@ function schemaTraitToDomainBehavior(trait, entityName) {
|
|
|
6344
6433
|
effects
|
|
6345
6434
|
});
|
|
6346
6435
|
}
|
|
6436
|
+
const scope = trait.scope;
|
|
6347
6437
|
return {
|
|
6348
6438
|
type: "behavior",
|
|
6349
6439
|
name: formatBehaviorName(name),
|
|
@@ -6352,13 +6442,18 @@ function schemaTraitToDomainBehavior(trait, entityName) {
|
|
|
6352
6442
|
initialState,
|
|
6353
6443
|
transitions,
|
|
6354
6444
|
ticks,
|
|
6355
|
-
rules: []
|
|
6445
|
+
rules: [],
|
|
6446
|
+
scope
|
|
6356
6447
|
};
|
|
6357
6448
|
}
|
|
6358
6449
|
function formatBehaviorText(behavior) {
|
|
6359
6450
|
const lines = [];
|
|
6360
6451
|
lines.push(behavior.name);
|
|
6361
6452
|
lines.push("");
|
|
6453
|
+
if (behavior.scope !== void 0 && behavior.scope !== "instance") {
|
|
6454
|
+
lines.push(`Scope: ${behavior.scope}`);
|
|
6455
|
+
lines.push("");
|
|
6456
|
+
}
|
|
6362
6457
|
if (behavior.states.length > 0) {
|
|
6363
6458
|
lines.push(`States: ${behavior.states.join(", ")}`);
|
|
6364
6459
|
lines.push("");
|
|
@@ -6669,7 +6764,7 @@ function parseSchemaCondition(condition, defaultEntityName) {
|
|
|
6669
6764
|
type: "comparison",
|
|
6670
6765
|
field: fieldRef,
|
|
6671
6766
|
operator: comparisonMatch[2],
|
|
6672
|
-
value:
|
|
6767
|
+
value: parseValue3(comparisonMatch[3])
|
|
6673
6768
|
};
|
|
6674
6769
|
}
|
|
6675
6770
|
}
|
|
@@ -6697,7 +6792,7 @@ function parseFieldReference2(text, defaultEntityName) {
|
|
|
6697
6792
|
}
|
|
6698
6793
|
return null;
|
|
6699
6794
|
}
|
|
6700
|
-
function
|
|
6795
|
+
function parseValue3(text) {
|
|
6701
6796
|
text = text.trim();
|
|
6702
6797
|
if (text.startsWith('"') && text.endsWith('"') || text.startsWith("'") && text.endsWith("'")) {
|
|
6703
6798
|
return text.slice(1, -1);
|
|
@@ -7071,7 +7166,7 @@ function convertDomainToSchema(domainText, baseSchema) {
|
|
|
7071
7166
|
const entity = {
|
|
7072
7167
|
name: entityRecord.name,
|
|
7073
7168
|
fields: entityRecord.fields || [],
|
|
7074
|
-
persistence: "persistent"
|
|
7169
|
+
persistence: entityRecord.persistence ?? "persistent"
|
|
7075
7170
|
};
|
|
7076
7171
|
parsedEntities.push({
|
|
7077
7172
|
name: result.data.name,
|