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,97 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ServiceTagged = exports.ServiceTag = exports.PhantomTypeParameter = void 0;
7
+ exports.ServiceTaggedClass = ServiceTaggedClass;
8
+ exports.TagClass = TagClass;
9
+ exports.TagClassLegacy = TagClassLegacy;
10
+ exports.TagTypeId = exports.TagClassMake = void 0;
11
+ exports.assignTag = assignTag;
12
+ exports.make = make;
13
+ exports.makeService = makeService;
14
+ var tsplus_module_1 = _interopRequireWildcard(require("effect/Context"));
15
+ var tsplus_module_2 = _interopRequireWildcard(require("effect/Layer"));
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
+ const ServiceTag = exports.ServiceTag = Symbol();
19
+ class PhantomTypeParameter {}
20
+ /**
21
+ * @tsplus type ServiceTagged
22
+ */
23
+ exports.PhantomTypeParameter = PhantomTypeParameter;
24
+ class ServiceTagged extends PhantomTypeParameter {}
25
+ /**
26
+ * @tsplus static ServiceTagged make
27
+ */
28
+ exports.ServiceTagged = ServiceTagged;
29
+ function makeService(_) {
30
+ return _;
31
+ }
32
+ /**
33
+ * @tsplus fluent effect/data/Context/Tag make
34
+ */
35
+ function make(_, t) {
36
+ return t;
37
+ }
38
+ const TagTypeId = exports.TagTypeId = Symbol.for("effect/Context/Tag");
39
+ let i = 0;
40
+ const randomId = () => "unknown-service-" + i++;
41
+ function assignTag(key) {
42
+ return cls => {
43
+ const tag = tsplus_module_1.GenericTag(key ?? randomId());
44
+ const t = Object.assign(cls, Object.getPrototypeOf(tag), tag);
45
+ const limit = Error.stackTraceLimit;
46
+ Error.stackTraceLimit = 4; // TODO
47
+ const creationError = new Error();
48
+ Error.stackTraceLimit = limit;
49
+ // the stack is used to get the location of the tag definition, if a service is not found in the registry
50
+ Object.defineProperty(t, "stack", {
51
+ get() {
52
+ // remove one line as assignTag is generally used inside a class constructor function
53
+ return creationError.stack?.split("\n").slice(1).join("\n");
54
+ }
55
+ });
56
+ return t;
57
+ };
58
+ }
59
+ function TagClass(key) {
60
+ const c = class {
61
+ constructor(service) {
62
+ Object.assign(this, service);
63
+ }
64
+ };
65
+ return assignTag(key)(c);
66
+ }
67
+ const TagClassMake = () => (make, key) => {
68
+ const c = class {
69
+ constructor(service) {
70
+ Object.assign(this, service);
71
+ }
72
+ // works around an issue where defining layer on the class messes up and causes the Tag to infer to `any, any` :/
73
+ static toLayer() {
74
+ return tsplus_module_2.effect(this)(make);
75
+ }
76
+ static toLayerScoped() {
77
+ return tsplus_module_2.scoped(this)(make);
78
+ }
79
+ };
80
+ return assignTag(key)(c);
81
+ };
82
+ exports.TagClassMake = TagClassMake;
83
+ function TagClassLegacy(key) {
84
+ class TagClassLegacy {}
85
+ return assignTag(key)(TagClassLegacy);
86
+ }
87
+ /** @deprecated use `Id` of TagClass for unique id */
88
+ function ServiceTaggedClass() {
89
+ return _ => {
90
+ class ServiceTaggedClassC {}
91
+ ServiceTaggedClassC.make = t => {
92
+ return t;
93
+ };
94
+ return assignTag()(ServiceTaggedClassC);
95
+ };
96
+ }
97
+ //# sourceMappingURL=service.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.cjs","names":["ServiceTag","exports","Symbol","PhantomTypeParameter","ServiceTagged","makeService","_","make","t","TagTypeId","for","i","randomId","assignTag","key","cls","tag","tsplus_module_1","GenericTag","Object","assign","getPrototypeOf","limit","Error","stackTraceLimit","creationError","defineProperty","get","stack","split","slice","join","TagClass","c","constructor","service","TagClassMake","toLayer","tsplus_module_2","effect","toLayerScoped","scoped","TagClassLegacy","ServiceTaggedClass","ServiceTaggedClassC"],"sources":["../_src/service.ts"],"sourcesContent":[null],"mappings":"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"}
package/_cjs/utils.cjs ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _utils = require("@effect-app/core/utils");
7
+ Object.keys(_utils).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _utils[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _utils[key];
14
+ }
15
+ });
16
+ });
17
+ //# sourceMappingURL=utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.cjs","names":["_utils","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../_src/utils.ts"],"sourcesContent":[null],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as Chunk from "effect/Chunk"
5
+ import * as Either from "effect/Either"
6
+ import type * as Equal from "effect/Equal"
7
+ import type { SecretTypeId } from "effect/Secret"
8
+ import * as internal from "./internal/configSecretURL.js"
9
+
10
+ // /**
11
+ // * @since 1.0.0
12
+ // * @category symbols
13
+ // */
14
+ // export const SecretURLTypeId: unique symbol = internal.SecretURLTypeId
15
+
16
+ // /**
17
+ // * @since 1.0.0
18
+ // * @category symbols
19
+ // */
20
+ // export type SecretURLTypeId = typeof SecretURLTypeId
21
+
22
+ /**
23
+ * @tsplus type SecretURL
24
+ * @since 1.0.0
25
+ * @category models
26
+ */
27
+ export interface SecretURL extends SecretURL.Proto, Equal.Equal {
28
+ /** @internal */
29
+ readonly raw: Array<number>
30
+ }
31
+
32
+ /**
33
+ * @tsplus type SecretURL.Ops
34
+ */
35
+ export interface SecretURLOps {}
36
+
37
+ export const SecretURL: SecretURLOps = {}
38
+
39
+ /**
40
+ * @since 1.0.0
41
+ */
42
+ export declare namespace SecretURL {
43
+ /**
44
+ * @since 1.0.0
45
+ * @category models
46
+ */
47
+ export interface Proto {
48
+ readonly [SecretTypeId]: SecretTypeId
49
+ }
50
+ }
51
+
52
+ /**
53
+ * @tsplus static SecretURL.Ops isSecretURL
54
+ * @since 1.0.0
55
+ * @category refinements
56
+ */
57
+ export const isSecretURL: (u: unknown) => u is SecretURL = internal.isSecretURL
58
+
59
+ /**
60
+ * @tsplus static SecretURL.Ops make
61
+ * @since 1.0.0
62
+ * @category constructors
63
+ */
64
+ export const make: (bytes: Array<number>) => SecretURL = internal.make
65
+
66
+ /**
67
+ * @tsplus static SecretURL.Ops fromChunk
68
+ * @since 1.0.0
69
+ * @category constructors
70
+ */
71
+ export const fromChunk: (chunk: Chunk.Chunk<string>) => SecretURL = internal.fromChunk
72
+
73
+ /**
74
+ * @tsplus static SecretURL.Ops fromString
75
+ * @since 1.0.0
76
+ * @category constructors
77
+ */
78
+ export const fromString: (text: string) => SecretURL = internal.fromString
79
+
80
+ /**
81
+ * @tsplus getter SecretURL value
82
+ * @since 1.0.0
83
+ * @category getters
84
+ */
85
+ export const value: (self: SecretURL) => string = internal.value
86
+
87
+ /**
88
+ * @tsplus fluent SecretURL unsafeWipe
89
+ * @since 1.0.0
90
+ * @category unsafe
91
+ */
92
+ export const unsafeWipe: (self: SecretURL) => void = internal.unsafeWipe
93
+
94
+ /**
95
+ * @tsplus static effect/io/Config.Ops secretURL
96
+ */
97
+ export const secretURL = (name?: string): Config<SecretURL> => {
98
+ const config = Config.primitive(
99
+ "a secret property",
100
+ (text) => Either.right(fromString(text))
101
+ )
102
+ return name === undefined ? config : config.nested(name)
103
+ }
@@ -0,0 +1,85 @@
1
+ import * as Chunk from "effect/Chunk"
2
+ import * as EQ from "effect/Equal"
3
+ import { pipe } from "effect/Function"
4
+ import * as Hash from "effect/Hash"
5
+ import { SecretTypeId } from "effect/Secret"
6
+ import type * as SecretURL from "../SecretURL.js"
7
+
8
+ /** @internal */
9
+ const SecretURLSymbolKey = "effect/Secret" // "effect-app/COnfigSecretURL"
10
+
11
+ /** @internal */
12
+ export const proto = {
13
+ [SecretTypeId]: SecretTypeId,
14
+ [Hash.symbol](this: SecretURL.SecretURL): number {
15
+ return pipe(
16
+ Hash.hash(SecretURLSymbolKey),
17
+ Hash.combine(Hash.hash(this.raw))
18
+ )
19
+ },
20
+ [EQ.symbol](this: SecretURL.SecretURL, that: unknown): boolean {
21
+ return isSecretURL(that) && Equal.equals(this.raw, that.raw)
22
+ }
23
+ }
24
+
25
+ /** @internal */
26
+ export const isSecretURL = (u: unknown): u is SecretURL.SecretURL => {
27
+ return typeof u === "object" && u != null && SecretTypeId in u
28
+ }
29
+
30
+ /** @internal */
31
+ export const make = (bytes: Array<number>): SecretURL.SecretURL => {
32
+ const secret = Object.create(proto)
33
+ let protocol = "unknown"
34
+ try {
35
+ const url = new URL(bytes.map((byte) => String.fromCharCode(byte)).join(""))
36
+ protocol = url.protocol.substring(0, url.protocol.length - 1)
37
+ } catch {
38
+ const matches = protocol.match(/^([^:]+):\/\//)
39
+ if (matches !== null) {
40
+ protocol = matches[1]!
41
+ }
42
+ }
43
+ Object.defineProperty(secret, "toJSON", {
44
+ enumerable: false,
45
+ value() {
46
+ return ({
47
+ _tag: "SecretURL",
48
+ protocol
49
+ })
50
+ }
51
+ })
52
+ Object.defineProperty(secret, "toString", {
53
+ enumerable: false,
54
+ value() {
55
+ return `SecretURL(${protocol}://<redacted>)`
56
+ }
57
+ })
58
+ Object.defineProperty(secret, "raw", {
59
+ enumerable: false,
60
+ value: bytes
61
+ })
62
+ return secret
63
+ }
64
+
65
+ /** @internal */
66
+ export const fromChunk = (chunk: Chunk.Chunk<string>): SecretURL.SecretURL => {
67
+ return make(Chunk.toReadonlyArray(chunk).map((char) => char.charCodeAt(0)))
68
+ }
69
+
70
+ /** @internal */
71
+ export const fromString = (text: string): SecretURL.SecretURL => {
72
+ return make(text.split("").map((char) => char.charCodeAt(0)))
73
+ }
74
+
75
+ /** @internal */
76
+ export const value = (self: SecretURL.SecretURL): string => {
77
+ return self.raw.map((byte) => String.fromCharCode(byte)).join("")
78
+ }
79
+
80
+ /** @internal */
81
+ export const unsafeWipe = (self: SecretURL.SecretURL): void => {
82
+ for (let i = 0; i < self.raw.length; i++) {
83
+ self.raw[i] = 0
84
+ }
85
+ }
@@ -0,0 +1,13 @@
1
+ import type { BuiltInObject } from "@effect-app/core/utils"
2
+
3
+ import type { Primitive } from "./Widen.type.js"
4
+
5
+ // Get rid of Date | string, and replace with Date | null
6
+ export type Inputify<T> = Date extends T ? string extends T ? Date | null
7
+ : Date | null
8
+ : [T] extends [BuiltInObject] | [Primitive] ? T
9
+ : [T] extends [Array<unknown>] ? { [K in keyof T]: Inputify<T[K]> }
10
+ : [T] extends [ReadonlyArray<unknown>] ? { [K in keyof T]: Inputify<T[K]> }
11
+ // eslint-disable-next-line @typescript-eslint/ban-types
12
+ : [T] extends [object] ? { [K in keyof T]: Inputify<T[K]> }
13
+ : T
@@ -0,0 +1,70 @@
1
+ import * as S from "./schema.js"
2
+
3
+ export type OperationId = StringId
4
+ export const OperationId = StringId
5
+
6
+ @useClassFeaturesForSchema
7
+ export class OperationProgress extends ExtendedClass<
8
+ OperationProgress,
9
+ OperationProgress.From
10
+ >()({
11
+ completed: NonNegativeInt,
12
+ total: NonNegativeInt
13
+ }) {}
14
+
15
+ @useClassFeaturesForSchema
16
+ export class Success extends ExtendedTaggedClass<Success, Success.From>()("Success", {
17
+ message: nullable(NonEmptyString2k).withDefault
18
+ }) {}
19
+
20
+ @useClassFeaturesForSchema
21
+ export class Failure extends ExtendedTaggedClass<Failure, Failure.From>()("Failure", {
22
+ message: nullable(NonEmptyString2k).withDefault
23
+ }) {}
24
+
25
+ export const OperationResult = S.union(Success, Failure)
26
+ export type OperationResult = Schema.To<typeof OperationResult>
27
+
28
+ @useClassFeaturesForSchema
29
+ export class Operation extends ExtendedClass<Operation, Operation.From>()({
30
+ id: OperationId,
31
+ progress: S.optional(OperationProgress),
32
+ result: S.optional(OperationResult),
33
+ createdAt: S.Date.withDefault,
34
+ updatedAt: nullable(S.Date).withDefault
35
+ }) {}
36
+
37
+ // codegen:start {preset: model}
38
+ //
39
+ /* eslint-disable */
40
+ export namespace OperationProgress {
41
+ /**
42
+ * @tsplus type OperationProgress.From
43
+ * @tsplus companion OperationProgress.From/Ops
44
+ */
45
+ export class From extends S.FromClass<typeof OperationProgress>() {}
46
+ }
47
+ export namespace Success {
48
+ /**
49
+ * @tsplus type Success.From
50
+ * @tsplus companion Success.From/Ops
51
+ */
52
+ export class From extends S.FromClass<typeof Success>() {}
53
+ }
54
+ export namespace Failure {
55
+ /**
56
+ * @tsplus type Failure.From
57
+ * @tsplus companion Failure.From/Ops
58
+ */
59
+ export class From extends S.FromClass<typeof Failure>() {}
60
+ }
61
+ export namespace Operation {
62
+ /**
63
+ * @tsplus type Operation.From
64
+ * @tsplus companion Operation.From/Ops
65
+ */
66
+ export class From extends S.FromClass<typeof Operation>() {}
67
+ }
68
+ /* eslint-enable */
69
+ //
70
+ // codegen:end