effect 4.0.0-beta.24 → 4.0.0-beta.26
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/dist/Config.js +4 -4
- package/dist/Config.js.map +1 -1
- package/dist/Effect.d.ts +21 -14
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +2 -1
- package/dist/Effect.js.map +1 -1
- package/dist/Runtime.d.ts +66 -0
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +72 -5
- package/dist/Runtime.js.map +1 -1
- package/dist/Schema.d.ts +15 -32
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +9 -17
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.js +91 -2
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +3 -3
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +12 -8
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/Stdio.d.ts +10 -2
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +18 -0
- package/dist/Stdio.js.map +1 -1
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/schema/representation.js +7 -3
- package/dist/internal/schema/representation.js.map +1 -1
- package/dist/internal/schema/to-codec.js +7 -10
- package/dist/internal/schema/to-codec.js.map +1 -1
- package/dist/testing/TestClock.d.ts +2 -2
- package/dist/unstable/ai/AiError.d.ts +6 -3
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +8 -4
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +7 -5
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +19 -52
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +21 -53
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +117 -62
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +95 -32
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +27 -10
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +40 -23
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/config.js +42 -0
- package/dist/unstable/cli/internal/config.js.map +1 -1
- package/dist/unstable/cli/internal/help.d.ts +4 -4
- package/dist/unstable/cli/internal/help.d.ts.map +1 -1
- package/dist/unstable/cli/internal/help.js +25 -7
- package/dist/unstable/cli/internal/help.js.map +1 -1
- package/dist/unstable/cli/internal/parser.js +26 -6
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +18 -10
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +1 -7
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +6 -6
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +10 -10
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +2 -2
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +6 -15
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +16 -21
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +56 -0
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +66 -0
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +2 -2
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +5 -2
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
- package/dist/unstable/sql/SqlResolver.js +15 -6
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +2 -2
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/package.json +1 -1
- package/src/Config.ts +4 -4
- package/src/Effect.ts +30 -10
- package/src/Runtime.ts +95 -5
- package/src/Schema.ts +20 -52
- package/src/SchemaAST.ts +127 -2
- package/src/SchemaGetter.ts +3 -3
- package/src/SchemaRepresentation.ts +12 -8
- package/src/Stdio.ts +21 -2
- package/src/internal/effect.ts +2 -1
- package/src/internal/schema/representation.ts +8 -4
- package/src/internal/schema/to-codec.ts +7 -17
- package/src/unstable/ai/AiError.ts +8 -4
- package/src/unstable/ai/LanguageModel.ts +8 -5
- package/src/unstable/cli/CliError.ts +43 -55
- package/src/unstable/cli/Command.ts +348 -180
- package/src/unstable/cli/GlobalFlag.ts +1 -1
- package/src/unstable/cli/internal/command.ts +62 -32
- package/src/unstable/cli/internal/config.ts +49 -0
- package/src/unstable/cli/internal/help.ts +41 -16
- package/src/unstable/cli/internal/parser.ts +36 -10
- package/src/unstable/http/HttpClient.ts +28 -13
- package/src/unstable/httpapi/HttpApiBuilder.ts +1 -7
- package/src/unstable/httpapi/HttpApiClient.ts +6 -6
- package/src/unstable/httpapi/HttpApiEndpoint.ts +4 -4
- package/src/unstable/httpapi/HttpApiError.ts +23 -21
- package/src/unstable/reactivity/Atom.ts +132 -0
- package/src/unstable/reactivity/AtomHttpApi.ts +2 -2
- package/src/unstable/rpc/RpcServer.ts +5 -0
- package/src/unstable/sql/SqlResolver.ts +15 -5
- package/src/unstable/sql/SqlSchema.ts +2 -2
|
@@ -56,15 +56,15 @@ export const SqlRequest = payload => {
|
|
|
56
56
|
export const ordered = options => {
|
|
57
57
|
const decodeArray = Schema.decodeUnknownEffect(Schema.Array(options.Result));
|
|
58
58
|
return RequestResolver.makeGrouped({
|
|
59
|
-
key:
|
|
59
|
+
key: transactionKey,
|
|
60
60
|
resolver: Effect.fnUntraced(function* (entries) {
|
|
61
61
|
const inputs = yield* partitionRequests(entries, options.Request);
|
|
62
62
|
const results = yield* options.execute(inputs).pipe(Effect.provideServices(entries[0].services));
|
|
63
63
|
if (results.length !== inputs.length) {
|
|
64
|
-
return yield*
|
|
64
|
+
return yield* new ResultLengthMismatch({
|
|
65
65
|
expected: inputs.length,
|
|
66
66
|
actual: results.length
|
|
67
|
-
})
|
|
67
|
+
});
|
|
68
68
|
}
|
|
69
69
|
const decodedResults = yield* decodeArray(results).pipe(Effect.provideServices(entries[0].services));
|
|
70
70
|
for (let i = 0; i < entries.length; i++) {
|
|
@@ -84,7 +84,7 @@ export const ordered = options => {
|
|
|
84
84
|
export const grouped = options => {
|
|
85
85
|
const decodeResults = Schema.decodeUnknownEffect(Schema.Array(options.Result));
|
|
86
86
|
return RequestResolver.makeGrouped({
|
|
87
|
-
key:
|
|
87
|
+
key: transactionKey,
|
|
88
88
|
resolver: Effect.fnUntraced(function* (entries) {
|
|
89
89
|
const inputs = yield* partitionRequests(entries, options.Request);
|
|
90
90
|
const resultMap = MutableHashMap.empty();
|
|
@@ -118,7 +118,11 @@ export const grouped = options => {
|
|
|
118
118
|
export const findById = options => {
|
|
119
119
|
const decodeResults = Schema.decodeUnknownEffect(Schema.Array(options.Result));
|
|
120
120
|
return RequestResolver.makeGrouped({
|
|
121
|
-
key
|
|
121
|
+
key(entry) {
|
|
122
|
+
const conn = entry.services.mapUnsafe.get(SqlClient.TransactionConnection.key);
|
|
123
|
+
if (!conn) return undefined;
|
|
124
|
+
return Equal.byReferenceUnsafe(conn);
|
|
125
|
+
},
|
|
122
126
|
resolver: Effect.fnUntraced(function* (entries) {
|
|
123
127
|
const [inputs, idMap] = yield* partitionRequestsById(entries, options.Id);
|
|
124
128
|
const results = yield* options.execute(inputs).pipe(Effect.provideServices(entries[0].services));
|
|
@@ -143,7 +147,7 @@ export const findById = options => {
|
|
|
143
147
|
});
|
|
144
148
|
};
|
|
145
149
|
const void_ = options => RequestResolver.makeGrouped({
|
|
146
|
-
key:
|
|
150
|
+
key: transactionKey,
|
|
147
151
|
resolver: Effect.fnUntraced(function* (entries) {
|
|
148
152
|
const inputs = yield* partitionRequests(entries, options.Request);
|
|
149
153
|
yield* options.execute(inputs).pipe(Effect.provideServices(entries[0].services));
|
|
@@ -201,4 +205,9 @@ const partitionRequestsById = function* (requests, schema) {
|
|
|
201
205
|
}
|
|
202
206
|
return [inputs, byIdMap];
|
|
203
207
|
};
|
|
208
|
+
function transactionKey(entry) {
|
|
209
|
+
const conn = entry.services.mapUnsafe.get(SqlClient.TransactionConnection.key);
|
|
210
|
+
if (!conn) return undefined;
|
|
211
|
+
return Equal.byReferenceUnsafe(conn);
|
|
212
|
+
}
|
|
204
213
|
//# sourceMappingURL=SqlResolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlResolver.js","names":["Arr","Cause","Effect","Equal","Exit","Hash","MutableHashMap","Request","RequestResolver","Schema","SqlClient","ResultLengthMismatch","SqlRequestProto","Class","prototype","symbol","that","equals","payload","hash","request","arguments","length","resolver","SqlRequest","succeed","self","Object","create","ordered","options","decodeArray","decodeUnknownEffect","Array","Result","makeGrouped","key","
|
|
1
|
+
{"version":3,"file":"SqlResolver.js","names":["Arr","Cause","Effect","Equal","Exit","Hash","MutableHashMap","Request","RequestResolver","Schema","SqlClient","ResultLengthMismatch","SqlRequestProto","Class","prototype","symbol","that","equals","payload","hash","request","arguments","length","resolver","SqlRequest","succeed","self","Object","create","ordered","options","decodeArray","decodeUnknownEffect","Array","Result","makeGrouped","key","transactionKey","fnUntraced","entries","inputs","partitionRequests","results","execute","pipe","provideServices","services","expected","actual","decodedResults","i","completeUnsafe","grouped","decodeResults","resultMap","empty","len","result","ResultGroupKey","group","get","_tag","set","value","push","entry","RequestGroupKey","constNoSuchElement","findById","conn","mapUnsafe","TransactionConnection","undefined","byReferenceUnsafe","idMap","partitionRequestsById","Id","id","ResultId","remove","isEmpty","forEach","void_","void","fail","NoSuchElementError","requests","schema","encode","encodeEffect","handle","matchCauseEager","onFailure","cause","failCause","onSuccess","byIdMap"],"sources":["../../../src/unstable/sql/SqlResolver.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@ export declare const findAll: <Req extends Schema.Top, Res extends Schema.Top, E
|
|
|
16
16
|
readonly Request: Req;
|
|
17
17
|
readonly Result: Res;
|
|
18
18
|
readonly execute: (request: Req["Encoded"]) => Effect.Effect<ReadonlyArray<unknown>, E, R>;
|
|
19
|
-
}) => (request: Req["
|
|
19
|
+
}) => (request: Req["Type"]) => Effect.Effect<Array<Res["Type"]>, E | Schema.SchemaError, Req["EncodingServices"] | Res["DecodingServices"] | R>;
|
|
20
20
|
/**
|
|
21
21
|
* Run a sql query with a request schema and a result schema.
|
|
22
22
|
*
|
|
@@ -27,7 +27,7 @@ export declare const findNonEmpty: <Req extends Schema.Top, Res extends Schema.T
|
|
|
27
27
|
readonly Request: Req;
|
|
28
28
|
readonly Result: Res;
|
|
29
29
|
readonly execute: (request: Req["Encoded"]) => Effect.Effect<ReadonlyArray<unknown>, E, R>;
|
|
30
|
-
}) => (request: Req["
|
|
30
|
+
}) => (request: Req["Type"]) => Effect.Effect<Arr.NonEmptyArray<Res["Type"]>, E | Schema.SchemaError | Cause.NoSuchElementError, Req["EncodingServices"] | Res["DecodingServices"] | R>;
|
|
31
31
|
declare const void_: <Req extends Schema.Top, E, R>(options: {
|
|
32
32
|
readonly Request: Req;
|
|
33
33
|
readonly execute: (request: Req["Encoded"]) => Effect.Effect<unknown, E, R>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlSchema.d.ts","sourceRoot":"","sources":["../../../src/unstable/sql/SqlSchema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,GAAG,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,SAAS,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAC1E,SAAS;IACP,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAC3F,MAKC,SAAS,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"SqlSchema.d.ts","sourceRoot":"","sources":["../../../src/unstable/sql/SqlSchema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,GAAG,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,SAAS,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAC1E,SAAS;IACP,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAC3F,MAKC,SAAS,GAAG,CAAC,MAAM,CAAC,KACnB,MAAM,CAAC,MAAM,CACd,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAClB,CAAC,GAAG,MAAM,CAAC,WAAW,EACtB,GAAG,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAExD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,GAAG,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,SAAS,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAC/E,SAAS;IACP,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAC3F,MAIC,SAAS,GAAG,CAAC,MAAM,CAAC,KACnB,MAAM,CAAC,MAAM,CACd,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAC9B,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,kBAAkB,EACjD,GAAG,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAMxD,CAAA;AAED,QAAA,MAAM,KAAK,GAAI,GAAG,SAAS,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EACzC,SAAS;IACP,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAC5E,MAGO,SAAS,GAAG,CAAC,MAAM,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAIvG,CAAA;AACD,OAAO;AACL;;;;;GAKG;AACH,KAAK,IAAI,IAAI,EACd,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,GAAG,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,SAAS,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAC1E,SAAS;IACP,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAC3F,MAKC,SAAS,GAAG,CAAC,MAAM,CAAC,KACnB,MAAM,CAAC,MAAM,CACd,GAAG,CAAC,MAAM,CAAC,EACX,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,kBAAkB,EACjD,CAAC,GAAG,GAAG,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAUxD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,GAAG,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,SAAS,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAChF,SAAS;IACP,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAC3F,MAKC,SAAS,GAAG,CAAC,MAAM,CAAC,KACnB,MAAM,CAAC,MAAM,CACd,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAC1B,CAAC,GAAG,MAAM,CAAC,WAAW,EACtB,CAAC,GAAG,GAAG,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAUxD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlSchema.js","names":["Arr","Cause","Effect","Schema","findAll","options","encodeRequest","encodeEffect","Request","decode","decodeUnknownEffect","mutable","Array","Result","request","flatMap","execute","findNonEmpty","find","results","isArrayNonEmpty","succeed","fail","NoSuchElementError","void_","encode","asVoid","void","findOne","arr","isReadonlyArrayNonEmpty","findOneOption","asSome","succeedNone"],"sources":["../../../src/unstable/sql/SqlSchema.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,GAAG,MAAM,gBAAgB;AACrC,OAAO,KAAKC,KAAK,MAAM,gBAAgB;AACvC,OAAO,KAAKC,MAAM,MAAM,iBAAiB;AAEzC,OAAO,KAAKC,MAAM,MAAM,iBAAiB;AAEzC;;;;;;AAMA,OAAO,MAAMC,OAAO,GAClBC,OAIC,IACC;EACF,MAAMC,aAAa,GAAGH,MAAM,CAACI,YAAY,CAACF,OAAO,CAACG,OAAO,CAAC;EAC1D,MAAMC,MAAM,GAAGN,MAAM,CAACO,mBAAmB,CAACP,MAAM,CAACQ,OAAO,CAACR,MAAM,CAACS,KAAK,CAACP,OAAO,CAACQ,MAAM,CAAC,CAAC,CAAC;EACvF,OACEC,
|
|
1
|
+
{"version":3,"file":"SqlSchema.js","names":["Arr","Cause","Effect","Schema","findAll","options","encodeRequest","encodeEffect","Request","decode","decodeUnknownEffect","mutable","Array","Result","request","flatMap","execute","findNonEmpty","find","results","isArrayNonEmpty","succeed","fail","NoSuchElementError","void_","encode","asVoid","void","findOne","arr","isReadonlyArrayNonEmpty","findOneOption","asSome","succeedNone"],"sources":["../../../src/unstable/sql/SqlSchema.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
package/src/Config.ts
CHANGED
|
@@ -882,13 +882,13 @@ const recur: (
|
|
|
882
882
|
* @since 4.0.0
|
|
883
883
|
*/
|
|
884
884
|
export function schema<T, E>(codec: Schema.Codec<T, E>, path?: string | ConfigProvider.Path): Config<T> {
|
|
885
|
-
const
|
|
886
|
-
const decodeUnknownEffect = Parser.decodeUnknownEffect(
|
|
887
|
-
const
|
|
885
|
+
const codecStringTree = Schema.toCodecStringTree(codec)
|
|
886
|
+
const decodeUnknownEffect = Parser.decodeUnknownEffect(codecStringTree)
|
|
887
|
+
const codecStringTreeEncoded = AST.toEncoded(codecStringTree.ast)
|
|
888
888
|
const defaultPath = typeof path === "string" ? [path] : path ?? []
|
|
889
889
|
return make((provider) => {
|
|
890
890
|
const path = provider.prefix ? [...provider.prefix, ...defaultPath] : defaultPath
|
|
891
|
-
return recur(
|
|
891
|
+
return recur(codecStringTreeEncoded, provider, defaultPath).pipe(
|
|
892
892
|
Effect.flatMapEager((tree) =>
|
|
893
893
|
decodeUnknownEffect(tree).pipe(
|
|
894
894
|
Effect.mapErrorEager((issue) =>
|
package/src/Effect.ts
CHANGED
|
@@ -4394,7 +4394,8 @@ export const catchTag: {
|
|
|
4394
4394
|
* once. Instead of using {@link catchTag} multiple times, you can pass an
|
|
4395
4395
|
* object where each key is an error type's `_tag`, and the value is the handler
|
|
4396
4396
|
* for that specific error. This allows you to catch and recover from multiple
|
|
4397
|
-
* error types in a single call.
|
|
4397
|
+
* error types in a single call. You can also provide a fallback handler for
|
|
4398
|
+
* unhandled errors.
|
|
4398
4399
|
*
|
|
4399
4400
|
* The error type must have a readonly `_tag` field to use `catchTag`. This
|
|
4400
4401
|
* field is used to identify and match errors.
|
|
@@ -4436,7 +4437,8 @@ export const catchTags: {
|
|
|
4436
4437
|
* once. Instead of using {@link catchTag} multiple times, you can pass an
|
|
4437
4438
|
* object where each key is an error type's `_tag`, and the value is the handler
|
|
4438
4439
|
* for that specific error. This allows you to catch and recover from multiple
|
|
4439
|
-
* error types in a single call.
|
|
4440
|
+
* error types in a single call. You can also provide a fallback handler for
|
|
4441
|
+
* unhandled errors.
|
|
4440
4442
|
*
|
|
4441
4443
|
* The error type must have a readonly `_tag` field to use `catchTag`. This
|
|
4442
4444
|
* field is used to identify and match errors.
|
|
@@ -4472,19 +4474,27 @@ export const catchTags: {
|
|
|
4472
4474
|
E,
|
|
4473
4475
|
Cases extends
|
|
4474
4476
|
& { [K in Extract<E, { _tag: string }>["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => Effect<any, any, any>) }
|
|
4475
|
-
& (unknown extends E ? {} : { [K in Exclude<keyof Cases, Extract<E, { _tag: string }>["_tag"]>]: never })
|
|
4476
|
-
|
|
4477
|
+
& (unknown extends E ? {} : { [K in Exclude<keyof Cases, Extract<E, { _tag: string }>["_tag"]>]: never }),
|
|
4478
|
+
A2 = never,
|
|
4479
|
+
E2 = Exclude<E, { _tag: keyof Cases }>,
|
|
4480
|
+
R2 = never
|
|
4481
|
+
>(
|
|
4482
|
+
cases: Cases,
|
|
4483
|
+
orElse?: ((e: Exclude<E, { _tag: keyof Cases }>) => Effect<A2, E2, R2>) | undefined
|
|
4484
|
+
): <A, R>(
|
|
4477
4485
|
self: Effect<A, E, R>
|
|
4478
4486
|
) => Effect<
|
|
4479
4487
|
| A
|
|
4488
|
+
| A2
|
|
4480
4489
|
| {
|
|
4481
4490
|
[K in keyof Cases]: Cases[K] extends (...args: Array<any>) => Effect<infer A, any, any> ? A : never
|
|
4482
4491
|
}[keyof Cases],
|
|
4483
|
-
|
|
|
4492
|
+
| E2
|
|
4484
4493
|
| {
|
|
4485
4494
|
[K in keyof Cases]: Cases[K] extends (...args: Array<any>) => Effect<any, infer E, any> ? E : never
|
|
4486
4495
|
}[keyof Cases],
|
|
4487
4496
|
| R
|
|
4497
|
+
| R2
|
|
4488
4498
|
| {
|
|
4489
4499
|
[K in keyof Cases]: Cases[K] extends (...args: Array<any>) => Effect<any, any, infer R> ? R : never
|
|
4490
4500
|
}[keyof Cases]
|
|
@@ -4498,7 +4508,8 @@ export const catchTags: {
|
|
|
4498
4508
|
* once. Instead of using {@link catchTag} multiple times, you can pass an
|
|
4499
4509
|
* object where each key is an error type's `_tag`, and the value is the handler
|
|
4500
4510
|
* for that specific error. This allows you to catch and recover from multiple
|
|
4501
|
-
* error types in a single call.
|
|
4511
|
+
* error types in a single call. You can also provide a fallback handler for
|
|
4512
|
+
* unhandled errors.
|
|
4502
4513
|
*
|
|
4503
4514
|
* The error type must have a readonly `_tag` field to use `catchTag`. This
|
|
4504
4515
|
* field is used to identify and match errors.
|
|
@@ -4536,17 +4547,26 @@ export const catchTags: {
|
|
|
4536
4547
|
A,
|
|
4537
4548
|
Cases extends
|
|
4538
4549
|
& { [K in Extract<E, { _tag: string }>["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => Effect<any, any, any>) }
|
|
4539
|
-
& (unknown extends E ? {} : { [K in Exclude<keyof Cases, Extract<E, { _tag: string }>["_tag"]>]: never })
|
|
4540
|
-
|
|
4550
|
+
& (unknown extends E ? {} : { [K in Exclude<keyof Cases, Extract<E, { _tag: string }>["_tag"]>]: never }),
|
|
4551
|
+
A2 = never,
|
|
4552
|
+
E2 = Exclude<E, { _tag: keyof Cases }>,
|
|
4553
|
+
R2 = never
|
|
4554
|
+
>(
|
|
4555
|
+
self: Effect<A, E, R>,
|
|
4556
|
+
cases: Cases,
|
|
4557
|
+
orElse?: ((e: Exclude<E, { _tag: keyof Cases }>) => Effect<A2, E2, R2>) | undefined
|
|
4558
|
+
): Effect<
|
|
4541
4559
|
| A
|
|
4560
|
+
| A2
|
|
4542
4561
|
| {
|
|
4543
4562
|
[K in keyof Cases]: Cases[K] extends (...args: Array<any>) => Effect<infer A, any, any> ? A : never
|
|
4544
4563
|
}[keyof Cases],
|
|
4545
|
-
|
|
|
4564
|
+
| E2
|
|
4546
4565
|
| {
|
|
4547
4566
|
[K in keyof Cases]: Cases[K] extends (...args: Array<any>) => Effect<any, infer E, any> ? E : never
|
|
4548
4567
|
}[keyof Cases],
|
|
4549
4568
|
| R
|
|
4569
|
+
| R2
|
|
4550
4570
|
| {
|
|
4551
4571
|
[K in keyof Cases]: Cases[K] extends (...args: Array<any>) => Effect<any, any, infer R> ? R : never
|
|
4552
4572
|
}[keyof Cases]
|
|
@@ -15708,7 +15728,7 @@ export const forkScoped: <
|
|
|
15708
15728
|
readonly startImmediately?: boolean | undefined
|
|
15709
15729
|
readonly uninterruptible?: boolean | "inherit" | undefined
|
|
15710
15730
|
} | undefined
|
|
15711
|
-
) => [Arg] extends [Effect<infer _A, infer _E, infer _R>] ? Effect<Fiber<_A, _E>, never, _R>
|
|
15731
|
+
) => [Arg] extends [Effect<infer _A, infer _E, infer _R>] ? Effect<Fiber<_A, _E>, never, _R | Scope>
|
|
15712
15732
|
: <A, E, R>(self: Effect<A, E, R>) => Effect<Fiber<A, E>, never, R | Scope> = internal.forkScoped
|
|
15713
15733
|
|
|
15714
15734
|
/**
|
package/src/Runtime.ts
CHANGED
|
@@ -117,7 +117,9 @@ export const defaultTeardown: Teardown = <E, A>(
|
|
|
117
117
|
exit: Exit.Exit<E, A>,
|
|
118
118
|
onExit: (code: number) => void
|
|
119
119
|
) => {
|
|
120
|
-
|
|
120
|
+
if (Exit.isSuccess(exit)) return onExit(0)
|
|
121
|
+
if (Cause.hasInterruptsOnly(exit.cause)) return onExit(130)
|
|
122
|
+
return onExit(getErrorExitCode(Cause.squash(exit.cause)))
|
|
121
123
|
}
|
|
122
124
|
|
|
123
125
|
/**
|
|
@@ -206,10 +208,9 @@ export const makeRunMain = (
|
|
|
206
208
|
? Effect.runFork(effect)
|
|
207
209
|
: Effect.runFork(
|
|
208
210
|
Effect.tapCause(effect, (cause) => {
|
|
209
|
-
if (Cause.hasInterruptsOnly(cause))
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
return Effect.logError(cause)
|
|
211
|
+
if (Cause.hasInterruptsOnly(cause)) return Effect.void
|
|
212
|
+
const isReported = getErrorReported(Cause.squash(cause))
|
|
213
|
+
return isReported ? Effect.logError(cause) : Effect.void
|
|
213
214
|
})
|
|
214
215
|
)
|
|
215
216
|
try {
|
|
@@ -221,3 +222,92 @@ export const makeRunMain = (
|
|
|
221
222
|
const teardown = options?.teardown ?? defaultTeardown
|
|
222
223
|
return f({ fiber, teardown })
|
|
223
224
|
})
|
|
225
|
+
|
|
226
|
+
declare global {
|
|
227
|
+
interface Error {
|
|
228
|
+
readonly [errorExitCode]?: number
|
|
229
|
+
readonly [errorReported]?: boolean
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* @category Exit code management
|
|
235
|
+
* @since 4.0.0
|
|
236
|
+
*/
|
|
237
|
+
export type errorExitCode = "~effect/Runtime/errorExitCode"
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Allows associating an exit code with an error for determining the process
|
|
241
|
+
* exit code on failure.
|
|
242
|
+
*
|
|
243
|
+
* ```ts
|
|
244
|
+
* import { Data, Effect, Runtime } from "effect"
|
|
245
|
+
* import { NodeRuntime } from "@effect/platform-node"
|
|
246
|
+
*
|
|
247
|
+
* class MyError extends Data.TaggedError("MyError") {
|
|
248
|
+
* readonly [Runtime.errorExitCode] = 42
|
|
249
|
+
* }
|
|
250
|
+
*
|
|
251
|
+
* // If the program fails with MyError, the process will exit with code 42
|
|
252
|
+
* NodeRuntime.runMain(Effect.fail(new MyError()))
|
|
253
|
+
* ```
|
|
254
|
+
*
|
|
255
|
+
* @category Exit code management
|
|
256
|
+
* @since 4.0.0
|
|
257
|
+
*/
|
|
258
|
+
export const errorExitCode: errorExitCode = "~effect/Runtime/errorExitCode"
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* @category Exit code management
|
|
262
|
+
* @since 4.0.0
|
|
263
|
+
*/
|
|
264
|
+
export const getErrorExitCode = (u: unknown): number => {
|
|
265
|
+
if (typeof u === "object" && u !== null && errorExitCode in u) {
|
|
266
|
+
const code = u[errorExitCode]
|
|
267
|
+
if (typeof code === "number") {
|
|
268
|
+
return code
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return 1
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* @category Error reporting management
|
|
276
|
+
* @since 4.0.0
|
|
277
|
+
*/
|
|
278
|
+
export type errorReported = "~effect/Runtime/errorReported"
|
|
279
|
+
|
|
280
|
+
/**
|
|
281
|
+
* Allows an error to opt-out of error reporting.
|
|
282
|
+
*
|
|
283
|
+
* ```ts
|
|
284
|
+
* import { Data, Effect, Runtime } from "effect"
|
|
285
|
+
* import { NodeRuntime } from "@effect/platform-node"
|
|
286
|
+
*
|
|
287
|
+
* class MyError extends Data.TaggedError("MyError") {
|
|
288
|
+
* readonly [Runtime.errorReported] = true
|
|
289
|
+
* }
|
|
290
|
+
*
|
|
291
|
+
* // If the program fails with MyError, the process will exit with code 1 but
|
|
292
|
+
* // no error will be logged.
|
|
293
|
+
* NodeRuntime.runMain(Effect.fail(new MyError()))
|
|
294
|
+
* ```
|
|
295
|
+
*
|
|
296
|
+
* @category Error reporting management
|
|
297
|
+
* @since 4.0.0
|
|
298
|
+
*/
|
|
299
|
+
export const errorReported: errorReported = "~effect/Runtime/errorReported"
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* @category Error reporting management
|
|
303
|
+
* @since 4.0.0
|
|
304
|
+
*/
|
|
305
|
+
export const getErrorReported = (u: unknown): boolean => {
|
|
306
|
+
if (typeof u === "object" && u !== null && errorReported in u) {
|
|
307
|
+
const isReported = u[errorReported]
|
|
308
|
+
if (typeof isReported === "boolean") {
|
|
309
|
+
return isReported
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return true
|
|
313
|
+
}
|
package/src/Schema.ts
CHANGED
|
@@ -8667,11 +8667,11 @@ export function toJsonSchemaDocument(schema: Top, options?: ToJsonSchemaOptions)
|
|
|
8667
8667
|
}
|
|
8668
8668
|
|
|
8669
8669
|
// -----------------------------------------------------------------------------
|
|
8670
|
-
//
|
|
8670
|
+
// Canonical Codecs
|
|
8671
8671
|
// -----------------------------------------------------------------------------
|
|
8672
8672
|
|
|
8673
8673
|
/**
|
|
8674
|
-
* @category
|
|
8674
|
+
* @category Canonical Codecs
|
|
8675
8675
|
* @since 4.0.0
|
|
8676
8676
|
*/
|
|
8677
8677
|
export function toCodecJson<T, E, RD, RE>(schema: Codec<T, E, RD, RE>): Codec<T, unknown, RD, RE> {
|
|
@@ -8679,7 +8679,7 @@ export function toCodecJson<T, E, RD, RE>(schema: Codec<T, E, RD, RE>): Codec<T,
|
|
|
8679
8679
|
}
|
|
8680
8680
|
|
|
8681
8681
|
/**
|
|
8682
|
-
* @category
|
|
8682
|
+
* @category Canonical Codecs
|
|
8683
8683
|
* @since 4.0.0
|
|
8684
8684
|
*/
|
|
8685
8685
|
export function toCodecIso<S extends Top>(schema: S): Codec<S["Type"], S["Iso"]> {
|
|
@@ -8687,13 +8687,13 @@ export function toCodecIso<S extends Top>(schema: S): Codec<S["Type"], S["Iso"]>
|
|
|
8687
8687
|
}
|
|
8688
8688
|
|
|
8689
8689
|
/**
|
|
8690
|
-
* @category
|
|
8690
|
+
* @category Canonical Codecs
|
|
8691
8691
|
* @since 4.0.0
|
|
8692
8692
|
*/
|
|
8693
8693
|
export type StringTree = Tree<string | undefined>
|
|
8694
8694
|
|
|
8695
8695
|
/**
|
|
8696
|
-
* The StringTree
|
|
8696
|
+
* The StringTree canonical codec converts **every leaf value to a string**, while
|
|
8697
8697
|
* preserving the original structure.
|
|
8698
8698
|
*
|
|
8699
8699
|
* Declarations are converted to `undefined` (unless they have a
|
|
@@ -8707,7 +8707,7 @@ export type StringTree = Tree<string | undefined>
|
|
|
8707
8707
|
*
|
|
8708
8708
|
* Defaults to `false`.
|
|
8709
8709
|
*
|
|
8710
|
-
* @category
|
|
8710
|
+
* @category Canonical Codecs
|
|
8711
8711
|
* @since 4.0.0
|
|
8712
8712
|
*/
|
|
8713
8713
|
export function toCodecStringTree<T, E, RD, RE>(schema: Codec<T, E, RD, RE>): Codec<T, StringTree, RD, RE>
|
|
@@ -8740,7 +8740,7 @@ type XmlEncoderOptions = {
|
|
|
8740
8740
|
}
|
|
8741
8741
|
|
|
8742
8742
|
/**
|
|
8743
|
-
* @category
|
|
8743
|
+
* @category Canonical Codecs
|
|
8744
8744
|
* @since 4.0.0
|
|
8745
8745
|
*/
|
|
8746
8746
|
export function toEncoderXml<T, E, RD, RE>(
|
|
@@ -8860,8 +8860,6 @@ function serializerTree(
|
|
|
8860
8860
|
onMissingAnnotation: (ast: AST.AST) => AST.AST
|
|
8861
8861
|
): AST.AST {
|
|
8862
8862
|
switch (ast._tag) {
|
|
8863
|
-
case "Unknown":
|
|
8864
|
-
case "ObjectKeyword":
|
|
8865
8863
|
case "Declaration": {
|
|
8866
8864
|
const getLink = ast.annotations?.toCodecJson ?? ast.annotations?.toCodec
|
|
8867
8865
|
if (Predicate.isFunction(getLink)) {
|
|
@@ -8878,6 +8876,9 @@ function serializerTree(
|
|
|
8878
8876
|
return AST.replaceEncoding(ast, [nullToString])
|
|
8879
8877
|
case "Boolean":
|
|
8880
8878
|
return AST.replaceEncoding(ast, [booleanToString])
|
|
8879
|
+
case "Unknown":
|
|
8880
|
+
case "ObjectKeyword":
|
|
8881
|
+
return AST.replaceEncoding(ast, [AST.unknownToStringTree])
|
|
8881
8882
|
case "Enum":
|
|
8882
8883
|
case "Number":
|
|
8883
8884
|
case "Literal":
|
|
@@ -9104,13 +9105,13 @@ export function toDifferJsonPatch<T, E>(schema: Codec<T, E>): Differ<T, JsonPatc
|
|
|
9104
9105
|
* @category Tree
|
|
9105
9106
|
* @since 4.0.0
|
|
9106
9107
|
*/
|
|
9107
|
-
export type Tree<Node> = Node |
|
|
9108
|
+
export type Tree<Node> = Node | TreeRecord<Node> | ReadonlyArray<Tree<Node>>
|
|
9108
9109
|
|
|
9109
9110
|
/**
|
|
9110
9111
|
* @category Tree
|
|
9111
9112
|
* @since 4.0.0
|
|
9112
9113
|
*/
|
|
9113
|
-
export interface
|
|
9114
|
+
export interface TreeRecord<A> {
|
|
9114
9115
|
readonly [x: string]: Tree<A>
|
|
9115
9116
|
}
|
|
9116
9117
|
|
|
@@ -9133,51 +9134,12 @@ export function Tree<S extends Top>(node: S) {
|
|
|
9133
9134
|
return Tree
|
|
9134
9135
|
}
|
|
9135
9136
|
|
|
9136
|
-
/**
|
|
9137
|
-
* @category Tree
|
|
9138
|
-
* @since 4.0.0
|
|
9139
|
-
*/
|
|
9140
|
-
export type MutableTree<A> = A | MutableTreeRecord<A> | Array<MutableTree<A>>
|
|
9141
|
-
|
|
9142
|
-
/**
|
|
9143
|
-
* @category Tree
|
|
9144
|
-
* @since 4.0.0
|
|
9145
|
-
*/
|
|
9146
|
-
export interface MutableTreeRecord<A> {
|
|
9147
|
-
[x: string]: MutableTree<A>
|
|
9148
|
-
}
|
|
9149
|
-
|
|
9150
|
-
/**
|
|
9151
|
-
* @category Tree
|
|
9152
|
-
* @since 4.0.0
|
|
9153
|
-
*/
|
|
9154
|
-
export function MutableTree<S extends Top>(node: S) {
|
|
9155
|
-
const MutableTree$ref = suspend((): Codec<
|
|
9156
|
-
MutableTree<S["Type"]>,
|
|
9157
|
-
MutableTree<S["Encoded"]>,
|
|
9158
|
-
S["DecodingServices"],
|
|
9159
|
-
S["EncodingServices"]
|
|
9160
|
-
> => MutableTree)
|
|
9161
|
-
const MutableTree = Union([
|
|
9162
|
-
node,
|
|
9163
|
-
mutable(Array(MutableTree$ref)),
|
|
9164
|
-
Record(String, mutableKey(MutableTree$ref))
|
|
9165
|
-
])
|
|
9166
|
-
return MutableTree
|
|
9167
|
-
}
|
|
9168
|
-
|
|
9169
9137
|
/**
|
|
9170
9138
|
* @category JSON
|
|
9171
9139
|
* @since 4.0.0
|
|
9172
9140
|
*/
|
|
9173
9141
|
export type Json = null | number | boolean | string | JsonArray | JsonObject
|
|
9174
9142
|
|
|
9175
|
-
/**
|
|
9176
|
-
* @category JSON
|
|
9177
|
-
* @since 4.0.0
|
|
9178
|
-
*/
|
|
9179
|
-
export const Json: Codec<Json> = Tree(Union([Null, Number, Boolean, String]))
|
|
9180
|
-
|
|
9181
9143
|
/**
|
|
9182
9144
|
* @category JSON
|
|
9183
9145
|
* @since 4.0.0
|
|
@@ -9196,13 +9158,13 @@ export interface JsonObject {
|
|
|
9196
9158
|
* @category JSON
|
|
9197
9159
|
* @since 4.0.0
|
|
9198
9160
|
*/
|
|
9199
|
-
export
|
|
9161
|
+
export const Json: Codec<Json> = make(AST.Json)
|
|
9200
9162
|
|
|
9201
9163
|
/**
|
|
9202
9164
|
* @category JSON
|
|
9203
9165
|
* @since 4.0.0
|
|
9204
9166
|
*/
|
|
9205
|
-
export
|
|
9167
|
+
export type MutableJson = null | number | boolean | string | MutableJsonArray | MutableJsonObject
|
|
9206
9168
|
|
|
9207
9169
|
/**
|
|
9208
9170
|
* @category JSON
|
|
@@ -9218,6 +9180,12 @@ export interface MutableJsonObject {
|
|
|
9218
9180
|
[x: string]: MutableJson
|
|
9219
9181
|
}
|
|
9220
9182
|
|
|
9183
|
+
/**
|
|
9184
|
+
* @category JSON
|
|
9185
|
+
* @since 4.0.0
|
|
9186
|
+
*/
|
|
9187
|
+
export const MutableJson: Codec<MutableJson> = make(AST.MutableJson)
|
|
9188
|
+
|
|
9221
9189
|
// -----------------------------------------------------------------------------
|
|
9222
9190
|
// Annotations
|
|
9223
9191
|
// -----------------------------------------------------------------------------
|