@lokascript/framework 2.3.0 → 2.4.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.
Files changed (54) hide show
  1. package/dist/api/index.js +29 -516
  2. package/dist/api/index.js.map +1 -1
  3. package/dist/core/index.js +20 -128
  4. package/dist/core/index.js.map +1 -1
  5. package/dist/core/pattern-matching/index.js +19 -12
  6. package/dist/core/pattern-matching/index.js.map +1 -1
  7. package/dist/core/tokenization/index.js.map +1 -1
  8. package/dist/core/types.d.ts +7 -354
  9. package/dist/core/types.d.ts.map +1 -1
  10. package/dist/core/types.js +21 -129
  11. package/dist/core/types.js.map +1 -1
  12. package/dist/generation/diagnostics.d.ts +5 -115
  13. package/dist/generation/diagnostics.d.ts.map +1 -1
  14. package/dist/generation/index.js +20 -77
  15. package/dist/generation/index.js.map +1 -1
  16. package/dist/index.cjs +189 -1458
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.js +108 -1347
  19. package/dist/index.js.map +1 -1
  20. package/dist/interfaces/value-extractor.d.ts +20 -0
  21. package/dist/interfaces/value-extractor.d.ts.map +1 -1
  22. package/dist/ir/explicit-parser.d.ts +2 -83
  23. package/dist/ir/explicit-parser.d.ts.map +1 -1
  24. package/dist/ir/explicit-renderer.d.ts +2 -31
  25. package/dist/ir/explicit-renderer.d.ts.map +1 -1
  26. package/dist/ir/index.js +89 -1260
  27. package/dist/ir/index.js.map +1 -1
  28. package/dist/ir/protocol-json.d.ts +2 -70
  29. package/dist/ir/protocol-json.d.ts.map +1 -1
  30. package/dist/ir/references.d.ts +2 -16
  31. package/dist/ir/references.d.ts.map +1 -1
  32. package/dist/ir/types.d.ts +2 -148
  33. package/dist/ir/types.d.ts.map +1 -1
  34. package/dist/parsing/index.js +19 -12
  35. package/dist/parsing/index.js.map +1 -1
  36. package/dist/schema/command-schema.d.ts +3 -92
  37. package/dist/schema/command-schema.d.ts.map +1 -1
  38. package/dist/schema/index.js +3 -20
  39. package/dist/schema/index.js.map +1 -1
  40. package/dist/testing/index.js +1133 -755
  41. package/dist/testing/index.js.map +1 -1
  42. package/package.json +6 -2
  43. package/src/core/types.ts +71 -600
  44. package/src/generation/diagnostics.ts +12 -233
  45. package/src/interfaces/value-extractor.ts +32 -0
  46. package/src/ir/explicit-parser.ts +12 -792
  47. package/src/ir/explicit-renderer.ts +2 -195
  48. package/src/ir/from-interchange.test.ts +91 -4
  49. package/src/ir/from-interchange.ts +59 -0
  50. package/src/ir/protocol-json.test.ts +16 -7
  51. package/src/ir/protocol-json.ts +9 -748
  52. package/src/ir/references.ts +2 -30
  53. package/src/ir/types.ts +18 -190
  54. package/src/schema/command-schema.ts +3 -134
@@ -1,132 +1,23 @@
1
1
  // src/core/types.ts
2
- function createLiteral(value, dataType) {
3
- return dataType ? { type: "literal", value, dataType } : { type: "literal", value };
4
- }
5
- function createSelector(value, selectorKind) {
6
- return selectorKind ? { type: "selector", value, selectorKind } : { type: "selector", value };
7
- }
8
- function createReference(value) {
9
- return { type: "reference", value };
10
- }
11
- function createPropertyPath(object, property) {
12
- return { type: "property-path", object, property };
13
- }
14
- function createExpression(raw) {
15
- return { type: "expression", raw };
16
- }
17
- function createFlag(name, enabled = true) {
18
- return { type: "flag", name, enabled };
19
- }
20
- function createCommandNode(action, roles, metadata) {
21
- const rolesMap = roles instanceof Map ? roles : new Map(Object.entries(roles));
22
- const node = {
23
- kind: "command",
24
- action,
25
- roles: rolesMap
26
- };
27
- if (metadata) {
28
- return { ...node, metadata };
29
- }
30
- return node;
31
- }
32
- function createEventHandlerNode(action, roles, body, metadata, eventModifiers) {
33
- const rolesMap = roles instanceof Map ? roles : new Map(Object.entries(roles));
34
- const base = {
35
- kind: "event-handler",
36
- action,
37
- roles: rolesMap,
38
- body
39
- };
40
- return {
41
- ...base,
42
- ...eventModifiers && { eventModifiers },
43
- ...metadata && { metadata }
44
- };
45
- }
46
- function createConditionalNode(action, roles, thenBranch, elseBranch, metadata) {
47
- const rolesMap = roles instanceof Map ? roles : new Map(Object.entries(roles));
48
- const base = {
49
- kind: "conditional",
50
- action,
51
- roles: rolesMap,
52
- thenBranch
53
- };
54
- return {
55
- ...base,
56
- ...elseBranch && { elseBranch },
57
- ...metadata && { metadata }
58
- };
59
- }
60
- function createCompoundNode(statements, chainType = "sequential", metadata) {
61
- const base = {
62
- kind: "compound",
63
- action: "compound",
64
- roles: /* @__PURE__ */ new Map(),
65
- statements,
66
- chainType
67
- };
68
- return metadata ? { ...base, metadata } : base;
69
- }
70
- function extractValue(value) {
71
- if (value.type === "flag") return value.name;
72
- if ("raw" in value && value.raw !== void 0) return String(value.raw);
73
- if ("value" in value && value.value !== void 0) return String(value.value);
74
- if (value.type === "property-path") return `${extractValue(value.object)}.${value.property}`;
75
- return "";
76
- }
77
- function extractRoleValue(node, role) {
78
- const value = node.roles.get(role);
79
- if (!value) return "";
80
- return extractValue(value);
81
- }
82
- function createLoopNode(action, roles, loopVariant, body, loopVariable, indexVariable, metadata) {
83
- const rolesMap = roles instanceof Map ? roles : new Map(Object.entries(roles));
84
- const base = {
85
- kind: "loop",
86
- action,
87
- roles: rolesMap,
88
- loopVariant,
89
- body
90
- };
91
- return {
92
- ...base,
93
- ...loopVariable && { loopVariable },
94
- ...indexVariable && { indexVariable },
95
- ...metadata && { metadata }
96
- };
97
- }
98
- function createTryNode(body, catchBranch, finallyBranch, metadata) {
99
- return {
100
- kind: "command",
101
- action: "try",
102
- roles: /* @__PURE__ */ new Map(),
103
- body,
104
- ...catchBranch && catchBranch.length > 0 ? { catchBranch } : {},
105
- ...finallyBranch && finallyBranch.length > 0 ? { finallyBranch } : {},
106
- ...metadata ? { metadata } : {}
107
- };
108
- }
109
- function createAsyncNode(variant, asyncBody, metadata) {
110
- return {
111
- kind: "command",
112
- action: variant,
113
- roles: /* @__PURE__ */ new Map(),
114
- asyncVariant: variant,
115
- asyncBody,
116
- ...metadata ? { metadata } : {}
117
- };
118
- }
119
- function createMatchNode(roles, arms, defaultArm, metadata) {
120
- const rolesMap = roles instanceof Map ? roles : new Map(Object.entries(roles));
121
- return {
122
- kind: "command",
123
- action: "match",
124
- roles: rolesMap,
125
- arms,
126
- ...defaultArm && defaultArm.length > 0 ? { defaultArm } : {},
127
- ...metadata ? { metadata } : {}
128
- };
129
- }
2
+ import {
3
+ createLiteral,
4
+ createSelector,
5
+ createReference,
6
+ createPropertyPath,
7
+ createExpression,
8
+ createFlag,
9
+ createCommandNode,
10
+ createEventHandlerNode,
11
+ createConditionalNode,
12
+ createCompoundNode,
13
+ createLoopNode,
14
+ createTryNode,
15
+ createAsyncNode,
16
+ createMatchNode,
17
+ extractValue,
18
+ extractRoleValue,
19
+ getRoleValue
20
+ } from "@lokascript/intent";
130
21
 
131
22
  // src/core/tokenization/token-utils.ts
132
23
  var TokenStreamImpl = class {
@@ -2882,6 +2773,7 @@ export {
2882
2773
  getAllPossessiveKeywords,
2883
2774
  getDefaultExtractors,
2884
2775
  getPossessiveReference,
2776
+ getRoleValue,
2885
2777
  isAsciiIdentifierChar,
2886
2778
  isAsciiLetter,
2887
2779
  isBuiltInReference,