@decocms/runtime 0.28.1 → 1.0.0-alpha.10

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 (88) hide show
  1. package/config-schema.json +553 -0
  2. package/package.json +16 -77
  3. package/scripts/generate-json-schema.ts +24 -0
  4. package/src/asset-server/dev-server-proxy.ts +16 -0
  5. package/src/asset-server/index.ts +44 -0
  6. package/src/bindings/README.md +1 -1
  7. package/src/bindings/binder.ts +1 -1
  8. package/src/bindings/channels.ts +1 -1
  9. package/src/bindings/deconfig/resources.ts +47 -17
  10. package/src/bindings/deconfig/types.ts +1 -1
  11. package/src/bindings/language-model/utils.ts +0 -91
  12. package/src/bindings/resources/bindings.ts +1 -1
  13. package/src/bindings/resources/schemas.ts +1 -1
  14. package/src/bindings/views.ts +1 -1
  15. package/src/bindings.ts +8 -7
  16. package/src/index.ts +5 -20
  17. package/src/mastra.ts +1 -229
  18. package/src/mcp.ts +7 -11
  19. package/src/proxy.ts +0 -8
  20. package/src/resources.ts +1 -1
  21. package/src/state.ts +1 -1
  22. package/src/views.ts +1 -1
  23. package/tsconfig.json +8 -0
  24. package/dist/admin.d.ts +0 -5
  25. package/dist/admin.js +0 -21
  26. package/dist/admin.js.map +0 -1
  27. package/dist/bindings/deconfig/index.d.ts +0 -12
  28. package/dist/bindings/deconfig/index.js +0 -10
  29. package/dist/bindings/deconfig/index.js.map +0 -1
  30. package/dist/bindings/index.d.ts +0 -2315
  31. package/dist/bindings/index.js +0 -156
  32. package/dist/bindings/index.js.map +0 -1
  33. package/dist/chunk-3AWMDSOH.js +0 -96
  34. package/dist/chunk-3AWMDSOH.js.map +0 -1
  35. package/dist/chunk-4XSQKJLU.js +0 -105
  36. package/dist/chunk-4XSQKJLU.js.map +0 -1
  37. package/dist/chunk-5EYZ2LVM.js +0 -158
  38. package/dist/chunk-5EYZ2LVM.js.map +0 -1
  39. package/dist/chunk-7ITSLORK.js +0 -128
  40. package/dist/chunk-7ITSLORK.js.map +0 -1
  41. package/dist/chunk-I7BWSAN6.js +0 -49
  42. package/dist/chunk-I7BWSAN6.js.map +0 -1
  43. package/dist/chunk-L4OT2YDO.js +0 -27
  44. package/dist/chunk-L4OT2YDO.js.map +0 -1
  45. package/dist/chunk-SHQSNOFL.js +0 -769
  46. package/dist/chunk-SHQSNOFL.js.map +0 -1
  47. package/dist/chunk-UHR3BLMF.js +0 -92
  48. package/dist/chunk-UHR3BLMF.js.map +0 -1
  49. package/dist/chunk-UIJGM3NV.js +0 -518
  50. package/dist/chunk-UIJGM3NV.js.map +0 -1
  51. package/dist/chunk-ZPUT6RN6.js +0 -32
  52. package/dist/chunk-ZPUT6RN6.js.map +0 -1
  53. package/dist/client.d.ts +0 -28
  54. package/dist/client.js +0 -5
  55. package/dist/client.js.map +0 -1
  56. package/dist/d1-store.d.ts +0 -9
  57. package/dist/d1-store.js +0 -4
  58. package/dist/d1-store.js.map +0 -1
  59. package/dist/drizzle.d.ts +0 -49
  60. package/dist/drizzle.js +0 -121
  61. package/dist/drizzle.js.map +0 -1
  62. package/dist/index-LOfgE9a_.d.ts +0 -471
  63. package/dist/index-xKtm7A7B.d.ts +0 -530
  64. package/dist/index.d.ts +0 -10
  65. package/dist/index.js +0 -637
  66. package/dist/index.js.map +0 -1
  67. package/dist/mastra.d.ts +0 -10
  68. package/dist/mastra.js +0 -6
  69. package/dist/mastra.js.map +0 -1
  70. package/dist/mcp-87iLaW9V.d.ts +0 -105
  71. package/dist/mcp-client.d.ts +0 -232
  72. package/dist/mcp-client.js +0 -4
  73. package/dist/mcp-client.js.map +0 -1
  74. package/dist/proxy.d.ts +0 -11
  75. package/dist/proxy.js +0 -5
  76. package/dist/proxy.js.map +0 -1
  77. package/dist/resources.d.ts +0 -362
  78. package/dist/resources.js +0 -4
  79. package/dist/resources.js.map +0 -1
  80. package/dist/views.d.ts +0 -72
  81. package/dist/views.js +0 -4
  82. package/dist/views.js.map +0 -1
  83. package/src/bindings/language-model/ai-sdk.ts +0 -87
  84. package/src/bindings/language-model/index.ts +0 -4
  85. package/src/cf-imports.ts +0 -1
  86. package/src/d1-store.ts +0 -34
  87. package/src/deprecated.ts +0 -59
  88. package/src/workflow.ts +0 -193
@@ -0,0 +1,553 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$ref": "#/definitions/WranglerConfig",
4
+ "definitions": {
5
+ "WranglerConfig": {
6
+ "type": "object",
7
+ "properties": {
8
+ "name": {
9
+ "type": "string"
10
+ },
11
+ "main": {
12
+ "type": "string"
13
+ },
14
+ "scope": {
15
+ "type": "string"
16
+ },
17
+ "main_module": {
18
+ "type": "string"
19
+ },
20
+ "routes": {
21
+ "type": "array",
22
+ "items": {
23
+ "$ref": "#/definitions/Route"
24
+ }
25
+ },
26
+ "compatibility_date": {
27
+ "type": "string"
28
+ },
29
+ "compatibility_flags": {
30
+ "type": "array",
31
+ "items": {
32
+ "type": "string"
33
+ }
34
+ },
35
+ "vars": {
36
+ "type": "object",
37
+ "additionalProperties": {
38
+ "type": "string"
39
+ }
40
+ },
41
+ "kv_namespaces": {
42
+ "type": "array",
43
+ "items": {
44
+ "$ref": "#/definitions/KVNamespace"
45
+ }
46
+ },
47
+ "triggers": {
48
+ "$ref": "#/definitions/Triggers"
49
+ },
50
+ "ai": {
51
+ "type": "object",
52
+ "properties": {
53
+ "binding": {
54
+ "type": "string"
55
+ }
56
+ },
57
+ "required": [
58
+ "binding"
59
+ ],
60
+ "additionalProperties": false
61
+ },
62
+ "browser": {
63
+ "type": "object",
64
+ "properties": {
65
+ "binding": {
66
+ "type": "string"
67
+ }
68
+ },
69
+ "required": [
70
+ "binding"
71
+ ],
72
+ "additionalProperties": false
73
+ },
74
+ "durable_objects": {
75
+ "type": "object",
76
+ "properties": {
77
+ "bindings": {
78
+ "type": "array",
79
+ "items": {
80
+ "type": "object",
81
+ "properties": {
82
+ "name": {
83
+ "type": "string"
84
+ },
85
+ "class_name": {
86
+ "type": "string"
87
+ }
88
+ },
89
+ "required": [
90
+ "name",
91
+ "class_name"
92
+ ],
93
+ "additionalProperties": false
94
+ }
95
+ }
96
+ },
97
+ "additionalProperties": false
98
+ },
99
+ "hyperdrive": {
100
+ "type": "array",
101
+ "items": {
102
+ "type": "object",
103
+ "properties": {
104
+ "binding": {
105
+ "type": "string"
106
+ },
107
+ "id": {
108
+ "type": "string"
109
+ },
110
+ "localConnectionString": {
111
+ "type": "string"
112
+ }
113
+ },
114
+ "required": [
115
+ "binding",
116
+ "id",
117
+ "localConnectionString"
118
+ ],
119
+ "additionalProperties": false
120
+ }
121
+ },
122
+ "d1_databases": {
123
+ "type": "array",
124
+ "items": {
125
+ "type": "object",
126
+ "properties": {
127
+ "database_name": {
128
+ "type": "string"
129
+ },
130
+ "database_id": {
131
+ "type": "string"
132
+ },
133
+ "binding": {
134
+ "type": "string"
135
+ }
136
+ },
137
+ "required": [
138
+ "database_name",
139
+ "binding"
140
+ ],
141
+ "additionalProperties": false
142
+ }
143
+ },
144
+ "queues": {
145
+ "type": "object",
146
+ "properties": {
147
+ "consumers": {
148
+ "type": "array",
149
+ "items": {
150
+ "type": "object",
151
+ "properties": {
152
+ "queue": {
153
+ "type": "string"
154
+ },
155
+ "max_batch_timeout": {
156
+ "type": "number"
157
+ }
158
+ },
159
+ "required": [
160
+ "queue",
161
+ "max_batch_timeout"
162
+ ],
163
+ "additionalProperties": false
164
+ }
165
+ },
166
+ "producers": {
167
+ "type": "array",
168
+ "items": {
169
+ "type": "object",
170
+ "properties": {
171
+ "queue": {
172
+ "type": "string"
173
+ },
174
+ "binding": {
175
+ "type": "string"
176
+ }
177
+ },
178
+ "required": [
179
+ "queue",
180
+ "binding"
181
+ ],
182
+ "additionalProperties": false
183
+ }
184
+ }
185
+ },
186
+ "additionalProperties": false
187
+ },
188
+ "workflows": {
189
+ "type": "array",
190
+ "items": {
191
+ "type": "object",
192
+ "properties": {
193
+ "name": {
194
+ "type": "string"
195
+ },
196
+ "binding": {
197
+ "type": "string"
198
+ },
199
+ "class_name": {
200
+ "type": "string"
201
+ },
202
+ "script_name": {
203
+ "type": "string"
204
+ }
205
+ },
206
+ "required": [
207
+ "name",
208
+ "binding"
209
+ ],
210
+ "additionalProperties": false
211
+ }
212
+ },
213
+ "migrations": {
214
+ "type": "array",
215
+ "items": {
216
+ "$ref": "#/definitions/Migration"
217
+ }
218
+ },
219
+ "assets": {
220
+ "type": "object",
221
+ "properties": {
222
+ "directory": {
223
+ "type": "string"
224
+ },
225
+ "binding": {
226
+ "type": "string"
227
+ },
228
+ "jwt": {
229
+ "type": "string"
230
+ },
231
+ "not_found_handling": {
232
+ "type": "string",
233
+ "enum": [
234
+ "none",
235
+ "404-page",
236
+ "single-page-application"
237
+ ]
238
+ },
239
+ "run_worker_first": {
240
+ "type": "boolean"
241
+ }
242
+ },
243
+ "additionalProperties": false
244
+ },
245
+ "keep_assets": {
246
+ "type": "boolean"
247
+ },
248
+ "deco": {
249
+ "type": "object",
250
+ "properties": {
251
+ "enable_workflows": {
252
+ "type": "boolean"
253
+ },
254
+ "workspace": {
255
+ "type": "string"
256
+ },
257
+ "local": {
258
+ "type": "boolean"
259
+ },
260
+ "integration": {
261
+ "type": "object",
262
+ "properties": {
263
+ "friendlyName": {
264
+ "type": "string"
265
+ },
266
+ "icon": {
267
+ "type": "string"
268
+ },
269
+ "description": {
270
+ "type": "string"
271
+ }
272
+ },
273
+ "additionalProperties": false
274
+ },
275
+ "bindings": {
276
+ "type": "array",
277
+ "items": {
278
+ "$ref": "#/definitions/Binding"
279
+ }
280
+ }
281
+ },
282
+ "additionalProperties": false
283
+ }
284
+ },
285
+ "required": [
286
+ "name"
287
+ ],
288
+ "additionalProperties": false
289
+ },
290
+ "Route": {
291
+ "type": "object",
292
+ "properties": {
293
+ "pattern": {
294
+ "type": "string"
295
+ },
296
+ "custom_domain": {
297
+ "type": "boolean"
298
+ }
299
+ },
300
+ "required": [
301
+ "pattern"
302
+ ],
303
+ "additionalProperties": false
304
+ },
305
+ "KVNamespace": {
306
+ "type": "object",
307
+ "properties": {
308
+ "binding": {
309
+ "type": "string"
310
+ },
311
+ "id": {
312
+ "type": "string"
313
+ }
314
+ },
315
+ "required": [
316
+ "binding",
317
+ "id"
318
+ ],
319
+ "additionalProperties": false
320
+ },
321
+ "Triggers": {
322
+ "type": "object",
323
+ "properties": {
324
+ "crons": {
325
+ "type": "array",
326
+ "items": {
327
+ "type": "string"
328
+ }
329
+ }
330
+ },
331
+ "required": [
332
+ "crons"
333
+ ],
334
+ "additionalProperties": false
335
+ },
336
+ "Migration": {
337
+ "anyOf": [
338
+ {
339
+ "$ref": "#/definitions/NewClassMigration"
340
+ },
341
+ {
342
+ "$ref": "#/definitions/DeletedClassMigration"
343
+ },
344
+ {
345
+ "$ref": "#/definitions/RenamedClassMigration"
346
+ }
347
+ ]
348
+ },
349
+ "NewClassMigration": {
350
+ "type": "object",
351
+ "properties": {
352
+ "tag": {
353
+ "type": "string"
354
+ },
355
+ "new_classes": {
356
+ "type": "array",
357
+ "items": {
358
+ "type": "string"
359
+ }
360
+ },
361
+ "new_sqlite_classes": {
362
+ "type": "array",
363
+ "items": {
364
+ "type": "string"
365
+ }
366
+ }
367
+ },
368
+ "additionalProperties": false,
369
+ "required": [
370
+ "tag"
371
+ ]
372
+ },
373
+ "DeletedClassMigration": {
374
+ "type": "object",
375
+ "properties": {
376
+ "tag": {
377
+ "type": "string"
378
+ },
379
+ "deleted_classes": {
380
+ "type": "array",
381
+ "items": {
382
+ "type": "string"
383
+ }
384
+ }
385
+ },
386
+ "required": [
387
+ "deleted_classes",
388
+ "tag"
389
+ ],
390
+ "additionalProperties": false
391
+ },
392
+ "RenamedClassMigration": {
393
+ "type": "object",
394
+ "properties": {
395
+ "tag": {
396
+ "type": "string"
397
+ },
398
+ "renamed_classes": {
399
+ "type": "array",
400
+ "items": {
401
+ "type": "object",
402
+ "properties": {
403
+ "from": {
404
+ "type": "string"
405
+ },
406
+ "to": {
407
+ "type": "string"
408
+ }
409
+ },
410
+ "required": [
411
+ "from",
412
+ "to"
413
+ ],
414
+ "additionalProperties": false
415
+ }
416
+ }
417
+ },
418
+ "required": [
419
+ "renamed_classes",
420
+ "tag"
421
+ ],
422
+ "additionalProperties": false
423
+ },
424
+ "Binding": {
425
+ "anyOf": [
426
+ {
427
+ "$ref": "#/definitions/MCPBinding"
428
+ },
429
+ {
430
+ "$ref": "#/definitions/ContractBinding"
431
+ }
432
+ ]
433
+ },
434
+ "MCPBinding": {
435
+ "anyOf": [
436
+ {
437
+ "$ref": "#/definitions/MCPIntegrationIdBinding"
438
+ },
439
+ {
440
+ "$ref": "#/definitions/MCPIntegrationNameBinding"
441
+ }
442
+ ]
443
+ },
444
+ "MCPIntegrationIdBinding": {
445
+ "type": "object",
446
+ "properties": {
447
+ "name": {
448
+ "type": "string"
449
+ },
450
+ "type": {
451
+ "type": "string",
452
+ "const": "mcp"
453
+ },
454
+ "integration_id": {
455
+ "type": "string",
456
+ "description": "If not provided, will return a function that takes the integration id and return the binding implementation.."
457
+ }
458
+ },
459
+ "required": [
460
+ "integration_id",
461
+ "name",
462
+ "type"
463
+ ],
464
+ "additionalProperties": false
465
+ },
466
+ "MCPIntegrationNameBinding": {
467
+ "type": "object",
468
+ "properties": {
469
+ "name": {
470
+ "type": "string"
471
+ },
472
+ "type": {
473
+ "type": "string",
474
+ "const": "mcp"
475
+ },
476
+ "integration_name": {
477
+ "type": "string",
478
+ "description": "The name of the integration to bind."
479
+ }
480
+ },
481
+ "required": [
482
+ "integration_name",
483
+ "name",
484
+ "type"
485
+ ],
486
+ "additionalProperties": false
487
+ },
488
+ "ContractBinding": {
489
+ "type": "object",
490
+ "properties": {
491
+ "name": {
492
+ "type": "string"
493
+ },
494
+ "type": {
495
+ "type": "string",
496
+ "const": "contract"
497
+ },
498
+ "contract": {
499
+ "$ref": "#/definitions/Contract",
500
+ "description": "The clauses of this contract"
501
+ }
502
+ },
503
+ "required": [
504
+ "contract",
505
+ "name",
506
+ "type"
507
+ ],
508
+ "additionalProperties": false
509
+ },
510
+ "Contract": {
511
+ "type": "object",
512
+ "properties": {
513
+ "body": {
514
+ "type": "string"
515
+ },
516
+ "clauses": {
517
+ "type": "array",
518
+ "items": {
519
+ "$ref": "#/definitions/ContractClause"
520
+ }
521
+ }
522
+ },
523
+ "required": [
524
+ "body",
525
+ "clauses"
526
+ ],
527
+ "additionalProperties": false
528
+ },
529
+ "ContractClause": {
530
+ "type": "object",
531
+ "properties": {
532
+ "id": {
533
+ "type": "string"
534
+ },
535
+ "price": {
536
+ "type": [
537
+ "string",
538
+ "number"
539
+ ]
540
+ },
541
+ "description": {
542
+ "type": "string"
543
+ }
544
+ },
545
+ "required": [
546
+ "id",
547
+ "price"
548
+ ],
549
+ "additionalProperties": false
550
+ }
551
+ },
552
+ "allowTrailingCommas": true
553
+ }
package/package.json CHANGED
@@ -1,101 +1,40 @@
1
1
  {
2
2
  "name": "@decocms/runtime",
3
- "version": "0.28.1",
3
+ "version": "1.0.0-alpha.10",
4
4
  "type": "module",
5
- "scripts": {
6
- "build": "tsup",
7
- "prepublishOnly": "npm run build"
8
- },
9
5
  "dependencies": {
10
6
  "@cloudflare/workers-types": "^4.20250617.0",
11
7
  "@deco/mcp": "npm:@jsr/deco__mcp@0.5.5",
12
8
  "@decocms/bindings": "*",
13
- "@mastra/cloudflare-d1": "^0.13.4",
14
9
  "@mastra/core": "^0.20.2",
15
- "@modelcontextprotocol/sdk": "^1.19.1",
10
+ "@modelcontextprotocol/sdk": "1.20.2",
16
11
  "@ai-sdk/provider": "^2.0.0",
17
12
  "bidc": "0.0.3",
18
13
  "drizzle-orm": "^0.44.5",
14
+ "hono": "^4.10.7",
19
15
  "jose": "^6.0.11",
20
16
  "mime-db": "1.52.0",
21
17
  "zod": "^3.25.76",
22
18
  "zod-from-json-schema": "^0.0.5",
23
19
  "zod-to-json-schema": "3.25.0"
24
20
  },
25
- "main": "./dist/index.js",
26
- "types": "./dist/index.d.ts",
27
- "files": [
28
- "dist/**/*",
29
- "src/**/*",
30
- "config-schema.json"
31
- ],
32
21
  "exports": {
33
- ".": {
34
- "source": "./src/index.ts",
35
- "types": "./dist/index.d.ts",
36
- "default": "./dist/index.js"
37
- },
38
- "./proxy": {
39
- "source": "./src/proxy.ts",
40
- "types": "./dist/proxy.d.ts",
41
- "default": "./dist/proxy.js"
42
- },
43
- "./admin": {
44
- "source": "./src/admin.ts",
45
- "types": "./dist/admin.d.ts",
46
- "default": "./dist/admin.js"
47
- },
48
- "./client": {
49
- "source": "./src/client.ts",
50
- "types": "./dist/client.d.ts",
51
- "default": "./dist/client.js"
52
- },
53
- "./mastra": {
54
- "source": "./src/mastra.ts",
55
- "types": "./dist/mastra.d.ts",
56
- "default": "./dist/mastra.js"
57
- },
58
- "./drizzle": {
59
- "source": "./src/drizzle.ts",
60
- "types": "./dist/drizzle.d.ts",
61
- "default": "./dist/drizzle.js"
62
- },
63
- "./d1": {
64
- "source": "./src/d1-store.ts",
65
- "types": "./dist/d1-store.d.ts",
66
- "default": "./dist/d1-store.js"
67
- },
68
- "./resources": {
69
- "source": "./src/resources.ts",
70
- "types": "./dist/resources.d.ts",
71
- "default": "./dist/resources.js"
72
- },
73
- "./views": {
74
- "source": "./src/views.ts",
75
- "types": "./dist/views.d.ts",
76
- "default": "./dist/views.js"
77
- },
78
- "./mcp-client": {
79
- "source": "./src/mcp-client.ts",
80
- "types": "./dist/mcp-client.d.ts",
81
- "default": "./dist/mcp-client.js"
82
- },
83
- "./bindings": {
84
- "source": "./src/bindings/index.ts",
85
- "types": "./dist/bindings/index.d.ts",
86
- "default": "./dist/bindings/index.js"
87
- },
88
- "./deconfig": {
89
- "source": "./src/bindings/deconfig/index.ts",
90
- "types": "./dist/bindings/deconfig/index.d.ts",
91
- "default": "./dist/bindings/deconfig/index.js"
92
- }
22
+ ".": "./src/index.ts",
23
+ "./proxy": "./src/proxy.ts",
24
+ "./admin": "./src/admin.ts",
25
+ "./client": "./src/client.ts",
26
+ "./mastra": "./src/mastra.ts",
27
+ "./drizzle": "./src/drizzle.ts",
28
+ "./resources": "./src/resources.ts",
29
+ "./views": "./src/views.ts",
30
+ "./mcp-client": "./src/mcp-client.ts",
31
+ "./bindings": "./src/bindings/index.ts",
32
+ "./deconfig": "./src/bindings/deconfig/index.ts",
33
+ "./asset-server": "./src/asset-server/index.ts"
93
34
  },
94
35
  "devDependencies": {
95
36
  "@types/mime-db": "^1.43.6",
96
- "ts-json-schema-generator": "^2.4.0",
97
- "tsup": "^8.5.0",
98
- "typescript": "^5.9.3"
37
+ "ts-json-schema-generator": "^2.4.0"
99
38
  },
100
39
  "engines": {
101
40
  "node": ">=24.0.0"
@@ -0,0 +1,24 @@
1
+ // heavily inspired by https://github.com/cloudflare/workers-sdk/blob/main/packages/wrangler/scripts/generate-json-schema.ts
2
+ import { writeFileSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ import { createGenerator } from "ts-json-schema-generator";
5
+ import type { Config, Schema } from "ts-json-schema-generator";
6
+
7
+ const config: Config = {
8
+ path: join(import.meta.dirname!, "../src/wrangler.ts"),
9
+ type: "WranglerConfig",
10
+ skipTypeCheck: true,
11
+ };
12
+
13
+ const applyFormattingRules = (schema: Schema) => {
14
+ return { ...schema, allowTrailingCommas: true };
15
+ };
16
+
17
+ const schema = applyFormattingRules(
18
+ createGenerator(config).createSchema(config.type),
19
+ );
20
+
21
+ writeFileSync(
22
+ join(import.meta.dirname!, "../config-schema.json"),
23
+ JSON.stringify(schema, null, 2),
24
+ );