@effect-app/infra 0.133.0-next.8 → 0.133.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.
Files changed (127) hide show
  1. package/CHANGELOG.md +494 -0
  2. package/_cjs/RequestContext.cjs +8 -9
  3. package/_cjs/RequestContext.cjs.map +1 -1
  4. package/_cjs/_ext/Array.cjs +4 -3
  5. package/_cjs/_ext/Array.cjs.map +1 -1
  6. package/_cjs/_global.ext.cjs +0 -25
  7. package/_cjs/_global.ext.cjs.map +1 -1
  8. package/_cjs/api/codec.cjs +1 -1
  9. package/_cjs/api/codec.cjs.map +1 -1
  10. package/_cjs/api/http.cjs +42 -0
  11. package/_cjs/api/http.cjs.map +1 -0
  12. package/_cjs/api/routing/base.cjs +169 -0
  13. package/_cjs/api/routing/base.cjs.map +1 -0
  14. package/_cjs/api/routing/defaultErrorHandler.cjs +50 -0
  15. package/_cjs/api/routing/defaultErrorHandler.cjs.map +1 -0
  16. package/_cjs/api/routing/makeRequestHandler.cjs +134 -0
  17. package/_cjs/api/routing/makeRequestHandler.cjs.map +1 -0
  18. package/_cjs/api/routing/match.cjs +45 -0
  19. package/_cjs/api/routing/match.cjs.map +1 -0
  20. package/_cjs/api/routing.cjs +50 -0
  21. package/_cjs/api/routing.cjs.map +1 -0
  22. package/_cjs/api/setupRequest.cjs +31 -30
  23. package/_cjs/api/setupRequest.cjs.map +1 -1
  24. package/_cjs/errorReporter.cjs +4 -2
  25. package/_cjs/errorReporter.cjs.map +1 -1
  26. package/_cjs/errors.cjs +18 -66
  27. package/_cjs/errors.cjs.map +1 -1
  28. package/_cjs/services/Operations/live.cjs +11 -12
  29. package/_cjs/services/Operations/live.cjs.map +1 -1
  30. package/_cjs/services/QueueMaker/memQueue.cjs +9 -10
  31. package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
  32. package/_cjs/services/QueueMaker/sbqueue.cjs +4 -4
  33. package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
  34. package/_cjs/services/Repository.cjs +3 -3
  35. package/_cjs/services/Repository.cjs.map +1 -1
  36. package/_cjs/services/RepositoryBase.cjs +14 -6
  37. package/_cjs/services/RepositoryBase.cjs.map +1 -1
  38. package/_cjs/services/RequestContextContainer.cjs +3 -3
  39. package/_cjs/services/RequestContextContainer.cjs.map +1 -1
  40. package/_cjs/services/Store/Redis.cjs.map +1 -1
  41. package/_cjs/test.arbs.cjs +24 -1
  42. package/_cjs/test.arbs.cjs.map +1 -1
  43. package/_src/RequestContext.ts +9 -12
  44. package/_src/_ext/Array.ts +4 -4
  45. package/_src/_global.ext.ts +0 -23
  46. package/_src/api/codec.ts +1 -1
  47. package/_src/api/http.ts +26 -0
  48. package/_src/api/routing/base.ts +476 -0
  49. package/_src/api/routing/defaultErrorHandler.ts +83 -0
  50. package/_src/api/routing/makeRequestHandler.ts +278 -0
  51. package/_src/api/routing/match.ts +119 -0
  52. package/_src/api/routing.ts +11 -0
  53. package/_src/api/setupRequest.ts +39 -34
  54. package/_src/errorReporter.ts +4 -2
  55. package/_src/errors.ts +1 -58
  56. package/_src/services/QueueMaker/memQueue.ts +3 -3
  57. package/_src/services/QueueMaker/sbqueue.ts +3 -3
  58. package/_src/services/Repository.ts +40 -43
  59. package/_src/services/RepositoryBase.ts +26 -20
  60. package/_src/services/Store/Redis.ts +1 -1
  61. package/_src/services/Store/service.ts +4 -4
  62. package/_src/test.arbs.ts +17 -14
  63. package/dist/RequestContext.d.ts +72 -24
  64. package/dist/RequestContext.d.ts.map +1 -1
  65. package/dist/RequestContext.js +10 -11
  66. package/dist/_ext/Array.d.ts +2 -2
  67. package/dist/_ext/Array.d.ts.map +1 -1
  68. package/dist/_ext/Array.js +5 -4
  69. package/dist/_global.ext.d.ts +0 -22
  70. package/dist/_global.ext.d.ts.map +1 -1
  71. package/dist/_global.ext.js +1 -18
  72. package/dist/api/codec.d.ts +1 -1
  73. package/dist/api/codec.d.ts.map +1 -1
  74. package/dist/api/codec.js +2 -2
  75. package/dist/api/http.d.ts +16 -0
  76. package/dist/api/http.d.ts.map +1 -0
  77. package/dist/api/http.js +12 -0
  78. package/dist/api/routing/base.d.ts +117 -0
  79. package/dist/api/routing/base.d.ts.map +1 -0
  80. package/dist/api/routing/base.js +137 -0
  81. package/dist/api/routing/defaultErrorHandler.d.ts +16 -0
  82. package/dist/api/routing/defaultErrorHandler.d.ts.map +1 -0
  83. package/dist/api/routing/defaultErrorHandler.js +42 -0
  84. package/dist/api/routing/makeRequestHandler.d.ts +20 -0
  85. package/dist/api/routing/makeRequestHandler.d.ts.map +1 -0
  86. package/dist/api/routing/makeRequestHandler.js +121 -0
  87. package/dist/api/routing/match.d.ts +12 -0
  88. package/dist/api/routing/match.d.ts.map +1 -0
  89. package/dist/api/routing/match.js +31 -0
  90. package/dist/api/routing.d.ts +5 -0
  91. package/dist/api/routing.d.ts.map +1 -0
  92. package/dist/api/routing.js +8 -0
  93. package/dist/api/setupRequest.d.ts +4 -4
  94. package/dist/api/setupRequest.d.ts.map +1 -1
  95. package/dist/api/setupRequest.js +31 -37
  96. package/dist/errorReporter.d.ts.map +1 -1
  97. package/dist/errorReporter.js +5 -3
  98. package/dist/errors.d.ts +1 -81
  99. package/dist/errors.d.ts.map +1 -1
  100. package/dist/errors.js +4 -46
  101. package/dist/services/Operations/live.js +16 -17
  102. package/dist/services/QueueMaker/memQueue.d.ts +3 -3
  103. package/dist/services/QueueMaker/memQueue.d.ts.map +1 -1
  104. package/dist/services/QueueMaker/memQueue.js +9 -10
  105. package/dist/services/QueueMaker/sbqueue.d.ts +3 -3
  106. package/dist/services/QueueMaker/sbqueue.d.ts.map +1 -1
  107. package/dist/services/QueueMaker/sbqueue.js +4 -4
  108. package/dist/services/QueueMaker/service.d.ts +1 -1
  109. package/dist/services/Repository.d.ts +37 -38
  110. package/dist/services/Repository.d.ts.map +1 -1
  111. package/dist/services/Repository.js +4 -4
  112. package/dist/services/RepositoryBase.d.ts +15 -15
  113. package/dist/services/RepositoryBase.d.ts.map +1 -1
  114. package/dist/services/RepositoryBase.js +12 -7
  115. package/dist/services/RequestContextContainer.d.ts +1 -1
  116. package/dist/services/RequestContextContainer.js +3 -3
  117. package/dist/services/Store/Redis.js +1 -1
  118. package/dist/services/Store/service.d.ts +4 -4
  119. package/dist/services/Store/service.d.ts.map +1 -1
  120. package/dist/services/simpledb/redisdb.d.ts +5 -1
  121. package/dist/services/simpledb/redisdb.d.ts.map +1 -1
  122. package/dist/services/simpledb/shared.d.ts +5 -1
  123. package/dist/services/simpledb/shared.d.ts.map +1 -1
  124. package/dist/test.arbs.d.ts +12 -1
  125. package/dist/test.arbs.d.ts.map +1 -1
  126. package/dist/test.arbs.js +18 -2
  127. package/package.json +73 -11
@@ -1,6 +1,6 @@
1
- import { useClassFeaturesForSchema, TaggedClass, NonEmptyString255, FromClass } from "@effect-app/schema";
2
- import { Schema2 } from "@effect-app/prelude";
3
- declare const RequestContextParent_base: Schema2.Class<{
1
+ import { useClassFeaturesForSchema, TaggedClass, NonEmptyString255, struct, literal, FromClass } from "@effect-app/schema";
2
+ import { S } from "@effect-app/prelude";
3
+ declare const RequestContextParent_base: S.Class<{
4
4
  readonly _tag: "RequestContext";
5
5
  readonly id: string;
6
6
  readonly name: string;
@@ -11,31 +11,49 @@ declare const RequestContextParent_base: Schema2.Class<{
11
11
  } | undefined;
12
12
  }, {
13
13
  readonly _tag: "RequestContext";
14
- readonly id: string & Schema2.StringIdBrand;
15
- readonly name: string & Schema2.NonEmptyString255Brand;
14
+ readonly id: S.NonEmptyString255;
15
+ readonly name: string & S.NonEmptyString255Brand;
16
16
  readonly locale: "en" | "de";
17
17
  readonly createdAt: Date;
18
18
  readonly userProfile?: {
19
19
  readonly sub: string & import("@effect-app/prelude/ids").UserProfileIdBrand;
20
20
  } | undefined;
21
21
  }, {
22
- readonly name: string & Schema2.NonEmptyString255Brand;
22
+ readonly name: string & S.NonEmptyString255Brand;
23
23
  readonly locale: "en" | "de";
24
24
  readonly userProfile?: {
25
25
  readonly sub: string & import("@effect-app/prelude/ids").UserProfileIdBrand;
26
26
  } | undefined;
27
- readonly id?: string & Schema2.StringIdBrand;
27
+ readonly id?: S.NonEmptyString255;
28
28
  readonly createdAt?: Date;
29
- }, RequestContextParent, import("effect/Data").Case>;
29
+ }, RequestContextParent, {
30
+ id: S.WithDefaults<S.Schema<string, S.NonEmptyString255> & {
31
+ make: () => S.NonEmptyString255;
32
+ withDefault: () => S.Schema<string, S.NonEmptyString255> & S.ConstructorPropertyDescriptor<string, S.NonEmptyString255>;
33
+ }> & S.Schema<string, S.NonEmptyString255> & {
34
+ make: () => S.NonEmptyString255;
35
+ withDefault: () => S.Schema<string, S.NonEmptyString255> & S.ConstructorPropertyDescriptor<string, S.NonEmptyString255>;
36
+ };
37
+ name: S.WithDefaults<S.Schema<string, string & S.NonEmptyString255Brand>> & S.Schema<string, string & S.NonEmptyString255Brand>;
38
+ userProfile: S.PropertySignature<{
39
+ readonly sub: string;
40
+ } | undefined, true, {
41
+ readonly sub: string & import("@effect-app/prelude/ids").UserProfileIdBrand;
42
+ } | undefined, true>;
43
+ locale: S.Schema<"en" | "de", "en" | "de"> & {
44
+ literals: ["en", "de"];
45
+ };
46
+ createdAt: S.Schema<string, Date> & S.ConstructorPropertyDescriptor<string, Date>;
47
+ }, import("effect/Data").Case>;
30
48
  export declare class RequestContextParent extends RequestContextParent_base {
31
49
  }
32
- declare const RequestContext_base: Schema2.Class<{
50
+ declare const RequestContext_base: S.Class<{
33
51
  readonly _tag: "RequestContext";
34
52
  readonly id: string;
35
- readonly rootId: string;
36
53
  readonly name: string;
37
54
  readonly locale: "en" | "de";
38
55
  readonly createdAt: string;
56
+ readonly rootId: string;
39
57
  readonly userProfile?: {
40
58
  readonly sub: string;
41
59
  } | undefined;
@@ -52,28 +70,58 @@ declare const RequestContext_base: Schema2.Class<{
52
70
  readonly namespace?: string | undefined;
53
71
  }, {
54
72
  readonly _tag: "RequestContext";
55
- readonly id: Schema2.StringId;
56
- readonly rootId: string & Schema2.StringIdBrand;
57
- readonly name: string & Schema2.NonEmptyString255Brand;
73
+ readonly id: S.NonEmptyString255;
74
+ readonly name: string & S.NonEmptyString255Brand;
58
75
  readonly locale: "en" | "de";
59
76
  readonly createdAt: Date;
77
+ readonly rootId: S.NonEmptyString255;
60
78
  readonly userProfile?: {
61
79
  readonly sub: string & import("@effect-app/prelude/ids").UserProfileIdBrand;
62
80
  } | undefined;
63
81
  readonly parent?: RequestContextParent | undefined;
64
- readonly namespace?: (string & Schema2.NonEmptyString255Brand) | undefined;
82
+ readonly namespace?: (string & S.NonEmptyString255Brand) | undefined;
65
83
  }, {
66
- readonly name: string & Schema2.NonEmptyString255Brand;
84
+ readonly name: string & S.NonEmptyString255Brand;
67
85
  readonly locale: "en" | "de";
68
86
  readonly userProfile?: {
69
87
  readonly sub: string & import("@effect-app/prelude/ids").UserProfileIdBrand;
70
88
  } | undefined;
71
89
  readonly parent?: RequestContextParent | undefined;
72
- readonly namespace?: (string & Schema2.NonEmptyString255Brand) | undefined;
73
- readonly id?: Schema2.StringId;
74
- readonly rootId?: string & Schema2.StringIdBrand;
90
+ readonly namespace?: (string & S.NonEmptyString255Brand) | undefined;
91
+ readonly id?: S.NonEmptyString255;
75
92
  readonly createdAt?: Date;
76
- }, RequestContext, import("effect/Data").Case>;
93
+ readonly rootId?: S.NonEmptyString255;
94
+ }, RequestContext, {
95
+ id: S.Schema<string, S.NonEmptyString255> & S.ConstructorPropertyDescriptor<string, S.NonEmptyString255>;
96
+ rootId: S.WithDefaults<S.Schema<string, S.NonEmptyString255> & {
97
+ make: () => S.NonEmptyString255;
98
+ withDefault: () => S.Schema<string, S.NonEmptyString255> & S.ConstructorPropertyDescriptor<string, S.NonEmptyString255>;
99
+ }> & S.Schema<string, S.NonEmptyString255> & {
100
+ make: () => S.NonEmptyString255;
101
+ withDefault: () => S.Schema<string, S.NonEmptyString255> & S.ConstructorPropertyDescriptor<string, S.NonEmptyString255>;
102
+ };
103
+ parent: S.PropertySignature<{
104
+ readonly _tag: "RequestContext";
105
+ readonly id: string;
106
+ readonly name: string;
107
+ readonly locale: "en" | "de";
108
+ readonly createdAt: string;
109
+ readonly userProfile?: {
110
+ readonly sub: string;
111
+ } | undefined;
112
+ } | undefined, true, RequestContextParent | undefined, true>;
113
+ namespace: S.PropertySignature<string | undefined, true, (string & S.NonEmptyString255Brand) | undefined, true>;
114
+ name: S.WithDefaults<S.Schema<string, string & S.NonEmptyString255Brand>> & S.Schema<string, string & S.NonEmptyString255Brand>;
115
+ userProfile: S.PropertySignature<{
116
+ readonly sub: string;
117
+ } | undefined, true, {
118
+ readonly sub: string & import("@effect-app/prelude/ids").UserProfileIdBrand;
119
+ } | undefined, true>;
120
+ locale: S.Schema<"en" | "de", "en" | "de"> & {
121
+ literals: ["en", "de"];
122
+ };
123
+ createdAt: S.Schema<string, Date> & S.ConstructorPropertyDescriptor<string, Date>;
124
+ }, import("effect/Data").Case>;
77
125
  /**
78
126
  * @tsplus type RequestContext
79
127
  * @tsplus companion RequestContext.Ops
@@ -81,14 +129,14 @@ declare const RequestContext_base: Schema2.Class<{
81
129
  export declare class RequestContext extends RequestContext_base {
82
130
  static inherit(this: void, parent: RequestContext, newSelf: ConstructorParameters<typeof RequestContextParent>[0]): RequestContext;
83
131
  static toMonitoring(this: void, self: RequestContext): {
84
- parentOperationName?: string & Schema2.NonEmptyString255Brand;
132
+ parentOperationName?: string & S.NonEmptyString255Brand;
85
133
  parentLocale?: "en" | "de";
86
- operationName: string & Schema2.NonEmptyString255Brand;
134
+ operationName: string & S.NonEmptyString255Brand;
87
135
  locale: "en" | "de";
88
136
  };
89
137
  }
90
138
  export declare namespace RequestContextParent {
91
- const From_base: Schema2.FromClass<{
139
+ const From_base: S.FromClass<{
92
140
  readonly _tag: "RequestContext";
93
141
  readonly id: string;
94
142
  readonly name: string;
@@ -107,13 +155,13 @@ export declare namespace RequestContextParent {
107
155
  export {};
108
156
  }
109
157
  export declare namespace RequestContext {
110
- const From_base_1: Schema2.FromClass<{
158
+ const From_base_1: S.FromClass<{
111
159
  readonly _tag: "RequestContext";
112
160
  readonly id: string;
113
- readonly rootId: string;
114
161
  readonly name: string;
115
162
  readonly locale: "en" | "de";
116
163
  readonly createdAt: string;
164
+ readonly rootId: string;
117
165
  readonly userProfile?: {
118
166
  readonly sub: string;
119
167
  } | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../_src/RequestContext.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAU7C,qBACa,oBAAqB,SAAQ,yBAKxC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL;;;GAGG;AACH,qBACa,cAAe,SAAQ,mBAclC;IACA,MAAM,CAAC,OAAO,CACZ,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,qBAAqB,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAUhE,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc;;;;;;CASrD;AAKD,yBAAiB,oBAAoB,CAAC;;;;;;;;;;;IACpC;;;OAGG;IACH,MAAM,OAAO,IAAK,SAAQ,SAAwC;KAAG;;CACtE;AACD,yBAAiB,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;IAC9B;;;OAGG;IACH,MAAM,OAAO,IAAK,SAAQ,WAAkC;KAAG;;CAChE"}
1
+ {"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../_src/RequestContext.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGvC,qBACa,oBAAqB,SAAQ,yBAQxC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL;;;GAGG;AACH,qBACa,cAAe,SAAQ,mBAclC;IAEA,MAAM,CAAC,OAAO,CACZ,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,qBAAqB,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAUhE,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc;;;;;;CASrD;AAKD,yBAAiB,oBAAoB,CAAC;;;;;;;;;;;IACpC;;;OAGG;IACH,MAAM,OAAO,IAAK,SAAQ,SAAwC;KAAG;;CACtE;AACD,yBAAiB,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;IAC9B;;;OAGG;IACH,MAAM,OAAO,IAAK,SAAQ,WAAkC;KAAG;;CAChE"}
@@ -7,17 +7,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var RequestContext_1;
8
8
  import * as tsplus_module_1 from "@effect-app/schema";
9
9
  import * as tsplus_module_2 from "@effect/schema/Schema";
10
- import { Schema2 } from "@effect-app/prelude";
10
+ import * as tsplus_module_3 from "@effect-app/prelude/utils";
11
+ import { S } from "@effect-app/prelude";
11
12
  import { RequestId, UserProfileId } from "@effect-app/prelude/ids";
12
- const fields = {
13
+ let RequestContextParent = class RequestContextParent extends tsplus_module_1.TaggedClass()("RequestContext", {
14
+ id: RequestId,
13
15
  name: tsplus_module_1.NonEmptyString255,
14
16
  userProfile: tsplus_module_2.optional(tsplus_module_1.struct({ sub: UserProfileId })),
15
17
  locale: tsplus_module_1.literal("en", "de"),
16
- createdAt: tsplus_module_2.withDefaultConstructor(Schema2.Date, () => new Date()) // TODO
17
- };
18
- let RequestContextParent = class RequestContextParent extends tsplus_module_1.TaggedClass()("RequestContext", {
19
- id: RequestId,
20
- ...fields
18
+ createdAt: tsplus_module_2.withDefaultConstructor(S.Date, () => new Date()) // TODO
21
19
  }) {
22
20
  };
23
21
  RequestContextParent = __decorate([
@@ -28,12 +26,12 @@ export { RequestContextParent };
28
26
  * @tsplus type RequestContext
29
27
  * @tsplus companion RequestContext.Ops
30
28
  */
31
- let RequestContext = RequestContext_1 = class RequestContext extends Schema2.TaggedClass()("RequestContext", {
29
+ let RequestContext = RequestContext_1 = class RequestContext extends S.TaggedClass()("RequestContext", {
30
+ ...tsplus_module_3.RecordOmitold(tsplus_module_3.object$(RequestContextParent.fields), "id"),
32
31
  id: RequestId.withDefault(),
33
32
  rootId: RequestId,
34
33
  parent: tsplus_module_2.optional(RequestContextParent),
35
- namespace: tsplus_module_2.optional(tsplus_module_1.NonEmptyString255),
36
- ...fields
34
+ namespace: tsplus_module_2.optional(tsplus_module_1.NonEmptyString255)
37
35
  // ...RequestContextParent.omit("id").extend({
38
36
  // id: RequestId.withDefault(),
39
37
  // rootId: RequestId,
@@ -41,6 +39,7 @@ let RequestContext = RequestContext_1 = class RequestContext extends Schema2.Tag
41
39
  // namespace: NonEmptyString255.optional()
42
40
  // })
43
41
  }) {
42
+ // static Tag = Context.Tag<RequestContext>()
44
43
  static inherit(parent, newSelf) {
45
44
  return new RequestContext_1({
46
45
  namespace: parent?.namespace,
@@ -84,4 +83,4 @@ export { RequestContext };
84
83
  }
85
84
  RequestContext.From = From;
86
85
  })(RequestContext || (RequestContext = {}));
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdENvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL1JlcXVlc3RDb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBRWxFLE1BQU0sTUFBTSxHQUFHO0lBQ2IsSUFBSSxrQkFBRSxpQkFBaUI7SUFDdkIsV0FBVyxFQUFFLHlCQUFBLGdCQUFBLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFXO0lBQ3RELE1BQU0sRUFBRSxnQkFBQSxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztJQUMzQixTQUFTLEVBQUUsdUNBQUEsT0FBTyxDQUFDLElBQUksRUFBaUIsR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU87Q0FDekQsQ0FBQTtBQUdILElBQU0sb0JBQW9CLEdBQTFCLE1BQU0sb0JBQXFCLFNBQVEsZ0JBQUEsV0FBVyxFQUVsRCxDQUFDLGdCQUFnQixFQUFFO0lBQ3BCLEVBQUUsRUFBRSxTQUFTO0lBQ2IsR0FBRyxNQUFNO0NBQ1YsQ0FBQztDQUFHLENBQUE7QUFMUSxvQkFBb0I7b0JBRGhDLHlCQUF5QjtHQUNiLG9CQUFvQixDQUs1Qjs7QUFFTDs7O0dBR0c7QUFFSSxJQUFNLGNBQWMsc0JBQXBCLE1BQU0sY0FBZSxTQUFRLE9BQU8sQ0FBQyxXQUFXLEVBRXBELENBQUMsZ0JBQWdCLEVBQUU7SUFDcEIsRUFBRSxFQUFFLFNBQVMsQ0FBQyxXQUFXLEVBQUU7SUFDM0IsTUFBTSxFQUFFLFNBQVM7SUFDakIsTUFBTSxFQUFFLHlCQUFBLG9CQUFvQixDQUFXO0lBQ3ZDLFNBQVMsRUFBRSx5Q0FBQSxpQkFBaUIsQ0FBVztJQUN2QyxHQUFHLE1BQU07SUFDVCw4Q0FBOEM7SUFDOUMsaUNBQWlDO0lBQ2pDLHVCQUF1QjtJQUN2Qiw2Q0FBNkM7SUFDN0MsNENBQTRDO0lBQzVDLEtBQUs7Q0FDTixDQUFDO0lBQ0EsTUFBTSxDQUFDLE9BQU8sQ0FFWixNQUFzQixFQUN0QixPQUE4RDtRQUU5RCxPQUFPLElBQUksZ0JBQWMsQ0FBQztZQUN4QixTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVM7WUFDNUIsR0FBRyxPQUFPO1lBQ1YsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1lBQ3JCLE1BQU07U0FDUCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBYSxJQUFvQjtRQUNsRCxPQUFPO1lBQ0wsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU07Z0JBQ2IsQ0FBQyxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUM3RSxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ1IsQ0FBQTtJQUNILENBQUM7Q0FDRixDQUFBO0FBckNZLGNBQWM7b0JBRDFCLHlCQUF5QjtHQUNiLGNBQWMsQ0FxQzFCOztBQUVELGdDQUFnQztBQUNoQyxFQUFFO0FBQ0Ysb0JBQW9CO0FBQ3BCLFdBQWlCLG9CQUFvQjtJQUNuQzs7O09BR0c7SUFDSCxNQUFhLElBQUssU0FBUSxnQkFBQSxTQUFTLEVBQStCO0tBQUc7SUFBeEQseUJBQUksT0FBb0QsQ0FBQTtBQUN2RSxDQUFDLEVBTmdCLG9CQUFvQixLQUFwQixvQkFBb0IsUUFNcEM7QUFDRCxXQUFpQixjQUFjO0lBQzdCOzs7T0FHRztJQUNILE1BQWEsSUFBSyxTQUFRLGdCQUFBLFNBQVMsRUFBeUI7S0FBRztJQUFsRCxtQkFBSSxPQUE4QyxDQUFBO0FBQ2pFLENBQUMsRUFOZ0IsY0FBYyxLQUFkLGNBQWMsUUFNOUIifQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdENvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL1JlcXVlc3RDb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUczRCxJQUFNLG9CQUFvQixHQUExQixNQUFNLG9CQUFxQixTQUFRLGdCQUFBLFdBQVcsRUFFbEQsQ0FBQyxnQkFBZ0IsRUFBRTtJQUNwQixFQUFFLEVBQUUsU0FBUztJQUNiLElBQUksa0JBQUUsaUJBQWlCO0lBQ3ZCLFdBQVcsRUFBRSx5QkFBQSxnQkFBQSxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBVztJQUN0RCxNQUFNLEVBQUUsZ0JBQUEsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7SUFDM0IsU0FBUyxFQUFFLHVDQUFBLENBQUMsQ0FBQyxJQUFJLEVBQWlCLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPO0NBQzVELENBQUM7Q0FBRyxDQUFBO0FBUlEsb0JBQW9CO29CQURoQyx5QkFBeUI7R0FDYixvQkFBb0IsQ0FRNUI7O0FBRUw7OztHQUdHO0FBRUksSUFBTSxjQUFjLHNCQUFwQixNQUFNLGNBQWUsU0FBUSxDQUFDLENBQUMsV0FBVyxFQUU5QyxDQUFDLGdCQUFnQixFQUFFO0lBQ3BCLEdBQUcsc0RBQUEsb0JBQW9CLENBQUMsTUFBTSxHQUFTLElBQUksQ0FBQztJQUM1QyxFQUFFLEVBQUUsU0FBUyxDQUFDLFdBQVcsRUFBRTtJQUMzQixNQUFNLEVBQUUsU0FBUztJQUNqQixNQUFNLEVBQUUseUJBQUEsb0JBQW9CLENBQVc7SUFDdkMsU0FBUyxFQUFFLHlDQUFBLGlCQUFpQixDQUFXO0lBQ3ZDLDhDQUE4QztJQUM5QyxpQ0FBaUM7SUFDakMsdUJBQXVCO0lBQ3ZCLDZDQUE2QztJQUM3Qyw0Q0FBNEM7SUFDNUMsS0FBSztDQUNOLENBQUM7SUFDQSw2Q0FBNkM7SUFDN0MsTUFBTSxDQUFDLE9BQU8sQ0FFWixNQUFzQixFQUN0QixPQUE4RDtRQUU5RCxPQUFPLElBQUksZ0JBQWMsQ0FBQztZQUN4QixTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVM7WUFDNUIsR0FBRyxPQUFPO1lBQ1YsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1lBQ3JCLE1BQU07U0FDUCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBYSxJQUFvQjtRQUNsRCxPQUFPO1lBQ0wsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU07Z0JBQ2IsQ0FBQyxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUM3RSxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ1IsQ0FBQTtJQUNILENBQUM7Q0FDRixDQUFBO0FBdENZLGNBQWM7b0JBRDFCLHlCQUF5QjtHQUNiLGNBQWMsQ0FzQzFCOztBQUVELGdDQUFnQztBQUNoQyxFQUFFO0FBQ0Ysb0JBQW9CO0FBQ3BCLFdBQWlCLG9CQUFvQjtJQUNuQzs7O09BR0c7SUFDSCxNQUFhLElBQUssU0FBUSxnQkFBQSxTQUFTLEVBQStCO0tBQUc7SUFBeEQseUJBQUksT0FBb0QsQ0FBQTtBQUN2RSxDQUFDLEVBTmdCLG9CQUFvQixLQUFwQixvQkFBb0IsUUFNcEM7QUFDRCxXQUFpQixjQUFjO0lBQzdCOzs7T0FHRztJQUNILE1BQWEsSUFBSyxTQUFRLGdCQUFBLFNBQVMsRUFBeUI7S0FBRztJQUFsRCxtQkFBSSxPQUE4QyxDQUFBO0FBQ2pFLENBQUMsRUFOZ0IsY0FBYyxLQUFkLGNBQWMsUUFNOUIifQ==
@@ -9,8 +9,8 @@ import { NotFoundError } from "../errors.js";
9
9
  * @tsplus location "@effect-app/infra/_ext/Array"
10
10
  */
11
11
  export declare function getFirstById_<A extends {
12
- id: Id;
13
- }, Id extends string, Type extends string>(a: Iterable<A>, id: Id, type: Type): import("effect/Effect").Effect<never, NotFoundError<Type>, A>;
12
+ id: unknown;
13
+ }, Type extends string>(a: Iterable<A>, id: A["id"], type: Type): import("effect/Effect").Effect<never, NotFoundError<Type>, A>;
14
14
  /**
15
15
  * @tsplus fluent Object.Ops inspect
16
16
  * @tsplus location "@effect-app/infra/_ext/Array"
@@ -1 +1 @@
1
- {"version":3,"file":"Array.d.ts","sourceRoot":"","sources":["../../_src/_ext/Array.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;;;;;;;;;AAS5C,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,EAAE,CAAA;CAAE,EAAE,EAAE,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,EACxF,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EACd,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,iEAMX;;;;;AAKD,wBAAgB,aAAa,CAAC,EAAE,SAAS,MAAM,EAC7C,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAChB,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,EAChC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,UAG5B"}
1
+ {"version":3,"file":"Array.d.ts","sourceRoot":"","sources":["../../_src/_ext/Array.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;;;;;;;;;AAS5C,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,EAAE,IAAI,SAAS,MAAM,EAC1E,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EACd,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EACX,IAAI,EAAE,IAAI,iEAMX;;;;;AAKD,wBAAgB,aAAa,CAAC,EAAE,SAAS,MAAM,EAC7C,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAChB,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,EAChC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,UAG5B"}
@@ -1,5 +1,6 @@
1
- import * as tsplus_module_1 from "effect/Chunk";
2
- import * as tsplus_module_2 from "@effect-app/prelude/_ext/misc";
1
+ import * as tsplus_module_1 from "effect/Equal";
2
+ import * as tsplus_module_2 from "effect/Chunk";
3
+ import * as tsplus_module_3 from "@effect-app/prelude/_ext/misc";
3
4
  import { inspect } from "util";
4
5
  import { NotFoundError } from "../errors.js";
5
6
  /**
@@ -10,7 +11,7 @@ import { NotFoundError } from "../errors.js";
10
11
  * @tsplus fluent ReadonlyArray getFirstById
11
12
  */
12
13
  export function getFirstById_(a, id, type) {
13
- return tsplus_module_2.encaseMaybeInEffect_(tsplus_module_1.findFirst(tsplus_module_1.fromIterable(a), (_) => _.id === id), () => new NotFoundError({ type, id }));
14
+ return tsplus_module_3.encaseMaybeInEffect_(tsplus_module_2.findFirst(tsplus_module_2.fromIterable(a), (_) => tsplus_module_1.equals(_.id, id)), () => new NotFoundError({ type, id }));
14
15
  }
15
16
  /**
16
17
  * @tsplus fluent Object.Ops inspect
@@ -18,4 +19,4 @@ export function getFirstById_(a, id, type) {
18
19
  export function RecordInspect(o, showHidden, depth, color) {
19
20
  return inspect(o.subject, showHidden, depth, color);
20
21
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL19leHQvQXJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFNUM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsQ0FBYyxFQUNkLEVBQU0sRUFDTixJQUFVO0lBRVYsT0FBTyxxQ0FBQSwwQkFBQSw2QkFDUyxDQUFDLENBQUMsRUFDTCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFDZCxHQUFHLEVBQUUsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDMUQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsQ0FBZ0IsRUFDaEIsVUFBZ0MsRUFDaEMsS0FBaUMsRUFDakMsS0FBMkI7SUFFM0IsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFBO0FBQ3JELENBQUMifQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL19leHQvQXJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRTVDOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLENBQWMsRUFDZCxFQUFXLEVBQ1gsSUFBVTtJQUVWLE9BQU8scUNBQUEsMEJBQUEsNkJBQ1MsQ0FBQyxDQUFDLEVBQ0wsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHVCQUFhLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDekIsR0FBRyxFQUFFLENBQUMsSUFBSSxhQUFhLENBQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBQ2hFLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLENBQWdCLEVBQ2hCLFVBQWdDLEVBQ2hDLEtBQWlDLEVBQ2pDLEtBQTJCO0lBRTNCLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTtBQUNyRCxDQUFDIn0=
@@ -31,26 +31,4 @@ import type {} from "@effect-app/infra/api/setupRequest";
31
31
  */
32
32
  import {} from "@effect-app/infra/api/reportError";
33
33
  import "@effect-app/infra/test.arbs";
34
- import { S } from "@effect-app/schema/schema";
35
- import type { ParseOptions } from "@effect/schema/AST";
36
- /**
37
- * @tsplus fluent effect/schema/Schema withDefault
38
- * @tsplus location "@effect-app/infra/_global.ext"
39
- */
40
- export declare const defaultDate: <From>(s: S.Schema<From, Date>) => S.ConstructorPropertyDescriptor<From, Date>;
41
- /**
42
- * @tsplus fluent effect/schema/Schema withDefault
43
- * @tsplus location "@effect-app/infra/_global.ext"
44
- */
45
- export declare const defaultNullable: <From, To>(s: S.Schema<From, To | null>) => S.ConstructorPropertyDescriptor<From, To | null>;
46
- /**
47
- * @tsplus fluent effect/schema/Schema withDefault
48
- * @tsplus location "@effect-app/infra/_global.ext"
49
- */
50
- export declare const defaultArray: <From, T>(s: S.Schema<From, ReadonlyArray<T>>) => S.ConstructorPropertyDescriptor<From, readonly T[]>;
51
- /**
52
- * @tsplus fluent effect/schema/Schema __call
53
- * @tsplus location "@effect-app/infra/_global.ext"
54
- */
55
- export declare const parseSync: <I, A>(self: S.Schema<I, A>, u: I, options?: ParseOptions | undefined) => A;
56
34
  //# sourceMappingURL=_global.ext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_global.ext.d.ts","sourceRoot":"","sources":["../_src/_global.ext.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,yCAAyC,CAAA;AAC7D;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,6CAA6C,CAAA;AACjE;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,4CAA4C,CAAA;AAChE;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,8CAA8C,CAAA;AAGlE;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAClD;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,6BAA6B,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,oCAAoC,CAAA;AAExD;;GAEG;AACH,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAlBlD,OAAO,6BAA6B,CAAA;AAmBpC,OAAO,EAAE,CAAC,EAAE,MAAM,2BAA2B,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;;;;;AAKtD,eAAO,MAAM,WAAW,YAAa,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,gDAAkD,CAAA;;;;;AAK3G,eAAO,MAAM,eAAe,gBAAiB,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,qDAA4C,CAAA;;;;;AAKlH,eAAO,MAAM,YAAY,eAAgB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,wDAA0C,CAAA;;;;;AAKnH,eAAO,MAAM,SAAS,eAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,YAAY,GAAG,SAAS,MAC/D,CAAA"}
1
+ {"version":3,"file":"_global.ext.d.ts","sourceRoot":"","sources":["../_src/_global.ext.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,yCAAyC,CAAA;AAC7D;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,6CAA6C,CAAA;AACjE;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,4CAA4C,CAAA;AAChE;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,8CAA8C,CAAA;AAGlE;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAClD;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,6BAA6B,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,oCAAoC,CAAA;AAExD;;GAEG;AACH,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAlBlD,OAAO,6BAA6B,CAAA"}
@@ -1,19 +1,2 @@
1
1
  import "@effect-app/infra/test.arbs";
2
- import { S } from "@effect-app/schema/schema";
3
- /**
4
- * @tsplus fluent effect/schema/Schema withDefault
5
- */
6
- export const defaultDate = (s) => S.withDefaultConstructor(s, () => new Date());
7
- /**
8
- * @tsplus fluent effect/schema/Schema withDefault
9
- */
10
- export const defaultNullable = (s) => S.withDefaultConstructor(s, () => null);
11
- /**
12
- * @tsplus fluent effect/schema/Schema withDefault
13
- */
14
- export const defaultArray = (s) => S.withDefaultConstructor(s, () => []);
15
- /**
16
- * @tsplus fluent effect/schema/Schema __call
17
- */
18
- export const parseSync = (self, u, options) => S.parseSync(self)(u, options);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2dsb2JhbC5leHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL19nbG9iYWwuZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQSxPQUFPLDZCQUE2QixDQUFBO0FBbUJwQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFHN0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBTyxDQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQTtBQUUzRzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFXLENBQTRCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7QUFFbEg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBVSxDQUFtQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBRW5IOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQU8sSUFBb0IsRUFBRSxDQUFJLEVBQUUsT0FBa0MsRUFBRSxFQUFFLENBQ2hHLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFBIn0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2dsb2JhbC5leHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL19nbG9iYWwuZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQSxPQUFPLDZCQUE2QixDQUFBIn0=
@@ -1,5 +1,5 @@
1
1
  import * as S from "@effect-app/schema";
2
2
  export declare function makeCodec<To extends {
3
3
  id: Id;
4
- }, From, Id>(self: S.Schema<From, To>): readonly [(i: unknown, options?: S.AST.ParseOptions | undefined) => To, (a: To, options?: S.AST.ParseOptions | undefined) => From];
4
+ }, From, Id>(self: S.Schema<From, To>): readonly [(i: From, options?: S.AST.ParseOptions | undefined) => To, (a: To, options?: S.AST.ParseOptions | undefined) => From];
5
5
  //# sourceMappingURL=codec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../_src/api/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,oBAAoB,CAAA;AAEvC,wBAAgB,SAAS,CACvB,EAAE,SAAS;IAAE,EAAE,EAAE,EAAE,CAAA;CAAE,EACrB,IAAI,EACJ,EAAE,EACF,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,sIAEzB"}
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../_src/api/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,oBAAoB,CAAA;AAEvC,wBAAgB,SAAS,CACvB,EAAE,SAAS;IAAE,EAAE,EAAE,EAAE,CAAA;CAAE,EACrB,IAAI,EACJ,EAAE,EACF,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,mIAEzB"}
package/dist/api/codec.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as S from "@effect-app/schema";
2
2
  export function makeCodec(self) {
3
- return [S.parseSync(self), S.encodeSync(self)];
3
+ return [S.decodeSync(self), S.encodeSync(self)];
4
4
  }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL2FwaS9jb2RlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssQ0FBQyxNQUFNLG9CQUFvQixDQUFBO0FBRXZDLE1BQU0sVUFBVSxTQUFTLENBSXZCLElBQXdCO0lBQ3hCLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQVUsQ0FBQTtBQUN6RCxDQUFDIn0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL2FwaS9jb2RlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssQ0FBQyxNQUFNLG9CQUFvQixDQUFBO0FBRXZDLE1BQU0sVUFBVSxTQUFTLENBSXZCLElBQXdCO0lBQ3hCLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQVUsQ0FBQTtBQUMxRCxDQUFDIn0=
@@ -0,0 +1,16 @@
1
+ import type { Route as HttpRoute, Router as HttpRouter } from "@effect/platform/Http/Router";
2
+ export type { HttpApp } from "@effect/platform/Http/App";
3
+ export type { Body as HttpBody } from "@effect/platform/Http/Body";
4
+ export * as HttpHeaders from "@effect/platform/Http/Headers";
5
+ export type { Middleware as HttpMiddleware } from "@effect/platform/Http/Middleware";
6
+ export { RouteContext as HttpRouteContext } from "@effect/platform/Http/Router";
7
+ export { RequestError as HttpRequestError } from "@effect/platform/Http/ServerError";
8
+ export { ServerRequest as HttpServerRequest } from "@effect/platform/Http/ServerRequest";
9
+ export type { ServerResponse as HttpServerResponse } from "@effect/platform/Http/ServerResponse";
10
+ export type { HttpRoute, HttpRouter };
11
+ export * as HttpServer from "@effect/platform/Http/Server";
12
+ /**
13
+ * @tsplus unify effect/platform/Http/Router/Route
14
+ */
15
+ export declare function unifyRoute<X extends HttpRoute<any, any>>(self: X): HttpRoute<X extends HttpRoute<infer EX, any> ? EX : never, X extends HttpRoute<any, infer AX> ? AX : never>;
16
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../_src/api/http.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAE5F,YAAY,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACxD,YAAY,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,WAAW,MAAM,+BAA+B,CAAA;AAC5D,YAAY,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACpF,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/E,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpF,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AACxF,YAAY,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AAChG,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,CAAA;AACrC,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAA;AAE1D;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,EACtD,IAAI,EAAE,CAAC,GACN,SAAS,CACV,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,EAC/C,CAAC,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAChD,CAEA"}
@@ -0,0 +1,12 @@
1
+ export * as HttpHeaders from "@effect/platform/Http/Headers";
2
+ export { RouteContext as HttpRouteContext } from "@effect/platform/Http/Router";
3
+ export { RequestError as HttpRequestError } from "@effect/platform/Http/ServerError";
4
+ export { ServerRequest as HttpServerRequest } from "@effect/platform/Http/ServerRequest";
5
+ export * as HttpServer from "@effect/platform/Http/Server";
6
+ /**
7
+ * @tsplus unify effect/platform/Http/Router/Route
8
+ */
9
+ export function unifyRoute(self) {
10
+ return self;
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL19zcmMvYXBpL2h0dHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxLQUFLLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQTtBQUU1RCxPQUFPLEVBQUUsWUFBWSxJQUFJLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDL0UsT0FBTyxFQUFFLFlBQVksSUFBSSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3BGLE9BQU8sRUFBRSxhQUFhLElBQUksaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUd4RixPQUFPLEtBQUssVUFBVSxNQUFNLDhCQUE4QixDQUFBO0FBRTFEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsSUFBTztJQUtQLE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyJ9
@@ -0,0 +1,117 @@
1
+ import { Effect } from "effect/Effect";
2
+ import { Schema } from "@effect-app/schema";
3
+ import { Option } from "@effect-app/core/Option";
4
+ import { Tag } from "effect/Context";
5
+ import * as S from "@effect-app/schema";
6
+ import type { EnforceNonEmptyRecord } from "@effect-app/core/utils";
7
+ import { ValidationError } from "@effect-app/infra/errors";
8
+ import type { REST, StructFields } from "@effect-app/schema";
9
+ import type { Simplify } from "effect/Types";
10
+ import type express from "express";
11
+ import type { HttpRequestError, HttpRoute } from "../http.js";
12
+ export type Flatten<T extends object> = object extends T ? object : {
13
+ [K in keyof T]-?: (x: NonNullable<T[K]> extends infer V ? V extends object ? V extends readonly any[] ? Pick<T, K> : FlattenLVL1<V> extends infer FV ? ({
14
+ [P in keyof FV as `${Extract<K, string | number>}.${Extract<P, string | number>}`]: FV[P];
15
+ }) : never : Pick<T, K> : never) => void;
16
+ } extends Record<keyof T, (y: infer O) => void> ? O extends unknown ? {
17
+ [K in keyof O]: O[K];
18
+ } : never : never;
19
+ type FlattenLVL1<T extends object> = object extends T ? object : {
20
+ [K in keyof T]-?: (x: NonNullable<T[K]> extends infer V ? V extends object ? V extends readonly any[] ? Pick<T, K> : Pick<T, K> : never : never) => void;
21
+ } extends Record<keyof T, (y: infer O) => void> ? O extends unknown ? {
22
+ [K in keyof O]: O[K];
23
+ } : never : never;
24
+ export type RouteMatch<R, M, PR = never> = Effect<never, never, HttpRoute<Exclude<Exclude<R, EnforceNonEmptyRecord<M>>, PR>, HttpRequestError>>;
25
+ export interface ReqHandler<Req, R, E, Res, ReqSchema extends S.Schema<any, any>, ResSchema extends S.Schema<any, any>, CTX = any, Context = any> {
26
+ h: (r: Req, ctx: CTX) => Effect<R, E, Res>;
27
+ Request: ReqSchema;
28
+ Response: ResSchema;
29
+ ResponseOpenApi: any;
30
+ CTX: CTX;
31
+ Context: Context;
32
+ }
33
+ export type ReqFromSchema<ReqSchema extends S.Schema<any, any>> = S.Schema.To<ReqSchema>;
34
+ export type Extr<T> = T extends {
35
+ Model: S.Schema<any, any>;
36
+ } ? T["Model"] : T extends S.Schema<any, any> ? T : never;
37
+ export type ResFromSchema<ResSchema> = S.Schema.To<Extr<ResSchema>>;
38
+ export type _R<T extends Effect<any, any, any>> = [T] extends [
39
+ Effect<infer R, any, any>
40
+ ] ? R : never;
41
+ export type _E<T extends Effect<any, any, any>> = [T] extends [
42
+ Effect<any, infer E, any>
43
+ ] ? E : never;
44
+ export type Request2<Path extends string, Method extends S.REST.Methods.Rest, ReqA extends StructFields> = S.REST.ReqRes<{}, S.ToStruct<ReqA>> & {
45
+ method: Method;
46
+ path: Path;
47
+ };
48
+ export type Encode<A, E> = (a: A) => E;
49
+ export declare function decodeErrors(x: unknown): unknown[];
50
+ export declare function parseRequestParams<PathA extends StructFields, CookieA extends StructFields, QueryA extends StructFields, BodyA extends StructFields, HeaderA extends StructFields>(parsers: RequestParsers<PathA, CookieA, QueryA, BodyA, HeaderA>): ({ body, cookies, headers, params, query }: {
51
+ body: unknown;
52
+ cookies: unknown;
53
+ headers: unknown;
54
+ params: unknown;
55
+ query: unknown;
56
+ }) => import("effect/Effect").Effect<never, ValidationError, {
57
+ body: import("effect/Option").Option<Simplify<S.ToStruct<BodyA>>>;
58
+ cookie: import("effect/Option").Option<Simplify<S.ToStruct<CookieA>>>;
59
+ headers: import("effect/Option").Option<Simplify<S.ToStruct<HeaderA>>>;
60
+ path: import("effect/Option").Option<Simplify<S.ToStruct<PathA>>>;
61
+ query: import("effect/Option").Option<Simplify<S.ToStruct<QueryA>>>;
62
+ }>;
63
+ export declare function respondSuccess<ReqA, A, E>(encodeResponse: (req: ReqA) => Encode<A, E>): (req: ReqA, res: express.Response) => (a: A) => import("effect/Effect").Effect<never, never, void>;
64
+ export interface RequestHandler2<R, Path extends string, Method extends S.REST.Methods.Rest, ReqA extends StructFields, ResA extends StructFields, ResE> {
65
+ h: (i: ReqA) => Effect<R, ResE, ResA>;
66
+ Request: Request2<Path, Method, ReqA>;
67
+ Response: S.REST.ReqRes<any, any>;
68
+ }
69
+ export declare function makeRequestParsers<R, M, PathA extends StructFields, CookieA extends StructFields, QueryA extends StructFields, BodyA extends StructFields, HeaderA extends StructFields, ReqA extends PathA & QueryA & BodyA, ResA extends StructFields, Errors, PPath extends `/${string}`, CTX, Context, Config>(Request: RequestHandler<R, M, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, Errors, PPath, CTX, Context, Config>["Request"]): RequestParsers<PathA, CookieA, QueryA, BodyA, HeaderA>;
70
+ type Decode<A> = (u: unknown) => Effect<never, unknown, A>;
71
+ export interface RequestParsers<PathA extends StructFields, CookieA extends StructFields, QueryA extends StructFields, BodyA extends StructFields, HeaderA extends StructFields> {
72
+ parseHeaders: Decode<Option<Simplify<S.ToStruct<HeaderA>>>>;
73
+ parseQuery: Decode<Option<Simplify<S.ToStruct<QueryA>>>>;
74
+ parseBody: Decode<Option<Simplify<S.ToStruct<BodyA>>>>;
75
+ parsePath: Decode<Option<Simplify<S.ToStruct<PathA>>>>;
76
+ parseCookie: Decode<Option<Simplify<S.ToStruct<CookieA>>>>;
77
+ }
78
+ export type EffectDeps<A> = {
79
+ [K in keyof A as A[K] extends Effect<any, any, any> ? K : never]: A[K] extends Effect<any, any, any> ? A[K] : never;
80
+ };
81
+ export type Request<M, PathA extends StructFields, CookieA extends StructFields, QueryA extends StructFields, BodyA extends StructFields, HeaderA extends StructFields, ReqA extends PathA & QueryA & BodyA, PPath extends `/${string}`> = REST.ReqRes<any, any> & {
82
+ method: REST.Methods.Rest;
83
+ path: PPath;
84
+ Cookie?: CookieA;
85
+ Path?: PathA;
86
+ Body?: BodyA;
87
+ Query?: QueryA;
88
+ Headers?: HeaderA;
89
+ Tag: Tag<M, M>;
90
+ ReqA?: ReqA;
91
+ };
92
+ export interface RequestHandlerBase<R, M, PathA extends StructFields, CookieA extends StructFields, QueryA extends StructFields, BodyA extends StructFields, HeaderA extends StructFields, ReqA extends PathA & QueryA & BodyA, ResA extends StructFields, ResE, PPath extends `/${string}`, Config> {
93
+ adaptResponse?: any;
94
+ h: (i: PathA & QueryA & BodyA & {}) => Effect<R, ResE, ResA>;
95
+ Request: Request<M, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, PPath>;
96
+ Response: REST.ReqRes<any, any>;
97
+ ResponseOpenApi?: any;
98
+ config: Config;
99
+ }
100
+ export interface RequestHandler<R, M, PathA extends StructFields, CookieA extends StructFields, QueryA extends StructFields, BodyA extends StructFields, HeaderA extends StructFields, ReqA extends PathA & QueryA & BodyA, ResA extends StructFields, ResE, PPath extends `/${string}`, CTX, Context, Config> {
101
+ adaptResponse?: any;
102
+ h: (i: PathA & QueryA & BodyA & {}, ctx: any) => Effect<R, ResE, ResA>;
103
+ Request: Request<M, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, PPath> & Config;
104
+ Response: REST.ReqRes<any, any>;
105
+ ResponseOpenApi?: any;
106
+ CTX: CTX;
107
+ Context: Context;
108
+ }
109
+ export interface RequestHandlerOrig<R, M, PathA extends StructFields, CookieA extends StructFields, QueryA extends StructFields, BodyA extends StructFields, HeaderA extends StructFields, ReqA extends PathA & QueryA & BodyA, ResA extends StructFields, ResE, PPath extends `/${string}`> {
110
+ adaptResponse?: any;
111
+ h: (i: PathA & QueryA & BodyA & {}) => Effect<R, ResE, ResA>;
112
+ Request: Request<M, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, PPath>;
113
+ Response: REST.ReqRes<any, any>;
114
+ ResponseOpenApi?: any;
115
+ }
116
+ export {};
117
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../_src/api/routing/base.ts"],"names":[],"mappings":"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"}