effect-app 0.152.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 (169) hide show
  1. package/.eslintrc.cjs +11 -0
  2. package/.prettierignore +6 -0
  3. package/CHANGELOG.md +4106 -0
  4. package/_cjs/Config/SecretURL.cjs +58 -0
  5. package/_cjs/Config/SecretURL.cjs.map +1 -0
  6. package/_cjs/Config/internal/configSecretURL.cjs +88 -0
  7. package/_cjs/Config/internal/configSecretURL.cjs.map +1 -0
  8. package/_cjs/Inputify.type.cjs +6 -0
  9. package/_cjs/Inputify.type.cjs.map +1 -0
  10. package/_cjs/Operations.cjs +76 -0
  11. package/_cjs/Operations.cjs.map +1 -0
  12. package/_cjs/Pure.cjs +201 -0
  13. package/_cjs/Pure.cjs.map +1 -0
  14. package/_cjs/Request.cjs +76 -0
  15. package/_cjs/Request.cjs.map +1 -0
  16. package/_cjs/Widen.type.cjs +6 -0
  17. package/_cjs/Widen.type.cjs.map +1 -0
  18. package/_cjs/_ext/date.cjs +64 -0
  19. package/_cjs/_ext/date.cjs.map +1 -0
  20. package/_cjs/_ext/misc.cjs +121 -0
  21. package/_cjs/_ext/misc.cjs.map +1 -0
  22. package/_cjs/_global.cjs +24 -0
  23. package/_cjs/_global.cjs.map +1 -0
  24. package/_cjs/_global.ext.cjs +5 -0
  25. package/_cjs/_global.ext.cjs.map +1 -0
  26. package/_cjs/_global.schema.cjs +4 -0
  27. package/_cjs/_global.schema.cjs.map +1 -0
  28. package/_cjs/client/QueryResult.cjs +116 -0
  29. package/_cjs/client/QueryResult.cjs.map +1 -0
  30. package/_cjs/client/clientFor.cjs +159 -0
  31. package/_cjs/client/clientFor.cjs.map +1 -0
  32. package/_cjs/client/config.cjs +21 -0
  33. package/_cjs/client/config.cjs.map +1 -0
  34. package/_cjs/client/errors.cjs +116 -0
  35. package/_cjs/client/errors.cjs.map +1 -0
  36. package/_cjs/client/fetch.cjs +178 -0
  37. package/_cjs/client/fetch.cjs.map +1 -0
  38. package/_cjs/client.cjs +61 -0
  39. package/_cjs/client.cjs.map +1 -0
  40. package/_cjs/faker.cjs +31 -0
  41. package/_cjs/faker.cjs.map +1 -0
  42. package/_cjs/ids.cjs +24 -0
  43. package/_cjs/ids.cjs.map +1 -0
  44. package/_cjs/index.cjs +27 -0
  45. package/_cjs/index.cjs.map +1 -0
  46. package/_cjs/refinements.cjs +97 -0
  47. package/_cjs/refinements.cjs.map +1 -0
  48. package/_cjs/schema.cjs +50 -0
  49. package/_cjs/schema.cjs.map +1 -0
  50. package/_cjs/schema.test.cjs +9 -0
  51. package/_cjs/schema.test.cjs.map +1 -0
  52. package/_cjs/service.cjs +97 -0
  53. package/_cjs/service.cjs.map +1 -0
  54. package/_cjs/utils.cjs +17 -0
  55. package/_cjs/utils.cjs.map +1 -0
  56. package/_src/Config/SecretURL.ts +103 -0
  57. package/_src/Config/internal/configSecretURL.ts +85 -0
  58. package/_src/Inputify.type.ts +13 -0
  59. package/_src/Operations.ts +70 -0
  60. package/_src/Pure.ts +525 -0
  61. package/_src/Request.ts +106 -0
  62. package/_src/Widen.type.ts +28 -0
  63. package/_src/_ext/date.ts +84 -0
  64. package/_src/_ext/misc.ts +161 -0
  65. package/_src/_global/stm.ts.bak +35 -0
  66. package/_src/_global.ext.ts +3 -0
  67. package/_src/_global.schema.ts +106 -0
  68. package/_src/_global.ts +119 -0
  69. package/_src/client/QueryResult.ts +120 -0
  70. package/_src/client/clientFor.ts +260 -0
  71. package/_src/client/config.ts +13 -0
  72. package/_src/client/errors.ts +129 -0
  73. package/_src/client/fetch.ts +253 -0
  74. package/_src/client.ts +7 -0
  75. package/_src/faker.ts +32 -0
  76. package/_src/ids.ts +35 -0
  77. package/_src/index.ts +4 -0
  78. package/_src/refinements.ts +92 -0
  79. package/_src/schema/_schema.ts.bak +208 -0
  80. package/_src/schema/api/date.ts.bak +78 -0
  81. package/_src/schema/api.ts.bak +20 -0
  82. package/_src/schema/overrides.ts.bak +76 -0
  83. package/_src/schema/shared.ts.bak +334 -0
  84. package/_src/schema.test.ts +3 -0
  85. package/_src/schema.ts +37 -0
  86. package/_src/service.ts +119 -0
  87. package/_src/utils.ts +1 -0
  88. package/dist/Config/SecretURL.d.ts +82 -0
  89. package/dist/Config/SecretURL.d.ts.map +1 -0
  90. package/dist/Config/SecretURL.js +49 -0
  91. package/dist/Config/internal/configSecretURL.d.ts +24 -0
  92. package/dist/Config/internal/configSecretURL.d.ts.map +1 -0
  93. package/dist/Config/internal/configSecretURL.js +75 -0
  94. package/dist/Inputify.type.d.ts +10 -0
  95. package/dist/Inputify.type.d.ts.map +1 -0
  96. package/dist/Inputify.type.js +2 -0
  97. package/dist/Operations.d.ts +170 -0
  98. package/dist/Operations.d.ts.map +1 -0
  99. package/dist/Operations.js +87 -0
  100. package/dist/Pure.d.ts +169 -0
  101. package/dist/Pure.d.ts.map +1 -0
  102. package/dist/Pure.js +167 -0
  103. package/dist/Request.d.ts +49 -0
  104. package/dist/Request.d.ts.map +1 -0
  105. package/dist/Request.js +58 -0
  106. package/dist/Widen.type.d.ts +19 -0
  107. package/dist/Widen.type.d.ts.map +1 -0
  108. package/dist/Widen.type.js +2 -0
  109. package/dist/_ext/date.d.ts +71 -0
  110. package/dist/_ext/date.d.ts.map +1 -0
  111. package/dist/_ext/date.js +58 -0
  112. package/dist/_ext/misc.d.ts +77 -0
  113. package/dist/_ext/misc.d.ts.map +1 -0
  114. package/dist/_ext/misc.js +98 -0
  115. package/dist/_global.d.ts +70 -0
  116. package/dist/_global.d.ts.map +1 -0
  117. package/dist/_global.ext.d.ts +3 -0
  118. package/dist/_global.ext.d.ts.map +1 -0
  119. package/dist/_global.ext.js +4 -0
  120. package/dist/_global.js +76 -0
  121. package/dist/_global.schema.d.ts +6 -0
  122. package/dist/_global.schema.d.ts.map +1 -0
  123. package/dist/_global.schema.js +6 -0
  124. package/dist/client/QueryResult.d.ts +85 -0
  125. package/dist/client/QueryResult.d.ts.map +1 -0
  126. package/dist/client/QueryResult.js +85 -0
  127. package/dist/client/clientFor.d.ts +44 -0
  128. package/dist/client/clientFor.d.ts.map +1 -0
  129. package/dist/client/clientFor.js +144 -0
  130. package/dist/client/config.d.ts +14 -0
  131. package/dist/client/config.d.ts.map +1 -0
  132. package/dist/client/config.js +11 -0
  133. package/dist/client/errors.d.ts +206 -0
  134. package/dist/client/errors.d.ts.map +1 -0
  135. package/dist/client/errors.js +130 -0
  136. package/dist/client/fetch.d.ts +61 -0
  137. package/dist/client/fetch.d.ts.map +1 -0
  138. package/dist/client/fetch.js +127 -0
  139. package/dist/client.d.ts +6 -0
  140. package/dist/client.d.ts.map +1 -0
  141. package/dist/client.js +7 -0
  142. package/dist/faker.d.ts +7 -0
  143. package/dist/faker.d.ts.map +1 -0
  144. package/dist/faker.js +24 -0
  145. package/dist/ids.d.ts +32 -0
  146. package/dist/ids.d.ts.map +1 -0
  147. package/dist/ids.js +17 -0
  148. package/dist/index.d.ts +4 -0
  149. package/dist/index.d.ts.map +1 -0
  150. package/dist/index.js +4 -0
  151. package/dist/refinements.d.ts +57 -0
  152. package/dist/refinements.d.ts.map +1 -0
  153. package/dist/refinements.js +85 -0
  154. package/dist/schema.d.ts +7 -0
  155. package/dist/schema.d.ts.map +1 -0
  156. package/dist/schema.js +22 -0
  157. package/dist/schema.test.d.ts.map +1 -0
  158. package/dist/service.d.ts +47 -0
  159. package/dist/service.d.ts.map +1 -0
  160. package/dist/service.js +83 -0
  161. package/dist/utils.d.ts +2 -0
  162. package/dist/utils.d.ts.map +1 -0
  163. package/dist/utils.js +2 -0
  164. package/package.json +315 -0
  165. package/tsconfig.json +114 -0
  166. package/tsconfig.json.bak +47 -0
  167. package/tsplus.config.json +7 -0
  168. package/vitest.config.ts +5 -0
  169. package/wallaby.cjs +1 -0
@@ -0,0 +1,206 @@
1
+ import { useClassFeaturesForSchema, string, unknown, array, Schema } from "effect-app/schema";
2
+ declare const NotFoundError_base: import("@effect/schema/Schema").Class<{
3
+ readonly _tag: "NotFoundError";
4
+ readonly id: unknown;
5
+ readonly type: string;
6
+ }, {
7
+ readonly _tag: "NotFoundError";
8
+ readonly id: unknown;
9
+ readonly type: string;
10
+ }, never, {
11
+ readonly id: unknown;
12
+ readonly type: string;
13
+ }, NotFoundError<ItemType>, {
14
+ type: import("effect-app/schema").Schema<string, string, never>;
15
+ id: import("effect-app/schema").Schema<unknown, unknown, never>;
16
+ }, {}, import("effect/Cause").YieldableError>;
17
+ /** @tsplus type NotFoundError */
18
+ export declare class NotFoundError<ItemType = string> extends NotFoundError_base {
19
+ get message(): string;
20
+ }
21
+ declare const InvalidStateError_base: import("@effect/schema/Schema").Class<{
22
+ readonly _tag: "InvalidStateError";
23
+ readonly message: string;
24
+ }, {
25
+ readonly _tag: "InvalidStateError";
26
+ readonly message: string;
27
+ }, never, {
28
+ readonly message: string;
29
+ }, InvalidStateError, {
30
+ message: import("effect-app/schema").Schema<string, string, never>;
31
+ }, {}, import("effect/Cause").YieldableError>;
32
+ /** @tsplus type InvalidStateError */
33
+ export declare class InvalidStateError extends InvalidStateError_base {
34
+ constructor(messageOrObject: string | {
35
+ message: string;
36
+ }, disableValidation?: boolean);
37
+ }
38
+ declare const ValidationError_base: import("@effect/schema/Schema").Class<{
39
+ readonly _tag: "ValidationError";
40
+ readonly errors: readonly unknown[];
41
+ }, {
42
+ readonly _tag: "ValidationError";
43
+ readonly errors: readonly unknown[];
44
+ }, never, {
45
+ readonly errors: readonly unknown[];
46
+ }, ValidationError, {
47
+ errors: import("effect-app/schema").Schema<readonly unknown[], readonly unknown[], never> & {
48
+ withDefault: import("effect-app/schema").Schema<readonly unknown[], readonly unknown[], never> & import("effect-app/schema").ConstructorPropertyDescriptor<readonly unknown[], readonly unknown[], never>;
49
+ };
50
+ }, {}, import("effect/Cause").YieldableError>;
51
+ /** @tsplus type ValidationError */
52
+ export declare class ValidationError extends ValidationError_base {
53
+ get message(): string;
54
+ }
55
+ declare const NotLoggedInError_base: import("@effect/schema/Schema").Class<{
56
+ readonly _tag: "NotLoggedInError";
57
+ readonly message?: string | undefined;
58
+ }, {
59
+ readonly _tag: "NotLoggedInError";
60
+ readonly message?: string | undefined;
61
+ }, never, {
62
+ readonly message?: string | undefined;
63
+ }, NotLoggedInError, {
64
+ message: import("effect-app/schema").PropertySignature<string | undefined, true, string | undefined, true, never>;
65
+ }, {}, import("effect/Cause").YieldableError>;
66
+ /** @tsplus type NotLoggedInError */
67
+ export declare class NotLoggedInError extends NotLoggedInError_base {
68
+ constructor(messageOrObject?: string | {
69
+ message?: string;
70
+ }, disableValidation?: boolean);
71
+ }
72
+ declare const LoginError_base: import("@effect/schema/Schema").Class<{
73
+ readonly _tag: "NotLoggedInError";
74
+ readonly message?: string | undefined;
75
+ }, {
76
+ readonly _tag: "NotLoggedInError";
77
+ readonly message?: string | undefined;
78
+ }, never, {
79
+ readonly message?: string | undefined;
80
+ }, LoginError, {
81
+ message: import("effect-app/schema").PropertySignature<string | undefined, true, string | undefined, true, never>;
82
+ }, {}, import("effect/Cause").YieldableError>;
83
+ /**
84
+ * The user carries a valid Userprofile, but there is a problem with the login none the less.
85
+ */
86
+ /** @tsplus type LoginError */
87
+ export declare class LoginError extends LoginError_base {
88
+ constructor(messageOrObject?: string | {
89
+ message?: string;
90
+ }, disableValidation?: boolean);
91
+ }
92
+ declare const UnauthorizedError_base: import("@effect/schema/Schema").Class<{
93
+ readonly _tag: "UnauthorizedError";
94
+ readonly message?: string | undefined;
95
+ }, {
96
+ readonly _tag: "UnauthorizedError";
97
+ readonly message?: string | undefined;
98
+ }, never, {
99
+ readonly message?: string | undefined;
100
+ }, UnauthorizedError, {
101
+ message: import("effect-app/schema").PropertySignature<string | undefined, true, string | undefined, true, never>;
102
+ }, {}, import("effect/Cause").YieldableError>;
103
+ /** @tsplus type UnauthorizedError */
104
+ export declare class UnauthorizedError extends UnauthorizedError_base {
105
+ constructor(messageOrObject?: string | {
106
+ message?: string;
107
+ }, disableValidation?: boolean);
108
+ }
109
+ type OptimisticConcurrencyDetails = {
110
+ readonly type: string;
111
+ readonly id: string;
112
+ readonly current?: string | undefined;
113
+ readonly found?: string | undefined;
114
+ };
115
+ declare const OptimisticConcurrencyException_base: import("@effect/schema/Schema").Class<{
116
+ readonly _tag: "OptimisticConcurrencyException";
117
+ readonly message: string;
118
+ }, {
119
+ readonly _tag: "OptimisticConcurrencyException";
120
+ readonly message: string;
121
+ }, never, {
122
+ readonly message: string;
123
+ }, OptimisticConcurrencyException, {
124
+ message: import("effect-app/schema").Schema<string, string, never>;
125
+ }, {}, import("effect/Cause").YieldableError>;
126
+ /** @tsplus type OptimisticConcurrencyException */
127
+ export declare class OptimisticConcurrencyException extends OptimisticConcurrencyException_base {
128
+ readonly details?: OptimisticConcurrencyDetails;
129
+ constructor(args: OptimisticConcurrencyDetails | {
130
+ message: string;
131
+ }, disableValidation?: boolean);
132
+ }
133
+ export declare const SupportedErrors: import("effect-app/schema").Schema<InvalidStateError | ValidationError | NotLoggedInError | LoginError | UnauthorizedError | OptimisticConcurrencyException | NotFoundError<ItemType>, {
134
+ readonly _tag: "NotFoundError";
135
+ readonly id: unknown;
136
+ readonly type: string;
137
+ } | {
138
+ readonly _tag: "InvalidStateError";
139
+ readonly message: string;
140
+ } | {
141
+ readonly _tag: "ValidationError";
142
+ readonly errors: readonly unknown[];
143
+ } | {
144
+ readonly _tag: "NotLoggedInError";
145
+ readonly message?: string | undefined;
146
+ } | {
147
+ readonly _tag: "NotLoggedInError";
148
+ readonly message?: string | undefined;
149
+ } | {
150
+ readonly _tag: "UnauthorizedError";
151
+ readonly message?: string | undefined;
152
+ } | {
153
+ readonly _tag: "OptimisticConcurrencyException";
154
+ readonly message: string;
155
+ }, never>;
156
+ export type SupportedErrors = Schema.To<typeof SupportedErrors>;
157
+ export declare const MutationErrors: import("effect-app/schema").Schema<InvalidStateError | ValidationError | NotLoggedInError | LoginError | UnauthorizedError | OptimisticConcurrencyException | NotFoundError<ItemType>, {
158
+ readonly _tag: "NotFoundError";
159
+ readonly id: unknown;
160
+ readonly type: string;
161
+ } | {
162
+ readonly _tag: "InvalidStateError";
163
+ readonly message: string;
164
+ } | {
165
+ readonly _tag: "ValidationError";
166
+ readonly errors: readonly unknown[];
167
+ } | {
168
+ readonly _tag: "NotLoggedInError";
169
+ readonly message?: string | undefined;
170
+ } | {
171
+ readonly _tag: "NotLoggedInError";
172
+ readonly message?: string | undefined;
173
+ } | {
174
+ readonly _tag: "UnauthorizedError";
175
+ readonly message?: string | undefined;
176
+ } | {
177
+ readonly _tag: "OptimisticConcurrencyException";
178
+ readonly message: string;
179
+ }, never>;
180
+ export declare const QueryErrors: import("effect-app/schema").Schema<InvalidStateError | ValidationError | NotLoggedInError | LoginError | UnauthorizedError | OptimisticConcurrencyException | NotFoundError<ItemType>, {
181
+ readonly _tag: "NotFoundError";
182
+ readonly id: unknown;
183
+ readonly type: string;
184
+ } | {
185
+ readonly _tag: "InvalidStateError";
186
+ readonly message: string;
187
+ } | {
188
+ readonly _tag: "ValidationError";
189
+ readonly errors: readonly unknown[];
190
+ } | {
191
+ readonly _tag: "NotLoggedInError";
192
+ readonly message?: string | undefined;
193
+ } | {
194
+ readonly _tag: "NotLoggedInError";
195
+ readonly message?: string | undefined;
196
+ } | {
197
+ readonly _tag: "UnauthorizedError";
198
+ readonly message?: string | undefined;
199
+ } | {
200
+ readonly _tag: "OptimisticConcurrencyException";
201
+ readonly message: string;
202
+ }, never>;
203
+ export type MutationErrors = Schema.To<typeof MutationErrors>;
204
+ export type QueryErrors = Schema.To<typeof QueryErrors>;
205
+ export {};
206
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../_src/client/errors.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,iCAAiC;AACjC,qBAGa,aAAa,CAAC,QAAQ,GAAG,MAAM,CAAE,SAAQ,kBAGpD;IACA,IAAa,OAAO,WAEnB;CACF;;;;;;;;;;;;AAED,qCAAqC;AACrC,qBACa,iBAAkB,SAAQ,sBAErC;gBACY,eAAe,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,iBAAiB,UAAQ;CAGrF;;;;;;;;;;;;;;AAED,mCAAmC;AACnC,qBACa,eAAgB,SAAQ,oBAEnC;IACA,IAAa,OAAO,WAEnB;CACF;;;;;;;;;;;;AAED,oCAAoC;AACpC,qBACa,gBAAiB,SAAQ,qBAEpC;gBACY,eAAe,CAAC,EAAE,MAAM,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,iBAAiB,UAAQ;CAGvF;;;;;;;;;;;;AAED;;GAEG;AACH,8BAA8B;AAC9B,qBACa,UAAW,SAAQ,eAE9B;gBACY,eAAe,CAAC,EAAE,MAAM,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,iBAAiB,UAAQ;CAGvF;;;;;;;;;;;;AAED,qCAAqC;AACrC,qBACa,iBAAkB,SAAQ,sBAErC;gBACY,eAAe,CAAC,EAAE,MAAM,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,iBAAiB,UAAQ;CAGvF;AAED,KAAK,4BAA4B,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC,CAAA;;;;;;;;;;;;AAED,kDAAkD;AAClD,qBACa,8BAA+B,SAAQ,mCAGnD;IACC,QAAQ,CAAC,OAAO,CAAC,EAAE,4BAA4B,CAAA;gBAE7C,IAAI,EAAE,4BAA4B,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EACxD,iBAAiB,UAAQ;CAO5B;AAeD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;SAG3B,CAAA;AAGD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,eAAe,CAAC,CAAA;AAa/D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;SAAkB,CAAA;AAC7C,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;SAAkB,CAAA;AAC1C,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,cAAc,CAAC,CAAA;AAC7D,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,WAAW,CAAC,CAAA"}
@@ -0,0 +1,130 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import * as tsplus_module_1 from "effect-app/schema";
11
+ import * as tsplus_module_2 from "@effect/schema/Schema";
12
+ import { TaggedError } from "effect-app/schema";
13
+ /** @tsplus type NotFoundError */
14
+ let NotFoundError = class NotFoundError extends TaggedError()("NotFoundError", {
15
+ type: tsplus_module_1.string,
16
+ id: tsplus_module_1.unknown
17
+ }) {
18
+ get message() {
19
+ return `Didn't find ${this.type}#${JSON.stringify(this.id)}`;
20
+ }
21
+ };
22
+ NotFoundError = __decorate([
23
+ tsplus_module_1.useClassFeaturesForSchema
24
+ ], NotFoundError);
25
+ export { NotFoundError };
26
+ /** @tsplus type InvalidStateError */
27
+ let InvalidStateError = class InvalidStateError extends TaggedError()("InvalidStateError", {
28
+ message: tsplus_module_1.string
29
+ }) {
30
+ constructor(messageOrObject, disableValidation = false) {
31
+ super(typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject }, disableValidation);
32
+ }
33
+ };
34
+ InvalidStateError = __decorate([
35
+ tsplus_module_1.useClassFeaturesForSchema,
36
+ __metadata("design:paramtypes", [Object, Object])
37
+ ], InvalidStateError);
38
+ export { InvalidStateError };
39
+ /** @tsplus type ValidationError */
40
+ let ValidationError = class ValidationError extends TaggedError()("ValidationError", {
41
+ errors: tsplus_module_1.array(tsplus_module_1.unknown) // meh
42
+ }) {
43
+ get message() {
44
+ return `Validation failed: ${this.errors.map((e) => JSON.stringify(e)).join(", ")}`;
45
+ }
46
+ };
47
+ ValidationError = __decorate([
48
+ tsplus_module_1.useClassFeaturesForSchema
49
+ ], ValidationError);
50
+ export { ValidationError };
51
+ /** @tsplus type NotLoggedInError */
52
+ let NotLoggedInError = class NotLoggedInError extends TaggedError()("NotLoggedInError", {
53
+ message: tsplus_module_2.optional(tsplus_module_1.string)
54
+ }) {
55
+ constructor(messageOrObject, disableValidation = false) {
56
+ super(typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject }, disableValidation);
57
+ }
58
+ };
59
+ NotLoggedInError = __decorate([
60
+ tsplus_module_1.useClassFeaturesForSchema,
61
+ __metadata("design:paramtypes", [Object, Object])
62
+ ], NotLoggedInError);
63
+ export { NotLoggedInError };
64
+ /**
65
+ * The user carries a valid Userprofile, but there is a problem with the login none the less.
66
+ */
67
+ /** @tsplus type LoginError */
68
+ let LoginError = class LoginError extends TaggedError()("NotLoggedInError", {
69
+ message: tsplus_module_2.optional(tsplus_module_1.string)
70
+ }) {
71
+ constructor(messageOrObject, disableValidation = false) {
72
+ super(typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject }, disableValidation);
73
+ }
74
+ };
75
+ LoginError = __decorate([
76
+ tsplus_module_1.useClassFeaturesForSchema,
77
+ __metadata("design:paramtypes", [Object, Object])
78
+ ], LoginError);
79
+ export { LoginError };
80
+ /** @tsplus type UnauthorizedError */
81
+ let UnauthorizedError = class UnauthorizedError extends TaggedError()("UnauthorizedError", {
82
+ message: tsplus_module_2.optional(tsplus_module_1.string)
83
+ }) {
84
+ constructor(messageOrObject, disableValidation = false) {
85
+ super(typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject }, disableValidation);
86
+ }
87
+ };
88
+ UnauthorizedError = __decorate([
89
+ tsplus_module_1.useClassFeaturesForSchema,
90
+ __metadata("design:paramtypes", [Object, Object])
91
+ ], UnauthorizedError);
92
+ export { UnauthorizedError };
93
+ /** @tsplus type OptimisticConcurrencyException */
94
+ let OptimisticConcurrencyException = class OptimisticConcurrencyException extends TaggedError()("OptimisticConcurrencyException", { message: tsplus_module_1.string }) {
95
+ constructor(args, disableValidation = false) {
96
+ super("message" in args ? args : { message: `Existing ${args.type} ${args.id} record changed` }, disableValidation);
97
+ if (!("message" in args)) {
98
+ this.details = args;
99
+ }
100
+ }
101
+ };
102
+ OptimisticConcurrencyException = __decorate([
103
+ tsplus_module_1.useClassFeaturesForSchema,
104
+ __metadata("design:paramtypes", [Object, Object])
105
+ ], OptimisticConcurrencyException);
106
+ export { OptimisticConcurrencyException };
107
+ const MutationOnlyErrors = [
108
+ InvalidStateError,
109
+ OptimisticConcurrencyException
110
+ ];
111
+ const GeneralErrors = [
112
+ NotFoundError,
113
+ NotLoggedInError,
114
+ LoginError,
115
+ UnauthorizedError,
116
+ ValidationError
117
+ ];
118
+ export const SupportedErrors = tsplus_module_1.union(...MutationOnlyErrors, ...GeneralErrors);
119
+ // ideal?
120
+ // export const QueryErrors = union({ ...GeneralErrors })
121
+ // .pipe(named("QueryErrors"))
122
+ // .pipe(withDefaults)
123
+ // export type QueryErrors = Schema.To<typeof QueryErrors>
124
+ // export const MutationErrors = union({ ...GeneralErrors, ...GeneralErrors })
125
+ // .pipe(named("MutationErrors"))
126
+ // .pipe(withDefaults)
127
+ // export type MutationErrors = Schema.To<typeof MutationErrors>
128
+ export const MutationErrors = SupportedErrors;
129
+ export const QueryErrors = SupportedErrors;
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vX3NyYy9jbGllbnQvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRS9DLGlDQUFpQztBQUkxQixJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFpQyxTQUFRLFdBQVcsRUFBMkIsQ0FBQyxlQUFlLEVBQUU7SUFDNUcsSUFBSSxrQkFBRSxNQUFNO0lBQ1osRUFBRSxrQkFBRSxPQUFPO0NBQ1osQ0FBQztJQUNBLElBQWEsT0FBTztRQUNsQixPQUFPLGVBQWUsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFBO0lBQzlELENBQUM7Q0FDRixDQUFBO0FBUFksYUFBYTtvQkFIekIseUJBQXlCO0dBR2IsYUFBYSxDQU96Qjs7QUFFRCxxQ0FBcUM7QUFFOUIsSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBa0IsU0FBUSxXQUFXLEVBQXFCLENBQUMsbUJBQW1CLEVBQUU7SUFDM0YsT0FBTyxrQkFBRSxNQUFNO0NBQ2hCLENBQUM7SUFDQSxZQUFZLGVBQTZDLEVBQUUsaUJBQWlCLEdBQUcsS0FBSztRQUNsRixLQUFLLENBQUMsT0FBTyxlQUFlLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxFQUFFLGlCQUFpQixDQUFDLENBQUE7SUFDaEgsQ0FBQztDQUNGLENBQUE7QUFOWSxpQkFBaUI7b0JBRDdCLHlCQUF5Qjs7R0FDYixpQkFBaUIsQ0FNN0I7O0FBRUQsbUNBQW1DO0FBRTVCLElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWdCLFNBQVEsV0FBVyxFQUFtQixDQUFDLGlCQUFpQixFQUFFO0lBQ3JGLE1BQU0sRUFBRSxnQkFBQSxLQUFL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
@@ -0,0 +1,61 @@
1
+ import { Schema } from "effect-app/schema";
2
+ import { Effect } from "effect/Effect";
3
+ import type { Headers, HttpError, HttpRequestError, HttpResponseError, Method } from "@effect-app/core/http/http-client";
4
+ import type { REST } from "effect-app/schema";
5
+ import { Path } from "path-parser";
6
+ import { ApiConfig } from "./config.js";
7
+ import { InvalidStateError, NotFoundError, NotLoggedInError, OptimisticConcurrencyException, UnauthorizedError, ValidationError } from "./errors.js";
8
+ export type FetchError = HttpError<string>;
9
+ export declare class ResponseError {
10
+ readonly error: unknown;
11
+ readonly _tag = "ResponseError";
12
+ constructor(error: unknown);
13
+ }
14
+ export declare function fetchApi(method: Method, path: string, body?: unknown): import("effect/Effect").Effect<{
15
+ status: number;
16
+ body: unknown;
17
+ headers: import("@effect/platform/Http/Headers").Headers;
18
+ }, import("@effect/platform/Http/Body").BodyError | InvalidStateError | ValidationError | NotLoggedInError | UnauthorizedError | OptimisticConcurrencyException | NotFoundError<ItemType> | HttpRequestError | HttpResponseError<unknown>, ApiConfig | import("@effect/platform/Http/Client").Client.Default>;
19
+ export declare function fetchApi2S<RequestR, RequestFrom, RequestTo, ResponseR, ResponseFrom, ResponseTo>(request: Schema<RequestTo, RequestFrom, RequestR>, response: Schema<ResponseTo, ResponseFrom, ResponseR>): (method: Method, path: Path) => (req: RequestTo) => import("effect/Effect").Effect<{
20
+ body: ResponseTo;
21
+ headers: Headers;
22
+ status: number;
23
+ }, import("@effect/platform/Http/Body").BodyError | InvalidStateError | ValidationError | NotLoggedInError | UnauthorizedError | OptimisticConcurrencyException | NotFoundError<ItemType> | import("@effect/schema/ParseResult").ParseError | HttpRequestError | ResponseError | HttpResponseError<unknown>, ApiConfig | import("@effect/platform/Http/Client").Client.Default | RequestR | ResponseR>;
24
+ export declare function fetchApi3S<RequestA, RequestE, ResponseE = unknown, ResponseA = void>({ Request, Response }: {
25
+ Request: REST.RequestSchemed<RequestA, RequestE>;
26
+ Response: REST.ReqRes<ResponseA, ResponseE, any>;
27
+ }): (req: RequestA) => import("effect/Effect").Effect<{
28
+ body: ResponseA;
29
+ headers: Headers;
30
+ status: number;
31
+ }, import("@effect/platform/Http/Body").BodyError | InvalidStateError | ValidationError | NotLoggedInError | UnauthorizedError | OptimisticConcurrencyException | NotFoundError<ItemType> | import("@effect/schema/ParseResult").ParseError | HttpRequestError | ResponseError | HttpResponseError<unknown>, any>;
32
+ export declare function fetchApi3SE<RequestA, RequestE, ResponseE = unknown, ResponseA = void>({ Request, Response }: {
33
+ Request: REST.RequestSchemed<RequestA, RequestE>;
34
+ Response: REST.ReqRes<ResponseA, ResponseE, any>;
35
+ }): (req: RequestA) => import("effect/Effect").Effect<FetchResponse<ResponseE>, import("@effect/platform/Http/Body").BodyError | InvalidStateError | ValidationError | NotLoggedInError | UnauthorizedError | OptimisticConcurrencyException | NotFoundError<ItemType> | import("@effect/schema/ParseResult").ParseError | HttpRequestError | ResponseError | HttpResponseError<unknown>, any>;
36
+ export declare function makePathWithQuery(path: Path, pars: Record<string, string | number | boolean | readonly string[] | readonly number[] | readonly boolean[] | null>): string;
37
+ export declare function makePathWithBody(path: Path, pars: Record<string, string | number | boolean | readonly string[] | readonly number[] | readonly boolean[] | null>): string;
38
+ export declare function mapResponse<T, A>(map: (t: T) => A): (r: FetchResponse<T>) => FetchResponse<A>;
39
+ export declare function mapResponseM<T, R, E, A>(map: (t: T) => Effect<A, E, R>): (r: FetchResponse<T>) => Effect<FetchResponse<A>, E, R>;
40
+ export type FetchResponse<T> = {
41
+ body: T;
42
+ headers: Headers;
43
+ status: number;
44
+ };
45
+ export declare const EmptyResponse: Readonly<{
46
+ body: null;
47
+ headers: {};
48
+ status: 404;
49
+ }>;
50
+ export declare const EmptyResponseM: import("effect/Effect").Effect<Readonly<{
51
+ body: null;
52
+ headers: {};
53
+ status: 404;
54
+ }>, never, never>;
55
+ export declare function EmptyResponseMThunk<T>(): Effect<Readonly<{
56
+ body: null | T;
57
+ headers: {};
58
+ status: 404;
59
+ }>, never, unknown>;
60
+ export declare function getBody<R, E, A>(eff: Effect<FetchResponse<A | null>, E, R>): import("effect/Effect").Effect<A | null, E, R>;
61
+ //# sourceMappingURL=fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../_src/client/fetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ import * as tsplus_module_1 from "effect/Option";
2
+ import * as tsplus_module_2 from "effect/Effect";
3
+ import * as tsplus_module_3 from "@effect/schema/Schema";
4
+ import * as tsplus_module_4 from "effect/HashMap";
5
+ import * as tsplus_module_5 from "effect-app/schema";
6
+ import * as tsplus_module_6 from "@effect/platform/Http/ClientRequest";
7
+ import * as tsplus_module_7 from "@effect/platform/Http/Client";
8
+ import * as tsplus_module_8 from "effect-app/Request";
9
+ import * as tsplus_module_9 from "@effect-app/prelude/_ext/misc";
10
+ import * as tsplus_module_10 from "effect-app";
11
+ import * as tsplus_module_11 from "effect/ReadonlyRecord";
12
+ /* eslint-disable @typescript-eslint/no-explicit-any */
13
+ import { constant } from "@effect-app/core/Function";
14
+ import { Path } from "path-parser";
15
+ import qs from "query-string";
16
+ import { ApiConfig } from "./config.js";
17
+ import { InvalidStateError, NotFoundError, NotLoggedInError, OptimisticConcurrencyException, UnauthorizedError, ValidationError } from "./errors.js";
18
+ export class ResponseError {
19
+ constructor(error) {
20
+ this.error = error;
21
+ this._tag = "ResponseError";
22
+ }
23
+ }
24
+ const getClient = tsplus_module_2.flatMap(tsplus_module_8.HttpClient, (defaultClient) => tsplus_module_2.map(ApiConfig
25
+ .Tag, ({ apiUrl, headers }) => tsplus_module_7.catchTags(tsplus_module_7.catchTag(tsplus_module_7.mapEffect(tsplus_module_7.tapRequest(tsplus_module_7.mapRequest(tsplus_module_7.filterStatusOk(defaultClient), (_) => tsplus_module_6.setHeaders(tsplus_module_6.prependUrl(tsplus_module_6.acceptJson(_), apiUrl), {
26
+ "request-id": tsplus_module_1.flatMap(headers, (_) => tsplus_module_4.get(_, "request-id")).value ?? tsplus_module_5.StringId.make(),
27
+ ...headers.map((_) => Object.fromEntries(_)).value
28
+ })), (r) => tsplus_module_2.annotateLogs(tsplus_module_2.annotateLogs(tsplus_module_2.annotateLogs(tsplus_module_2.logDebug(`[HTTP] ${r.method}`), "url", r.url), "body", r.body._tag === "Uint8Array" ? new TextDecoder().decode(r.body.body) : r.body._tag), "headers", r.headers)), (_) => _.status === 204
29
+ ? tsplus_module_2.sync(() => ({ status: _.status, body: void 0, headers: _.headers }))
30
+ : tsplus_module_2.map(_.json, (body) => ({ status: _.status, body, headers: _.headers }))), "ResponseError", (err) => {
31
+ const toError = (s) => tsplus_module_2.flatMap(tsplus_module_2.flatMap(err.response.json, (_) => tsplus_module_2.catchAll(tsplus_module_3.decodeUnknown(s)(_), () => tsplus_module_2.fail(err))), tsplus_module_2.fail);
32
+ // opposite of api's `defaultErrorHandler`
33
+ if (err.response.status === 404) {
34
+ return toError(NotFoundError);
35
+ }
36
+ if (err.response.status === 400) {
37
+ return toError(ValidationError);
38
+ }
39
+ if (err.response.status === 401) {
40
+ return toError(NotLoggedInError);
41
+ }
42
+ if (err.response.status === 422) {
43
+ return toError(InvalidStateError);
44
+ }
45
+ if (err.response.status === 403) {
46
+ return toError(UnauthorizedError);
47
+ }
48
+ if (err.response.status === 412) {
49
+ return toError(OptimisticConcurrencyException);
50
+ }
51
+ return tsplus_module_2.fail(err);
52
+ }), {
53
+ "ResponseError": (err) => tsplus_module_2.flatMap(tsplus_module_2.orDie(err
54
+ .response
55
+ .text
56
+ // TODO
57
+ ), (_) => tsplus_module_2.fail({
58
+ _tag: "HttpErrorResponse",
59
+ response: { body: tsplus_module_1.fromNullable(_), status: err.response.status, headers: err.response.headers }
60
+ })),
61
+ "RequestError": (err) => tsplus_module_2.fail({ _tag: "HttpErrorRequest", error: err.error })
62
+ })));
63
+ export function fetchApi(method, path, body) {
64
+ return tsplus_module_2.flatMap(getClient, (client) => tsplus_module_2.withSpan((method === "GET"
65
+ ? tsplus_module_9.client(client, tsplus_module_6.make(method)(path))
66
+ : body === undefined
67
+ ? tsplus_module_9.client(client, tsplus_module_6.make(method)(path))
68
+ : tsplus_module_9.client(client, tsplus_module_6.jsonBody(tsplus_module_6.make(method)(path), body))), "http.request", { attributes: { "http.method": method, "http.url": path } }));
69
+ }
70
+ export function fetchApi2S(request, response) {
71
+ const encodeRequest = tsplus_module_3.encode(request);
72
+ const decRes = tsplus_module_3.decodeUnknown(response);
73
+ const decodeRes = (u) => tsplus_module_2.mapError(decRes(u), (err) => new ResponseError(err));
74
+ return (method, path) => (req) => {
75
+ return encodeRequest(req).andThen((encoded) => tsplus_module_2.map(tsplus_module_2.flatMap(fetchApi(method, method === "DELETE"
76
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
77
+ ? makePathWithQuery(path, encoded)
78
+ : makePathWithBody(path, encoded), encoded), mapResponseM(decodeRes)), (i) => ({
79
+ ...i,
80
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
81
+ body: i.body
82
+ })));
83
+ };
84
+ }
85
+ export function fetchApi3S({ Request, Response }) {
86
+ return fetchApi2S(Request, Response)(Request.method, new Path(Request.path));
87
+ }
88
+ export function fetchApi3SE({ Request, Response }) {
89
+ const a = fetchApi2S(Request, Response)(Request.method, new Path(Request.path));
90
+ const encode = tsplus_module_10.S.encode(Response);
91
+ return (req) => tsplus_module_2.flatMap(a(req), mapResponseM((_) => encode(_)));
92
+ }
93
+ export function makePathWithQuery(path, pars) {
94
+ const forQs = tsplus_module_11.filter(pars, (_, k) => !path.params.includes(k));
95
+ const q = forQs; // { ...forQs, _: JSON.stringify(forQs) } // TODO: drop completely individual keys from query?, sticking to json only
96
+ return (path.build(pars, { ignoreSearch: true, ignoreConstraints: true })
97
+ + (Object.keys(q).length
98
+ ? "?" + qs.stringify(q)
99
+ : ""));
100
+ }
101
+ export function makePathWithBody(path, pars) {
102
+ return path.build(pars, { ignoreSearch: true, ignoreConstraints: true });
103
+ }
104
+ export function mapResponse(map) {
105
+ return (r) => {
106
+ return { ...r, body: map(r.body) };
107
+ };
108
+ }
109
+ export function mapResponseM(map) {
110
+ return (r) => {
111
+ return tsplus_module_2.all({
112
+ body: map(r.body),
113
+ headers: tsplus_module_2.sync(() => r.headers),
114
+ status: tsplus_module_2.sync(() => r.status)
115
+ });
116
+ };
117
+ }
118
+ export const EmptyResponse = Object.freeze({ body: null, headers: {}, status: 404 });
119
+ export const EmptyResponseM = tsplus_module_2.sync(() => EmptyResponse);
120
+ const EmptyResponseMThunk_ = constant(EmptyResponseM);
121
+ export function EmptyResponseMThunk() {
122
+ return EmptyResponseMThunk_();
123
+ }
124
+ export function getBody(eff) {
125
+ return tsplus_module_2.flatMap(eff, (r) => r.body === null ? tsplus_module_2.die("Not found") : tsplus_module_2.sync(() => r.body));
126
+ }
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL2NsaWVudC9mZXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFHcEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNsQyxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDN0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUN2QyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsOEJBQThCLEVBQzlCLGlCQUFpQixFQUNqQixlQUFlLEVBQ2hCLE1BQU0sYUFBYSxDQUFBO0FBSXBCLE1BQU0sT0FBTyxhQUFhO0lBRXhCLFlBQTRCLEtBQWM7UUFBZCxVQUFLLEdBQUwsS0FBSyxDQUFTO1FBRDFCLFNBQUksR0FBRyxlQUFlLENBQUE7SUFDTyxDQUFDO0NBQy9DO0FBRUQsTUFBTSxTQUFTLEdBQUcsd0NBQUEsVUFBVSxFQUFTLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FDckQsb0JBQUEsU0FBUztLQUNOLEdBQUcsRUFDQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FDM0IsMEJBQUEseUJBQUEsMEJBQUEsMkJBQUEsMERBQUEsYUFBYSxHQUVDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDaEIsMkJBQUEsc0RBQUEsQ0FBQyxHQUVhLE1BQU0sQ0FBQyxFQUNQO0lBQ1YsWUFBWSxFQUFFLHdCQUFBLE9BQU8sRUFBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsb0JBQUEsQ0FBQyxFQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLGdCQUFBLFFBQVEsQ0FBQyxJQUFJLEVBQUU7SUFDbEYsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMs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
@@ -0,0 +1,6 @@
1
+ export * from "./client/clientFor.js";
2
+ export * from "./client/config.js";
3
+ export * from "./client/errors.js";
4
+ export * from "./client/fetch.js";
5
+ export * from "./client/QueryResult.js";
6
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../_src/client.ts"],"names":[],"mappings":"AACA,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA"}
package/dist/client.js ADDED
@@ -0,0 +1,7 @@
1
+ // codegen:start {preset: barrel, include: ./client/*.ts}
2
+ export * from "./client/clientFor.js";
3
+ export * from "./client/config.js";
4
+ export * from "./client/errors.js";
5
+ export * from "./client/fetch.js";
6
+ export * from "./client/QueryResult.js";
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vX3NyYy9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBQ3pELGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyx5QkFBeUIsQ0FBQSJ9
@@ -0,0 +1,7 @@
1
+ import type { Faker } from "@faker-js/faker";
2
+ import type * as FC from "fast-check";
3
+ export declare function setFaker(f: Faker): void;
4
+ export declare function getFaker(): Faker;
5
+ export declare const fakerToArb: <T>(fakerGen: () => T) => (fc: typeof FC) => FC.Arbitrary<T>;
6
+ export declare const fakerArb: <T>(gen: (fake: Faker) => () => T) => (a: any) => FC.Arbitrary<T>;
7
+ //# sourceMappingURL=faker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faker.d.ts","sourceRoot":"","sources":["../_src/faker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AAOrC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,QAEhC;AAED,wBAAgB,QAAQ,UAGvB;AAED,eAAO,MAAM,UAAU,gBAAiB,MAAM,CAAC,UAAU,SAAS,oBASjE,CAAA;AAED,eAAO,MAAM,QAAQ,kBACP,KAAK,KAAK,MAAM,CAAC,SACxB,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC,CAAwC,CAAA"}
package/dist/faker.js ADDED
@@ -0,0 +1,24 @@
1
+ // TODO: inject faker differently, so we dont care about multiple instances of library.
2
+ // eslint-disable-next-line prefer-const
3
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
+ let faker = undefined;
5
+ export function setFaker(f) {
6
+ faker = f;
7
+ }
8
+ export function getFaker() {
9
+ if (!faker)
10
+ throw new Error("You forgot to load faker library");
11
+ return faker;
12
+ }
13
+ export const fakerToArb = (fakerGen) => (fc) => {
14
+ return fc
15
+ .integer()
16
+ .noBias() // same probability to generate each of the allowed integers
17
+ .noShrink() // shrink on a seed makes no sense
18
+ .map((seed) => {
19
+ faker.seed(seed); // seed the generator
20
+ return fakerGen(); // call it
21
+ });
22
+ };
23
+ export const fakerArb = (gen) => fakerToArb(() => gen(getFaker())());
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL2Zha2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLHVGQUF1RjtBQUV2Rix3Q0FBd0M7QUFDeEMsOERBQThEO0FBQzlELElBQUksS0FBSyxHQUFVLFNBQXlCLENBQUE7QUFDNUMsTUFBTSxVQUFVLFFBQVEsQ0FBQyxDQUFRO0lBQy9CLEtBQUssR0FBRyxDQUFDLENBQUE7QUFDWCxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVE7SUFDdEIsSUFBSSxDQUFDLEtBQUs7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUE7SUFDL0QsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUksUUFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFhLEVBQUUsRUFBRTtJQUNwRSxPQUFPLEVBQUU7U0FDTixPQUFPLEVBQUU7U0FDVCxNQUFNLEVBQUUsQ0FBQyw0REFBNEQ7U0FDckUsUUFBUSxFQUFFLENBQUMsa0NBQWtDO1NBQzdDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ1osS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLHFCQUFxQjtRQUN0QyxPQUFPLFFBQVEsRUFBRSxDQUFBLENBQUMsVUFBVTtJQUM5QixDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUN0QixHQUE2QixFQUNBLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBIn0=