bonescript-compiler 0.5.3 → 0.5.4

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 (194) hide show
  1. package/LICENSE +21 -21
  2. package/dist/algorithm_catalog.js +166 -166
  3. package/dist/cli.d.ts +1 -2
  4. package/dist/cli.js +543 -75
  5. package/dist/cli.js.map +1 -1
  6. package/dist/emit_capability.d.ts +0 -13
  7. package/dist/emit_capability.js +134 -296
  8. package/dist/emit_capability.js.map +1 -1
  9. package/dist/emit_composition.js +3 -37
  10. package/dist/emit_composition.js.map +1 -1
  11. package/dist/emit_deploy.js +167 -165
  12. package/dist/emit_deploy.js.map +1 -1
  13. package/dist/emit_events.d.ts +0 -1
  14. package/dist/emit_events.js +275 -325
  15. package/dist/emit_events.js.map +1 -1
  16. package/dist/emit_extras.js +5 -3
  17. package/dist/emit_extras.js.map +1 -1
  18. package/dist/emit_full.js +112 -272
  19. package/dist/emit_full.js.map +1 -1
  20. package/dist/emit_maintenance.js +249 -249
  21. package/dist/emit_runtime.d.ts +11 -17
  22. package/dist/emit_runtime.js +688 -29
  23. package/dist/emit_runtime.js.map +1 -1
  24. package/dist/emit_sourcemap.js +66 -66
  25. package/dist/emit_tests.js +12 -47
  26. package/dist/emit_tests.js.map +1 -1
  27. package/dist/emit_websocket.js +3 -0
  28. package/dist/emit_websocket.js.map +1 -1
  29. package/dist/emitter.js +49 -94
  30. package/dist/emitter.js.map +1 -1
  31. package/dist/extension_manager.d.ts +2 -2
  32. package/dist/extension_manager.js +20 -9
  33. package/dist/extension_manager.js.map +1 -1
  34. package/dist/ir.d.ts +0 -4
  35. package/dist/lowering.d.ts +14 -5
  36. package/dist/lowering.js +417 -66
  37. package/dist/lowering.js.map +1 -1
  38. package/dist/module_loader.d.ts +2 -2
  39. package/dist/module_loader.js +23 -20
  40. package/dist/module_loader.js.map +1 -1
  41. package/dist/optimizer.js +3 -6
  42. package/dist/optimizer.js.map +1 -1
  43. package/dist/scaffold.d.ts +2 -2
  44. package/dist/scaffold.js +319 -315
  45. package/dist/scaffold.js.map +1 -1
  46. package/dist/solver.js +1 -1
  47. package/dist/solver.js.map +1 -1
  48. package/dist/source_map.js.map +1 -0
  49. package/dist/test.js.map +1 -0
  50. package/dist/test_typechecker.d.ts +5 -0
  51. package/dist/test_typechecker.js +126 -0
  52. package/dist/test_typechecker.js.map +1 -0
  53. package/dist/typechecker.d.ts +0 -7
  54. package/dist/typechecker.js +16 -103
  55. package/dist/typechecker.js.map +1 -1
  56. package/dist/verifier.d.ts +1 -5
  57. package/dist/verifier.js +38 -142
  58. package/dist/verifier.js.map +1 -1
  59. package/package.json +52 -62
  60. package/src/algorithm_catalog.ts +345 -345
  61. package/src/ast.d.ts +244 -0
  62. package/src/ast.ts +334 -334
  63. package/src/cli.ts +624 -98
  64. package/src/emit_batch.ts +140 -140
  65. package/src/emit_capability.ts +436 -613
  66. package/src/emit_composition.ts +196 -229
  67. package/src/emit_deploy.ts +190 -187
  68. package/src/emit_events.ts +307 -362
  69. package/src/emit_extras.ts +240 -237
  70. package/src/emit_full.ts +309 -472
  71. package/src/emit_maintenance.ts +459 -459
  72. package/src/emit_runtime.ts +730 -17
  73. package/src/emit_sourcemap.ts +140 -140
  74. package/src/emit_tests.ts +205 -243
  75. package/src/emit_websocket.ts +229 -226
  76. package/src/emitter.ts +578 -626
  77. package/src/extension_manager.ts +187 -177
  78. package/src/formatter.ts +297 -297
  79. package/src/index.ts +88 -88
  80. package/src/ir.ts +215 -216
  81. package/src/lexer.d.ts +195 -0
  82. package/src/lexer.ts +630 -630
  83. package/src/lowering.ts +556 -168
  84. package/src/module_loader.ts +114 -112
  85. package/src/optimizer.ts +196 -199
  86. package/src/parse_decls.d.ts +13 -0
  87. package/src/parse_decls.ts +409 -409
  88. package/src/parse_decls2.d.ts +13 -0
  89. package/src/parse_decls2.ts +244 -244
  90. package/src/parse_expr.d.ts +7 -0
  91. package/src/parse_expr.ts +197 -197
  92. package/src/parse_types.d.ts +6 -0
  93. package/src/parse_types.ts +54 -54
  94. package/src/parser.d.ts +10 -0
  95. package/src/parser.ts +1 -1
  96. package/src/parser_base.d.ts +19 -0
  97. package/src/parser_base.ts +57 -57
  98. package/src/parser_recovery.ts +153 -153
  99. package/src/scaffold.ts +375 -371
  100. package/src/solver.ts +330 -330
  101. package/src/typechecker.d.ts +52 -0
  102. package/src/typechecker.ts +591 -700
  103. package/src/types.d.ts +38 -0
  104. package/src/types.ts +122 -122
  105. package/src/verifier.ts +49 -154
  106. package/README.md +0 -382
  107. package/dist/commands/check.d.ts +0 -5
  108. package/dist/commands/check.js +0 -34
  109. package/dist/commands/check.js.map +0 -1
  110. package/dist/commands/compile.d.ts +0 -5
  111. package/dist/commands/compile.js +0 -215
  112. package/dist/commands/compile.js.map +0 -1
  113. package/dist/commands/debug.d.ts +0 -5
  114. package/dist/commands/debug.js +0 -59
  115. package/dist/commands/debug.js.map +0 -1
  116. package/dist/commands/diff.d.ts +0 -5
  117. package/dist/commands/diff.js +0 -123
  118. package/dist/commands/diff.js.map +0 -1
  119. package/dist/commands/fmt.d.ts +0 -5
  120. package/dist/commands/fmt.js +0 -49
  121. package/dist/commands/fmt.js.map +0 -1
  122. package/dist/commands/init.d.ts +0 -5
  123. package/dist/commands/init.js +0 -96
  124. package/dist/commands/init.js.map +0 -1
  125. package/dist/commands/ir.d.ts +0 -5
  126. package/dist/commands/ir.js +0 -27
  127. package/dist/commands/ir.js.map +0 -1
  128. package/dist/commands/lex.d.ts +0 -5
  129. package/dist/commands/lex.js +0 -21
  130. package/dist/commands/lex.js.map +0 -1
  131. package/dist/commands/parse.d.ts +0 -5
  132. package/dist/commands/parse.js +0 -30
  133. package/dist/commands/parse.js.map +0 -1
  134. package/dist/commands/test.d.ts +0 -5
  135. package/dist/commands/test.js +0 -61
  136. package/dist/commands/test.js.map +0 -1
  137. package/dist/commands/verify_determinism.d.ts +0 -5
  138. package/dist/commands/verify_determinism.js +0 -64
  139. package/dist/commands/verify_determinism.js.map +0 -1
  140. package/dist/commands/watch.d.ts +0 -5
  141. package/dist/commands/watch.js +0 -50
  142. package/dist/commands/watch.js.map +0 -1
  143. package/dist/emit_auth.d.ts +0 -18
  144. package/dist/emit_auth.js +0 -507
  145. package/dist/emit_auth.js.map +0 -1
  146. package/dist/emit_database.d.ts +0 -7
  147. package/dist/emit_database.js +0 -72
  148. package/dist/emit_database.js.map +0 -1
  149. package/dist/emit_index.d.ts +0 -6
  150. package/dist/emit_index.js +0 -202
  151. package/dist/emit_index.js.map +0 -1
  152. package/dist/emit_models.d.ts +0 -12
  153. package/dist/emit_models.js +0 -171
  154. package/dist/emit_models.js.map +0 -1
  155. package/dist/emit_openapi.d.ts +0 -9
  156. package/dist/emit_openapi.js +0 -306
  157. package/dist/emit_openapi.js.map +0 -1
  158. package/dist/emit_package.d.ts +0 -7
  159. package/dist/emit_package.js +0 -68
  160. package/dist/emit_package.js.map +0 -1
  161. package/dist/emit_router.d.ts +0 -12
  162. package/dist/emit_router.js +0 -389
  163. package/dist/emit_router.js.map +0 -1
  164. package/dist/lowering_channels.d.ts +0 -11
  165. package/dist/lowering_channels.js +0 -103
  166. package/dist/lowering_channels.js.map +0 -1
  167. package/dist/lowering_entities.d.ts +0 -11
  168. package/dist/lowering_entities.js +0 -232
  169. package/dist/lowering_entities.js.map +0 -1
  170. package/dist/lowering_helpers.d.ts +0 -13
  171. package/dist/lowering_helpers.js +0 -76
  172. package/dist/lowering_helpers.js.map +0 -1
  173. package/src/commands/check.ts +0 -33
  174. package/src/commands/compile.ts +0 -191
  175. package/src/commands/debug.ts +0 -33
  176. package/src/commands/diff.ts +0 -105
  177. package/src/commands/fmt.ts +0 -22
  178. package/src/commands/init.ts +0 -72
  179. package/src/commands/ir.ts +0 -23
  180. package/src/commands/lex.ts +0 -17
  181. package/src/commands/parse.ts +0 -24
  182. package/src/commands/test.ts +0 -36
  183. package/src/commands/verify_determinism.ts +0 -66
  184. package/src/commands/watch.ts +0 -25
  185. package/src/emit_auth.ts +0 -513
  186. package/src/emit_database.ts +0 -72
  187. package/src/emit_index.ts +0 -210
  188. package/src/emit_models.ts +0 -176
  189. package/src/emit_openapi.ts +0 -315
  190. package/src/emit_package.ts +0 -66
  191. package/src/emit_router.ts +0 -408
  192. package/src/lowering_channels.ts +0 -108
  193. package/src/lowering_entities.ts +0 -258
  194. package/src/lowering_helpers.ts +0 -75
package/README.md DELETED
@@ -1,382 +0,0 @@
1
- # bonescript-compiler
2
-
3
- [![npm](https://img.shields.io/npm/v/bonescript-compiler)](https://www.npmjs.com/package/bonescript-compiler)
4
- [![license](https://img.shields.io/npm/l/bonescript-compiler)](https://github.com/Doorman11991/BoneScript/blob/main/compiler/LICENSE)
5
- [![node](https://img.shields.io/node/v/bonescript-compiler)](https://www.npmjs.com/package/bonescript-compiler)
6
-
7
- A declarative language that compiles system descriptions into complete, runnable Node.js backends. Write the bones, get the whole skeleton.
8
-
9
- ```bone
10
- system Shop {
11
- entity Product {
12
- owns: [name: string, price: uint, stock: uint]
13
- constraints: [price > 0, stock >= 0]
14
- states: available -> sold_out | archived
15
- }
16
-
17
- capability purchase(buyer: User, product: Product, qty: uint) {
18
- requires: [product.stock >= qty, buyer.balance >= product.price * qty]
19
- effects: [product.stock -= qty, buyer.balance -= product.price * qty]
20
- emits: OrderPlaced
21
- sync: transactional
22
- }
23
-
24
- event OrderPlaced {
25
- payload: { order_id: uuid, buyer_id: uuid, total: uint }
26
- delivery: exactly_once
27
- ttl: 90d
28
- }
29
- }
30
- ```
31
-
32
- Run `bonec compile shop.bone` and get back a complete Express API with PostgreSQL, auth middleware, state machine enforcement, transactional SQL, durable events, health checks, migrations, WebSocket support, a Dockerfile, and a GitHub Actions CI pipeline. No LLMs. Deterministic — same input always produces identical output.
33
-
34
- ---
35
-
36
- ## Install
37
-
38
- ```bash
39
- npm install -g bonescript-compiler
40
- ```
41
-
42
- Or run without installing:
43
-
44
- ```bash
45
- npx bonescript-compiler compile shop.bone
46
- ```
47
-
48
- Requires Node.js 18 or later.
49
-
50
- ---
51
-
52
- ## Quick Start
53
-
54
- ```bash
55
- # 1. Scaffold a new project
56
- bonec init my-app --domain saas_platform
57
-
58
- # 2. Compile
59
- bonec compile my-app/my-app.bone
60
-
61
- # 3. Configure
62
- cp my-app/output/.env.example my-app/output/.env
63
- # Edit .env — set JWT_SECRET, DATABASE_URL, etc.
64
-
65
- # 4. Run
66
- cd my-app/output
67
- npm install
68
- docker compose up -d # starts Postgres + Redis
69
- npm run migrate
70
- npm run dev
71
- # → http://localhost:3000
72
- ```
73
-
74
- ---
75
-
76
- ## What Gets Generated
77
-
78
- From a single `.bone` file, the compiler produces a complete Node.js project:
79
-
80
- ```
81
- output/
82
- ├── src/
83
- │ ├── index.ts Express server, all routes wired
84
- │ ├── db.ts Postgres connection pool
85
- │ ├── auth.ts JWT / OAuth2 / API key middleware (domain-selected)
86
- │ ├── events.ts Durable event bus (transactional outbox)
87
- │ ├── publishers.ts Typed event publisher functions
88
- │ ├── health.ts /health/live, /health/ready, /health/metrics
89
- │ ├── logger.ts Structured JSON logging
90
- │ ├── metrics.ts Prometheus-style counters/histograms
91
- │ ├── failure_rules.ts Rule-based remediation
92
- │ ├── flows.ts Saga runtime with backward compensation
93
- │ ├── websocket.ts WebSocket server (if channels declared)
94
- │ ├── channel_filters.ts Channel filter predicates (if filters declared)
95
- │ ├── algorithms.ts Algorithm implementations (only what's used)
96
- │ ├── extensions.ts Extension point stubs (preserved on recompile)
97
- │ ├── routes/ One file per entity — CRUD + capabilities
98
- │ ├── state_machines/ One file per entity with states
99
- │ ├── models/ TypeScript interfaces + Zod validators
100
- │ └── derived/ Derived field helpers (if derived fields declared)
101
- ├── migrations/ SQL schemas, indexes, triggers, FK constraints
102
- │ ├── <entity>.sql
103
- │ ├── event_outbox.sql
104
- │ └── api_keys.sql (apikey auth domains only)
105
- ├── openapi.json OpenAPI 3.0 schema
106
- ├── Dockerfile
107
- ├── docker-compose.yaml Postgres + Redis for local dev
108
- ├── k8s/deployment.yaml Kubernetes deployment manifest
109
- ├── .github/workflows/ CI/CD pipeline
110
- └── src/tests.ts Generated regression tests
111
- ```
112
-
113
- ---
114
-
115
- ## Language Features
116
-
117
- ### Entities
118
-
119
- Stateful data objects with fields, constraints, state machines, and relations.
120
-
121
- ```bone
122
- entity Order {
123
- owns: [buyer_id: uuid, total: uint, status: string]
124
- constraints: [total > 0, status in ["pending", "paid", "shipped"]]
125
- states: pending -> paid -> shipped -> delivered | cancelled
126
- relation buyer: belongs_to User
127
- }
128
- ```
129
-
130
- Auto-generated fields on every entity: `id: uuid`, `created_at: timestamp`, `updated_at: timestamp`.
131
-
132
- ### Capabilities
133
-
134
- Named operations with preconditions, effects, and event emissions.
135
-
136
- ```bone
137
- capability ship_order(seller: Seller, order: Order) {
138
- requires: [order.status == "paid", order.seller_id == seller.id]
139
- effects: [order.status = "shipped"]
140
- emits: OrderShipped
141
- sync: transactional
142
- timeout: 10s
143
- retry: { max_attempts: 3, backoff: exponential, interval: 1s }
144
- }
145
- ```
146
-
147
- `sync` modes: `transactional` (BEGIN/COMMIT), `eventual` (outbox), `realtime` (WebSocket broadcast), `batch` (queued).
148
-
149
- ### Events
150
-
151
- Immutable records with delivery guarantees.
152
-
153
- ```bone
154
- event OrderShipped {
155
- payload: { order_id: uuid, shipped_at: timestamp }
156
- delivery: exactly_once // transactional outbox + deduplication
157
- ttl: 30d
158
- }
159
- ```
160
-
161
- ### Channels
162
-
163
- Real-time WebSocket communication with optional filter predicates.
164
-
165
- ```bone
166
- channel game_lobby {
167
- transport: websocket
168
- ordering: causal
169
- participants: set<Player>
170
- persistence: last_100
171
- filter: event.room_id == participant.room_id
172
- }
173
- ```
174
-
175
- ### Stores
176
-
177
- Explicit persistence declarations that generate SQL migrations.
178
-
179
- ```bone
180
- store AuditLog {
181
- engine: postgresql
182
- schema: {
183
- actor_id: uuid,
184
- action: string,
185
- occurred_at: timestamp
186
- }
187
- retention: 90d
188
- }
189
- ```
190
-
191
- Supported engines: `postgresql`, `redis`.
192
-
193
- ### Pipelines
194
-
195
- Multi-step operations with automatic rollback.
196
-
197
- ```bone
198
- capability checkout(buyer: Buyer, cart: Cart) {
199
- pipeline: {
200
- validate_inventory(cart)
201
- charge_payment(buyer, cart.total) as payment
202
- create_order(buyer, cart, payment)
203
- on_error: rollback
204
- }
205
- sync: transactional
206
- }
207
- ```
208
-
209
- ### Flows (Sagas)
210
-
211
- Multi-service orchestration with backward compensation.
212
-
213
- ```bone
214
- flow place_order {
215
- step reserve: reserve_inventory(order)
216
- compensate: release_inventory(order)
217
- step charge: charge_buyer(order)
218
- compensate: refund_buyer(order)
219
- step notify: send_confirmation(order)
220
- }
221
- ```
222
-
223
- ### Algorithms
224
-
225
- Named implementations from a built-in catalog.
226
-
227
- ```bone
228
- capability find_route(start: string, end: string) {
229
- algorithm: shortest_path using { graph: road_network, source: start, target: end }
230
- returns: json
231
- }
232
- ```
233
-
234
- Available: `shortest_path`, `topological_sort`, `binary_search`, `bipartite_matching`, `round_robin`, `weighted_average`, `percentile`, `rank_by`, `consistent_hash`.
235
-
236
- ### Extension Points
237
-
238
- Escape hatches for custom logic that survive recompilation.
239
-
240
- ```bone
241
- extension_point calculate_fee(order: Order) {
242
- returns: uint
243
- stable: true // compilation fails if not implemented
244
- }
245
- ```
246
-
247
- ---
248
-
249
- ## Auth Strategies
250
-
251
- Selected automatically based on domain. Override with `auth:` on any entity.
252
-
253
- | Strategy | Trigger | Generated code |
254
- |----------|---------|----------------|
255
- | `jwt` | default / `multiplayer_game` / `realtime_collaboration` | Bearer token middleware, `issueToken()` helper |
256
- | `oauth2` | `saas_platform` / `marketplace` / `social_network` | Full Authorization Code + PKCE flow, `/auth/login`, `/auth/callback`, `/auth/refresh`, `/auth/logout` |
257
- | `apikey` | `iot_system` | `X-API-Key` header, SHA-256 hashed keys, LRU cache, `/auth/keys` CRUD routes, `api_keys.sql` migration |
258
-
259
- ---
260
-
261
- ## Commands
262
-
263
- | Command | Description |
264
- |---------|-------------|
265
- | `bonec compile <file>` | Full 7-stage compilation → runnable project |
266
- | `bonec check <file>` | Validate without generating code |
267
- | `bonec fmt <file>` | Format in place |
268
- | `bonec watch <file>` | Recompile on save |
269
- | `bonec init <name> --domain <d>` | Scaffold from a domain template |
270
- | `bonec diff <old> <new>` | Show schema migration diff |
271
- | `bonec test [output-dir]` | Run generated regression tests |
272
- | `bonec debug <file>` | Generate source maps |
273
- | `bonec ir <file>` | Print the IR as JSON |
274
- | `bonec lex <file>` | Print the token stream |
275
- | `bonec parse <file>` | Print the AST |
276
- | `bonec verify-determinism <file>` | Confirm two compilations are identical |
277
-
278
- ### Domain Templates
279
-
280
- `bonec init my-app --domain <name>`
281
-
282
- | Domain | Auth | Sync |
283
- |--------|------|------|
284
- | `multiplayer_game` | JWT | realtime |
285
- | `saas_platform` | OAuth2 | eventual |
286
- | `iot_system` | API key | eventual |
287
- | `social_network` | OAuth2 | eventual |
288
- | `marketplace` | OAuth2 | transactional |
289
- | `realtime_collaboration` | JWT | realtime |
290
-
291
- ---
292
-
293
- ## Type Errors
294
-
295
- The compiler reports structured errors with codes:
296
-
297
- | Code | Meaning |
298
- |------|---------|
299
- | T001 | Undefined type reference |
300
- | T003 | Type mismatch in assignment |
301
- | T005 | Expression must type to bool |
302
- | T006 | Undeclared parameter type |
303
- | T008 | Invalid set/numeric operator |
304
- | T009 | Duplicate field name |
305
- | T010 | Undefined state in transition |
306
- | T011 | Emitted event not declared |
307
- | T012 | Flow has fewer than 2 steps |
308
- | T013 | Entity name used as capability call |
309
- | T014 | Unsupported store engine |
310
- | T015 | Invalid policy value |
311
-
312
- ---
313
-
314
- ## Compilation Pipeline
315
-
316
- Every stage is deterministic — same `.bone` file always produces bitwise-identical output.
317
-
318
- ```
319
- .bone source
320
- ↓ Lex tokens
321
- ↓ Parse AST (with error recovery)
322
- ↓ Type Check validated AST + structured errors
323
- ↓ Lower Architecture IR
324
- ↓ Optimize dead module elimination, deduplication
325
- ↓ Solve constraint propagation → concrete decisions
326
- ↓ Emit TypeScript + SQL + YAML + JSON
327
- ↓ Verify IR consistency + generated code checks
328
- ```
329
-
330
- ---
331
-
332
- ## Programmatic API
333
-
334
- ```typescript
335
- import { compile } from "bonescript-compiler";
336
-
337
- const { files, errors, warnings } = await compile(`
338
- system Shop {
339
- entity Product { owns: [name: string, price: uint] }
340
- }
341
- `);
342
-
343
- for (const file of files) {
344
- console.log(file.path, file.language);
345
- }
346
- ```
347
-
348
- Individual pipeline stages are also exported:
349
-
350
- ```typescript
351
- import {
352
- Lexer, Parser, TypeChecker,
353
- Lowering, optimize, ConstraintSolver,
354
- FullEmitter, Verifier, Formatter,
355
- scaffold, ModuleLoader,
356
- } from "bonescript-compiler";
357
- ```
358
-
359
- ---
360
-
361
- ## VS Code Extension
362
-
363
- Install from the repo:
364
-
365
- ```bash
366
- .\install-extension.ps1
367
- ```
368
-
369
- Features: real-time diagnostics, context-aware completions, hover docs, go-to-definition, document outline, signature help, quick fixes for all error codes, cross-file rename.
370
-
371
- ---
372
-
373
- ## Contributing
374
-
375
- Issues and PRs welcome at [github.com/Doorman11991/BoneScript](https://github.com/Doorman11991/BoneScript).
376
-
377
- ```bash
378
- cd compiler
379
- npm test # run all tests
380
- npm run test:jest:unit # lexer, parser, typechecker
381
- npm run test:jest:integration # emitter, integration
382
- ```
@@ -1,5 +0,0 @@
1
- /**
2
- * bonec check <file>
3
- * Lex + parse + type check without code generation.
4
- */
5
- export declare function runCheck(source: string): void;
@@ -1,34 +0,0 @@
1
- "use strict";
2
- /**
3
- * bonec check <file>
4
- * Lex + parse + type check without code generation.
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.runCheck = void 0;
8
- const lexer_1 = require("../lexer");
9
- const parser_recovery_1 = require("../parser_recovery");
10
- const typechecker_1 = require("../typechecker");
11
- function runCheck(source) {
12
- const tokens = new lexer_1.Lexer(source).tokenize();
13
- const result = new parser_recovery_1.RecoveringParser(tokens).parse();
14
- let totalErrors = 0;
15
- for (const e of result.errors) {
16
- console.error(` parse: ${e.message}`);
17
- totalErrors++;
18
- }
19
- if (result.ast) {
20
- for (const err of new typechecker_1.TypeChecker().check(result.ast)) {
21
- console.error(` type: ${err.code} at ${err.loc.line}:${err.loc.column}: ${err.message}`);
22
- totalErrors++;
23
- }
24
- }
25
- if (totalErrors === 0) {
26
- console.log("v Check passed (0 errors)");
27
- }
28
- else {
29
- console.log(`x ${totalErrors} error(s) found.`);
30
- process.exit(1);
31
- }
32
- }
33
- exports.runCheck = runCheck;
34
- //# sourceMappingURL=check.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oCAAiC;AACjC,wDAAsD;AACtD,gDAA6C;AAE7C,SAAgB,QAAQ,CAAC,MAAc;IACrC,MAAM,MAAM,GAAG,IAAI,aAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,kCAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IACpD,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,WAAW,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,IAAI,yBAAW,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3F,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,kBAAkB,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAvBD,4BAuBC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * bonec compile <file>
3
- * Full 7-stage compilation pipeline → runnable project.
4
- */
5
- export declare function runCompile(source: string, resolved: string): Promise<void>;
@@ -1,215 +0,0 @@
1
- "use strict";
2
- /**
3
- * bonec compile <file>
4
- * Full 7-stage compilation pipeline → runnable project.
5
- */
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
- });
22
- var __importStar = (this && this.__importStar) || function (mod) {
23
- if (mod && mod.__esModule) return mod;
24
- var result = {};
25
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
- __setModuleDefault(result, mod);
27
- return result;
28
- };
29
- Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.runCompile = void 0;
31
- const fs = __importStar(require("fs"));
32
- const path = __importStar(require("path"));
33
- const crypto_1 = require("crypto");
34
- const lexer_1 = require("../lexer");
35
- const typechecker_1 = require("../typechecker");
36
- const lowering_1 = require("../lowering");
37
- const solver_1 = require("../solver");
38
- const emit_full_1 = require("../emit_full");
39
- const verifier_1 = require("../verifier");
40
- const module_loader_1 = require("../module_loader");
41
- const extension_manager_1 = require("../extension_manager");
42
- const optimizer_1 = require("../optimizer");
43
- async function runCompile(source, resolved) {
44
- try {
45
- const tokens = new lexer_1.Lexer(source).tokenize();
46
- console.log(` [1/7] Lexed: ${tokens.length} tokens`);
47
- const loader = new module_loader_1.ModuleLoader();
48
- const loadResult = await loader.load(resolved);
49
- if (loadResult.errors.length > 0) {
50
- console.log(` [2/7] Parse: ${loadResult.errors.length} error(s)`);
51
- for (const e of loadResult.errors.slice(0, 10)) {
52
- console.log(` ${path.basename(e.file)}: ${e.error.message}`);
53
- }
54
- if (!loadResult.ast)
55
- process.exit(1);
56
- }
57
- else {
58
- const sysCount = loadResult.ast?.systems.length || 0;
59
- console.log(` [2/7] Parsed: ${sysCount} system(s) from ${loadResult.loadedFiles.length} file(s)`);
60
- }
61
- const ast = loadResult.ast;
62
- for (const sys of ast.systems) {
63
- console.log(` System '${sys.name}':`);
64
- const counts = {};
65
- for (const d of sys.declarations)
66
- counts[d.kind] = (counts[d.kind] || 0) + 1;
67
- for (const [kind, count] of Object.entries(counts)) {
68
- console.log(` ${kind}: ${count}`);
69
- }
70
- }
71
- // Stage 3: Type Check
72
- const typeErrors = new typechecker_1.TypeChecker().check(ast);
73
- if (typeErrors.length > 0) {
74
- console.log(` [3/7] Type check: ${typeErrors.length} error(s)`);
75
- for (const err of typeErrors) {
76
- console.log(` ${err.code} at ${err.loc.line}:${err.loc.column}: ${err.message}`);
77
- }
78
- process.exit(1);
79
- }
80
- else {
81
- console.log(` [3/7] Type check: v (0 errors)`);
82
- }
83
- // Stage 4: Lower to IR
84
- const sourceHash = (0, crypto_1.createHash)("sha256").update(source).digest("hex").slice(0, 16);
85
- const irSystems = new lowering_1.Lowering().lower(ast, sourceHash);
86
- const totalModules = irSystems.reduce((sum, s) => sum + s.modules.length, 0);
87
- const totalEvents = irSystems.reduce((sum, s) => sum + s.events.length, 0);
88
- const totalFlows = irSystems.reduce((sum, s) => sum + s.flows.length, 0);
89
- console.log(` [4/7] Lower to IR: ${totalModules} modules, ${totalEvents} events, ${totalFlows} flows`);
90
- for (const sys of irSystems) {
91
- for (const mod of sys.modules) {
92
- const methodCount = mod.interfaces.reduce((s, i) => s + i.methods.length, 0);
93
- console.log(` ${mod.kind.padEnd(16)} ${mod.name.padEnd(24)} (${methodCount} methods, ${mod.models.length} models)`);
94
- }
95
- }
96
- // Stage 4.5: IR Optimization
97
- for (let i = 0; i < irSystems.length; i++) {
98
- const result = (0, optimizer_1.optimize)(irSystems[i]);
99
- irSystems[i] = result.system;
100
- if (result.log.length > 0) {
101
- console.log(` [4.5] IR optimize: ${result.modulesRemoved} modules removed, ${result.eventsDeduped} events deduped, ${result.depsRemoved} deps minimized`);
102
- }
103
- }
104
- // Stage 5: Constraint Solve
105
- const solver = new solver_1.ConstraintSolver();
106
- let totalResolved = 0;
107
- let solverFailed = false;
108
- for (const sys of irSystems) {
109
- const result = solver.solve(sys);
110
- sys.resolution = result.resolution;
111
- totalResolved += Object.keys(result.resolution).length;
112
- if (result.errors.length > 0) {
113
- solverFailed = true;
114
- console.log(` [5/7] Constraint solve: ${result.errors.length} error(s)`);
115
- for (const err of result.errors)
116
- console.log(` x ${err}`);
117
- }
118
- else {
119
- console.log(` [5/7] Constraint solve: v (${totalResolved} resolved, ${result.assumptions.length} assumptions)`);
120
- for (const a of result.assumptions.slice(0, 5))
121
- console.log(` ${a}`);
122
- if (result.assumptions.length > 5)
123
- console.log(` ... and ${result.assumptions.length - 5} more`);
124
- }
125
- // Back-propagate resolved values into module configs so emitters pick them up.
126
- // The solver resolves keys like "APIGateway.rate_limit" → write back to mod.config.
127
- for (const mod of sys.modules) {
128
- for (const [key, value] of Object.entries(result.resolution)) {
129
- const prefix = `${mod.name}.`;
130
- if (key.startsWith(prefix)) {
131
- const prop = key.slice(prefix.length);
132
- // Only overwrite if the module config doesn't already have an explicit value
133
- if (mod.config[prop] === undefined || mod.config[prop] === null) {
134
- const numVal = Number(value);
135
- mod.config[prop] = isNaN(numVal) ? value : numVal;
136
- }
137
- }
138
- }
139
- }
140
- }
141
- if (solverFailed)
142
- process.exit(1);
143
- // Stage 6: Code Emit
144
- const emitter = new emit_full_1.FullEmitter();
145
- const allFiles = [];
146
- for (const sys of irSystems)
147
- allFiles.push(...emitter.emit(sys));
148
- console.log(` [6/7] Code emit: ${allFiles.length} files generated`);
149
- const byLang = {};
150
- for (const f of allFiles)
151
- byLang[f.language] = (byLang[f.language] || 0) + 1;
152
- for (const [lang, count] of Object.entries(byLang)) {
153
- console.log(` ${lang}: ${count} file(s)`);
154
- }
155
- // Stage 7: Verify — check ALL systems, not just the first
156
- let verifyFailed = false;
157
- let totalVerifyErrors = 0;
158
- let totalVerifyWarnings = 0;
159
- for (const sys of irSystems) {
160
- const verifyResult = new verifier_1.Verifier().verify(sys, allFiles);
161
- const errCount = verifyResult.issues.filter(i => i.severity === "error").length;
162
- const warnCount = verifyResult.issues.filter(i => i.severity === "warning").length;
163
- totalVerifyErrors += errCount;
164
- totalVerifyWarnings += warnCount;
165
- if (!verifyResult.passed)
166
- verifyFailed = true;
167
- for (const issue of verifyResult.issues.slice(0, 10)) {
168
- console.log(` ${issue.severity === "error" ? "x" : "!"} ${issue.code}: ${issue.message}`);
169
- }
170
- }
171
- if (verifyFailed) {
172
- console.log(` [7/7] Verify: FAILED (${totalVerifyErrors} errors, ${totalVerifyWarnings} warnings)`);
173
- }
174
- else {
175
- console.log(` [7/7] Verify: v (${allFiles.length} files, ${totalVerifyWarnings} warnings)`);
176
- }
177
- // Abort before writing output if verification failed
178
- if (verifyFailed)
179
- process.exit(1);
180
- // Write output — all writes in parallel per directory
181
- const outputDir = path.resolve(path.dirname(resolved), "output");
182
- const allExtensions = irSystems.flatMap(s => s.extension_points || []);
183
- const extensionErrors = [];
184
- // Collect unique directories and create them all first
185
- const dirs = new Set(allFiles.map(f => path.dirname(path.join(outputDir, f.path))));
186
- await Promise.all([...dirs].map(dir => fs.promises.mkdir(dir, { recursive: true })));
187
- // Write all files (extensions.ts merged, rest written directly)
188
- await Promise.all(allFiles.map(async (f) => {
189
- const outPath = path.join(outputDir, f.path);
190
- if (f.path === "src/extensions.ts" && allExtensions.length > 0) {
191
- const astExtensions = ast.systems.flatMap(s => s.declarations.filter((d) => d.kind === "ExtensionPointDecl"));
192
- const { content, validationErrors } = await (0, extension_manager_1.mergeWithExisting)(f.content, outPath, astExtensions);
193
- for (const e of validationErrors)
194
- extensionErrors.push(e.message);
195
- await fs.promises.writeFile(outPath, content, "utf-8");
196
- }
197
- else {
198
- await fs.promises.writeFile(outPath, f.content, "utf-8");
199
- }
200
- }));
201
- if (extensionErrors.length > 0) {
202
- console.log(`\n Extension point errors:`);
203
- for (const e of extensionErrors)
204
- console.log(` x ${e}`);
205
- process.exit(1);
206
- }
207
- console.log(`\nv Compilation complete. ${allFiles.length} files written to output/`);
208
- }
209
- catch (e) {
210
- console.error(`x ${e.message}`);
211
- process.exit(1);
212
- }
213
- }
214
- exports.runCompile = runCompile;
215
- //# sourceMappingURL=compile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,mCAAoC;AACpC,oCAAiC;AACjC,gDAA6C;AAC7C,0CAAuC;AACvC,sCAA6C;AAC7C,4CAA2C;AAC3C,0CAAuC;AACvC,oDAAgD;AAChD,4DAAyD;AACzD,4CAAwC;AAEjC,KAAK,UAAU,UAAU,CAAC,MAAc,EAAE,QAAgB;IAC/D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,aAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAI,4BAAY,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE/C,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC;YACnE,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,mBAAmB,UAAU,CAAC,WAAW,CAAC,MAAM,UAAU,CAAC,CAAC;QACrG,CAAC;QAED,MAAM,GAAG,GAAG,UAAU,CAAC,GAAI,CAAC;QAE5B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;YAC9C,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,YAAY;gBAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7E,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,MAAM,UAAU,GAAG,IAAI,yBAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,uBAAuB,UAAU,CAAC,MAAM,WAAW,CAAC,CAAC;YACjE,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3F,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAClD,CAAC;QAED,uBAAuB;QACvB,MAAM,UAAU,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,IAAI,mBAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7E,MAAM,WAAW,GAAI,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAK,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,wBAAwB,YAAY,aAAa,WAAW,YAAY,UAAU,QAAQ,CAAC,CAAC;QACxG,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC9B,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC7E,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,WAAW,aAAa,GAAG,CAAC,MAAM,CAAC,MAAM,UAAU,CAAC,CAAC;YAC9H,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAA,oBAAQ,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YAC7B,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,CAAC,cAAc,qBAAqB,MAAM,CAAC,aAAa,oBAAoB,MAAM,CAAC,WAAW,iBAAiB,CAAC,CAAC;YAC7J,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,MAAM,MAAM,GAAG,IAAI,yBAAgB,EAAE,CAAC;QACtC,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YACnC,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;YACvD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,YAAY,GAAG,IAAI,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC;gBAC1E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM;oBAAE,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,gCAAgC,aAAa,cAAc,MAAM,CAAC,WAAW,CAAC,MAAM,eAAe,CAAC,CAAC;gBACjH,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAC7E,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3G,CAAC;YAED,+EAA+E;YAC/E,oFAAoF;YACpF,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC7D,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC;oBAC9B,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBACtC,6EAA6E;wBAC7E,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;4BAChE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;4BAC7B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;wBACpD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,YAAY;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAElC,qBAAqB;QACrB,MAAM,OAAO,GAAG,IAAI,uBAAW,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAoC,EAAE,CAAC;QACrD,KAAK,MAAM,GAAG,IAAI,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,CAAC,MAAM,kBAAkB,CAAC,CAAC;QACrE,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7E,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK,KAAK,UAAU,CAAC,CAAC;QACpD,CAAC;QAED,0DAA0D;QAC1D,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,IAAI,mBAAQ,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;YACjF,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;YACnF,iBAAiB,IAAM,QAAQ,CAAC;YAChC,mBAAmB,IAAI,SAAS,CAAC;YACjC,IAAI,CAAC,YAAY,CAAC,MAAM;gBAAE,YAAY,GAAG,IAAI,CAAC;YAC9C,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACpG,CAAC;QACH,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,2BAA2B,iBAAiB,YAAY,mBAAmB,YAAY,CAAC,CAAC;QACvG,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,CAAC,MAAM,WAAW,mBAAmB,YAAY,CAAC,CAAC;QAC/F,CAAC;QAED,qDAAqD;QACrD,IAAI,YAAY;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAElC,sDAAsD;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QACvE,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,uDAAuD;QACvD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAErF,gEAAgE;QAChE,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAC,CAAC,EAAC,EAAE;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAE7C,IAAI,CAAC,CAAC,IAAI,KAAK,mBAAmB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/D,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAC5C,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAY,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAC,CACxE,CAAC;gBACF,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,IAAA,qCAAiB,EAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;gBACjG,KAAK,MAAM,CAAC,IAAI,gBAAgB;oBAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAClE,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC,CAAC,CAAC;QAEJ,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAC3C,KAAK,MAAM,CAAC,IAAI,eAAe;gBAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,6BAA6B,QAAQ,CAAC,MAAM,2BAA2B,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AA5KD,gCA4KC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * bonec debug <file>
3
- * Generate source maps (.bone.map) for runtime error annotation.
4
- */
5
- export declare function runDebug(source: string, resolved: string): Promise<void>;