@lokascript/framework 2.0.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 (181) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +142 -0
  3. package/dist/aot/aot-orchestrator.d.ts +75 -0
  4. package/dist/aot/aot-orchestrator.d.ts.map +1 -0
  5. package/dist/aot/domain-scanner.d.ts +27 -0
  6. package/dist/aot/domain-scanner.d.ts.map +1 -0
  7. package/dist/aot/index.d.ts +8 -0
  8. package/dist/aot/index.d.ts.map +1 -0
  9. package/dist/aot/types.d.ts +103 -0
  10. package/dist/aot/types.d.ts.map +1 -0
  11. package/dist/api/create-dsl.d.ts +91 -0
  12. package/dist/api/create-dsl.d.ts.map +1 -0
  13. package/dist/api/dispatcher.d.ts +108 -0
  14. package/dist/api/dispatcher.d.ts.map +1 -0
  15. package/dist/api/domain-registry.d.ts +152 -0
  16. package/dist/api/domain-registry.d.ts.map +1 -0
  17. package/dist/api/index.d.ts +7 -0
  18. package/dist/api/index.d.ts.map +1 -0
  19. package/dist/api/index.js +2082 -0
  20. package/dist/api/index.js.map +1 -0
  21. package/dist/core/index.d.ts +7 -0
  22. package/dist/core/index.d.ts.map +1 -0
  23. package/dist/core/index.js +2674 -0
  24. package/dist/core/index.js.map +1 -0
  25. package/dist/core/logger.d.ts +32 -0
  26. package/dist/core/logger.d.ts.map +1 -0
  27. package/dist/core/pattern-matching/index.d.ts +6 -0
  28. package/dist/core/pattern-matching/index.d.ts.map +1 -0
  29. package/dist/core/pattern-matching/index.js +1239 -0
  30. package/dist/core/pattern-matching/index.js.map +1 -0
  31. package/dist/core/pattern-matching/pattern-matcher.d.ts +239 -0
  32. package/dist/core/pattern-matching/pattern-matcher.d.ts.map +1 -0
  33. package/dist/core/pattern-matching/utils/index.d.ts +6 -0
  34. package/dist/core/pattern-matching/utils/index.d.ts.map +1 -0
  35. package/dist/core/pattern-matching/utils/possessive-keywords.d.ts +38 -0
  36. package/dist/core/pattern-matching/utils/possessive-keywords.d.ts.map +1 -0
  37. package/dist/core/pattern-matching/utils/type-validation.d.ts +63 -0
  38. package/dist/core/pattern-matching/utils/type-validation.d.ts.map +1 -0
  39. package/dist/core/tokenization/base-tokenizer.d.ts +344 -0
  40. package/dist/core/tokenization/base-tokenizer.d.ts.map +1 -0
  41. package/dist/core/tokenization/char-classifiers.d.ts +56 -0
  42. package/dist/core/tokenization/char-classifiers.d.ts.map +1 -0
  43. package/dist/core/tokenization/default-extractors.d.ts +48 -0
  44. package/dist/core/tokenization/default-extractors.d.ts.map +1 -0
  45. package/dist/core/tokenization/extractors/index.d.ts +9 -0
  46. package/dist/core/tokenization/extractors/index.d.ts.map +1 -0
  47. package/dist/core/tokenization/extractors/operator.d.ts +23 -0
  48. package/dist/core/tokenization/extractors/operator.d.ts.map +1 -0
  49. package/dist/core/tokenization/extractors/punctuation.d.ts +22 -0
  50. package/dist/core/tokenization/extractors/punctuation.d.ts.map +1 -0
  51. package/dist/core/tokenization/extractors.d.ts +61 -0
  52. package/dist/core/tokenization/extractors.d.ts.map +1 -0
  53. package/dist/core/tokenization/index.d.ts +11 -0
  54. package/dist/core/tokenization/index.d.ts.map +1 -0
  55. package/dist/core/tokenization/index.js +1345 -0
  56. package/dist/core/tokenization/index.js.map +1 -0
  57. package/dist/core/tokenization/morphology/index.d.ts +5 -0
  58. package/dist/core/tokenization/morphology/index.d.ts.map +1 -0
  59. package/dist/core/tokenization/morphology/types.d.ts +110 -0
  60. package/dist/core/tokenization/morphology/types.d.ts.map +1 -0
  61. package/dist/core/tokenization/token-utils.d.ts +111 -0
  62. package/dist/core/tokenization/token-utils.d.ts.map +1 -0
  63. package/dist/core/types.d.ts +382 -0
  64. package/dist/core/types.d.ts.map +1 -0
  65. package/dist/core/types.js +108 -0
  66. package/dist/core/types.js.map +1 -0
  67. package/dist/generation/diagnostics.d.ts +120 -0
  68. package/dist/generation/diagnostics.d.ts.map +1 -0
  69. package/dist/generation/index.d.ts +7 -0
  70. package/dist/generation/index.d.ts.map +1 -0
  71. package/dist/generation/index.js +339 -0
  72. package/dist/generation/index.js.map +1 -0
  73. package/dist/generation/pattern-generator.d.ts +48 -0
  74. package/dist/generation/pattern-generator.d.ts.map +1 -0
  75. package/dist/generation/renderer.d.ts +115 -0
  76. package/dist/generation/renderer.d.ts.map +1 -0
  77. package/dist/grammar/index.d.ts +10 -0
  78. package/dist/grammar/index.d.ts.map +1 -0
  79. package/dist/grammar/index.js +391 -0
  80. package/dist/grammar/index.js.map +1 -0
  81. package/dist/grammar/transformer.d.ts +56 -0
  82. package/dist/grammar/transformer.d.ts.map +1 -0
  83. package/dist/grammar/types.d.ts +236 -0
  84. package/dist/grammar/types.d.ts.map +1 -0
  85. package/dist/index.cjs +4454 -0
  86. package/dist/index.cjs.map +1 -0
  87. package/dist/index.d.ts +46 -0
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/index.js +4336 -0
  90. package/dist/index.js.map +1 -0
  91. package/dist/interfaces/dictionary.d.ts +82 -0
  92. package/dist/interfaces/dictionary.d.ts.map +1 -0
  93. package/dist/interfaces/index.d.ts +10 -0
  94. package/dist/interfaces/index.d.ts.map +1 -0
  95. package/dist/interfaces/profile-provider.d.ts +67 -0
  96. package/dist/interfaces/profile-provider.d.ts.map +1 -0
  97. package/dist/interfaces/value-extractor.d.ts +168 -0
  98. package/dist/interfaces/value-extractor.d.ts.map +1 -0
  99. package/dist/multilingual/index.d.ts +8 -0
  100. package/dist/multilingual/index.d.ts.map +1 -0
  101. package/dist/multilingual/index.js +1 -0
  102. package/dist/multilingual/index.js.map +1 -0
  103. package/dist/parsing/index.d.ts +8 -0
  104. package/dist/parsing/index.d.ts.map +1 -0
  105. package/dist/parsing/index.js +1415 -0
  106. package/dist/parsing/index.js.map +1 -0
  107. package/dist/parsing/multi-statement.d.ts +265 -0
  108. package/dist/parsing/multi-statement.d.ts.map +1 -0
  109. package/dist/schema/command-schema.d.ts +78 -0
  110. package/dist/schema/command-schema.d.ts.map +1 -0
  111. package/dist/schema/index.d.ts +5 -0
  112. package/dist/schema/index.d.ts.map +1 -0
  113. package/dist/schema/index.js +25 -0
  114. package/dist/schema/index.js.map +1 -0
  115. package/dist/test-setup.d.ts +9 -0
  116. package/dist/test-setup.d.ts.map +1 -0
  117. package/dist/testing/index.d.ts +50 -0
  118. package/dist/testing/index.d.ts.map +1 -0
  119. package/dist/testing/index.js +16969 -0
  120. package/dist/testing/index.js.map +1 -0
  121. package/package.json +122 -0
  122. package/src/__test__/fixtures/sql-dsl.ts +232 -0
  123. package/src/__test__/sql-integration.test.ts +189 -0
  124. package/src/__test__/test-utils.ts +260 -0
  125. package/src/aot/aot-orchestrator.test.ts +413 -0
  126. package/src/aot/aot-orchestrator.ts +238 -0
  127. package/src/aot/domain-scanner.ts +178 -0
  128. package/src/aot/index.ts +8 -0
  129. package/src/aot/types.ts +124 -0
  130. package/src/api/create-dsl.ts +367 -0
  131. package/src/api/dispatcher.test.ts +336 -0
  132. package/src/api/dispatcher.ts +222 -0
  133. package/src/api/domain-registry.test.ts +336 -0
  134. package/src/api/domain-registry.ts +500 -0
  135. package/src/api/index.ts +7 -0
  136. package/src/core/index.ts +7 -0
  137. package/src/core/logger.ts +130 -0
  138. package/src/core/pattern-matching/index.ts +6 -0
  139. package/src/core/pattern-matching/pattern-matcher.test.ts +900 -0
  140. package/src/core/pattern-matching/pattern-matcher.ts +1548 -0
  141. package/src/core/pattern-matching/pattern-matcher.ts.backup +1267 -0
  142. package/src/core/pattern-matching/utils/index.ts +6 -0
  143. package/src/core/pattern-matching/utils/possessive-keywords.ts +55 -0
  144. package/src/core/pattern-matching/utils/type-validation.test.ts +316 -0
  145. package/src/core/pattern-matching/utils/type-validation.ts +134 -0
  146. package/src/core/tokenization/base-tokenizer.ts +916 -0
  147. package/src/core/tokenization/char-classifiers.ts +79 -0
  148. package/src/core/tokenization/create-simple-tokenizer.test.ts +260 -0
  149. package/src/core/tokenization/default-extractors.ts +69 -0
  150. package/src/core/tokenization/extractors/index.ts +9 -0
  151. package/src/core/tokenization/extractors/operator.ts +75 -0
  152. package/src/core/tokenization/extractors/punctuation.ts +39 -0
  153. package/src/core/tokenization/extractors.ts +452 -0
  154. package/src/core/tokenization/index.ts +11 -0
  155. package/src/core/tokenization/morphology/index.ts +5 -0
  156. package/src/core/tokenization/morphology/types.ts +211 -0
  157. package/src/core/tokenization/token-utils.ts +252 -0
  158. package/src/core/types.ts +589 -0
  159. package/src/generation/diagnostics.test.ts +171 -0
  160. package/src/generation/diagnostics.ts +239 -0
  161. package/src/generation/index.ts +7 -0
  162. package/src/generation/pattern-generator.test.ts +430 -0
  163. package/src/generation/pattern-generator.ts +315 -0
  164. package/src/generation/renderer.test.ts +266 -0
  165. package/src/generation/renderer.ts +244 -0
  166. package/src/grammar/index.ts +12 -0
  167. package/src/grammar/transformer.ts +159 -0
  168. package/src/grammar/types.ts +630 -0
  169. package/src/index.ts +157 -0
  170. package/src/interfaces/dictionary.ts +123 -0
  171. package/src/interfaces/index.ts +10 -0
  172. package/src/interfaces/profile-provider.ts +88 -0
  173. package/src/interfaces/value-extractor.ts +435 -0
  174. package/src/multilingual/index.ts +9 -0
  175. package/src/parsing/index.ts +27 -0
  176. package/src/parsing/multi-statement.test.ts +480 -0
  177. package/src/parsing/multi-statement.ts +648 -0
  178. package/src/schema/command-schema.ts +118 -0
  179. package/src/schema/index.ts +5 -0
  180. package/src/test-setup.ts +45 -0
  181. package/src/testing/index.ts +137 -0
@@ -0,0 +1,236 @@
1
+ /**
2
+ * Generalized Grammar System for Multilingual Hyperscript
3
+ *
4
+ * This system abstracts grammatical patterns across language families,
5
+ * enabling deep multilingual support without per-language hardcoding.
6
+ *
7
+ * Key Linguistic Concepts:
8
+ * - Word Order: SVO, SOV, VSO (and variations)
9
+ * - Adposition Type: Preposition (English) vs Postposition (Japanese/Korean)
10
+ * - Morphology: Isolating (Chinese) vs Agglutinative (Turkish) vs Fusional (Arabic)
11
+ * - Text Direction: LTR vs RTL
12
+ */
13
+ /**
14
+ * Semantic roles in hyperscript commands.
15
+ * These are universal across all 13 supported languages - only the surface form changes.
16
+ *
17
+ * ## Core Thematic Roles (from linguistic theory)
18
+ * | Role | Usage | Purpose | Example |
19
+ * |-------------|-------|-----------------------------|---------------------------|
20
+ * | action | 100% | Command verb | toggle, put, fetch |
21
+ * | patient | 90% | What is acted upon | .active, #count |
22
+ * | destination | 40% | Where something goes | into #output, to .class |
23
+ * | source | 13% | Where something comes from | from #input, from URL |
24
+ * | event | 106% | Trigger events | click, keydown, submit |
25
+ * | condition | 8% | Boolean expressions | if x > 5, when visible |
26
+ * | agent | 0% | Who performs action | Reserved for future use |
27
+ * | goal | 1% | Target value/state | to 'red' (in transition) |
28
+ *
29
+ * ## Quantitative Roles (answer "how much/long")
30
+ * | Role | Usage | Purpose | Example |
31
+ * |----------|-------|----------------|----------------------|
32
+ * | quantity | 7% | Numeric amount | by 5, 3 times |
33
+ * | duration | 1% | Time span | for 5 seconds, 500ms |
34
+ *
35
+ * ## Adverbial/Modifier Roles (answer "how/by what means")
36
+ * | Role | Usage | Purpose | Example |
37
+ * |--------------|-------|---------------------------|-------------------|
38
+ * | style | 2% | Animation/behavior | with fade |
39
+ * | manner | 2% | Insertion position | before, after |
40
+ * | method | 1% | HTTP method/technique | via POST, as GET |
41
+ * | responseType | 1% | Response format | as json, as html |
42
+ *
43
+ * ## Control Flow Roles
44
+ * | Role | Usage | Purpose | Example |
45
+ * |----------|-------|--------------|-----------------------|
46
+ * | loopType | 6% | Loop variant | forever, until, times |
47
+ *
48
+ * ## Design Notes
49
+ * - Low-usage roles (agent, goal, method, responseType) are intentionally kept for:
50
+ * - Linguistic completeness across all 13 languages
51
+ * - Future extensibility (AI agents, server-side execution)
52
+ * - Command-specific semantics (fetch, transition)
53
+ * - Each role has distinct grammatical markers per language (see profiles/index.ts)
54
+ * - Usage percentages based on pattern database analysis
55
+ */
56
+ export type SemanticRole = 'action' | 'agent' | 'patient' | 'source' | 'destination' | 'goal' | 'event' | 'condition' | 'quantity' | 'duration' | 'responseType' | 'method' | 'style' | 'manner' | 'loopType' | 'continues';
57
+ /**
58
+ * Word order patterns
59
+ * These represent the major typological categories
60
+ */
61
+ export type WordOrder = 'SVO' | 'SOV' | 'VSO' | 'VOS' | 'OVS' | 'OSV' | 'free';
62
+ /**
63
+ * Where grammatical markers appear relative to their noun/verb
64
+ */
65
+ export type AdpositionType = 'preposition' | 'postposition' | 'circumposition' | 'none';
66
+ /**
67
+ * Morphological typology - how words are constructed
68
+ */
69
+ export type MorphologyType = 'isolating' | 'agglutinative' | 'fusional' | 'polysynthetic';
70
+ /**
71
+ * A grammatical marker (particle, case ending, preposition)
72
+ */
73
+ export interface GrammaticalMarker {
74
+ form: string;
75
+ role: SemanticRole;
76
+ position: AdpositionType;
77
+ required: boolean;
78
+ alternatives?: string[];
79
+ }
80
+ /**
81
+ * Metadata for preserving line structure during translation.
82
+ * Tracks indentation and blank lines so output maintains the same format.
83
+ */
84
+ export interface LineMetadata {
85
+ /** Trimmed line content (empty string for blank lines) */
86
+ content: string;
87
+ /** Leading whitespace (tabs/spaces) from original line */
88
+ originalIndent: string;
89
+ /** True if the line was empty or whitespace-only */
90
+ isBlank: boolean;
91
+ }
92
+ /**
93
+ * Complete grammatical profile for a language
94
+ * This captures the essential typological features needed for transformation
95
+ */
96
+ export interface LanguageProfile {
97
+ code: string;
98
+ name: string;
99
+ wordOrder: WordOrder;
100
+ adpositionType: AdpositionType;
101
+ morphology: MorphologyType;
102
+ direction: 'ltr' | 'rtl';
103
+ markers: GrammaticalMarker[];
104
+ canonicalOrder: SemanticRole[];
105
+ rules?: GrammarRule[];
106
+ }
107
+ /**
108
+ * Pattern for transforming hyperscript structures
109
+ */
110
+ export interface GrammarRule {
111
+ name: string;
112
+ description: string;
113
+ match: PatternMatcher;
114
+ transform: PatternTransform;
115
+ priority: number;
116
+ }
117
+ /**
118
+ * Matches a hyperscript pattern
119
+ */
120
+ export interface PatternMatcher {
121
+ commands?: string[];
122
+ requiredRoles: SemanticRole[];
123
+ optionalRoles?: SemanticRole[];
124
+ predicate?: (parsed: ParsedStatement) => boolean;
125
+ }
126
+ /**
127
+ * Defines how to transform a matched pattern
128
+ */
129
+ export interface PatternTransform {
130
+ roleOrder: SemanticRole[];
131
+ insertMarkers?: boolean;
132
+ custom?: (parsed: ParsedStatement, profile: LanguageProfile) => string;
133
+ }
134
+ /**
135
+ * A parsed hyperscript statement broken into semantic components
136
+ */
137
+ export interface ParsedStatement {
138
+ type: 'event-handler' | 'command' | 'conditional' | 'loop';
139
+ roles: Map<SemanticRole, ParsedElement>;
140
+ original: string;
141
+ }
142
+ /**
143
+ * A single element with its semantic role
144
+ */
145
+ export interface ParsedElement {
146
+ role: SemanticRole;
147
+ value: string;
148
+ translated?: string;
149
+ isSelector?: boolean;
150
+ isLiteral?: boolean;
151
+ }
152
+ /**
153
+ * Universal templates for common hyperscript patterns
154
+ * These define the semantic structure independent of surface form
155
+ */
156
+ export declare const UNIVERSAL_PATTERNS: {
157
+ readonly eventIncrement: {
158
+ readonly name: "event-increment";
159
+ readonly roles: SemanticRole[];
160
+ readonly english: "on {event} {action} {patient}";
161
+ };
162
+ readonly putInto: {
163
+ readonly name: "put-into";
164
+ readonly roles: SemanticRole[];
165
+ readonly english: "{action} {patient} into {destination}";
166
+ };
167
+ readonly addTo: {
168
+ readonly name: "add-to";
169
+ readonly roles: SemanticRole[];
170
+ readonly english: "{action} {patient} to {destination}";
171
+ };
172
+ readonly toggleOn: {
173
+ readonly name: "toggle-on";
174
+ readonly roles: SemanticRole[];
175
+ readonly english: "{action} {patient} on {destination}";
176
+ };
177
+ readonly waitDuration: {
178
+ readonly name: "wait-duration";
179
+ readonly roles: SemanticRole[];
180
+ readonly english: "{action} {quantity}";
181
+ };
182
+ readonly conditional: {
183
+ readonly name: "conditional";
184
+ readonly roles: SemanticRole[];
185
+ readonly english: "{action} {condition} then ... end";
186
+ };
187
+ readonly fetchAs: {
188
+ readonly name: "fetch-as";
189
+ readonly roles: SemanticRole[];
190
+ readonly english: "{action} {source} as {method}";
191
+ };
192
+ readonly showWith: {
193
+ readonly name: "show-with";
194
+ readonly roles: SemanticRole[];
195
+ readonly english: "{action} {patient} with {style}";
196
+ };
197
+ readonly transitionOver: {
198
+ readonly name: "transition-over";
199
+ readonly roles: SemanticRole[];
200
+ readonly english: "{action} {patient} over {duration}";
201
+ };
202
+ };
203
+ /**
204
+ * Default profiles for major language families
205
+ * Individual languages inherit and override these
206
+ */
207
+ export declare const LANGUAGE_FAMILY_DEFAULTS: Record<string, Partial<LanguageProfile>>;
208
+ /**
209
+ * Reorder semantic roles according to target language.
210
+ * Includes a safety net to append any roles present in input
211
+ * but missing from the target order, preventing data loss.
212
+ */
213
+ export declare function reorderRoles(roles: Map<SemanticRole, ParsedElement>, targetOrder: SemanticRole[]): ParsedElement[];
214
+ /**
215
+ * Insert grammatical markers between elements
216
+ */
217
+ export declare function insertMarkers(elements: ParsedElement[], markers: GrammaticalMarker[], adpositionType: AdpositionType): string[];
218
+ /**
219
+ * Intelligently joins tokens, handling agglutinative suffixes and prefixes.
220
+ *
221
+ * Rules:
222
+ * 1. If a token ends with '-' (prefix marker), no space after it
223
+ * 2. If a token starts with '-' (suffix marker), no space before it
224
+ * 3. Removes the hyphen indicators from the final output
225
+ *
226
+ * Examples:
227
+ * - ['#count', '-ta'] → '#countta' (Quechua accusative suffix)
228
+ * - ['بـ-', 'الماوس'] → 'بـالماوس' (Arabic prefix attachment)
229
+ * - ['value', 'を'] → 'value を' (Japanese particle, normal spacing)
230
+ */
231
+ export declare function joinTokens(tokens: string[]): string;
232
+ /**
233
+ * Transform a parsed statement to target language
234
+ */
235
+ export declare function transformStatement(parsed: ParsedStatement, _sourceProfile: LanguageProfile, targetProfile: LanguageProfile): string;
236
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/grammar/types.ts"],"names":[],"mappings":"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"}