@beignet/core 0.0.32 → 0.0.33

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 (115) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +344 -19
  3. package/dist/application/index.d.ts.map +1 -1
  4. package/dist/application/index.js +63 -47
  5. package/dist/application/index.js.map +1 -1
  6. package/dist/events/index.d.ts +6 -0
  7. package/dist/events/index.d.ts.map +1 -1
  8. package/dist/events/index.js +20 -10
  9. package/dist/events/index.js.map +1 -1
  10. package/dist/jobs/index.d.ts +415 -4
  11. package/dist/jobs/index.d.ts.map +1 -1
  12. package/dist/jobs/index.js +392 -3
  13. package/dist/jobs/index.js.map +1 -1
  14. package/dist/outbox/index.d.ts +150 -1
  15. package/dist/outbox/index.d.ts.map +1 -1
  16. package/dist/outbox/index.js +170 -1
  17. package/dist/outbox/index.js.map +1 -1
  18. package/dist/ports/index.d.ts +6 -1
  19. package/dist/ports/index.d.ts.map +1 -1
  20. package/dist/ports/index.js +1 -0
  21. package/dist/ports/index.js.map +1 -1
  22. package/dist/providers/instrumentation.d.ts +4 -0
  23. package/dist/providers/instrumentation.d.ts.map +1 -1
  24. package/dist/providers/instrumentation.js.map +1 -1
  25. package/dist/schedules/index.d.ts +8 -7
  26. package/dist/schedules/index.d.ts.map +1 -1
  27. package/dist/schedules/index.js +47 -16
  28. package/dist/schedules/index.js.map +1 -1
  29. package/dist/server/hooks/index.d.ts +1 -0
  30. package/dist/server/hooks/index.d.ts.map +1 -1
  31. package/dist/server/hooks/index.js +1 -0
  32. package/dist/server/hooks/index.js.map +1 -1
  33. package/dist/server/hooks/rate-limit.d.ts +26 -13
  34. package/dist/server/hooks/rate-limit.d.ts.map +1 -1
  35. package/dist/server/hooks/rate-limit.js +28 -34
  36. package/dist/server/hooks/rate-limit.js.map +1 -1
  37. package/dist/server/hooks/security.d.ts +179 -0
  38. package/dist/server/hooks/security.d.ts.map +1 -0
  39. package/dist/server/hooks/security.js +225 -0
  40. package/dist/server/hooks/security.js.map +1 -0
  41. package/dist/server/index.d.ts +8 -0
  42. package/dist/server/index.d.ts.map +1 -1
  43. package/dist/server/index.js +8 -0
  44. package/dist/server/index.js.map +1 -1
  45. package/dist/server/instrumentation.d.ts.map +1 -1
  46. package/dist/server/instrumentation.js +22 -6
  47. package/dist/server/instrumentation.js.map +1 -1
  48. package/dist/server/request-context.d.ts +4 -0
  49. package/dist/server/request-context.d.ts.map +1 -1
  50. package/dist/server/request-context.js +3 -0
  51. package/dist/server/request-context.js.map +1 -1
  52. package/dist/server/runtime-integrity.d.ts +84 -0
  53. package/dist/server/runtime-integrity.d.ts.map +1 -0
  54. package/dist/server/runtime-integrity.js +160 -0
  55. package/dist/server/runtime-integrity.js.map +1 -0
  56. package/dist/server/server.d.ts +10 -0
  57. package/dist/server/server.d.ts.map +1 -1
  58. package/dist/server/server.js +55 -1
  59. package/dist/server/server.js.map +1 -1
  60. package/dist/server/trusted-proxy.d.ts +77 -0
  61. package/dist/server/trusted-proxy.d.ts.map +1 -0
  62. package/dist/server/trusted-proxy.js +129 -0
  63. package/dist/server/trusted-proxy.js.map +1 -0
  64. package/dist/tasks/index.d.ts +6 -7
  65. package/dist/tasks/index.d.ts.map +1 -1
  66. package/dist/tasks/index.js +22 -5
  67. package/dist/tasks/index.js.map +1 -1
  68. package/dist/tenancy/index.d.ts +41 -0
  69. package/dist/tenancy/index.d.ts.map +1 -0
  70. package/dist/tenancy/index.js +34 -0
  71. package/dist/tenancy/index.js.map +1 -0
  72. package/dist/tracing/execution.d.ts +14 -0
  73. package/dist/tracing/execution.d.ts.map +1 -0
  74. package/dist/tracing/execution.js +17 -0
  75. package/dist/tracing/execution.js.map +1 -0
  76. package/dist/tracing/index.d.ts +49 -0
  77. package/dist/tracing/index.d.ts.map +1 -1
  78. package/dist/tracing/index.js +59 -0
  79. package/dist/tracing/index.js.map +1 -1
  80. package/dist/uploads/client.d.ts.map +1 -1
  81. package/dist/uploads/client.js +44 -6
  82. package/dist/uploads/client.js.map +1 -1
  83. package/dist/uploads/index.d.ts +71 -0
  84. package/dist/uploads/index.d.ts.map +1 -1
  85. package/dist/uploads/index.js +344 -15
  86. package/dist/uploads/index.js.map +1 -1
  87. package/dist/webhooks/index.d.ts +55 -4
  88. package/dist/webhooks/index.d.ts.map +1 -1
  89. package/dist/webhooks/index.js +106 -2
  90. package/dist/webhooks/index.js.map +1 -1
  91. package/package.json +5 -1
  92. package/skills/app-architecture/SKILL.md +23 -2
  93. package/src/application/index.ts +88 -56
  94. package/src/events/index.ts +27 -14
  95. package/src/jobs/index.ts +895 -7
  96. package/src/outbox/index.ts +358 -2
  97. package/src/ports/index.ts +17 -0
  98. package/src/providers/instrumentation.ts +4 -0
  99. package/src/schedules/index.ts +60 -26
  100. package/src/server/hooks/index.ts +10 -0
  101. package/src/server/hooks/rate-limit.ts +52 -46
  102. package/src/server/hooks/security.ts +503 -0
  103. package/src/server/index.ts +8 -0
  104. package/src/server/instrumentation.ts +25 -5
  105. package/src/server/request-context.ts +7 -0
  106. package/src/server/runtime-integrity.ts +322 -0
  107. package/src/server/server.ts +86 -1
  108. package/src/server/trusted-proxy.ts +249 -0
  109. package/src/tasks/index.ts +29 -12
  110. package/src/tenancy/index.ts +55 -0
  111. package/src/tracing/execution.ts +37 -0
  112. package/src/tracing/index.ts +137 -0
  113. package/src/uploads/client.ts +65 -6
  114. package/src/uploads/index.ts +539 -14
  115. package/src/webhooks/index.ts +238 -9
@@ -1 +1 @@
1
- {"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../../src/server/request-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEvE;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAMD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAE7E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,EAC3C,OAAO,EAAE,oBAAoB,EAC7B,EAAE,EAAE,MAAM,CAAC,GACV,CAAC,CAEH;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,oBAAoB,GAAG,SAAS,CAE1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAOxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAO1E;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE;IACjD,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,GAAG,IAAI,CAKP;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,SAAS;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,EACD,KAAK,EAAE,KAAK,GAAG,KAAK,CAUrB"}
1
+ {"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../../src/server/request-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEvE;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAMD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAE7E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,EAC3C,OAAO,EAAE,oBAAoB,EAC7B,EAAE,EAAE,MAAM,CAAC,GACV,CAAC,CAEH;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,oBAAoB,GAAG,SAAS,CAE1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAOxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAO1E;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE;IACjD,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,GAAG,IAAI,CAKP;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,SAAS;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,EACD,KAAK,EAAE,KAAK,GAAG,KAAK,CAarB"}
@@ -84,7 +84,10 @@ export function inheritActiveRequestContext(event) {
84
84
  ...event,
85
85
  requestId: event.requestId ?? context.requestId,
86
86
  traceId: event.traceId ?? context.traceId,
87
+ spanId: event.spanId ?? context.spanId,
88
+ parentSpanId: event.parentSpanId ?? context.parentSpanId,
87
89
  traceparent: event.traceparent ?? context.traceparent,
90
+ tracestate: event.tracestate ?? context.tracestate,
88
91
  };
89
92
  }
90
93
  //# sourceMappingURL=request-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-context.js","sourceRoot":"","sources":["../../src/server/request-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AA4BrD,MAAM,oBAAoB,GAAG,IAAI,iBAAiB,EAE/C,CAAC;AAEJ;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAA6B;IACrE,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB;IACvC,oBAAoB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAA6B,EAC7B,EAAW;IAEX,OAAO,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,oBAAoB,CAAC,QAAQ,EAAE,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,KAAK,GAAI,GAA2B,CAAC,KAAK,CAAC;IACjD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1D,OAAO,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ;QAC3D,CAAC,CAAE,KAAuB;QAC1B,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,MAAM,GAAI,GAA4B,CAAC,MAAM,CAAC;IACpD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC5D,OAAO,OAAQ,MAA2B,CAAC,EAAE,KAAK,QAAQ;QACxD,CAAC,CAAE,MAAyB;QAC5B,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAGxC;IACC,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,EAAE,CAAC;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,IAAI,QAAQ,CAAC,KAAK;QAAE,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IACnD,IAAI,QAAQ,CAAC,MAAM;QAAE,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAMzC,KAAY;IACZ,MAAM,OAAO,GAAG,uBAAuB,EAAE,CAAC;IAC1C,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,OAAO;QACL,GAAG,KAAK;QACR,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS;QAC/C,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO;QACzC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW;KACtD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"request-context.js","sourceRoot":"","sources":["../../src/server/request-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AA6BrD,MAAM,oBAAoB,GAAG,IAAI,iBAAiB,EAE/C,CAAC;AAEJ;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAA6B;IACrE,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB;IACvC,oBAAoB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAA6B,EAC7B,EAAW;IAEX,OAAO,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,oBAAoB,CAAC,QAAQ,EAAE,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,KAAK,GAAI,GAA2B,CAAC,KAAK,CAAC;IACjD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1D,OAAO,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ;QAC3D,CAAC,CAAE,KAAuB;QAC1B,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,MAAM,GAAI,GAA4B,CAAC,MAAM,CAAC;IACpD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC5D,OAAO,OAAQ,MAA2B,CAAC,EAAE,KAAK,QAAQ;QACxD,CAAC,CAAE,MAAyB;QAC5B,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAGxC;IACC,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,EAAE,CAAC;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,IAAI,QAAQ,CAAC,KAAK;QAAE,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IACnD,IAAI,QAAQ,CAAC,MAAM;QAAE,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CASzC,KAAY;IACZ,MAAM,OAAO,GAAG,uBAAuB,EAAE,CAAC;IAC1C,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,OAAO;QACL,GAAG,KAAK;QACR,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS;QAC/C,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO;QACzC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;QACtC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY;QACxD,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW;QACrD,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU;KACnD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,84 @@
1
+ import type { EventPayloadDef, ListenerDef } from "../events/index.js";
2
+ import type { JobDef } from "../jobs/index.js";
3
+ import type { OutboxRegistry } from "../outbox/index.js";
4
+ import type { ScheduleDef } from "../schedules/index.js";
5
+ import type { TaskDef } from "../tasks/index.js";
6
+ export type RuntimeIntegrityArtifact = "listener" | "schedule" | "task" | "outboxEvent" | "outboxJob";
7
+ export type RuntimeIntegrityFindingCode = "missing_listener_registration" | "missing_schedule_registration" | "missing_task_registration" | "missing_outbox_event_registration" | "missing_outbox_job_registration" | "duplicate_runtime_manifest_entry" | "duplicate_runtime_registry_entry";
8
+ export type RuntimeIntegrityFindingLocation = "manifest" | "registry";
9
+ export interface RuntimeIntegrityFinding {
10
+ readonly code: RuntimeIntegrityFindingCode;
11
+ readonly artifact: RuntimeIntegrityArtifact;
12
+ readonly name: string;
13
+ readonly message: string;
14
+ readonly location?: RuntimeIntegrityFindingLocation;
15
+ }
16
+ export interface RuntimeIntegrityResult {
17
+ readonly ok: boolean;
18
+ readonly findings: readonly RuntimeIntegrityFinding[];
19
+ }
20
+ export interface RuntimeOutboxManifest {
21
+ readonly events?: readonly EventPayloadDef[];
22
+ readonly jobs?: readonly JobDef[];
23
+ }
24
+ export interface RuntimeManifestInput {
25
+ readonly listeners?: readonly ListenerDef[];
26
+ readonly schedules?: readonly ScheduleDef[];
27
+ readonly tasks?: readonly TaskDef[];
28
+ readonly outbox?: RuntimeOutboxManifest;
29
+ }
30
+ export interface RuntimeManifest {
31
+ readonly listeners: readonly ListenerDef[];
32
+ readonly schedules: readonly ScheduleDef[];
33
+ readonly tasks: readonly TaskDef[];
34
+ readonly outbox: {
35
+ readonly events: readonly EventPayloadDef[];
36
+ readonly jobs: readonly JobDef[];
37
+ };
38
+ }
39
+ export interface RuntimeRegistriesInput {
40
+ readonly listeners?: readonly ListenerDef[];
41
+ readonly schedules?: readonly ScheduleDef[];
42
+ readonly tasks?: readonly TaskDef[];
43
+ readonly outbox?: OutboxRegistry;
44
+ }
45
+ export interface RuntimeRegistries {
46
+ readonly listeners: readonly ListenerDef[];
47
+ readonly schedules: readonly ScheduleDef[];
48
+ readonly tasks: readonly TaskDef[];
49
+ readonly outbox?: OutboxRegistry;
50
+ }
51
+ export type RuntimeIntegrityMode = "error" | "warn";
52
+ export interface RuntimeIntegrityLogger {
53
+ warn(message: string): void;
54
+ }
55
+ export interface CreateRuntimeIntegrityOptions {
56
+ readonly manifest: RuntimeManifest;
57
+ readonly registries: RuntimeRegistries;
58
+ /**
59
+ * How to handle integrity findings.
60
+ *
61
+ * @default "error"
62
+ */
63
+ readonly mode?: RuntimeIntegrityMode;
64
+ /**
65
+ * Logger used when `mode` is `"warn"`.
66
+ *
67
+ * @default console
68
+ */
69
+ readonly logger?: RuntimeIntegrityLogger;
70
+ }
71
+ export interface RuntimeIntegrityCheck {
72
+ readonly kind: "runtime-integrity";
73
+ check(): RuntimeIntegrityResult;
74
+ }
75
+ export declare class RuntimeIntegrityError extends Error {
76
+ readonly findings: readonly RuntimeIntegrityFinding[];
77
+ constructor(findings: readonly RuntimeIntegrityFinding[]);
78
+ }
79
+ export declare function defineRuntimeManifest(input: RuntimeManifestInput): RuntimeManifest;
80
+ export declare function defineRuntimeRegistries(input: RuntimeRegistriesInput): RuntimeRegistries;
81
+ export declare function inspectRuntimeIntegrity(manifest: RuntimeManifest, registries: RuntimeRegistries): RuntimeIntegrityResult;
82
+ export declare function createRuntimeIntegrity(options: CreateRuntimeIntegrityOptions): RuntimeIntegrityCheck;
83
+ export declare function runRuntimeIntegrityCheck(check: RuntimeIntegrityCheck | undefined): RuntimeIntegrityResult | undefined;
84
+ //# sourceMappingURL=runtime-integrity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-integrity.d.ts","sourceRoot":"","sources":["../../src/server/runtime-integrity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,160 @@
1
+ export class RuntimeIntegrityError extends Error {
2
+ findings;
3
+ constructor(findings) {
4
+ super(formatRuntimeIntegrityFailure(findings));
5
+ this.name = "RuntimeIntegrityError";
6
+ this.findings = findings;
7
+ }
8
+ }
9
+ export function defineRuntimeManifest(input) {
10
+ return {
11
+ listeners: input.listeners ?? [],
12
+ schedules: input.schedules ?? [],
13
+ tasks: input.tasks ?? [],
14
+ outbox: {
15
+ events: input.outbox?.events ?? [],
16
+ jobs: input.outbox?.jobs ?? [],
17
+ },
18
+ };
19
+ }
20
+ export function defineRuntimeRegistries(input) {
21
+ return {
22
+ listeners: input.listeners ?? [],
23
+ schedules: input.schedules ?? [],
24
+ tasks: input.tasks ?? [],
25
+ outbox: input.outbox,
26
+ };
27
+ }
28
+ export function inspectRuntimeIntegrity(manifest, registries) {
29
+ const configs = [
30
+ {
31
+ artifact: "listener",
32
+ label: "listener",
33
+ manifestNames: namesFromDefinitions(manifest.listeners),
34
+ registryNames: namesFromDefinitions(registries.listeners),
35
+ missingCode: "missing_listener_registration",
36
+ registryDescription: "runtime registries.listeners",
37
+ },
38
+ {
39
+ artifact: "schedule",
40
+ label: "schedule",
41
+ manifestNames: namesFromDefinitions(manifest.schedules),
42
+ registryNames: namesFromDefinitions(registries.schedules),
43
+ missingCode: "missing_schedule_registration",
44
+ registryDescription: "runtime registries.schedules",
45
+ },
46
+ {
47
+ artifact: "task",
48
+ label: "task",
49
+ manifestNames: namesFromDefinitions(manifest.tasks),
50
+ registryNames: namesFromDefinitions(registries.tasks),
51
+ missingCode: "missing_task_registration",
52
+ registryDescription: "runtime registries.tasks",
53
+ },
54
+ {
55
+ artifact: "outboxEvent",
56
+ label: "outbox event",
57
+ manifestNames: namesFromDefinitions(manifest.outbox.events),
58
+ registryNames: namesFromMap(registries.outbox?.events),
59
+ missingCode: "missing_outbox_event_registration",
60
+ registryDescription: "runtime registries.outbox.events",
61
+ },
62
+ {
63
+ artifact: "outboxJob",
64
+ label: "outbox job",
65
+ manifestNames: namesFromDefinitions(manifest.outbox.jobs),
66
+ registryNames: namesFromMap(registries.outbox?.jobs),
67
+ missingCode: "missing_outbox_job_registration",
68
+ registryDescription: "runtime registries.outbox.jobs",
69
+ },
70
+ ];
71
+ const findings = configs.flatMap((config) => inspectArtifactIntegrity(config));
72
+ return {
73
+ ok: findings.length === 0,
74
+ findings,
75
+ };
76
+ }
77
+ export function createRuntimeIntegrity(options) {
78
+ const mode = options.mode ?? "error";
79
+ const logger = options.logger ?? console;
80
+ return {
81
+ kind: "runtime-integrity",
82
+ check() {
83
+ const result = inspectRuntimeIntegrity(options.manifest, options.registries);
84
+ if (result.ok)
85
+ return result;
86
+ if (mode === "warn") {
87
+ logger.warn(`[beignet] ${formatRuntimeIntegrityFailure(result.findings)}`);
88
+ return result;
89
+ }
90
+ throw new RuntimeIntegrityError(result.findings);
91
+ },
92
+ };
93
+ }
94
+ export function runRuntimeIntegrityCheck(check) {
95
+ return check?.check();
96
+ }
97
+ function inspectArtifactIntegrity(config) {
98
+ const findings = [];
99
+ const manifestDuplicates = duplicateNames(config.manifestNames);
100
+ const registryDuplicates = duplicateNames(config.registryNames);
101
+ for (const name of manifestDuplicates) {
102
+ findings.push({
103
+ code: "duplicate_runtime_manifest_entry",
104
+ artifact: config.artifact,
105
+ name,
106
+ location: "manifest",
107
+ message: `Duplicate ${config.label} "${name}" in runtime manifest.`,
108
+ });
109
+ }
110
+ for (const name of registryDuplicates) {
111
+ findings.push({
112
+ code: "duplicate_runtime_registry_entry",
113
+ artifact: config.artifact,
114
+ name,
115
+ location: "registry",
116
+ message: `Duplicate ${config.label} "${name}" in ${config.registryDescription}.`,
117
+ });
118
+ }
119
+ const registryNameSet = new Set(config.registryNames);
120
+ for (const name of uniqueNames(config.manifestNames)) {
121
+ if (registryNameSet.has(name))
122
+ continue;
123
+ findings.push({
124
+ code: config.missingCode,
125
+ artifact: config.artifact,
126
+ name,
127
+ message: `Missing ${config.label} registration "${name}": declared in runtime manifest but not present in ${config.registryDescription}.`,
128
+ });
129
+ }
130
+ return findings;
131
+ }
132
+ function namesFromDefinitions(definitions) {
133
+ return (definitions ?? []).map((definition) => definition.name);
134
+ }
135
+ function namesFromMap(definitions) {
136
+ return [...(definitions?.keys() ?? [])];
137
+ }
138
+ function duplicateNames(names) {
139
+ const seen = new Set();
140
+ const duplicates = new Set();
141
+ for (const name of names) {
142
+ if (seen.has(name)) {
143
+ duplicates.add(name);
144
+ continue;
145
+ }
146
+ seen.add(name);
147
+ }
148
+ return [...duplicates].sort();
149
+ }
150
+ function uniqueNames(names) {
151
+ return [...new Set(names)].sort();
152
+ }
153
+ function formatRuntimeIntegrityFailure(findings) {
154
+ const summary = `Runtime integrity check failed with ${findings.length} finding${findings.length === 1 ? "" : "s"}.`;
155
+ const details = findings
156
+ .map((finding) => `- [${finding.code}] ${finding.message}`)
157
+ .join("\n");
158
+ return `${summary}\n${details}`;
159
+ }
160
+ //# sourceMappingURL=runtime-integrity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-integrity.js","sourceRoot":"","sources":["../../src/server/runtime-integrity.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import type { ServerContextConfig, ServiceContextInputArgs } from "./context.js"
6
6
  import type { ContractLike, ResolveContract } from "./contract-like.js";
7
7
  import type { AddedCtxFromHooks, Handler, HttpRequestLike, HttpResponse, RouteHook, ServerCaughtErrorHook, ServerHook, ServerUnhandledErrorMapper } from "./http.js";
8
8
  import type { ServerInstrumentationOptions } from "./instrumentation.js";
9
+ import type { RuntimeIntegrityCheck } from "./runtime-integrity.js";
9
10
  import type { AnyUseCaseLike, AnyUseCaseRouteDef, UseCaseRouteDef, ValidatedRouteInputs } from "./use-case-route.js";
10
11
  /**
11
12
  * Route registration that connects a contract to the handler implementing it.
@@ -156,6 +157,15 @@ export type CreateServerOptions<Ctx, Ports extends AnyPorts, ServiceInput = void
156
157
  * Server hooks that wrap every registered route.
157
158
  */
158
159
  hooks?: ServerHook<Ctx, Ports & InferProviderPorts<Providers>>[];
160
+ /**
161
+ * Optional pure startup check for app workflow registrations.
162
+ *
163
+ * Runtime integrity compares app-declared workflow artifacts against the
164
+ * registries passed to runtime entrypoints. It performs no filesystem,
165
+ * provider, database, network, worker, or background-loop work, so it is safe
166
+ * to run during serverless cold starts.
167
+ */
168
+ integrity?: RuntimeIntegrityCheck;
159
169
  /**
160
170
  * Server-owned request instrumentation.
161
171
  *
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { IdempotencyConflictError, IdempotencyInProgressError, } from "../idempo
5
5
  import { runWithMemoScope, } from "../memo/index.js";
6
6
  import { AuthUnauthorizedError, EntitlementRequiredError, GateAuthorizationError, isUnboundPort, TenantRequiredError, } from "../ports/index.js";
7
7
  import { createProviderInstrumentation, resolveProviderInstrumentationPort, } from "../providers/index.js";
8
+ import { parseTraceparent, resolveTracingPort, runWithTracing, } from "../tracing/index.js";
8
9
  import { createContextFinalizer, resolveServerContext } from "./context.js";
9
10
  import { resolveContract } from "./contract-like.js";
10
11
  import { getRequestIdFromContext } from "./hooks/utils.js";
@@ -12,6 +13,7 @@ import { createServerInstrumentation } from "./instrumentation.js";
12
13
  import { getResponseFinalizerHook, } from "./internal-hooks.js";
13
14
  import { loadProviderConfig, parseStandardSchema, SchemaValidationError, } from "./providers/index.js";
14
15
  import { enterActiveRequestContext, readContextActor, readContextTenant, runWithActiveRequestContext, setActiveRequestIdentity, } from "./request-context.js";
16
+ import { runRuntimeIntegrityCheck } from "./runtime-integrity.js";
15
17
  import { createUseCaseRouteHandler, isUseCaseRouteDef, } from "./use-case-route.js";
16
18
  const ROUTE_GROUP_KIND = "beignet.route-group";
17
19
  /**
@@ -487,7 +489,7 @@ function createRequestExecutor(
487
489
  options, finalPorts, contextRuntime, hooks, routeHooks = [], optionsOverrides) {
488
490
  const warnedNativeReplacementHooks = new WeakSet();
489
491
  const maxRequestBodyBytes = requestBodyLimit(options.requestBody);
490
- return async (target, req, preMatchedParams) => {
492
+ const executeRequest = async (target, req, preMatchedParams) => {
491
493
  const { contract, handler: userHandler } = target;
492
494
  let baseCtx;
493
495
  let pathValue;
@@ -1183,6 +1185,57 @@ options, finalPorts, contextRuntime, hooks, routeHooks = [], optionsOverrides) {
1183
1185
  return withFrameworkErrorOwnerHeader(response, responseOwnerFor(response, result.owner));
1184
1186
  }
1185
1187
  };
1188
+ return async (target, req, preMatchedParams) => {
1189
+ const tracing = resolveTracingPort(finalPorts);
1190
+ const instrumentationOptions = options.instrumentation === false ? undefined : options.instrumentation;
1191
+ const pathname = (() => {
1192
+ try {
1193
+ return new URL(req.url).pathname;
1194
+ }
1195
+ catch {
1196
+ return req.url;
1197
+ }
1198
+ })();
1199
+ const ignored = (instrumentationOptions?.ignorePaths ?? ["/api/devtools"]).some((prefix) => {
1200
+ const normalized = prefix.replace(/\/+$/, "");
1201
+ return pathname === normalized || pathname.startsWith(`${normalized}/`);
1202
+ });
1203
+ if (!tracing || ignored) {
1204
+ return executeRequest(target, req, preMatchedParams);
1205
+ }
1206
+ const traceContextHeader = instrumentationOptions?.traceContextHeader ?? "traceparent";
1207
+ const active = tracing.current();
1208
+ const parsedTraceparent = traceContextHeader === false
1209
+ ? undefined
1210
+ : parseTraceparent(req.headers.get(traceContextHeader));
1211
+ const parent = active
1212
+ ? undefined
1213
+ : !parsedTraceparent
1214
+ ? undefined
1215
+ : {
1216
+ traceparent: parsedTraceparent.traceparent,
1217
+ tracestate: req.headers.get("tracestate") ?? undefined,
1218
+ };
1219
+ const traceAttributes = {
1220
+ "beignet.contract.name": target.contract.name,
1221
+ "http.request.method": req.method.toUpperCase(),
1222
+ "http.route": target.contract.path,
1223
+ };
1224
+ return await runWithTracing(tracing, {
1225
+ name: `beignet.request ${target.contract.name}`,
1226
+ type: "request",
1227
+ kind: active ? "internal" : "server",
1228
+ parent,
1229
+ attributes: traceAttributes,
1230
+ metricAttributes: traceAttributes,
1231
+ }, async (span) => {
1232
+ const response = await executeRequest(target, req, preMatchedParams);
1233
+ span?.setAttribute("http.response.status_code", response.status);
1234
+ if (response.status >= 500)
1235
+ span?.setStatus("error");
1236
+ return response;
1237
+ });
1238
+ };
1186
1239
  }
1187
1240
  /**
1188
1241
  * Build a memo instrumentation recorder from the app ports, or undefined when
@@ -1467,6 +1520,7 @@ export async function createServer(options) {
1467
1520
  throw error;
1468
1521
  }
1469
1522
  }
1523
+ runRuntimeIntegrityCheck(options.integrity);
1470
1524
  try {
1471
1525
  for (const provider of providers) {
1472
1526
  const cfg = await loadProviderConfig(provider, env, overrides);