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.
- package/.eslintrc.cjs +11 -0
- package/.prettierignore +6 -0
- package/CHANGELOG.md +4106 -0
- package/_cjs/Config/SecretURL.cjs +58 -0
- package/_cjs/Config/SecretURL.cjs.map +1 -0
- package/_cjs/Config/internal/configSecretURL.cjs +88 -0
- package/_cjs/Config/internal/configSecretURL.cjs.map +1 -0
- package/_cjs/Inputify.type.cjs +6 -0
- package/_cjs/Inputify.type.cjs.map +1 -0
- package/_cjs/Operations.cjs +76 -0
- package/_cjs/Operations.cjs.map +1 -0
- package/_cjs/Pure.cjs +201 -0
- package/_cjs/Pure.cjs.map +1 -0
- package/_cjs/Request.cjs +76 -0
- package/_cjs/Request.cjs.map +1 -0
- package/_cjs/Widen.type.cjs +6 -0
- package/_cjs/Widen.type.cjs.map +1 -0
- package/_cjs/_ext/date.cjs +64 -0
- package/_cjs/_ext/date.cjs.map +1 -0
- package/_cjs/_ext/misc.cjs +121 -0
- package/_cjs/_ext/misc.cjs.map +1 -0
- package/_cjs/_global.cjs +24 -0
- package/_cjs/_global.cjs.map +1 -0
- package/_cjs/_global.ext.cjs +5 -0
- package/_cjs/_global.ext.cjs.map +1 -0
- package/_cjs/_global.schema.cjs +4 -0
- package/_cjs/_global.schema.cjs.map +1 -0
- package/_cjs/client/QueryResult.cjs +116 -0
- package/_cjs/client/QueryResult.cjs.map +1 -0
- package/_cjs/client/clientFor.cjs +159 -0
- package/_cjs/client/clientFor.cjs.map +1 -0
- package/_cjs/client/config.cjs +21 -0
- package/_cjs/client/config.cjs.map +1 -0
- package/_cjs/client/errors.cjs +116 -0
- package/_cjs/client/errors.cjs.map +1 -0
- package/_cjs/client/fetch.cjs +178 -0
- package/_cjs/client/fetch.cjs.map +1 -0
- package/_cjs/client.cjs +61 -0
- package/_cjs/client.cjs.map +1 -0
- package/_cjs/faker.cjs +31 -0
- package/_cjs/faker.cjs.map +1 -0
- package/_cjs/ids.cjs +24 -0
- package/_cjs/ids.cjs.map +1 -0
- package/_cjs/index.cjs +27 -0
- package/_cjs/index.cjs.map +1 -0
- package/_cjs/refinements.cjs +97 -0
- package/_cjs/refinements.cjs.map +1 -0
- package/_cjs/schema.cjs +50 -0
- package/_cjs/schema.cjs.map +1 -0
- package/_cjs/schema.test.cjs +9 -0
- package/_cjs/schema.test.cjs.map +1 -0
- package/_cjs/service.cjs +97 -0
- package/_cjs/service.cjs.map +1 -0
- package/_cjs/utils.cjs +17 -0
- package/_cjs/utils.cjs.map +1 -0
- package/_src/Config/SecretURL.ts +103 -0
- package/_src/Config/internal/configSecretURL.ts +85 -0
- package/_src/Inputify.type.ts +13 -0
- package/_src/Operations.ts +70 -0
- package/_src/Pure.ts +525 -0
- package/_src/Request.ts +106 -0
- package/_src/Widen.type.ts +28 -0
- package/_src/_ext/date.ts +84 -0
- package/_src/_ext/misc.ts +161 -0
- package/_src/_global/stm.ts.bak +35 -0
- package/_src/_global.ext.ts +3 -0
- package/_src/_global.schema.ts +106 -0
- package/_src/_global.ts +119 -0
- package/_src/client/QueryResult.ts +120 -0
- package/_src/client/clientFor.ts +260 -0
- package/_src/client/config.ts +13 -0
- package/_src/client/errors.ts +129 -0
- package/_src/client/fetch.ts +253 -0
- package/_src/client.ts +7 -0
- package/_src/faker.ts +32 -0
- package/_src/ids.ts +35 -0
- package/_src/index.ts +4 -0
- package/_src/refinements.ts +92 -0
- package/_src/schema/_schema.ts.bak +208 -0
- package/_src/schema/api/date.ts.bak +78 -0
- package/_src/schema/api.ts.bak +20 -0
- package/_src/schema/overrides.ts.bak +76 -0
- package/_src/schema/shared.ts.bak +334 -0
- package/_src/schema.test.ts +3 -0
- package/_src/schema.ts +37 -0
- package/_src/service.ts +119 -0
- package/_src/utils.ts +1 -0
- package/dist/Config/SecretURL.d.ts +82 -0
- package/dist/Config/SecretURL.d.ts.map +1 -0
- package/dist/Config/SecretURL.js +49 -0
- package/dist/Config/internal/configSecretURL.d.ts +24 -0
- package/dist/Config/internal/configSecretURL.d.ts.map +1 -0
- package/dist/Config/internal/configSecretURL.js +75 -0
- package/dist/Inputify.type.d.ts +10 -0
- package/dist/Inputify.type.d.ts.map +1 -0
- package/dist/Inputify.type.js +2 -0
- package/dist/Operations.d.ts +170 -0
- package/dist/Operations.d.ts.map +1 -0
- package/dist/Operations.js +87 -0
- package/dist/Pure.d.ts +169 -0
- package/dist/Pure.d.ts.map +1 -0
- package/dist/Pure.js +167 -0
- package/dist/Request.d.ts +49 -0
- package/dist/Request.d.ts.map +1 -0
- package/dist/Request.js +58 -0
- package/dist/Widen.type.d.ts +19 -0
- package/dist/Widen.type.d.ts.map +1 -0
- package/dist/Widen.type.js +2 -0
- package/dist/_ext/date.d.ts +71 -0
- package/dist/_ext/date.d.ts.map +1 -0
- package/dist/_ext/date.js +58 -0
- package/dist/_ext/misc.d.ts +77 -0
- package/dist/_ext/misc.d.ts.map +1 -0
- package/dist/_ext/misc.js +98 -0
- package/dist/_global.d.ts +70 -0
- package/dist/_global.d.ts.map +1 -0
- package/dist/_global.ext.d.ts +3 -0
- package/dist/_global.ext.d.ts.map +1 -0
- package/dist/_global.ext.js +4 -0
- package/dist/_global.js +76 -0
- package/dist/_global.schema.d.ts +6 -0
- package/dist/_global.schema.d.ts.map +1 -0
- package/dist/_global.schema.js +6 -0
- package/dist/client/QueryResult.d.ts +85 -0
- package/dist/client/QueryResult.d.ts.map +1 -0
- package/dist/client/QueryResult.js +85 -0
- package/dist/client/clientFor.d.ts +44 -0
- package/dist/client/clientFor.d.ts.map +1 -0
- package/dist/client/clientFor.js +144 -0
- package/dist/client/config.d.ts +14 -0
- package/dist/client/config.d.ts.map +1 -0
- package/dist/client/config.js +11 -0
- package/dist/client/errors.d.ts +206 -0
- package/dist/client/errors.d.ts.map +1 -0
- package/dist/client/errors.js +130 -0
- package/dist/client/fetch.d.ts +61 -0
- package/dist/client/fetch.d.ts.map +1 -0
- package/dist/client/fetch.js +127 -0
- package/dist/client.d.ts +6 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +7 -0
- package/dist/faker.d.ts +7 -0
- package/dist/faker.d.ts.map +1 -0
- package/dist/faker.js +24 -0
- package/dist/ids.d.ts +32 -0
- package/dist/ids.d.ts.map +1 -0
- package/dist/ids.js +17 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/refinements.d.ts +57 -0
- package/dist/refinements.d.ts.map +1 -0
- package/dist/refinements.js +85 -0
- package/dist/schema.d.ts +7 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +22 -0
- package/dist/schema.test.d.ts.map +1 -0
- package/dist/service.d.ts +47 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +83 -0
- package/dist/utils.d.ts +2 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +2 -0
- package/package.json +315 -0
- package/tsconfig.json +114 -0
- package/tsconfig.json.bak +47 -0
- package/tsplus.config.json +7 -0
- package/vitest.config.ts +5 -0
- package/wallaby.cjs +1 -0
package/_cjs/service.cjs
ADDED
|
@@ -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
|