create-kumiko-app 0.338.0 → 0.340.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "source": "samples/apps/use-all-bundled APP_FEATURES (composeFeatures includeBundled + signup)",
3
- "featureCount": 76,
3
+ "featureCount": 80,
4
4
  "features": [
5
5
  {
6
6
  "name": "admin-shell",
@@ -352,6 +352,33 @@
352
352
  "secrets": [],
353
353
  "writeHandlers": []
354
354
  },
355
+ {
356
+ "name": "channel-discord",
357
+ "description": "Posts delivery notifications to a Discord webhook, registered as the `discord` channel in the delivery system. Tenant-owned chat target: reach it only via `ctx.notify(type, { route: { discord: \"<connection name>\" } })`. The webhook URL is a tenant secret under `channel-discord:webhooks.<connection name>`; only the connection name is logged. Mentions are disabled and content is cut to 2000 characters. Requires `delivery` and `secrets`. Host allowlist (discord.com, discordapp.com, path /api/webhooks/), https-only and the request timeout are app options of `createChannelDiscordFeature(opts)`, never tenant config.",
358
+ "toggleableDefault": null,
359
+ "requires": [
360
+ "delivery",
361
+ "secrets"
362
+ ],
363
+ "optionalRequires": [],
364
+ "configReads": [],
365
+ "exposesApis": [],
366
+ "usesApis": [],
367
+ "extensionsUsed": [
368
+ {
369
+ "extensionName": "deliveryChannel",
370
+ "entityName": "discord"
371
+ }
372
+ ],
373
+ "configKeys": [],
374
+ "secrets": [],
375
+ "writeHandlers": [],
376
+ "uiHints": {
377
+ "displayLabel": "Discord Channel",
378
+ "category": "notifications",
379
+ "recommended": false
380
+ }
381
+ },
355
382
  {
356
383
  "name": "channel-email",
357
384
  "description": "Wires an `EmailTransport` (typically `mail-transport-smtp` in production, `createInMemoryTransport()` in tests) into the delivery system as the `email` channel. Requires `delivery`; pass an `EmailChannelOptions` with a `transport`, a `renderer: NotificationRenderer` (e.g. backed by `renderer-simple`), and a `resolveEmail` function that maps a user ID to their email address.",
@@ -433,6 +460,94 @@
433
460
  "recommended": false
434
461
  }
435
462
  },
463
+ {
464
+ "name": "channel-slack",
465
+ "description": "Posts delivery notifications to a Slack incoming webhook, registered as the `slack` channel in the delivery system. Tenant-owned chat target: reach it only via `ctx.notify(type, { route: { slack: \"<connection name>\" } })`. The webhook URL is a tenant secret under `channel-slack:webhooks.<connection name>`; only the connection name is logged. Requires `delivery` and `secrets`. Host allowlist (hooks.slack.com), https-only and the request timeout are app options of `createChannelSlackFeature(opts)`, never tenant config.",
466
+ "toggleableDefault": null,
467
+ "requires": [
468
+ "delivery",
469
+ "secrets"
470
+ ],
471
+ "optionalRequires": [],
472
+ "configReads": [],
473
+ "exposesApis": [],
474
+ "usesApis": [],
475
+ "extensionsUsed": [
476
+ {
477
+ "extensionName": "deliveryChannel",
478
+ "entityName": "slack"
479
+ }
480
+ ],
481
+ "configKeys": [],
482
+ "secrets": [],
483
+ "writeHandlers": [],
484
+ "uiHints": {
485
+ "displayLabel": "Slack Channel",
486
+ "category": "notifications",
487
+ "recommended": false
488
+ }
489
+ },
490
+ {
491
+ "name": "channel-teams",
492
+ "description": "Posts delivery notifications to a Microsoft Teams webhook (Workflows or connector) as an Adaptive Card, registered as the `teams` channel in the delivery system. Tenant-owned chat target: reach it only via `ctx.notify(type, { route: { teams: \"<connection name>\" } })`. The webhook URL is a tenant secret under `channel-teams:webhooks.<connection name>`; only the connection name is logged. Requires `delivery` and `secrets`. Host allowlist (.webhook.office.com, .logic.azure.com, .powerplatform.com), https-only and the request timeout are app options of `createChannelTeamsFeature(opts)`, never tenant config.",
493
+ "toggleableDefault": null,
494
+ "requires": [
495
+ "delivery",
496
+ "secrets"
497
+ ],
498
+ "optionalRequires": [],
499
+ "configReads": [],
500
+ "exposesApis": [],
501
+ "usesApis": [],
502
+ "extensionsUsed": [
503
+ {
504
+ "extensionName": "deliveryChannel",
505
+ "entityName": "teams"
506
+ }
507
+ ],
508
+ "configKeys": [],
509
+ "secrets": [],
510
+ "writeHandlers": [],
511
+ "uiHints": {
512
+ "displayLabel": "Microsoft Teams Channel",
513
+ "category": "notifications",
514
+ "recommended": false
515
+ }
516
+ },
517
+ {
518
+ "name": "channel-telegram",
519
+ "description": "Sends delivery notifications through the Telegram Bot API (`sendMessage`, plain text), registered as the `telegram` channel in the delivery system. Tenant-owned chat target: reach it only via `ctx.notify(type, { route: { telegram: \"<chat id or @channel>\" } })`. The bot token is the tenant secret `channel-telegram:secret:bot-token`; the token never reaches logs or delivery attempts. Requires `delivery` and `secrets`. The API base URL and request timeout are app options of `createChannelTelegramFeature(opts)`, never tenant config.",
520
+ "toggleableDefault": null,
521
+ "requires": [
522
+ "delivery",
523
+ "secrets"
524
+ ],
525
+ "optionalRequires": [],
526
+ "configReads": [],
527
+ "exposesApis": [],
528
+ "usesApis": [],
529
+ "extensionsUsed": [
530
+ {
531
+ "extensionName": "deliveryChannel",
532
+ "entityName": "telegram"
533
+ }
534
+ ],
535
+ "configKeys": [],
536
+ "secrets": [
537
+ {
538
+ "qualifiedName": "channel-telegram:secret:bot-token",
539
+ "scope": "tenant",
540
+ "label": "Telegram bot token",
541
+ "hint": "Token from @BotFather. Used for every Telegram chat the tenant addresses via route: { telegram: \"<chat id>\" }."
542
+ }
543
+ ],
544
+ "writeHandlers": [],
545
+ "uiHints": {
546
+ "displayLabel": "Telegram Channel",
547
+ "category": "notifications",
548
+ "recommended": false
549
+ }
550
+ },
436
551
  {
437
552
  "name": "collection-labels",
438
553
  "description": "Nav labels for the content collections mounted by this sample app.",
@@ -2959,5 +3074,35 @@
2959
3074
  "recommended": false
2960
3075
  }
2961
3076
  }
3077
+ ],
3078
+ "systemEvents": [
3079
+ {
3080
+ "name": "kumiko:system:workflow.retry.scheduled",
3081
+ "version": 1
3082
+ },
3083
+ {
3084
+ "name": "kumiko:system:workflow.run-completed",
3085
+ "version": 1
3086
+ },
3087
+ {
3088
+ "name": "kumiko:system:workflow.run-failed",
3089
+ "version": 1
3090
+ },
3091
+ {
3092
+ "name": "kumiko:system:workflow.run-started",
3093
+ "version": 1
3094
+ },
3095
+ {
3096
+ "name": "kumiko:system:workflow.step.resumed",
3097
+ "version": 1
3098
+ },
3099
+ {
3100
+ "name": "kumiko:system:workflow.step.waiting",
3101
+ "version": 1
3102
+ },
3103
+ {
3104
+ "name": "kumiko:system:workflow.step.waiting-for-event",
3105
+ "version": 1
3106
+ }
2962
3107
  ]
2963
3108
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-kumiko-app",
3
- "version": "0.338.0",
3
+ "version": "0.340.0",
4
4
  "description": "`bun create kumiko-app <name>` — scaffold a new Kumiko app with an interactive feature picker.",
5
5
  "license": "BUSL-1.1",
6
6
  "author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
@@ -27,10 +27,10 @@
27
27
  }
28
28
  },
29
29
  "dependencies": {
30
- "@cosmicdrift/kumiko-dev-server": "0.338.0",
31
- "@cosmicdrift/kumiko-framework": "0.338.0",
32
- "@cosmicdrift/kumiko-server-runtime": "0.338.0",
33
- "@cosmicdrift/kumiko-testing": "0.338.0",
30
+ "@cosmicdrift/kumiko-dev-server": "0.340.0",
31
+ "@cosmicdrift/kumiko-framework": "0.340.0",
32
+ "@cosmicdrift/kumiko-server-runtime": "0.340.0",
33
+ "@cosmicdrift/kumiko-testing": "0.340.0",
34
34
  "@inquirer/core": "^10.0.0",
35
35
  "@inquirer/prompts": "^7.4.0"
36
36
  },