effect 4.0.0-beta.97 → 4.0.0-beta.98

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 (166) hide show
  1. package/dist/LayerRef.d.ts +4 -6
  2. package/dist/LayerRef.d.ts.map +1 -1
  3. package/dist/LayerRef.js +4 -6
  4. package/dist/LayerRef.js.map +1 -1
  5. package/dist/Number.d.ts.map +1 -1
  6. package/dist/Number.js +28 -10
  7. package/dist/Number.js.map +1 -1
  8. package/dist/Schema.d.ts +22 -22
  9. package/dist/Schema.d.ts.map +1 -1
  10. package/dist/Schema.js +36 -33
  11. package/dist/Schema.js.map +1 -1
  12. package/dist/SchemaAST.d.ts.map +1 -1
  13. package/dist/SchemaAST.js +25 -10
  14. package/dist/SchemaAST.js.map +1 -1
  15. package/dist/SchemaError.d.ts +53 -0
  16. package/dist/SchemaError.d.ts.map +1 -0
  17. package/dist/SchemaError.js +61 -0
  18. package/dist/SchemaError.js.map +1 -0
  19. package/dist/SchemaGetter.d.ts.map +1 -1
  20. package/dist/SchemaGetter.js +17 -12
  21. package/dist/SchemaGetter.js.map +1 -1
  22. package/dist/SchemaRepresentation.d.ts.map +1 -1
  23. package/dist/SchemaRepresentation.js +186 -224
  24. package/dist/SchemaRepresentation.js.map +1 -1
  25. package/dist/index.d.ts +8 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +8 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/internal/effect.js +26 -8
  30. package/dist/internal/effect.js.map +1 -1
  31. package/dist/internal/schema/equivalence.js +1 -2
  32. package/dist/internal/schema/equivalence.js.map +1 -1
  33. package/dist/internal/schema/representation.js +1 -3
  34. package/dist/internal/schema/representation.js.map +1 -1
  35. package/dist/internal/schema/schema.d.ts +0 -13
  36. package/dist/internal/schema/schema.d.ts.map +1 -1
  37. package/dist/internal/schema/schema.js +4 -29
  38. package/dist/internal/schema/schema.js.map +1 -1
  39. package/dist/unstable/ai/McpSchema.d.ts +128 -128
  40. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  41. package/dist/unstable/cli/CliError.d.ts +8 -16
  42. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  43. package/dist/unstable/cli/CliError.js +8 -16
  44. package/dist/unstable/cli/CliError.js.map +1 -1
  45. package/dist/unstable/cli/Command.d.ts +4 -3
  46. package/dist/unstable/cli/Command.d.ts.map +1 -1
  47. package/dist/unstable/cli/Command.js +3 -3
  48. package/dist/unstable/cli/Command.js.map +1 -1
  49. package/dist/unstable/cli/GlobalFlag.d.ts +6 -8
  50. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
  51. package/dist/unstable/cli/GlobalFlag.js +6 -6
  52. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  53. package/dist/unstable/cluster/EntityProxyServer.d.ts +1 -1
  54. package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
  55. package/dist/unstable/cluster/EntityProxyServer.js +2 -4
  56. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  57. package/dist/unstable/cluster/internal/entityManager.js +15 -12
  58. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  59. package/dist/unstable/httpapi/HttpApi.d.ts +36 -15
  60. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  61. package/dist/unstable/httpapi/HttpApi.js +19 -20
  62. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  63. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +51 -62
  64. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  65. package/dist/unstable/httpapi/HttpApiBuilder.js +68 -58
  66. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  67. package/dist/unstable/httpapi/HttpApiClient.d.ts +53 -53
  68. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  69. package/dist/unstable/httpapi/HttpApiClient.js +40 -30
  70. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  71. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +165 -164
  72. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  73. package/dist/unstable/httpapi/HttpApiEndpoint.js +31 -19
  74. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  75. package/dist/unstable/httpapi/HttpApiError.d.ts +22 -0
  76. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  77. package/dist/unstable/httpapi/HttpApiError.js +31 -0
  78. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  79. package/dist/unstable/httpapi/HttpApiGroup.d.ts +55 -30
  80. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  81. package/dist/unstable/httpapi/HttpApiGroup.js +22 -29
  82. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  83. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +8 -8
  84. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  85. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  86. package/dist/unstable/httpapi/HttpApiScalar.d.ts +2 -2
  87. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  88. package/dist/unstable/httpapi/HttpApiScalar.js +4 -3
  89. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  90. package/dist/unstable/httpapi/HttpApiSchema.d.ts +8 -0
  91. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  92. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  93. package/dist/unstable/httpapi/HttpApiSwagger.d.ts +1 -1
  94. package/dist/unstable/httpapi/HttpApiSwagger.d.ts.map +1 -1
  95. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  96. package/dist/unstable/httpapi/HttpApiTest.d.ts +4 -4
  97. package/dist/unstable/httpapi/HttpApiTest.d.ts.map +1 -1
  98. package/dist/unstable/httpapi/HttpApiTest.js +9 -8
  99. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  100. package/dist/unstable/httpapi/OpenApi.d.ts +1 -1
  101. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  102. package/dist/unstable/httpapi/OpenApi.js +77 -37
  103. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  104. package/dist/unstable/httpapi/internal/html.js +6 -2
  105. package/dist/unstable/httpapi/internal/html.js.map +1 -1
  106. package/dist/unstable/httpapi/internal/mediaType.d.ts +2 -0
  107. package/dist/unstable/httpapi/internal/mediaType.d.ts.map +1 -0
  108. package/dist/unstable/httpapi/internal/mediaType.js +7 -0
  109. package/dist/unstable/httpapi/internal/mediaType.js.map +1 -0
  110. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  111. package/dist/unstable/persistence/PersistedQueue.js +16 -12
  112. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  113. package/dist/unstable/reactivity/Atom.js +1 -1
  114. package/dist/unstable/reactivity/Atom.js.map +1 -1
  115. package/dist/unstable/reactivity/AtomHttpApi.d.ts +7 -7
  116. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  117. package/dist/unstable/reactivity/AtomHttpApi.js +3 -2
  118. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  119. package/dist/unstable/rpc/RpcServer.d.ts +3 -1
  120. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  121. package/dist/unstable/rpc/RpcServer.js +6 -3
  122. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  123. package/dist/unstable/workflow/DurableDeferred.js +1 -1
  124. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  125. package/dist/unstable/workflow/WorkflowProxyServer.d.ts +1 -1
  126. package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
  127. package/dist/unstable/workflow/WorkflowProxyServer.js +1 -2
  128. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  129. package/package.json +1 -1
  130. package/src/LayerRef.ts +4 -6
  131. package/src/Number.ts +29 -10
  132. package/src/Schema.ts +42 -34
  133. package/src/SchemaAST.ts +25 -13
  134. package/src/SchemaError.ts +64 -0
  135. package/src/SchemaGetter.ts +22 -16
  136. package/src/SchemaRepresentation.ts +165 -202
  137. package/src/index.ts +10 -0
  138. package/src/internal/effect.ts +39 -22
  139. package/src/internal/schema/equivalence.ts +1 -2
  140. package/src/internal/schema/representation.ts +4 -4
  141. package/src/internal/schema/schema.ts +4 -37
  142. package/src/unstable/cli/CliError.ts +24 -16
  143. package/src/unstable/cli/Command.ts +8 -8
  144. package/src/unstable/cli/GlobalFlag.ts +22 -33
  145. package/src/unstable/cluster/EntityProxyServer.ts +15 -17
  146. package/src/unstable/cluster/internal/entityManager.ts +48 -34
  147. package/src/unstable/httpapi/HttpApi.ts +72 -47
  148. package/src/unstable/httpapi/HttpApiBuilder.ts +320 -217
  149. package/src/unstable/httpapi/HttpApiClient.ts +196 -151
  150. package/src/unstable/httpapi/HttpApiEndpoint.ts +251 -447
  151. package/src/unstable/httpapi/HttpApiError.ts +33 -0
  152. package/src/unstable/httpapi/HttpApiGroup.ts +95 -74
  153. package/src/unstable/httpapi/HttpApiMiddleware.ts +10 -7
  154. package/src/unstable/httpapi/HttpApiScalar.ts +15 -12
  155. package/src/unstable/httpapi/HttpApiSchema.ts +8 -0
  156. package/src/unstable/httpapi/HttpApiSwagger.ts +2 -2
  157. package/src/unstable/httpapi/HttpApiTest.ts +15 -14
  158. package/src/unstable/httpapi/OpenApi.ts +74 -36
  159. package/src/unstable/httpapi/internal/html.ts +9 -2
  160. package/src/unstable/httpapi/internal/mediaType.ts +6 -0
  161. package/src/unstable/persistence/PersistedQueue.ts +16 -14
  162. package/src/unstable/reactivity/Atom.ts +1 -1
  163. package/src/unstable/reactivity/AtomHttpApi.ts +164 -162
  164. package/src/unstable/rpc/RpcServer.ts +10 -4
  165. package/src/unstable/workflow/DurableDeferred.ts +1 -1
  166. package/src/unstable/workflow/WorkflowProxyServer.ts +11 -12
@@ -1 +1 @@
1
- {"version":3,"file":"entityManager.js","names":["Arr","Cause","Clock","Context","Duration","Effect","Equal","Exit","Fiber","identity","Latch","Metric","Option","CurrentLogAnnotations","Schedule","Schema","SchemaIssue","Scope","RpcServer","AlreadyProcessingMessage","EntityNotAssignedToRunner","MailboxFull","MalformedMessage","ClusterMetrics","isUninterruptibleForServer","Persisted","WithTransaction","ClusterSchema","CurrentAddress","CurrentRunnerAddress","KeepAliveLatch","KeepAliveRpc","Request","Message","MessageStorage","Reply","ShardingConfig","Snowflake","EntityReaper","internalInterruptors","ResourceMap","ResourceRef","make","fnUntraced","entity","buildHandlers","options","config","snowflakeGen","Generator","managerScope","scope","storageEnabled","storage","noop","mailboxCapacity","entityMailboxCapacity","clock","context","defectRetryPolicy","andThen","defaultRetryPolicy","retryDriver","toStepWithSleep","entityRpcs","Map","protocol","requests","set","_tag","activeServers","serverCloseLatches","processedRequestIds","Set","entities","address","sharding","hasShardId","shardId","endLatch","makeUnsafe","keepAliveLatch","addFinalizerExit","get","openUnsafe","delete","void","activeRequests","defectRequestIds","isRestartingDueToDefect","writeRef","from","isShuttingDown","handlerContext","mutate","pipe","add","runnerAddress","handlers","toHandlers","setContext","sandbox","tapError","cause","logError","retry","server","makeNoSerialization","spanPrefix","type","entityId","spanAttributes","concurrency","disableFatalDefects","onFromServer","response","request","requestId","sentReply","hasInterrupts","exit","has","message","annotations","write","envelope","id","tag","payload","lastSentChunk","forkIn","unregisterReplyHandler","retryRespond","suspend","respond","WithExit","nextUnsafe","flatMap","size","state","lastActiveCheck","currentTimeMillisUnsafe","orDie","sequence","reply","Chunk","values","some","onDefect","die","defect","open","provide","merge","addFinalizer","sync","clear","keys","effect","rebuildUnsafe","ignore","ensuring","annotateLogs","module","runner","catchCause","clientId","current","await","value","keepAliveEnabled","withFiber","fiber","interruptible","timeoutOption","entityTerminationTimeout","provideService","reaper","maxIdleTime","toMillis","fromInputUnsafe","entityMaxIdleTime","Number","isFinite","register","servers","typeAttributes","CurrentMetricAttributes","updateUnsafe","BigInt","sleep","forever","sendLocal","entry","fail","envelopeId","rpc","msg","whenOpen","startImmediately","asVoid","filter","lastSentReply","match","onNone","onSome","withTransaction","isSome","replyId","interruptors","decodeMessage","makeMessageDecode","runFork","runForkWith","interruptShard","loop","fibers","empty","forEach","symbol","push","removeIgnore","latch","length","joinAll","isProcessingFor","excludeReplies","undefined","clearProcessed","send","matchEffect","onFailure","ReplyWithContext","onSuccess","decoded","IncomingEnvelope","IncomingRequestLocal","Dynamic","provideContext","activeEntityCount","min","exponential","spaced","decodeRequest","fnUntracedEager","decodeEffect","toCodecJson","payloadSchema","isNone","succeed","SchemaError","InvalidValue","times","catch","delay"],"sources":["../../../../src/unstable/cluster/internal/entityManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"entityManager.js","names":["Arr","Cause","Clock","Context","Duration","Effect","Equal","Exit","Fiber","identity","Latch","Metric","Option","CurrentLogAnnotations","Schedule","Schema","SchemaIssue","Scope","RpcServer","AlreadyProcessingMessage","EntityNotAssignedToRunner","MailboxFull","MalformedMessage","ClusterMetrics","isUninterruptibleForServer","Persisted","WithTransaction","ClusterSchema","CurrentAddress","CurrentRunnerAddress","KeepAliveLatch","KeepAliveRpc","Request","Message","MessageStorage","Reply","ShardingConfig","Snowflake","EntityReaper","internalInterruptors","ResourceMap","ResourceRef","make","fnUntraced","entity","buildHandlers","options","config","snowflakeGen","Generator","managerScope","scope","storageEnabled","storage","noop","mailboxCapacity","entityMailboxCapacity","clock","context","defectRetryPolicy","andThen","defaultRetryPolicy","retryDriver","toStepWithSleep","entityRpcs","Map","protocol","requests","set","_tag","activeServers","serverCloseLatches","processedRequestIds","Set","entities","address","sharding","hasShardId","shardId","endLatch","makeUnsafe","keepAliveLatch","addFinalizerExit","get","openUnsafe","delete","void","activeRequests","defectRequestIds","isRestartingDueToDefect","writeRef","from","isShuttingDown","handlerContext","mutate","pipe","add","runnerAddress","handlers","toHandlers","setContext","sandbox","tapError","cause","logError","retry","server","makeNoSerialization","spanPrefix","type","entityId","spanAttributes","concurrency","disableFatalDefects","onFromServer","response","request","requestId","sentReply","hasInterrupts","exit","has","message","annotations","write","envelope","id","tag","payload","lastSentChunk","rpc","onRequest","withTransaction","undefined","forkIn","unregisterReplyHandler","retryRespond","suspend","respond","WithExit","nextUnsafe","flatMap","size","state","lastActiveCheck","currentTimeMillisUnsafe","orDie","sequence","reply","Chunk","values","some","onDefect","die","defect","open","provide","merge","addFinalizer","sync","clear","keys","effect","rebuildUnsafe","ignore","ensuring","annotateLogs","module","runner","catchCause","clientId","writeOptions","current","await","value","keepAliveEnabled","withFiber","fiber","interruptible","timeoutOption","entityTerminationTimeout","provideService","reaper","maxIdleTime","toMillis","fromInputUnsafe","entityMaxIdleTime","Number","isFinite","register","servers","typeAttributes","CurrentMetricAttributes","updateUnsafe","BigInt","sleep","forever","sendLocal","entry","fail","envelopeId","msg","whenOpen","startImmediately","asVoid","filter","lastSentReply","match","onNone","onSome","isSome","replyId","interruptors","decodeMessage","makeMessageDecode","runFork","runForkWith","interruptShard","loop","fibers","empty","forEach","symbol","push","removeIgnore","latch","length","joinAll","isProcessingFor","excludeReplies","clearProcessed","send","matchEffect","onFailure","ReplyWithContext","onSuccess","decoded","IncomingEnvelope","IncomingRequestLocal","Dynamic","provideContext","activeEntityCount","min","exponential","spaced","decodeRequest","fnUntracedEager","decodeEffect","toCodecJson","payloadSchema","isNone","succeed","SchemaError","InvalidValue","times","catch","delay"],"sources":["../../../../src/unstable/cluster/internal/entityManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,6 @@ import type { NonEmptyReadonlyArray } from "../../Array.ts";
12
12
  import * as Context from "../../Context.ts";
13
13
  import { type Pipeable } from "../../Pipeable.ts";
14
14
  import * as Predicate from "../../Predicate.ts";
15
- import * as Record from "../../Record.ts";
16
15
  import type * as Schema from "../../Schema.ts";
17
16
  import type { PathInput } from "../http/HttpRouter.ts";
18
17
  import * as HttpApiEndpoint from "./HttpApiEndpoint.ts";
@@ -25,7 +24,13 @@ declare const TypeId = "~effect/httpapi/HttpApi";
25
24
  * @category guards
26
25
  * @since 4.0.0
27
26
  */
28
- export declare const isHttpApi: (u: unknown) => u is Any;
27
+ export declare const isHttpApi: (u: unknown) => u is Top;
28
+ /**
29
+ * Groups indexed by their identifier.
30
+ */
31
+ type GroupMap<Groups> = {
32
+ readonly [Group in Groups as HttpApiGroup.Identifier<Group>]: Group;
33
+ };
29
34
  /**
30
35
  * An `HttpApi` is a collection of HTTP API groups and endpoints that represents a
31
36
  * portion of your domain.
@@ -38,20 +43,35 @@ export declare const isHttpApi: (u: unknown) => u is Any;
38
43
  * @category models
39
44
  * @since 4.0.0
40
45
  */
41
- export interface HttpApi<out Id extends string, out Groups extends HttpApiGroup.Any = never> extends Pipeable {
46
+ export interface HttpApi<out Id extends string, in out Groups extends HttpApiGroup.Constraint = never> extends Pipeable {
42
47
  new (_: never): {};
43
48
  readonly [TypeId]: typeof TypeId;
44
49
  readonly identifier: Id;
45
- readonly groups: Record.ReadonlyRecord<string, Groups>;
50
+ readonly groups: GroupMap<Groups>;
46
51
  readonly annotations: Context.Context<never>;
47
52
  /**
48
53
  * Add a `HttpApiGroup` to the `HttpApi`.
49
54
  */
50
- add<const A extends NonEmptyReadonlyArray<HttpApiGroup.Any>>(...groups: A): HttpApi<Id, Groups | A[number]>;
55
+ add<const A extends NonEmptyReadonlyArray<HttpApiGroup.Constraint>>(...groups: A): HttpApi<Id, Groups | A[number]>;
51
56
  /**
52
- * Add another `HttpApi` to the `HttpApi`.
57
+ * Adds every group from another `HttpApi` while preserving its annotation scope.
58
+ *
59
+ * **When to use**
60
+ *
61
+ * Use when you want to compose an API from groups declared and annotated under another API.
62
+ *
63
+ * **Details**
64
+ *
65
+ * The added API is flattened into this API rather than retained as a nested value. Each added group
66
+ * is copied with the added API's annotations, leaving the added API unchanged. Annotation precedence
67
+ * from least to most specific is this API, the added API, the group, and then the endpoint.
68
+ *
69
+ * **Gotchas**
70
+ *
71
+ * Annotations from the added API do not become top-level annotations of the result and do not affect
72
+ * groups already present in this API. They remain scoped to the groups and endpoints being added.
53
73
  */
54
- addHttpApi<Id2 extends string, Groups2 extends HttpApiGroup.Any>(api: HttpApi<Id2, Groups2>): HttpApi<Id, Groups | Groups2>;
74
+ addHttpApi<Id2 extends string, Groups2 extends HttpApiGroup.Constraint>(api: HttpApi<Id2, Groups2>): HttpApi<Id, Groups | Groups2>;
55
75
  /**
56
76
  * Prefix all endpoints in the `HttpApi`.
57
77
  */
@@ -79,7 +99,7 @@ export interface HttpApi<out Id extends string, out Groups extends HttpApiGroup.
79
99
  * @category models
80
100
  * @since 4.0.0
81
101
  */
82
- export interface Any {
102
+ export interface Constraint {
83
103
  readonly [TypeId]: typeof TypeId;
84
104
  }
85
105
  /**
@@ -89,7 +109,8 @@ export interface Any {
89
109
  * @category models
90
110
  * @since 4.0.0
91
111
  */
92
- export type AnyWithProps = HttpApi<string, HttpApiGroup.AnyWithProps>;
112
+ export interface Top extends HttpApi<string, HttpApiGroup.Top> {
113
+ }
93
114
  /**
94
115
  * Creates an empty `HttpApi` with the supplied identifier.
95
116
  *
@@ -114,18 +135,18 @@ export declare const make: <const Id extends string>(identifier: Id) => HttpApi<
114
135
  * @category reflection
115
136
  * @since 4.0.0
116
137
  */
117
- export declare const reflect: <Id extends string, Groups extends HttpApiGroup.Any>(self: HttpApi<Id, Groups>, options: {
138
+ export declare const reflect: <Id extends string, Groups extends HttpApiGroup.Constraint>(self: HttpApi<Id, Groups>, options: {
118
139
  readonly predicate?: Predicate.Predicate<{
119
- readonly endpoint: HttpApiEndpoint.AnyWithProps;
120
- readonly group: HttpApiGroup.AnyWithProps;
140
+ readonly endpoint: HttpApiEndpoint.Top;
141
+ readonly group: HttpApiGroup.Top;
121
142
  }> | undefined;
122
143
  readonly onGroup: (options: {
123
- readonly group: HttpApiGroup.AnyWithProps;
144
+ readonly group: HttpApiGroup.Top;
124
145
  readonly mergedAnnotations: Context.Context<never>;
125
146
  }) => void;
126
147
  readonly onEndpoint: (options: {
127
- readonly group: HttpApiGroup.AnyWithProps;
128
- readonly endpoint: HttpApiEndpoint.AnyWithProps;
148
+ readonly group: HttpApiGroup.Top;
149
+ readonly endpoint: HttpApiEndpoint.Top;
129
150
  readonly mergedAnnotations: Context.Context<never>;
130
151
  readonly middleware: ReadonlySet<HttpApiMiddleware.AnyService>;
131
152
  readonly successes: ReadonlyMap<number, readonly [Schema.Top, ...Array<Schema.Top>]>;
@@ -1 +1 @@
1
- {"version":3,"file":"HttpApi.d.ts","sourceRoot":"","sources":["../../../src/unstable/httpapi/HttpApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpApi.d.ts","sourceRoot":"","sources":["../../../src/unstable/httpapi/HttpApi.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import * as Context from "../../Context.js";
2
+ import * as internalRecord from "../../internal/record.js";
2
3
  import { pipeArguments } from "../../Pipeable.js";
3
4
  import * as Predicate from "../../Predicate.js";
4
5
  import * as Record from "../../Record.js";
@@ -22,12 +23,11 @@ const Proto = {
22
23
  ...this.groups
23
24
  };
24
25
  for (const group of toAdd) {
25
- groups[group.identifier] = group;
26
+ internalRecord.set(groups, group.identifier, group);
26
27
  }
27
28
  return makeProto({
28
- identifier: this.identifier,
29
- groups,
30
- annotations: this.annotations
29
+ ...optionsFromApi(this),
30
+ groups
31
31
  });
32
32
  },
33
33
  addHttpApi(api) {
@@ -35,45 +35,44 @@ const Proto = {
35
35
  ...this.groups
36
36
  };
37
37
  for (const key in api.groups) {
38
- const newGroup = api.groups[key];
39
- newGroup.annotations = Context.merge(api.annotations, newGroup.annotations);
40
- newGroups[key] = newGroup;
38
+ const group = api.groups[key];
39
+ internalRecord.set(newGroups, key, group.annotateMerge(Context.merge(api.annotations, group.annotations)));
41
40
  }
42
41
  return makeProto({
43
- identifier: this.identifier,
44
- groups: newGroups,
45
- annotations: this.annotations
42
+ ...optionsFromApi(this),
43
+ groups: newGroups
46
44
  });
47
45
  },
48
46
  prefix(prefix) {
49
47
  return makeProto({
50
- identifier: this.identifier,
51
- groups: Record.map(this.groups, group => group.prefix(prefix)),
52
- annotations: this.annotations
48
+ ...optionsFromApi(this),
49
+ groups: Record.map(this.groups, group => group.prefix(prefix))
53
50
  });
54
51
  },
55
52
  middleware(tag) {
56
53
  return makeProto({
57
- identifier: this.identifier,
58
- groups: Record.map(this.groups, group => group.middleware(tag)),
59
- annotations: this.annotations
54
+ ...optionsFromApi(this),
55
+ groups: Record.map(this.groups, group => group.middleware(tag))
60
56
  });
61
57
  },
62
58
  annotate(key, value) {
63
59
  return makeProto({
64
- identifier: this.identifier,
65
- groups: this.groups,
60
+ ...optionsFromApi(this),
66
61
  annotations: Context.add(this.annotations, key, value)
67
62
  });
68
63
  },
69
64
  annotateMerge(annotations) {
70
65
  return makeProto({
71
- identifier: this.identifier,
72
- groups: this.groups,
66
+ ...optionsFromApi(this),
73
67
  annotations: Context.merge(this.annotations, annotations)
74
68
  });
75
69
  }
76
70
  };
71
+ const optionsFromApi = api => ({
72
+ identifier: api.identifier,
73
+ groups: api.groups,
74
+ annotations: api.annotations
75
+ });
77
76
  const makeProto = options => {
78
77
  function HttpApi() {}
79
78
  Object.setPrototypeOf(HttpApi, Proto);
@@ -1 +1 @@
1
- {"version":3,"file":"HttpApi.js","names":["Context","pipeArguments","Predicate","Record","HttpApiEndpoint","HttpApiSchema","TypeId","isHttpApi","u","hasProperty","Proto","pipe","arguments","add","toAdd","groups","group","identifier","makeProto","annotations","addHttpApi","api","newGroups","key","newGroup","merge","prefix","map","middleware","tag","annotate","value","annotateMerge","options","HttpApi","Object","setPrototypeOf","assign","make","empty","reflect","self","values","groupAnnotations","onGroup","mergedAnnotations","endpoints","endpoint","predicate","onEndpoint","middlewares","successes","extractResponseContent","getSuccessSchemas","getStatusSuccess","errors","getErrorSchemas","getStatusError","schemas","getStatus","Map","forEach","schema","isStreamSchema","ast","status","get","undefined","set","push","AdditionalSchemas","Service"],"sources":["../../../src/unstable/httpapi/HttpApi.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"HttpApi.js","names":["Context","internalRecord","pipeArguments","Predicate","Record","HttpApiEndpoint","HttpApiSchema","TypeId","isHttpApi","u","hasProperty","Proto","pipe","arguments","add","toAdd","groups","group","set","identifier","makeProto","optionsFromApi","addHttpApi","api","newGroups","key","annotateMerge","merge","annotations","prefix","map","middleware","tag","annotate","value","options","HttpApi","Object","setPrototypeOf","assign","make","empty","reflect","self","values","groupAnnotations","onGroup","mergedAnnotations","endpoints","endpoint","predicate","onEndpoint","middlewares","successes","extractResponseContent","getSuccessSchemas","getStatusSuccess","errors","getErrorSchemas","getStatusError","schemas","getStatus","Map","forEach","schema","isStreamSchema","ast","status","get","undefined","push","AdditionalSchemas","Service"],"sources":["../../../src/unstable/httpapi/HttpApi.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ import type { Path } from "../../Path.ts";
5
5
  import { type Pipeable } from "../../Pipeable.ts";
6
6
  import * as Redacted from "../../Redacted.ts";
7
7
  import * as Scope from "../../Scope.ts";
8
- import type { Covariant, NoInfer } from "../../Types.ts";
8
+ import type { NoInfer } from "../../Types.ts";
9
9
  import type { Cookie } from "../http/Cookies.ts";
10
10
  import type * as Etag from "../http/Etag.ts";
11
11
  import type { HttpPlatform } from "../http/HttpPlatform.ts";
@@ -23,7 +23,7 @@ import type * as HttpApiSecurity from "./HttpApiSecurity.ts";
23
23
  * @category constructors
24
24
  * @since 4.0.0
25
25
  */
26
- export declare const layer: <Id extends string, Groups extends HttpApiGroup.Any>(api: HttpApi.HttpApi<Id, Groups>, options?: {
26
+ export declare const layer: <Id extends string, Groups extends HttpApiGroup.Constraint>(api: HttpApi.HttpApi<Id, Groups>, options?: {
27
27
  readonly openapiPath?: `/${string}` | undefined;
28
28
  }) => Layer.Layer<never, never, Etag.Generator | HttpRouter.HttpRouter | FileSystem | HttpPlatform | Path | HttpApiGroup.ToService<Id, Groups>>;
29
29
  /**
@@ -38,52 +38,65 @@ export declare const layer: <Id extends string, Groups extends HttpApiGroup.Any>
38
38
  * @category handlers
39
39
  * @since 4.0.0
40
40
  */
41
- export declare const group: <ApiId extends string, Groups extends HttpApiGroup.Any, const Name extends HttpApiGroup.Name<Groups>, Return>(api: HttpApi.HttpApi<ApiId, Groups>, groupName: Name, build: (handlers: Handlers.FromGroup<HttpApiGroup.WithName<Groups, Name>>) => Handlers.ValidateReturn<Return>) => Layer.Layer<HttpApiGroup.ApiGroup<ApiId, Name>, Handlers.Error<Return>, Exclude<Handlers.Context<Return>, Scope.Scope>>;
42
- /**
43
- * Type identifier symbol used to brand `Handlers` values.
44
- *
45
- * @category type IDs
46
- * @since 4.0.0
47
- */
48
- export declare const HandlersTypeId: unique symbol;
49
- /**
50
- * Type of the `Handlers` type identifier symbol.
51
- *
52
- * @category type IDs
53
- * @since 4.0.0
54
- */
55
- export type HandlersTypeId = typeof HandlersTypeId;
41
+ export declare const group: <ApiId extends string, Groups extends HttpApiGroup.Constraint, const Identifier extends HttpApiGroup.Identifier<Groups>, Return>(api: HttpApi.HttpApi<ApiId, Groups>, groupIdentifier: Identifier, build: (handlers: Handlers.FromGroup<HttpApiGroup.WithIdentifier<Groups, Identifier>>) => Handlers.ValidateReturn<Return>) => Layer.Layer<HttpApiGroup.Service<ApiId, Identifier>, Handlers.Error<Return>, Exclude<Handlers.Context<Return>, Scope.Scope>>;
42
+ declare const HandlersTypeId = "~effect/httpapi/HttpApiBuilder/Handlers";
43
+ type HandlerRequirements<Endpoint extends HttpApiEndpoint.Constraint, R1, R = HttpApiEndpoint.ExcludeProvided<Endpoint, R1 | HttpApiEndpoint.ServerServices<Endpoint>>> = HttpApiEndpoint.Middleware<Endpoint> | HttpApiEndpoint.MiddlewareServices<Endpoint> | ([R] extends [never] ? never : HttpRouter.Request<"Requires", R>);
44
+ interface HandlerOptions {
45
+ readonly uninterruptible?: boolean | undefined;
46
+ }
47
+ type HandleAllEntry<Endpoint extends HttpApiEndpoint.Constraint> = HttpApiEndpoint.Handler<Endpoint, HttpApiEndpoint.MiddlewareError<Endpoint>, unknown> | {
48
+ readonly handler: HttpApiEndpoint.Handler<Endpoint, HttpApiEndpoint.MiddlewareError<Endpoint>, unknown>;
49
+ readonly options?: HandlerOptions | undefined;
50
+ };
51
+ type HandleAllHandlers<EndpointsByIdentifier extends Record<string, HttpApiEndpoint.Constraint>> = {
52
+ readonly [Identifier in keyof EndpointsByIdentifier]?: HandleAllEntry<EndpointsByIdentifier[Identifier]>;
53
+ };
54
+ type HandleAllExtraKeys<EndpointsByIdentifier extends Record<string, HttpApiEndpoint.Constraint>, HandlersByIdentifier> = {
55
+ readonly [Identifier in Exclude<keyof HandlersByIdentifier, keyof EndpointsByIdentifier>]: never;
56
+ };
57
+ type NotHandledIdentifier<Identifier extends PropertyKey, HandledIdentifiers extends PropertyKey> = Identifier extends HandledIdentifiers ? never : unknown;
58
+ type HandleAllEntryHandler<Entry> = Entry extends {
59
+ readonly handler: infer Handler;
60
+ } ? Handler : Entry;
61
+ type HandleAllRequirements<EndpointsByIdentifier extends Record<string, HttpApiEndpoint.Constraint>, HandlersByIdentifier extends HandleAllHandlers<EndpointsByIdentifier>> = {
62
+ readonly [Identifier in keyof HandlersByIdentifier & keyof EndpointsByIdentifier]: HandleAllEntryHandler<HandlersByIdentifier[Identifier]> extends HttpApiEndpoint.Handler<EndpointsByIdentifier[Identifier], HttpApiEndpoint.MiddlewareError<EndpointsByIdentifier[Identifier]>, infer R1> ? HandlerRequirements<EndpointsByIdentifier[Identifier], R1> : never;
63
+ }[keyof HandlersByIdentifier & keyof EndpointsByIdentifier];
64
+ type HandlersResult<A> = A extends Effect.Effect<infer H, any, any> ? H : A;
65
+ type MissingHandlerNames<H extends Handlers<any, any, any>> = Exclude<keyof H["~EndpointsByIdentifier"], H["~HandledIdentifiers"]>;
66
+ type ValidateHandlersReturn<A, H = HandlersResult<A>, Missing = H extends Handlers<any, any, any> ? MissingHandlerNames<H> : never> = H extends Handlers<any, any, any> ? [Missing] extends [never] ? A : `Endpoint not handled: ${Missing & string}` : `Must return the implemented handlers`;
56
67
  /**
57
68
  * Mutable handler collection for one `HttpApi` group.
58
69
  *
59
70
  * **Details**
60
71
  *
61
72
  * Each call to `handle` or `handleRaw` registers an endpoint implementation and
62
- * removes that endpoint from the type-level set of endpoints still requiring
63
- * handlers.
73
+ * adds that endpoint identifier to the type-level set of implemented endpoints.
74
+ * Endpoint identifiers that were already handled are rejected at the type level.
64
75
  *
65
76
  * @category handlers
66
77
  * @since 4.0.0
67
78
  */
68
- export interface Handlers<R, Endpoints extends HttpApiEndpoint.Any = never> extends Pipeable {
69
- readonly [HandlersTypeId]: {
70
- _Endpoints: Covariant<Endpoints>;
71
- };
72
- readonly group: HttpApiGroup.AnyWithProps;
73
- readonly handlers: Map<string, Handlers.Item<R>>;
79
+ export interface Handlers<R, EndpointsByIdentifier extends Record<string, HttpApiEndpoint.Constraint> = {}, HandledIdentifiers extends keyof EndpointsByIdentifier = never> extends Pipeable {
80
+ readonly [HandlersTypeId]: typeof HandlersTypeId;
81
+ readonly "~EndpointsByIdentifier": EndpointsByIdentifier;
82
+ readonly "~HandledIdentifiers": HandledIdentifiers;
74
83
  /**
75
- * Add the implementation for an `HttpApiEndpoint` to a `Handlers` group.
84
+ * Add the implementation for an unhandled `HttpApiEndpoint` to a `Handlers` group.
76
85
  */
77
- handle<Name extends HttpApiEndpoint.Name<Endpoints>, R1>(name: Name, handler: HttpApiEndpoint.HandlerWithName<Endpoints, Name, HttpApiEndpoint.ErrorsWithName<Endpoints, Name>, R1>, options?: {
86
+ handle<Identifier extends keyof EndpointsByIdentifier, R1>(identifier: Identifier & NotHandledIdentifier<Identifier, HandledIdentifiers>, handler: HttpApiEndpoint.Handler<EndpointsByIdentifier[Identifier], HttpApiEndpoint.MiddlewareError<EndpointsByIdentifier[Identifier]>, R1>, options?: {
78
87
  readonly uninterruptible?: boolean | undefined;
79
- } | undefined): Handlers<R | HttpApiEndpoint.MiddlewareWithName<Endpoints, Name> | HttpApiEndpoint.MiddlewareServicesWithName<Endpoints, Name> | (HttpApiEndpoint.ExcludeProvidedWithName<Endpoints, Name, R1 | HttpApiEndpoint.ServerServicesWithName<Endpoints, Name>> extends infer _R ? _R extends never ? never : HttpRouter.Request<"Requires", _R> : never), HttpApiEndpoint.ExcludeName<Endpoints, Name>>;
88
+ } | undefined): Handlers<R | HandlerRequirements<EndpointsByIdentifier[Identifier], R1>, EndpointsByIdentifier, HandledIdentifiers | Identifier>;
80
89
  /**
81
- * Add the implementation for an `HttpApiEndpoint` to a `Handlers` group.
90
+ * Add implementations for unhandled `HttpApiEndpoint`s in a `Handlers` group.
91
+ */
92
+ handleAll<const HandlersByIdentifier extends HandleAllHandlers<Omit<EndpointsByIdentifier, HandledIdentifiers>>>(handlers: HandlersByIdentifier & HandleAllExtraKeys<Omit<EndpointsByIdentifier, HandledIdentifiers>, HandlersByIdentifier>): Handlers<R | HandleAllRequirements<EndpointsByIdentifier, HandlersByIdentifier>, EndpointsByIdentifier, HandledIdentifiers | (keyof HandlersByIdentifier & keyof EndpointsByIdentifier)>;
93
+ /**
94
+ * Add the implementation for an unhandled `HttpApiEndpoint` to a `Handlers` group.
82
95
  * This version opts out of automatic payload decoding and provides the raw request.
83
96
  */
84
- handleRaw<Name extends HttpApiEndpoint.Name<Endpoints>, R1>(name: Name, handler: HttpApiEndpoint.HandlerRawWithName<Endpoints, Name, HttpApiEndpoint.ErrorsWithName<Endpoints, Name>, R1>, options?: {
97
+ handleRaw<Identifier extends keyof EndpointsByIdentifier, R1>(identifier: Identifier & NotHandledIdentifier<Identifier, HandledIdentifiers>, handler: HttpApiEndpoint.HandlerRaw<EndpointsByIdentifier[Identifier], HttpApiEndpoint.MiddlewareError<EndpointsByIdentifier[Identifier]>, R1>, options?: {
85
98
  readonly uninterruptible?: boolean | undefined;
86
- } | undefined): Handlers<R | HttpApiEndpoint.MiddlewareWithName<Endpoints, Name> | HttpApiEndpoint.MiddlewareServicesWithName<Endpoints, Name> | (HttpApiEndpoint.ExcludeProvidedWithName<Endpoints, Name, R1 | HttpApiEndpoint.ServerServicesWithName<Endpoints, Name>> extends infer _R ? _R extends never ? never : HttpRouter.Request<"Requires", _R> : never), HttpApiEndpoint.ExcludeName<Endpoints, Name>>;
99
+ } | undefined): Handlers<R | HandlerRequirements<EndpointsByIdentifier[Identifier], R1>, EndpointsByIdentifier, HandledIdentifiers | Identifier>;
87
100
  }
88
101
  /**
89
102
  * Namespace containing helper types for `HttpApiBuilder` handler collections.
@@ -91,32 +104,6 @@ export interface Handlers<R, Endpoints extends HttpApiEndpoint.Any = never> exte
91
104
  * @since 4.0.0
92
105
  */
93
106
  export declare namespace Handlers {
94
- /**
95
- * A `Handlers` value with its context and endpoint types erased.
96
- *
97
- * @category handlers
98
- * @since 4.0.0
99
- */
100
- interface Any {
101
- readonly [HandlersTypeId]: any;
102
- }
103
- /**
104
- * Record stored for a registered endpoint handler.
105
- *
106
- * **Details**
107
- *
108
- * It keeps the endpoint metadata, handler function, whether raw request handling
109
- * is used, and whether the handler should run uninterruptibly.
110
- *
111
- * @category handlers
112
- * @since 4.0.0
113
- */
114
- type Item<R> = {
115
- readonly endpoint: HttpApiEndpoint.AnyWithProps;
116
- readonly handler: HttpApiEndpoint.Handler<any, any, R>;
117
- readonly isRaw: boolean;
118
- readonly uninterruptible: boolean;
119
- };
120
107
  /**
121
108
  * Creates a handler collection for a group where every endpoint in the group is
122
109
  * still awaiting an implementation.
@@ -124,7 +111,7 @@ export declare namespace Handlers {
124
111
  * @category handlers
125
112
  * @since 4.0.0
126
113
  */
127
- type FromGroup<Group extends HttpApiGroup.Any> = Handlers<never, HttpApiGroup.Endpoints<Group>>;
114
+ type FromGroup<Group extends HttpApiGroup.Constraint> = Handlers<never, Group["endpoints"]>;
128
115
  /**
129
116
  * Validates the return value of a group handler builder, preserving successful
130
117
  * handler collections and producing a descriptive type error when endpoints remain
@@ -133,7 +120,7 @@ export declare namespace Handlers {
133
120
  * @category handlers
134
121
  * @since 4.0.0
135
122
  */
136
- type ValidateReturn<A> = A extends (Handlers<infer _R, infer _Endpoints> | Effect.Effect<Handlers<infer _R, infer _Endpoints>, infer _EX, infer _RX>) ? [_Endpoints] extends [never] ? A : `Endpoint not handled: ${HttpApiEndpoint.Name<_Endpoints>}` : `Must return the implemented handlers`;
123
+ type ValidateReturn<A> = ValidateHandlersReturn<A>;
137
124
  /**
138
125
  * Extracts the error channel from an effect that produces a `Handlers`
139
126
  * collection, returning `never` for non-effectful handler collections.
@@ -141,7 +128,7 @@ export declare namespace Handlers {
141
128
  * @category handlers
142
129
  * @since 4.0.0
143
130
  */
144
- type Error<A> = A extends Effect.Effect<Handlers<infer _R, infer _Endpoints>, infer _EX, infer _RX> ? _EX : never;
131
+ type Error<A> = A extends Effect.Effect<Handlers<infer _R, infer _EndpointsByIdentifier, infer _HandledIdentifiers>, infer _EX, infer _RX> ? _EX : never;
145
132
  /**
146
133
  * Extracts the services required by a handler collection, including both handler
147
134
  * requirements and the environment required to construct the handlers.
@@ -149,8 +136,9 @@ export declare namespace Handlers {
149
136
  * @category handlers
150
137
  * @since 4.0.0
151
138
  */
152
- type Context<A> = A extends Handlers<infer _R, infer _Endpoints> ? _R : A extends Effect.Effect<Handlers<infer _R, infer _Endpoints>, infer _EX, infer _RX> ? _R | _RX : never;
139
+ type Context<A> = A extends Handlers<infer _R, infer _EndpointsByIdentifier, infer _HandledIdentifiers> ? _R : A extends Effect.Effect<Handlers<infer _R, infer _EndpointsByIdentifier, infer _HandledIdentifiers>, infer _EX, infer _RX> ? _R | _RX : never;
153
140
  }
141
+ type EndpointReturn<Groups extends HttpApiGroup.Constraint, GroupIdentifier extends HttpApiGroup.Identifier<Groups>, EndpointIdentifier extends HttpApiGroup.Endpoints<HttpApiGroup.WithIdentifier<Groups, GroupIdentifier>>["identifier"], R, Endpoint extends HttpApiEndpoint.Constraint = HttpApiEndpoint.WithIdentifier<HttpApiGroup.Endpoints<HttpApiGroup.WithIdentifier<Groups, GroupIdentifier>>, EndpointIdentifier>> = Effect.Effect<Effect.Effect<HttpServerResponse, never, HttpServerRequest | HttpRouter.RouteContext | Request.ParsedSearchParams | Exclude<R, HttpApiEndpoint.MiddlewareProvides<Endpoint>>>, never, HttpApiEndpoint.ServerServices<Endpoint> | HttpApiEndpoint.Middleware<Endpoint> | HttpApiEndpoint.MiddlewareServices<Endpoint> | Etag.Generator | FileSystem | HttpPlatform | Path>;
154
142
  /**
155
143
  * Builds the server-side HTTP effect for a single endpoint in an API group using
156
144
  * the endpoint metadata, middleware, codecs, and supplied handler.
@@ -158,7 +146,7 @@ export declare namespace Handlers {
158
146
  * @category handlers
159
147
  * @since 4.0.0
160
148
  */
161
- export declare const endpoint: <ApiId extends string, Groups extends HttpApiGroup.Any, const GroupName extends HttpApiGroup.Name<Groups>, const EndpointName extends HttpApiEndpoint.Name<HttpApiGroup.Endpoints<HttpApiGroup.WithName<Groups, GroupName>>>, R, Group extends HttpApiGroup.Any = HttpApiGroup.WithName<Groups, GroupName>, Endpoint extends HttpApiEndpoint.Any = HttpApiEndpoint.WithName<HttpApiGroup.Endpoints<Group>, EndpointName>>(api: HttpApi.HttpApi<ApiId, Groups>, groupName: GroupName, endpointName: EndpointName, handler: NoInfer<HttpApiEndpoint.HandlerWithName<HttpApiGroup.Endpoints<HttpApiGroup.WithName<Groups, GroupName>>, EndpointName, never, R>>) => Effect.Effect<Effect.Effect<HttpServerResponse, never, HttpServerRequest | HttpRouter.RouteContext | Request.ParsedSearchParams | Exclude<R, HttpApiEndpoint.MiddlewareProvides<Endpoint>>>, never, HttpApiEndpoint.ServerServices<Endpoint> | HttpApiEndpoint.Middleware<Endpoint> | HttpApiEndpoint.MiddlewareServices<Endpoint> | Etag.Generator | FileSystem | HttpPlatform | Path>;
149
+ export declare const endpoint: <ApiId extends string, Groups extends HttpApiGroup.Constraint, const GroupIdentifier extends HttpApiGroup.Identifier<Groups>, const EndpointIdentifier extends HttpApiGroup.Endpoints<HttpApiGroup.WithIdentifier<Groups, GroupIdentifier>>["identifier"], R>(api: HttpApi.HttpApi<ApiId, Groups>, groupIdentifier: GroupIdentifier, endpointIdentifier: EndpointIdentifier, handler: NoInfer<HttpApiEndpoint.HandlerWithIdentifier<HttpApiGroup.Endpoints<HttpApiGroup.WithIdentifier<Groups, GroupIdentifier>>, EndpointIdentifier, never, R>>) => EndpointReturn<Groups, GroupIdentifier, EndpointIdentifier, R>;
162
150
  /**
163
151
  * Decodes credentials for an HTTP API security scheme from the current request,
164
152
  * supporting bearer, API key, and basic authentication inputs.
@@ -175,4 +163,5 @@ export declare const securityDecode: <Security extends HttpApiSecurity.HttpApiSe
175
163
  * @since 4.0.0
176
164
  */
177
165
  export declare const securitySetCookie: (self: HttpApiSecurity.ApiKey, value: string | Redacted.Redacted, options?: Cookie["options"]) => Effect.Effect<void, never, HttpServerRequest>;
166
+ export {};
178
167
  //# sourceMappingURL=HttpApiBuilder.d.ts.map