@effect-app/infra 2.30.4 → 2.31.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/CHANGELOG.md +12 -0
- package/_cjs/Emailer/Sendgrid.cjs +7 -2
- package/_cjs/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/Emailer/service.cjs.map +1 -1
- package/dist/Emailer/Sendgrid.d.ts +7 -10
- package/dist/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/Emailer/Sendgrid.js +10 -3
- package/dist/Emailer/service.d.ts +23 -13
- package/dist/Emailer/service.d.ts.map +1 -1
- package/dist/Emailer/service.js +1 -1
- package/dist/Model/query/new-kid-interpreter.d.ts +1 -1
- package/package.json +10 -10
- package/src/Emailer/Sendgrid.ts +19 -8
- package/src/Emailer/service.ts +33 -11
- package/test/dist/controller.test copy.js +23 -46
- package/test/dist/controller5.test.d.ts.map +1 -0
- package/test/dist/controller6.test.d.ts.map +1 -1
- package/test/dist/controller7.test.d.ts.map +1 -1
- package/vitest.config.ts.timestamp-1711656440838-19c636fe320df.mjs +0 -0
- package/vitest.config.ts.timestamp-1711724061890-6ecedb0a07fdd.mjs +0 -0
- package/vitest.config.ts.timestamp-1711743489537-da8d9e5f66c9f.mjs +0 -0
- package/vitest.config.ts.timestamp-1711744615239-dcf257a844e01.mjs +37 -0
- package/test/dist/controller.test copy.d.ts +0 -169
- package/test/dist/controller.test copy.d.ts.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 2.31.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 2b39183: improve: Tighten Sendgrid types and enable isMultiple by default
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 1bfc3d8: update packages
|
|
12
|
+
- Updated dependencies [1bfc3d8]
|
|
13
|
+
- effect-app@2.19.2
|
|
14
|
+
|
|
3
15
|
## 2.30.4
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -33,10 +33,15 @@ const makeSendgrid = ({
|
|
|
33
33
|
const renderedMsg_ = render(msg);
|
|
34
34
|
const renderedMsg = {
|
|
35
35
|
...renderedMsg_,
|
|
36
|
-
subject: `${subjectPrefix}${renderedMsg_.subject}
|
|
36
|
+
subject: `${subjectPrefix}${renderedMsg_.subject}`,
|
|
37
|
+
...("content" in renderedMsg_ ? {
|
|
38
|
+
content: [...renderedMsg_.content]
|
|
39
|
+
} : {})
|
|
37
40
|
};
|
|
38
41
|
yield* _logger.InfraLogger.logDebug("Sending email").pipe(_effectApp.Effect.annotateLogs("msg", (0, _util.inspect)(renderedMsg, false, 5)));
|
|
39
|
-
const ret = yield* _effectApp.Effect.async(cb => void _mail.default.send(renderedMsg,
|
|
42
|
+
const ret = yield* _effectApp.Effect.async(cb => void _mail.default.send(renderedMsg,
|
|
43
|
+
// sue me
|
|
44
|
+
msg.isMultiple ?? true, (err, result) => err ? cb(_effectApp.Effect.fail(err)) : cb(_effectApp.Effect.sync(() => result))));
|
|
40
45
|
// const event = {
|
|
41
46
|
// name: "EmailSent",
|
|
42
47
|
// properties: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sendgrid.cjs","names":["_mail","_interopRequireDefault","require","_effectApp","_utils","_util","_logger","_service","e","__esModule","default","makeSendgrid","apiKey","defaultFrom","defaultReplyTo","realMail","subjectPrefix","Effect","sync","sgMail","setApiKey","Redacted","value","Emailer","of","sendMail","msg_","gen","msg","dropUndefinedT","from","replyTo","undefined","render","renderMessage","renderedMsg_","renderedMsg","subject","InfraLogger","logDebug","pipe","annotateLogs","inspect","ret","async","cb","send","err","result","fail","Sendgrid","config","toLayer","forceFake","i","makeId","to","renderFake","cc","bcc","renderFakeIfTest","isTestAddress","toLowerCase","endsWith","email","addr","name","renderMailData","eq","Equivalence","mapInput","string","Array","isArray","dedupeWith","map","x","md","join"],"sources":["../../src/Emailer/Sendgrid.ts"],"sourcesContent":[null],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"Sendgrid.cjs","names":["_mail","_interopRequireDefault","require","_effectApp","_utils","_util","_logger","_service","e","__esModule","default","makeSendgrid","apiKey","defaultFrom","defaultReplyTo","realMail","subjectPrefix","Effect","sync","sgMail","setApiKey","Redacted","value","Emailer","of","sendMail","msg_","gen","msg","dropUndefinedT","from","replyTo","undefined","render","renderMessage","renderedMsg_","renderedMsg","subject","content","InfraLogger","logDebug","pipe","annotateLogs","inspect","ret","async","cb","send","isMultiple","err","result","fail","Sendgrid","config","toLayer","forceFake","i","makeId","to","renderFake","cc","bcc","renderFakeIfTest","isTestAddress","toLowerCase","endsWith","email","addr","name","renderMailData","eq","Equivalence","mapInput","string","Array","isArray","dedupeWith","map","x","md","join"],"sources":["../../src/Emailer/Sendgrid.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.cjs","names":["_effectApp","require","Emailer","Context","TagId","exports"],"sources":["../../src/Emailer/service.ts"],"sourcesContent":[null],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"service.cjs","names":["_effectApp","require","Emailer","Context","TagId","exports"],"sources":["../../src/Emailer/service.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AAGA;;;;AAIM,MAAOC,OAAQ,SAAQC,kBAAO,CAACC,KAAK,CAAC,oBAAoB,CAAC,EAE5D;AAAGC,OAAA,CAAAH,OAAA,GAAAA,OAAA","ignoreList":[]}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { EmailData } from "@sendgrid/helpers/classes/email-address.js";
|
|
2
|
+
import type { MailContent } from "@sendgrid/helpers/classes/mail.js";
|
|
3
|
+
import { Array } from "effect-app";
|
|
2
4
|
import { Emailer } from "./service.js";
|
|
3
5
|
import type { EmailMsg, SendgridConfig } from "./service.js";
|
|
4
6
|
/**
|
|
@@ -12,13 +14,11 @@ export declare function renderMessage(forceFake: boolean): (msg: EmailMsg) => {
|
|
|
12
14
|
to: EmailData | EmailData[];
|
|
13
15
|
cc: EmailData | EmailData[];
|
|
14
16
|
bcc: EmailData | EmailData[];
|
|
15
|
-
from: EmailData;
|
|
16
17
|
replyTo?: EmailData;
|
|
17
18
|
sendAt?: number;
|
|
18
19
|
subject?: string;
|
|
19
20
|
text: string;
|
|
20
21
|
html?: string;
|
|
21
|
-
content?: import("@sendgrid/helpers/classes/mail.js").MailContent[];
|
|
22
22
|
templateId?: string;
|
|
23
23
|
personalizations?: import("@sendgrid/helpers/classes/personalization.js").PersonalizationData[];
|
|
24
24
|
attachments?: import("@sendgrid/helpers/classes/attachment.js").AttachmentData[];
|
|
@@ -48,17 +48,16 @@ export declare function renderMessage(forceFake: boolean): (msg: EmailMsg) => {
|
|
|
48
48
|
};
|
|
49
49
|
hideWarnings?: boolean;
|
|
50
50
|
replyToList?: import("@sendgrid/helpers/classes/email-address.js").EmailJSON | import("@sendgrid/helpers/classes/email-address.js").EmailJSON[];
|
|
51
|
+
from: import("./service.js").EmailData;
|
|
51
52
|
} | {
|
|
52
53
|
to: EmailData | EmailData[];
|
|
53
54
|
cc: EmailData | EmailData[];
|
|
54
55
|
bcc: EmailData | EmailData[];
|
|
55
|
-
from: EmailData;
|
|
56
56
|
replyTo?: EmailData;
|
|
57
57
|
sendAt?: number;
|
|
58
58
|
subject?: string;
|
|
59
59
|
text?: string;
|
|
60
60
|
html: string;
|
|
61
|
-
content?: import("@sendgrid/helpers/classes/mail.js").MailContent[];
|
|
62
61
|
templateId?: string;
|
|
63
62
|
personalizations?: import("@sendgrid/helpers/classes/personalization.js").PersonalizationData[];
|
|
64
63
|
attachments?: import("@sendgrid/helpers/classes/attachment.js").AttachmentData[];
|
|
@@ -88,17 +87,16 @@ export declare function renderMessage(forceFake: boolean): (msg: EmailMsg) => {
|
|
|
88
87
|
};
|
|
89
88
|
hideWarnings?: boolean;
|
|
90
89
|
replyToList?: import("@sendgrid/helpers/classes/email-address.js").EmailJSON | import("@sendgrid/helpers/classes/email-address.js").EmailJSON[];
|
|
90
|
+
from: import("./service.js").EmailData;
|
|
91
91
|
} | {
|
|
92
92
|
to: EmailData | EmailData[];
|
|
93
93
|
cc: EmailData | EmailData[];
|
|
94
94
|
bcc: EmailData | EmailData[];
|
|
95
|
-
from: EmailData;
|
|
96
95
|
replyTo?: EmailData;
|
|
97
96
|
sendAt?: number;
|
|
98
97
|
subject?: string;
|
|
99
98
|
text?: string;
|
|
100
99
|
html?: string;
|
|
101
|
-
content?: import("@sendgrid/helpers/classes/mail.js").MailContent[];
|
|
102
100
|
templateId: string;
|
|
103
101
|
personalizations?: import("@sendgrid/helpers/classes/personalization.js").PersonalizationData[];
|
|
104
102
|
attachments?: import("@sendgrid/helpers/classes/attachment.js").AttachmentData[];
|
|
@@ -128,19 +126,16 @@ export declare function renderMessage(forceFake: boolean): (msg: EmailMsg) => {
|
|
|
128
126
|
};
|
|
129
127
|
hideWarnings?: boolean;
|
|
130
128
|
replyToList?: import("@sendgrid/helpers/classes/email-address.js").EmailJSON | import("@sendgrid/helpers/classes/email-address.js").EmailJSON[];
|
|
129
|
+
from: import("./service.js").EmailData;
|
|
131
130
|
} | {
|
|
132
131
|
to: EmailData | EmailData[];
|
|
133
132
|
cc: EmailData | EmailData[];
|
|
134
133
|
bcc: EmailData | EmailData[];
|
|
135
|
-
from: EmailData;
|
|
136
134
|
replyTo?: EmailData;
|
|
137
135
|
sendAt?: number;
|
|
138
136
|
subject?: string;
|
|
139
137
|
text?: string;
|
|
140
138
|
html?: string;
|
|
141
|
-
content: import("@sendgrid/helpers/classes/mail.js").MailContent[] & {
|
|
142
|
-
0: import("@sendgrid/helpers/classes/mail.js").MailContent;
|
|
143
|
-
};
|
|
144
139
|
templateId?: string;
|
|
145
140
|
personalizations?: import("@sendgrid/helpers/classes/personalization.js").PersonalizationData[];
|
|
146
141
|
attachments?: import("@sendgrid/helpers/classes/attachment.js").AttachmentData[];
|
|
@@ -170,6 +165,8 @@ export declare function renderMessage(forceFake: boolean): (msg: EmailMsg) => {
|
|
|
170
165
|
};
|
|
171
166
|
hideWarnings?: boolean;
|
|
172
167
|
replyToList?: import("@sendgrid/helpers/classes/email-address.js").EmailJSON | import("@sendgrid/helpers/classes/email-address.js").EmailJSON[];
|
|
168
|
+
from: import("./service.js").EmailData;
|
|
169
|
+
content: Array.NonEmptyReadonlyArray<MailContent>;
|
|
173
170
|
};
|
|
174
171
|
/**
|
|
175
172
|
* @hidden
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sendgrid.d.ts","sourceRoot":"","sources":["../../src/Emailer/Sendgrid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAA;
|
|
1
|
+
{"version":3,"file":"Sendgrid.d.ts","sourceRoot":"","sources":["../../src/Emailer/Sendgrid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAA;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAEpE,OAAO,EAAE,KAAK,EAAiC,MAAM,YAAY,CAAA;AAIjE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAwB,cAAc,EAAE,MAAM,cAAc,CAAA;AAwDlF;;GAEG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,uDAE9C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,SAWpC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOnB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,SAAS,WAO1C"}
|
package/dist/Emailer/Sendgrid.js
CHANGED
|
@@ -16,9 +16,16 @@ const makeSendgrid = ({ apiKey, defaultFrom, defaultReplyTo, realMail, subjectPr
|
|
|
16
16
|
});
|
|
17
17
|
const render = renderMessage(!realMail);
|
|
18
18
|
const renderedMsg_ = render(msg);
|
|
19
|
-
const renderedMsg = {
|
|
19
|
+
const renderedMsg = {
|
|
20
|
+
...renderedMsg_,
|
|
21
|
+
subject: `${subjectPrefix}${renderedMsg_.subject}`,
|
|
22
|
+
..."content" in renderedMsg_
|
|
23
|
+
? { content: [...renderedMsg_.content] }
|
|
24
|
+
: {}
|
|
25
|
+
};
|
|
20
26
|
yield* InfraLogger.logDebug("Sending email").pipe(Effect.annotateLogs("msg", inspect(renderedMsg, false, 5)));
|
|
21
|
-
const ret = yield* Effect.async((cb) => void sgMail.send(renderedMsg,
|
|
27
|
+
const ret = yield* Effect.async((cb) => void sgMail.send(renderedMsg, // sue me
|
|
28
|
+
msg.isMultiple ?? true, (err, result) => err
|
|
22
29
|
? cb(Effect.fail(err))
|
|
23
30
|
: cb(Effect.sync(() => result))));
|
|
24
31
|
// const event = {
|
|
@@ -96,4 +103,4 @@ function renderMailData(md) {
|
|
|
96
103
|
}
|
|
97
104
|
return md.email;
|
|
98
105
|
}
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VuZGdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRW1haWxlci9TZW5kZ3JpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLE1BQU0sTUFBTSxnQkFBZ0IsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUd0QyxNQUFNLFlBQVksR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBa0IsRUFBRSxFQUFFLENBQ3hHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO0lBQ2YsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7SUFFeEMsT0FBTyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ2hCLFFBQVEsQ0FBQyxJQUEwQjtZQUNqQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUN6QixNQUFNLEdBQUcsR0FBYSxjQUFjLENBQUM7b0JBQ25DLEdBQUcsSUFBSTtvQkFDUCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxXQUFXO29CQUM5QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO2lCQUNsRSxDQUFDLENBQUE7Z0JBQ0YsTUFBTSxNQUFNLEdB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
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import type { MailContent, MailData } from "@sendgrid/helpers/classes/mail.js";
|
|
2
2
|
import type { ResponseError } from "@sendgrid/mail";
|
|
3
|
-
import type sgMail from "@sendgrid/mail";
|
|
4
3
|
import type { Effect, NonEmptyReadonlyArray, Redacted } from "effect-app";
|
|
5
4
|
import { Context } from "effect-app";
|
|
6
|
-
import type { Email
|
|
5
|
+
import type { Email } from "effect-app/Schema";
|
|
7
6
|
declare const Emailer_base: (abstract new (service: {
|
|
8
7
|
sendMail: (msg: EmailMsgOptionalFrom) => Effect<void, Error | ResponseError>;
|
|
9
8
|
}) => Readonly<{
|
|
@@ -27,24 +26,33 @@ declare const Emailer_base: (abstract new (service: {
|
|
|
27
26
|
*/
|
|
28
27
|
export declare class Emailer extends Emailer_base {
|
|
29
28
|
}
|
|
29
|
+
export type EmailData = Email | {
|
|
30
|
+
name?: string;
|
|
31
|
+
email: Email;
|
|
32
|
+
};
|
|
30
33
|
export interface SendgridConfig {
|
|
31
|
-
defaultReplyTo?:
|
|
32
|
-
name?: NonEmptyString255;
|
|
33
|
-
email: Email;
|
|
34
|
-
};
|
|
34
|
+
defaultReplyTo?: EmailData;
|
|
35
35
|
subjectPrefix: string;
|
|
36
36
|
realMail: boolean;
|
|
37
|
-
defaultFrom:
|
|
38
|
-
name?: NonEmptyString255;
|
|
39
|
-
email: Email;
|
|
40
|
-
};
|
|
37
|
+
defaultFrom: EmailData;
|
|
41
38
|
apiKey: Redacted.Redacted<string>;
|
|
42
39
|
}
|
|
43
|
-
export type EmailMsg = sgMail.MailDataRequired;
|
|
44
40
|
export type EmailTemplateMsg = MailData & {
|
|
45
41
|
templateId: string;
|
|
46
42
|
};
|
|
47
|
-
export type
|
|
43
|
+
export type EmailRecipients = EmailData | NonEmptyReadonlyArray<EmailData>;
|
|
44
|
+
export type EmailMsgBase = Omit<MailData, "from" | "to" | "bcc" | "cc" | "content"> & {
|
|
45
|
+
to: EmailData | NonEmptyReadonlyArray<EmailData>;
|
|
46
|
+
cc?: EmailData | NonEmptyReadonlyArray<EmailData>;
|
|
47
|
+
bcc?: EmailData | NonEmptyReadonlyArray<EmailData>;
|
|
48
|
+
from: EmailData;
|
|
49
|
+
/**
|
|
50
|
+
* should multiple `to` addresess be considered multiple emails?
|
|
51
|
+
* defaults to `true`, not to leak email addresses
|
|
52
|
+
*/
|
|
53
|
+
isMultiple?: boolean;
|
|
54
|
+
};
|
|
55
|
+
export type EmailContent = {
|
|
48
56
|
text: string;
|
|
49
57
|
} | {
|
|
50
58
|
html: string;
|
|
@@ -52,6 +60,8 @@ export type EmailMsgOptionalFrom = Omit<MailData, "from"> & ({
|
|
|
52
60
|
templateId: string;
|
|
53
61
|
} | {
|
|
54
62
|
content: NonEmptyReadonlyArray<MailContent>;
|
|
55
|
-
}
|
|
63
|
+
};
|
|
64
|
+
export type EmailMsg = EmailMsgBase & EmailContent;
|
|
65
|
+
export type EmailMsgOptionalFrom = Omit<EmailMsgBase, "from"> & Partial<Pick<EmailMsg, "from">> & EmailContent;
|
|
56
66
|
export {};
|
|
57
67
|
//# sourceMappingURL=service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/Emailer/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/Emailer/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;;cAOlC,CAAC,GAAG,EAAE,oBAAoB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,aAAa,CAAC;;cAAlE,CAAC,GAAG,EAAE,oBAAoB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,aAAa,CAAC;;cAAlE,CAAC,GAAG,EAAE,oBAAoB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,aAAa,CAAC;;;;;;;;;kBAAlE,CAAC,GAAG,EAAE,oBAAoB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,aAAa,CAAC;;;AAL9E;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,YAEzB;CAAG;AAEP,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,SAAS,CAAA;IACtB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;CAClC;AACD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAA;AAE1E,MAAM,MAAM,YAAY,GACpB,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,GACxD;IACA,EAAE,EAAE,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAA;IAChD,EAAE,CAAC,EAAE,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAA;IACjD,GAAG,CAAC,EAAE,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAA;IAClD,IAAI,EAAE,SAAS,CAAA;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAEH,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG;IACxF,OAAO,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAA;CAC5C,CAAA;AAED,MAAM,MAAM,QAAQ,GAChB,YAAY,GACZ,YAAY,CAAA;AAEhB,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,GAAG,YAAY,CAAA"}
|
package/dist/Emailer/service.js
CHANGED
|
@@ -5,4 +5,4 @@ import { Context } from "effect-app";
|
|
|
5
5
|
*/
|
|
6
6
|
export class Emailer extends Context.TagId("effect-app/Emailer")() {
|
|
7
7
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FbWFpbGVyL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUdwQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sT0FBUSxTQUFRLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsRUFFNUQ7Q0FBRyJ9
|
|
@@ -15,7 +15,7 @@ export declare const toFilter: <TFieldValues extends FieldValues, A, R, TFieldVa
|
|
|
15
15
|
key: import("../filter/types/path/eager.js").Path<TFieldValues>;
|
|
16
16
|
direction: "ASC" | "DESC";
|
|
17
17
|
}[]];
|
|
18
|
-
ttype: "one" | "
|
|
18
|
+
ttype: "one" | "count" | "many";
|
|
19
19
|
mode: "project" | "collect" | "transform";
|
|
20
20
|
filter: FilterResult[];
|
|
21
21
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.31.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
"proper-lockfile": "^4.1.2",
|
|
14
14
|
"pure-rand": "6.1.0",
|
|
15
15
|
"query-string": "^9.1.1",
|
|
16
|
-
"effect-app": "2.19.
|
|
16
|
+
"effect-app": "2.19.2"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@azure/cosmos": "^4.2.0",
|
|
20
20
|
"@azure/service-bus": "^7.9.5",
|
|
21
|
-
"@babel/cli": "^7.
|
|
21
|
+
"@babel/cli": "^7.26.4",
|
|
22
22
|
"@sentry/node": "^8.42.0",
|
|
23
23
|
"@types/express": "^5.0.0",
|
|
24
24
|
"@types/node": "~22.10.1",
|
|
@@ -38,17 +38,17 @@
|
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"@azure/cosmos": "^4.2.0",
|
|
40
40
|
"@azure/service-bus": "^7.9.5",
|
|
41
|
-
"@effect/experimental": "^0.33.
|
|
42
|
-
"@effect/platform": "^0.70.
|
|
43
|
-
"@effect/rpc-http": "^0.43.
|
|
44
|
-
"@effect/rpc": "^0.45.
|
|
45
|
-
"@effect/sql": "^0.22.
|
|
46
|
-
"@effect/vitest": "^0.14.
|
|
41
|
+
"@effect/experimental": "^0.33.4",
|
|
42
|
+
"@effect/platform": "^0.70.4",
|
|
43
|
+
"@effect/rpc-http": "^0.43.4",
|
|
44
|
+
"@effect/rpc": "^0.45.4",
|
|
45
|
+
"@effect/sql": "^0.22.4",
|
|
46
|
+
"@effect/vitest": "^0.14.3",
|
|
47
47
|
"@sendgrid/helpers": "^8.0.0",
|
|
48
48
|
"@sendgrid/mail": "^8.1.4",
|
|
49
49
|
"redis": "^3.1.2",
|
|
50
50
|
"redlock": "^4.2.0",
|
|
51
|
-
"effect": "^3.11.
|
|
51
|
+
"effect": "^3.11.3",
|
|
52
52
|
"express": "^4.21.1"
|
|
53
53
|
},
|
|
54
54
|
"typesVersions": {
|
package/src/Emailer/Sendgrid.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { EmailData } from "@sendgrid/helpers/classes/email-address.js"
|
|
2
|
+
import type { MailContent } from "@sendgrid/helpers/classes/mail.js"
|
|
2
3
|
import sgMail from "@sendgrid/mail"
|
|
3
4
|
import { Array, Effect, Equivalence, Redacted } from "effect-app"
|
|
4
5
|
import { dropUndefinedT } from "effect-app/utils"
|
|
@@ -22,7 +23,13 @@ const makeSendgrid = ({ apiKey, defaultFrom, defaultReplyTo, realMail, subjectPr
|
|
|
22
23
|
const render = renderMessage(!realMail)
|
|
23
24
|
|
|
24
25
|
const renderedMsg_ = render(msg)
|
|
25
|
-
const renderedMsg = {
|
|
26
|
+
const renderedMsg = {
|
|
27
|
+
...renderedMsg_ as Omit<typeof renderedMsg_, "content">,
|
|
28
|
+
subject: `${subjectPrefix}${renderedMsg_.subject}`,
|
|
29
|
+
..."content" in renderedMsg_
|
|
30
|
+
? { content: [...renderedMsg_.content] as [MailContent, ...MailContent[]] }
|
|
31
|
+
: {}
|
|
32
|
+
}
|
|
26
33
|
yield* InfraLogger.logDebug("Sending email").pipe(Effect.annotateLogs("msg", inspect(renderedMsg, false, 5)))
|
|
27
34
|
|
|
28
35
|
const ret = yield* Effect.async<
|
|
@@ -30,10 +37,14 @@ const makeSendgrid = ({ apiKey, defaultFrom, defaultReplyTo, realMail, subjectPr
|
|
|
30
37
|
Error | sgMail.ResponseError
|
|
31
38
|
>(
|
|
32
39
|
(cb) =>
|
|
33
|
-
void sgMail.send(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
40
|
+
void sgMail.send(
|
|
41
|
+
renderedMsg as any, // sue me
|
|
42
|
+
msg.isMultiple ?? true,
|
|
43
|
+
(err, result) =>
|
|
44
|
+
err
|
|
45
|
+
? cb(Effect.fail(err))
|
|
46
|
+
: cb(Effect.sync(() => result))
|
|
47
|
+
)
|
|
37
48
|
)
|
|
38
49
|
|
|
39
50
|
// const event = {
|
|
@@ -93,7 +104,7 @@ export function isTestAddress(to: EmailData) {
|
|
|
93
104
|
)
|
|
94
105
|
}
|
|
95
106
|
|
|
96
|
-
function renderFake(addr: EmailData | EmailData[], makeId: () => number) {
|
|
107
|
+
function renderFake(addr: EmailData | readonly EmailData[], makeId: () => number) {
|
|
97
108
|
return {
|
|
98
109
|
name: renderMailData(addr),
|
|
99
110
|
email: `test+${makeId()}@nomizz.com`
|
|
@@ -106,7 +117,7 @@ const eq = Equivalence.mapInput(
|
|
|
106
117
|
|
|
107
118
|
// TODO: should just not add any already added email address
|
|
108
119
|
// https://stackoverflow.com/a/53603076/11595834
|
|
109
|
-
function renderFakeIfTest(addr: EmailData | EmailData[], makeId: () => number) {
|
|
120
|
+
function renderFakeIfTest(addr: EmailData | readonly EmailData[], makeId: () => number) {
|
|
110
121
|
return Array.isArray(addr)
|
|
111
122
|
? Array.dedupeWith(
|
|
112
123
|
addr
|
|
@@ -118,7 +129,7 @@ function renderFakeIfTest(addr: EmailData | EmailData[], makeId: () => number) {
|
|
|
118
129
|
: addr
|
|
119
130
|
}
|
|
120
131
|
|
|
121
|
-
function renderMailData(md:
|
|
132
|
+
function renderMailData(md: EmailData | readonly EmailData[]): string {
|
|
122
133
|
if (Array.isArray(md)) {
|
|
123
134
|
return md.map(renderMailData).join(", ")
|
|
124
135
|
}
|
package/src/Emailer/service.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import type { MailContent, MailData } from "@sendgrid/helpers/classes/mail.js"
|
|
2
2
|
import type { ResponseError } from "@sendgrid/mail"
|
|
3
|
-
import type sgMail from "@sendgrid/mail"
|
|
4
3
|
import type { Effect, NonEmptyReadonlyArray, Redacted } from "effect-app"
|
|
5
4
|
import { Context } from "effect-app"
|
|
6
|
-
import type { Email
|
|
5
|
+
import type { Email } from "effect-app/Schema"
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
8
|
* @tsplus type Emailer
|
|
@@ -13,19 +12,42 @@ export class Emailer extends Context.TagId("effect-app/Emailer")<Emailer, {
|
|
|
13
12
|
sendMail: (msg: EmailMsgOptionalFrom) => Effect<void, Error | ResponseError>
|
|
14
13
|
}>() {}
|
|
15
14
|
|
|
15
|
+
export type EmailData = Email | {
|
|
16
|
+
name?: string
|
|
17
|
+
email: Email
|
|
18
|
+
}
|
|
19
|
+
|
|
16
20
|
export interface SendgridConfig {
|
|
17
|
-
defaultReplyTo?:
|
|
21
|
+
defaultReplyTo?: EmailData
|
|
18
22
|
subjectPrefix: string
|
|
19
23
|
realMail: boolean
|
|
20
|
-
defaultFrom:
|
|
24
|
+
defaultFrom: EmailData
|
|
21
25
|
apiKey: Redacted.Redacted<string>
|
|
22
26
|
}
|
|
23
|
-
export type EmailMsg = sgMail.MailDataRequired
|
|
24
27
|
export type EmailTemplateMsg = MailData & { templateId: string }
|
|
25
28
|
|
|
26
|
-
export type
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
export type EmailRecipients = EmailData | NonEmptyReadonlyArray<EmailData>
|
|
30
|
+
|
|
31
|
+
export type EmailMsgBase =
|
|
32
|
+
& Omit<MailData, "from" | "to" | "bcc" | "cc" | "content">
|
|
33
|
+
& {
|
|
34
|
+
to: EmailData | NonEmptyReadonlyArray<EmailData>
|
|
35
|
+
cc?: EmailData | NonEmptyReadonlyArray<EmailData>
|
|
36
|
+
bcc?: EmailData | NonEmptyReadonlyArray<EmailData>
|
|
37
|
+
from: EmailData
|
|
38
|
+
/**
|
|
39
|
+
* should multiple `to` addresess be considered multiple emails?
|
|
40
|
+
* defaults to `true`, not to leak email addresses
|
|
41
|
+
*/
|
|
42
|
+
isMultiple?: boolean
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export type EmailContent = { text: string } | { html: string } | { templateId: string } | {
|
|
46
|
+
content: NonEmptyReadonlyArray<MailContent>
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export type EmailMsg =
|
|
50
|
+
& EmailMsgBase
|
|
51
|
+
& EmailContent
|
|
52
|
+
|
|
53
|
+
export type EmailMsgOptionalFrom = Omit<EmailMsgBase, "from"> & Partial<Pick<EmailMsg, "from">> & EmailContent
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
2
|
-
import { makeMiddleware, makeRouter } from "@effect-app/infra/api/routing";
|
|
3
2
|
import { Rpc } from "@effect/rpc";
|
|
4
3
|
import { Context, Effect, FiberRef, Layer, S, Schedule } from "effect-app";
|
|
5
4
|
import { makeRpcClient, UnauthorizedError } from "effect-app/client";
|
|
6
5
|
import { HttpHeaders, HttpServerRequest } from "effect-app/http";
|
|
7
|
-
import {
|
|
6
|
+
import { makeMiddleware, makeRouter } from "../src/api/routing5.js";
|
|
8
7
|
const optimisticConcurrencySchedule = Schedule.once
|
|
9
8
|
&& Schedule.recurWhile((a) => a?._tag === "OptimisticConcurrencyException");
|
|
10
9
|
const middleware = makeMiddleware({
|
|
@@ -12,11 +11,11 @@ const middleware = makeMiddleware({
|
|
|
12
11
|
// helper to deal with nested generic lmitations
|
|
13
12
|
context: null,
|
|
14
13
|
execute: Effect.gen(function* () {
|
|
15
|
-
return (
|
|
14
|
+
return (schema, handler, moduleName) => (req) => Effect
|
|
16
15
|
.gen(function* () {
|
|
17
|
-
|
|
16
|
+
const headers = yield* Rpc.currentHeaders;
|
|
18
17
|
const ctx = Context.empty();
|
|
19
|
-
|
|
18
|
+
const config = "config" in schema ? schema.config : undefined;
|
|
20
19
|
// Check JWT
|
|
21
20
|
// TODO
|
|
22
21
|
// if (!fakeLogin && !request.allowAnonymous) {
|
|
@@ -93,11 +92,11 @@ export class SomethingService extends Effect.Service()("SomethingService", {
|
|
|
93
92
|
})
|
|
94
93
|
}) {
|
|
95
94
|
}
|
|
95
|
+
const c = a({ a: 5 });
|
|
96
96
|
export class SomethingRepo extends Effect.Service()("SomethingRepo", {
|
|
97
97
|
dependencies: [SomethingService.Default],
|
|
98
98
|
effect: Effect.gen(function* () {
|
|
99
99
|
const smth = yield* SomethingService;
|
|
100
|
-
console.log({ smth });
|
|
101
100
|
return {};
|
|
102
101
|
})
|
|
103
102
|
}) {
|
|
@@ -109,44 +108,22 @@ export class SomethingService2 extends Effect.Service()("SomethingService2", {
|
|
|
109
108
|
})
|
|
110
109
|
}) {
|
|
111
110
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
});
|
|
130
|
-
console.log({ routes });
|
|
131
|
-
});
|
|
132
|
-
it("router2", () => {
|
|
133
|
-
const routes2 = matchFor(Something)({
|
|
134
|
-
dependencies: [
|
|
135
|
-
SomethingRepo.Default,
|
|
136
|
-
SomethingService.Default,
|
|
137
|
-
SomethingService2.Default
|
|
138
|
-
],
|
|
139
|
-
effect: Effect.gen(function* () {
|
|
140
|
-
const repo = yield* SomethingRepo;
|
|
141
|
-
const smth = yield* SomethingService;
|
|
142
|
-
const smth2 = yield* SomethingService2;
|
|
143
|
-
console.log({ repo, smth, smth2 });
|
|
144
|
-
const { router2 } = matchFor(Something);
|
|
145
|
-
return router2
|
|
146
|
-
.GetSomething(() => Effect.void)
|
|
147
|
-
.GetSomethingElse(Effect.succeed("12"));
|
|
148
|
-
})
|
|
149
|
-
});
|
|
150
|
-
console.log({ routes2 });
|
|
111
|
+
const { handle, routes } = matchFor(Something);
|
|
112
|
+
const d = handle({
|
|
113
|
+
dependencies: [
|
|
114
|
+
SomethingRepo.Default,
|
|
115
|
+
SomethingService.Default
|
|
116
|
+
// SomethingService2.Default
|
|
117
|
+
],
|
|
118
|
+
effect: Effect.gen(function* () {
|
|
119
|
+
const repo = yield* SomethingRepo;
|
|
120
|
+
const smth = yield* SomethingService;
|
|
121
|
+
const smth2 = yield* SomethingService2;
|
|
122
|
+
const { GetSomething, GetSomethingElse } = routes;
|
|
123
|
+
return {
|
|
124
|
+
GetSomething: GetSomething(Effect.void),
|
|
125
|
+
GetSomethingElse: GetSomethingElse(Effect.succeed("12"))
|
|
126
|
+
};
|
|
127
|
+
})
|
|
151
128
|
});
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci50ZXN0IGNvcHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9jb250cm9sbGVyLnRlc3QgY29weS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrREFBK0Q7QUFDL0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUVqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDMUUsT0FBTyxFQUF5QixhQUFhLEVBQXNCLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDL0csT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFHbkUsTUFBTSw2QkFBNkIsR0FBRyxRQUFRLENBQUMsSUFBSTtPQUM5QyxRQUFRLENBQUMsVUFBVSxDQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxLQUFLLGdDQUFnQyxDQUFDLENBQUE7QUFXbEYsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDO0lBQ2hDLFVBQVUsRUFBRSxJQUF5QjtJQUNyQyxnREFBZ0Q7SUFDaEQsT0FBTyxFQUFFLElBQWtEO0lBQzNELE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUMzQixPQUFPLENBQ0wsTUFBcUMsRUFDckMsT0FBaUgsRUFDakgsVUFBbUIsRUFDbkIsRUFBRSxDQUNKLENBQ0UsR0FBUSxFQU1SLEVBQUUsQ0FDRixNQUFNO2FBQ0gsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUNaLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUE7WUFDekMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller5.test.d.ts","sourceRoot":"","sources":["../controller5.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAI/G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAK9D,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,MAAM,MAAM,GAAG;IAGnB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACvF,CAAA;AAmGD,eAAO,MAAQ,QAAQ,OAAE,QAAQ,KAAiC,CAAA;AAElE,MAAM,MAAM,aAAa,GAAG;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,iEAAiE;IACjE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC/B,CAAA;AACD,eAAO,MAAuB,GAAG;2CAvElB,MACZ,CA8BO,MA9BA;mBAEqB,MAC9B,CA2BS,GA3BL,KA2BK,MA3BM,CAAC,MAAM;mBACR,MAAK,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;;;;;;6CA0BhC,MAjBD,CAiBC,MAjBM;mBAiBN,MAhBI,CAgBJ,GAhBQ,KAAK,MAAM,CAAC,MAAM;;;;;;6CAUT,MAAM,CAAC,MAAM;mBAAuC,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,MACjG;;;;;;6CAciB,MAAM,CAAC,MAAM;;;;;6CAMF,MAAM,CAAC,MAAM;;;CA4B3C,CAAA;;;;;;;;;;AAEF,qBAAa,YAAa,SAAQ,iBAEX;CAAG;;;;;;;;;;AAE1B,qBAAa,gBAAiB,SAAQ,qBAEb;CAAG;;;;;AAI5B,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AASL,qBAAa,aAAc,SAAQ,kBAOjC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG;AAEL,eAAO,MAAM,MAAM,KAmBjB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller6.test.d.ts","sourceRoot":"","sources":["../controller6.test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"controller6.test.d.ts","sourceRoot":"","sources":["../controller6.test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC/G,OAAO,EAAe,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAOhE,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,MAAM,MAAM,GAAG;IAGnB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACvF,CAAA;AAmGD,eAAO,MAAQ,QAAQ;;;;;gBA0EqxD,MAAO,KAAK;;;;;;GA1E/xD,QAAQ;;;;;;iDA0E01F,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAk0D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAk0D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAk0D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAA6xD,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CA1EvmU,CAAA;AAElE,MAAM,MAAM,aAAa,GAAG;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,iEAAiE;IACjE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC/B,CAAA;AACD,eAAO,MAAuB,GAAG;yCAxEE,EAAG,MAAM,CAAC,MAAM;iBAgCzC,EAAA,MA9BD,CA8BC,GA9BG,GA8BH,EAAA,MA5BF,CA4BE,MA5BK;iBA4BL,EAAA,MA3BA,CAAC,GAAG,GAAE,EAAG,MAAM,CAAC,MAAM;;;;;;2CASkB,EAAG,MAAM,CAAC,MAAM;iBAkBxD,EAjBC,MAAM,CAAC,GAAG,GAAE,EAAG,MAAM,CAAC,MAAM;;;;;;2CAUtB,EAAE,MAAM,CAAC,MAAM;iBACA,EAAG,MAAM,CAAC,GAAG,GAAE,EAAG,MAAM,CAAC,MAAM;;;;;;2CAcjD,EAAA,MAAE,CAAC,MAAM;;;;;2CAMqC,EAAG,MAAM,CAAC,MACrE;;;;;CA4BC,CAAA;;;;;;;;;;AAEF,qBAAa,YAAa,SAAQ,iBAEX;CAAG;;;;;;;;;;AAE1B,qBAAa,gBAAiB,SAAQ,qBAEb;CAAG;;;;;AAI5B,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AASL,qBAAa,aAAc,SAAQ,kBAOjC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller7.test.d.ts","sourceRoot":"","sources":["../controller7.test.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"controller7.test.d.ts","sourceRoot":"","sources":["../controller7.test.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// packages/infra/vitest.config.ts
|
|
2
|
+
import { defineConfig } from "file:///Users/patrickroza/pj/effect-app/libs/node_modules/.pnpm/vite@5.2.6_@types+node@20.11.30/node_modules/vite/dist/node/index.js";
|
|
3
|
+
|
|
4
|
+
// vite.config.base.ts
|
|
5
|
+
import path from "path";
|
|
6
|
+
import fs from "fs";
|
|
7
|
+
var __vite_injected_original_dirname = "/Users/patrickroza/pj/effect-app/libs";
|
|
8
|
+
function makeConfig(dirName) {
|
|
9
|
+
const prefix = path.resolve(__vite_injected_original_dirname, "packages");
|
|
10
|
+
const packages = fs.readdirSync(prefix).map((f) => prefix + "/" + f).filter((f) => fs.lstatSync(f).isDirectory());
|
|
11
|
+
const cfg = {
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
13
|
+
//plugins: [autoImport],
|
|
14
|
+
test: {
|
|
15
|
+
include: ["./test/**/*.test.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
|
|
16
|
+
reporters: "verbose",
|
|
17
|
+
globals: true
|
|
18
|
+
},
|
|
19
|
+
resolve: {
|
|
20
|
+
alias: packages.reduce((acc, cur) => {
|
|
21
|
+
acc[JSON.parse(fs.readFileSync(cur + "/package.json", "utf-8")).name] = path.resolve(cur, cur.endsWith("core") ? "dist" : "src");
|
|
22
|
+
return acc;
|
|
23
|
+
}, {})
|
|
24
|
+
// "@effect-app/core/Prelude": path.join(__dirname, "packages/core/src/Prelude.code.ts")
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
console.log(cfg);
|
|
28
|
+
return cfg;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// packages/infra/vitest.config.ts
|
|
32
|
+
var __vite_injected_original_dirname2 = "/Users/patrickroza/pj/effect-app/libs/packages/infra";
|
|
33
|
+
var vitest_config_default = defineConfig(makeConfig(__vite_injected_original_dirname2));
|
|
34
|
+
export {
|
|
35
|
+
vitest_config_default as default
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsicGFja2FnZXMvaW5mcmEvdml0ZXN0LmNvbmZpZy50cyIsICJ2aXRlLmNvbmZpZy5iYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy9wYWNrYWdlcy9pbmZyYVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy9wYWNrYWdlcy9pbmZyYS92aXRlc3QuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvaW5mcmEvdml0ZXN0LmNvbmZpZy50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJ2aXRlXCJcbmltcG9ydCBtYWtlQ29uZmlnIGZyb20gXCIuLi8uLi92aXRlLmNvbmZpZy5iYXNlXCJcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKG1ha2VDb25maWcoX19kaXJuYW1lKSlcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlic1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy92aXRlLmNvbmZpZy5iYXNlLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvdml0ZS5jb25maWcuYmFzZS50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCBmcyBmcm9tIFwiZnNcIlxuaW1wb3J0IEF1dG9JbXBvcnQgZnJvbSBcInVucGx1Z2luLWF1dG8taW1wb3J0L3ZpdGVcIlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVzdC9jb25maWdcIlxuXG4vLyBjb25zdCBhdXRvSW1wb3J0ID0gQXV0b0ltcG9ydCh7XG4vLyAgIGR0czogXCIuL3Rlc3QvYXV0by1pbXBvcnRzLmQudHNcIixcbi8vICAgLy8gaW5jbHVkZTogW1xuLy8gICAvLyAgIC9cXC50ZXN0XFwuW3RqXXN4PyQvIC8vIC50cywgLnRzeCwgLmpzLCAuanN4XG4vLyAgIC8vIF0sXG4vLyAgIGltcG9ydHM6IFtcbi8vICAgICBcInZpdGVzdFwiXG4vLyAgIF1cbi8vIH0pXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1ha2VDb25maWcoZGlyTmFtZT86IHN0cmluZykge1xuICBjb25zdCBwcmVmaXggPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcInBhY2thZ2VzXCIpXG4gIGNvbnN0IHBhY2thZ2VzID0gZnMucmVhZGRpclN5bmMocHJlZml4KS5tYXAoZiA9PiBwcmVmaXggKyBcIi9cIiArIGYpLmZpbHRlcihmID0+IGZzLmxzdGF0U3luYyhmKS5pc0RpcmVjdG9yeSgpIClcbiAgY29uc3QgY2ZnID0ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG4gICAgLy9wbHVnaW5zOiBbYXV0b0ltcG9ydF0sXG4gICAgdGVzdDoge1xuICAgICAgaW5jbHVkZTogIFtcIi4vdGVzdC8qKi8qLnRlc3Que2pzLG1qcyxjanMsdHMsbXRzLGN0cyxqc3gsdHN4fVwiXSxcbiAgICAgIHJlcG9ydGVyczogXCJ2ZXJib3NlXCIsXG4gICAgICBnbG9iYWxzOiB0cnVlXG4gICAgfSxcbiAgICByZXNvbHZlOiB7XG4gICAgICBhbGlhczogcGFja2FnZXMucmVkdWNlKChhY2MsIGN1cikgPT4geyAvLyB3b3JrYXJvdW5kIGZvciAvUHJlbHVkZSBpc3N1ZVxuICAgICAgYWNjW0pTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGN1ciArIFwiL3BhY2thZ2UuanNvblwiLCBcInV0Zi04XCIpKS5uYW1lXSA9IHBhdGgucmVzb2x2ZShjdXIsIGN1ci5lbmRzV2l0aChcImNvcmVcIikgPyBcImRpc3RcIiA6IFwic3JjXCIpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSwgeyB9KSAvLyBcIkBlZmZlY3QtYXBwL2NvcmUvUHJlbHVkZVwiOiBwYXRoLmpvaW4oX19kaXJuYW1lLCBcInBhY2thZ2VzL2NvcmUvc3JjL1ByZWx1ZGUuY29kZS50c1wiKVxuICB9XG4gIH1cbiAgY29uc29sZS5sb2coY2ZnKVxuICByZXR1cm4gY2ZnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ0EsU0FBUyxvQkFBb0I7OztBQ0E3QixPQUFPLFVBQVU7QUFDakIsT0FBTyxRQUFRO0FBRmYsSUFBTSxtQ0FBbUM7QUFnQjFCLFNBQVIsV0FBNEIsU0FBa0I7QUFDbkQsUUFBTSxTQUFTLEtBQUssUUFBUSxrQ0FBVyxVQUFVO0FBQ2pELFFBQU0sV0FBVyxHQUFHLFlBQVksTUFBTSxFQUFFLElBQUksT0FBSyxTQUFTLE1BQU0sQ0FBQyxFQUFFLE9BQU8sT0FBSyxHQUFHLFVBQVUsQ0FBQyxFQUFFLFlBQVksQ0FBRTtBQUM3RyxRQUFNLE1BQU07QUFBQTtBQUFBO0FBQUEsSUFHVixNQUFNO0FBQUEsTUFDSixTQUFVLENBQUMsa0RBQWtEO0FBQUEsTUFDN0QsV0FBVztBQUFBLE1BQ1gsU0FBUztBQUFBLElBQ1g7QUFBQSxJQUNBLFNBQVM7QUFBQSxNQUNQLE9BQU8sU0FBUyxPQUFPLENBQUMsS0FBSyxRQUFRO0FBQ3JDLFlBQUksS0FBSyxNQUFNLEdBQUcsYUFBYSxNQUFNLGlCQUFpQixPQUFPLENBQUMsRUFBRSxJQUFJLElBQUksS0FBSyxRQUFRLEtBQUssSUFBSSxTQUFTLE1BQU0sSUFBSSxTQUFTLEtBQUs7QUFDL0gsZUFBTztBQUFBLE1BQ1QsR0FBRyxDQUFFLENBQUM7QUFBQTtBQUFBLElBQ1I7QUFBQSxFQUNBO0FBQ0EsVUFBUSxJQUFJLEdBQUc7QUFDZixTQUFPO0FBQ1Q7OztBRHBDQSxJQUFNQSxvQ0FBbUM7QUFJekMsSUFBTyx3QkFBUSxhQUFhLFdBQVdDLGlDQUFTLENBQUM7IiwKICAibmFtZXMiOiBbIl9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lIiwgIl9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lIl0KfQo=
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import type { RequestContext } from "@effect-app/infra/RequestContext";
|
|
2
|
-
import { Rpc } from "@effect/rpc";
|
|
3
|
-
import { Effect, Layer, S } from "effect-app";
|
|
4
|
-
import { type RPCContextMap, UnauthorizedError } from "effect-app/client";
|
|
5
|
-
import { HttpServerRequest } from "effect-app/http";
|
|
6
|
-
export interface CTX {
|
|
7
|
-
context: RequestContext;
|
|
8
|
-
}
|
|
9
|
-
export type CTXMap = {
|
|
10
|
-
requireRoles: RPCContextMap.Custom<"", never, typeof UnauthorizedError, Array<string>>;
|
|
11
|
-
};
|
|
12
|
-
export declare const matchAll: <T extends {
|
|
13
|
-
[key: string]: {
|
|
14
|
-
Router: {
|
|
15
|
-
router: Effect<import("@effect/platform/HttpRouter").HttpRouter<any, any>, any, any>;
|
|
16
|
-
};
|
|
17
|
-
routes: Layer.Layer<any, any, any>;
|
|
18
|
-
moduleName: string;
|
|
19
|
-
};
|
|
20
|
-
}, A, E, R>(handlers: T, requestLayer: Layer.Layer<A, E, R>) => {
|
|
21
|
-
layer: Layer.Layer<never, Layer.Layer.Error<T[keyof T]["routes"]>, Layer.Layer.Context<T[keyof T]["routes"]>>;
|
|
22
|
-
Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<"RootRouter", "RootRouter", Effect.Effect.Success<T[keyof T]["Router"]["router"]> extends infer T_1 ? T_1 extends T_1 & Effect.Effect.Success<T[keyof T]["Router"]["router"]> ? T_1 extends import("@effect/platform/HttpRouter").HttpRouter<infer E_1, any> ? E_1 : never : never : never, R | Exclude<Effect.Effect.Success<T[keyof T]["Router"]["router"]> extends infer T_2 ? T_2 extends T_2 & Effect.Effect.Success<T[keyof T]["Router"]["router"]> ? T_2 extends import("@effect/platform/HttpRouter").HttpRouter<any, infer R_1> ? R_1 : never : never : never, A>>;
|
|
23
|
-
}, matchFor: <const ModuleName extends string, const Rsc extends Record<string, any>>(rsc: Rsc & {
|
|
24
|
-
meta: {
|
|
25
|
-
moduleName: ModuleName;
|
|
26
|
-
};
|
|
27
|
-
}) => {
|
|
28
|
-
<const Make extends {
|
|
29
|
-
dependencies: import("effect-app").Array<Layer.Layer.Any>;
|
|
30
|
-
effect: Effect<{ [K_1 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K_1], any, any>; }, any, Make["strict"] extends false ? any : Make["dependencies"] extends infer T ? T extends Make["dependencies"] ? T extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k in keyof T]: Layer.Layer.Success<T[k]>; }[number] : never : never : never>;
|
|
31
|
-
strict?: boolean;
|
|
32
|
-
readonly ಠ_ಠ: never;
|
|
33
|
-
}>(make: Make): {
|
|
34
|
-
moduleName: ModuleName;
|
|
35
|
-
Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<[{ [K_2 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: Rpc.Rpc<Rsc[K_2], import("@effect-app/infra/api/routing")._R<ReturnType<import("@effect-app/infra/api/routing").MakeHandlers<Make, { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }>[K_2]["handler"]>>>; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]] extends [Rpc.Rpc<any, infer R>] ? R : never, import("@effect/platform/HttpRouter").HttpRouter.Provided>>;
|
|
36
|
-
routes: Layer.Layer<import("@effect-app/infra/api/routing").RouterShape<Rsc>, import("@effect-app/infra/api/routing").MakeErrors<Make> | (Make["dependencies"] extends infer T_1 ? T_1 extends Make["dependencies"] ? T_1 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_1 in keyof T_1]: Layer.Layer.Error<T_1[k_1]>; }[number] : never : never : never), (Make["dependencies"] extends infer T_2 ? T_2 extends Make["dependencies"] ? T_2 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_2 in keyof T_2]: Layer.Layer.Context<T_2[k_2]>; }[number] : never : never : never) | Exclude<import("@effect-app/infra/api/routing").MakeContext<Make>, Make["dependencies"] extends infer T_3 ? T_3 extends Make["dependencies"] ? T_3 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_3 in keyof T_3]: Layer.Layer.Success<T_3[k_3]>; }[number] : never : never : never>>;
|
|
37
|
-
};
|
|
38
|
-
<const Make extends {
|
|
39
|
-
dependencies: import("effect-app").Array<Layer.Layer.Any>;
|
|
40
|
-
effect: Effect<{ [K in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K], any, any>; }, any, Make["strict"] extends false ? any : Make["dependencies"] extends infer T ? T extends Make["dependencies"] ? T extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k in keyof T]: Layer.Layer.Success<T[k]>; }[number] : never : never : never>;
|
|
41
|
-
strict?: boolean;
|
|
42
|
-
readonly ಠ_ಠ: never;
|
|
43
|
-
}>(make: Make): {
|
|
44
|
-
moduleName: ModuleName;
|
|
45
|
-
Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<[{ [K_1 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: Rpc.Rpc<Rsc[K_1], import("@effect-app/infra/api/routing")._R<ReturnType<import("@effect-app/infra/api/routing").MakeHandlers<Make, { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }>[K_1]["handler"]>>>; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]] extends [Rpc.Rpc<any, infer R>] ? R : never, import("@effect/platform/HttpRouter").HttpRouter.Provided>>;
|
|
46
|
-
routes: Layer.Layer<import("@effect-app/infra/api/routing").RouterShape<Rsc>, import("@effect-app/infra/api/routing").MakeErrors<Make> | (Make["dependencies"] extends infer T_1 ? T_1 extends Make["dependencies"] ? T_1 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_1 in keyof T_1]: Layer.Layer.Error<T_1[k_1]>; }[number] : never : never : never), (Make["dependencies"] extends infer T_2 ? T_2 extends Make["dependencies"] ? T_2 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_2 in keyof T_2]: Layer.Layer.Context<T_2[k_2]>; }[number] : never : never : never) | Exclude<import("@effect-app/infra/api/routing").MakeContext<Make>, Make["dependencies"] extends infer T_3 ? T_3 extends Make["dependencies"] ? T_3 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_3 in keyof T_3]: Layer.Layer.Success<T_3[k_3]>; }[number] : never : never : never>>;
|
|
47
|
-
};
|
|
48
|
-
<const Make extends {
|
|
49
|
-
dependencies: import("effect-app").Array<Layer.Layer.Any>;
|
|
50
|
-
effect: Effect<{ [K in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K], any, any>; }, any, Make["strict"] extends false ? any : Make["dependencies"] extends infer T ? T extends Make["dependencies"] ? T extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k in keyof T]: Layer.Layer.Success<T[k]>; }[number] : never : never : never>;
|
|
51
|
-
strict?: boolean;
|
|
52
|
-
readonly ಠ_ಠ: never;
|
|
53
|
-
}>(make: Make): {
|
|
54
|
-
moduleName: ModuleName;
|
|
55
|
-
Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<[{ [K_1 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: Rpc.Rpc<Rsc[K_1], import("@effect-app/infra/api/routing")._R<ReturnType<import("@effect-app/infra/api/routing").MakeHandlers<Make, { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }>[K_1]["handler"]>>>; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]] extends [Rpc.Rpc<any, infer R>] ? R : never, import("@effect/platform/HttpRouter").HttpRouter.Provided>>;
|
|
56
|
-
routes: Layer.Layer<import("@effect-app/infra/api/routing").RouterShape<Rsc>, import("@effect-app/infra/api/routing").MakeErrors<Make> | (Make["dependencies"] extends infer T_1 ? T_1 extends Make["dependencies"] ? T_1 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_1 in keyof T_1]: Layer.Layer.Error<T_1[k_1]>; }[number] : never : never : never), (Make["dependencies"] extends infer T_2 ? T_2 extends Make["dependencies"] ? T_2 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_2 in keyof T_2]: Layer.Layer.Context<T_2[k_2]>; }[number] : never : never : never) | Exclude<import("@effect-app/infra/api/routing").MakeContext<Make>, Make["dependencies"] extends infer T_3 ? T_3 extends Make["dependencies"] ? T_3 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_3 in keyof T_3]: Layer.Layer.Success<T_3[k_3]>; }[number] : never : never : never>>;
|
|
57
|
-
};
|
|
58
|
-
<const Make extends {
|
|
59
|
-
dependencies: import("effect-app").Array<Layer.Layer.Any>;
|
|
60
|
-
effect: Effect<{ [K in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K], any, any>; }, any, Make["dependencies"] extends infer T ? T extends Make["dependencies"] ? T extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k in keyof T]: Layer.Layer.Success<T[k]>; }[number] : never : never : never>;
|
|
61
|
-
strict?: boolean;
|
|
62
|
-
readonly ಠ_ಠ: never;
|
|
63
|
-
}>(make: Make): {
|
|
64
|
-
moduleName: ModuleName;
|
|
65
|
-
Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<[{ [K_1 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: Rpc.Rpc<Rsc[K_1], import("@effect-app/infra/api/routing")._R<ReturnType<import("@effect-app/infra/api/routing").MakeHandlers<Make, { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }>[K_1]["handler"]>>>; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]] extends [Rpc.Rpc<any, infer R>] ? R : never, import("@effect/platform/HttpRouter").HttpRouter.Provided>>;
|
|
66
|
-
routes: Layer.Layer<import("@effect-app/infra/api/routing").RouterShape<Rsc>, import("@effect-app/infra/api/routing").MakeErrors<Make> | (Make["dependencies"] extends infer T_1 ? T_1 extends Make["dependencies"] ? T_1 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_1 in keyof T_1]: Layer.Layer.Error<T_1[k_1]>; }[number] : never : never : never), (Make["dependencies"] extends infer T_2 ? T_2 extends Make["dependencies"] ? T_2 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_2 in keyof T_2]: Layer.Layer.Context<T_2[k_2]>; }[number] : never : never : never) | Exclude<import("@effect-app/infra/api/routing").MakeContext<Make>, Make["dependencies"] extends infer T_3 ? T_3 extends Make["dependencies"] ? T_3 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_3 in keyof T_3]: Layer.Layer.Success<T_3[k_3]>; }[number] : never : never : never>>;
|
|
67
|
-
};
|
|
68
|
-
<const Make extends {
|
|
69
|
-
dependencies: import("effect-app").Array<Layer.Layer.Any>;
|
|
70
|
-
effect: Effect<{ [K in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K], any, any>; }, any, Make["dependencies"] extends infer T ? T extends Make["dependencies"] ? T extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k in keyof T]: Layer.Layer.Success<T[k]>; }[number] : never : never : never>;
|
|
71
|
-
strict?: boolean;
|
|
72
|
-
}>(make: Make): {
|
|
73
|
-
moduleName: ModuleName;
|
|
74
|
-
Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<[{ [K_1 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: Rpc.Rpc<Rsc[K_1], import("@effect-app/infra/api/routing")._R<ReturnType<import("@effect-app/infra/api/routing").MakeHandlers<Make, { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }>[K_1]["handler"]>>>; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]] extends [Rpc.Rpc<any, infer R>] ? R : never, import("@effect/platform/HttpRouter").HttpRouter.Provided>>;
|
|
75
|
-
routes: Layer.Layer<import("@effect-app/infra/api/routing").RouterShape<Rsc>, import("@effect-app/infra/api/routing").MakeErrors<Make> | (Make["dependencies"] extends infer T_1 ? T_1 extends Make["dependencies"] ? T_1 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_1 in keyof T_1]: Layer.Layer.Error<T_1[k_1]>; }[number] : never : never : never), (Make["dependencies"] extends infer T_2 ? T_2 extends Make["dependencies"] ? T_2 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_2 in keyof T_2]: Layer.Layer.Context<T_2[k_2]>; }[number] : never : never : never) | Exclude<import("@effect-app/infra/api/routing").MakeContext<Make>, Make["dependencies"] extends infer T_3 ? T_3 extends Make["dependencies"] ? T_3 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_3 in keyof T_3]: Layer.Layer.Success<T_3[k_3]>; }[number] : never : never : never>>;
|
|
76
|
-
};
|
|
77
|
-
<const Make extends {
|
|
78
|
-
dependencies: [...Make["dependencies"], ...Exclude<Effect.Effect.Context<Make["effect"]>, import("effect/Types").Contravariant.Type<import("@effect-app/infra/api/routing").MakeDeps<Make>[typeof Layer.LayerTypeId]["_ROut"]>> extends never ? [] : [Layer.Layer<Exclude<Effect.Effect.Context<Make["effect"]>, import("effect/Types").Contravariant.Type<import("@effect-app/infra/api/routing").MakeDeps<Make>[typeof Layer.LayerTypeId]["_ROut"]>>, never, never>]];
|
|
79
|
-
effect: Effect<{ [K in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K], any, any>; }, any, any>;
|
|
80
|
-
strict?: boolean;
|
|
81
|
-
}>(make: Make): {
|
|
82
|
-
moduleName: ModuleName;
|
|
83
|
-
Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, never>;
|
|
84
|
-
routes: any;
|
|
85
|
-
};
|
|
86
|
-
} & import("@effect-app/infra/api/routing").RouteMatcher<CTXMap, Rsc, HttpServerRequest.HttpServerRequest> & {
|
|
87
|
-
router: import("@effect-app/infra/api/routing").AddAction<{ [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }], {}>;
|
|
88
|
-
router2: { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; } extends infer T extends Record<string, import("@effect-app/infra/api/routing").AnyRequestModule> ? { [K in keyof T]: import("@effect-app/infra/api/routing").Method<{ [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }, K, "d", {}>; } : never;
|
|
89
|
-
};
|
|
90
|
-
export type RequestConfig = {
|
|
91
|
-
/** Disable authentication requirement */
|
|
92
|
-
allowAnonymous?: true;
|
|
93
|
-
/** Control the roles that are required to access the resource */
|
|
94
|
-
allowRoles?: readonly string[];
|
|
95
|
-
};
|
|
96
|
-
export declare const Req: <Self>() => {
|
|
97
|
-
<Tag extends string, Payload extends S.Struct.Fields, C extends {
|
|
98
|
-
success: S.Schema.Any | S.Struct.Fields;
|
|
99
|
-
failure: S.Schema.Any | S.Struct.Fields;
|
|
100
|
-
}>(tag: Tag, fields: Payload, config: RequestConfig & C): S.TaggedRequestClass<Self, Tag, {
|
|
101
|
-
readonly _tag: S.tag<Tag>;
|
|
102
|
-
} & Payload, (RequestConfig & C)["success"] extends infer T ? T extends (RequestConfig & C)["success"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never, ([((RequestConfig & C)["failure"] extends infer T_1 ? T_1 extends (RequestConfig & C)["failure"] ? T_1 extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T_1, []> : T_1 extends S.Schema.Any ? T_1 : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C>] extends [never] ? [] : [((RequestConfig & C)["failure"] extends infer T_1 ? T_1 extends (RequestConfig & C)["failure"] ? T_1 extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T_1, []> : T_1 extends S.Schema.Any ? T_1 : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C>]) extends infer T_2 ? T_2 extends ([((RequestConfig & C)["failure"] extends infer T_1 ? T_1 extends (RequestConfig & C)["failure"] ? T_1 extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T_1, []> : T_1 extends S.Schema.Any ? T_1 : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C>] extends [never] ? [] : [((RequestConfig & C)["failure"] extends infer T_1 ? T_1 extends (RequestConfig & C)["failure"] ? T_1 extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T_1, []> : T_1 extends S.Schema.Any ? T_1 : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C>]) ? T_2 extends readonly S.Schema.All[] ? S.Union<T_2> : typeof S.Never : never : never> & {
|
|
103
|
-
config: Omit<C, "success" | "failure">;
|
|
104
|
-
};
|
|
105
|
-
<Tag extends string, Payload_1 extends S.Struct.Fields, C_1 extends {
|
|
106
|
-
success: S.Schema.Any | S.Struct.Fields;
|
|
107
|
-
}>(tag: Tag, fields: Payload_1, config: RequestConfig & C_1): S.TaggedRequestClass<Self, Tag, {
|
|
108
|
-
readonly _tag: S.tag<Tag>;
|
|
109
|
-
} & Payload_1, (RequestConfig & C_1)["success"] extends infer T ? T extends (RequestConfig & C_1)["success"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never, ([import("effect-app/client").GetEffectError<CTXMap, C_1>] extends [never] ? [] : [import("effect-app/client").GetEffectError<CTXMap, C_1>]) extends infer T_1 ? T_1 extends ([import("effect-app/client").GetEffectError<CTXMap, C_1>] extends [never] ? [] : [import("effect-app/client").GetEffectError<CTXMap, C_1>]) ? T_1 extends readonly S.Schema.All[] ? S.Union<T_1> : typeof S.Never : never : never> & {
|
|
110
|
-
config: Omit<C_1, "success" | "failure">;
|
|
111
|
-
};
|
|
112
|
-
<Tag extends string, Payload_2 extends S.Struct.Fields, C_2 extends {
|
|
113
|
-
failure: S.Schema.Any | S.Struct.Fields;
|
|
114
|
-
}>(tag: Tag, fields: Payload_2, config: RequestConfig & C_2): S.TaggedRequestClass<Self, Tag, {
|
|
115
|
-
readonly _tag: S.tag<Tag>;
|
|
116
|
-
} & Payload_2, typeof S.Void, ([((RequestConfig & C_2)["failure"] extends infer T ? T extends (RequestConfig & C_2)["failure"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C_2>] extends [never] ? [] : [((RequestConfig & C_2)["failure"] extends infer T ? T extends (RequestConfig & C_2)["failure"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C_2>]) extends infer T_1 ? T_1 extends ([((RequestConfig & C_2)["failure"] extends infer T ? T extends (RequestConfig & C_2)["failure"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C_2>] extends [never] ? [] : [((RequestConfig & C_2)["failure"] extends infer T ? T extends (RequestConfig & C_2)["failure"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C_2>]) ? T_1 extends readonly S.Schema.All[] ? S.Union<T_1> : typeof S.Never : never : never> & {
|
|
117
|
-
config: Omit<C_2, "success" | "failure">;
|
|
118
|
-
};
|
|
119
|
-
<Tag extends string, Payload_3 extends S.Struct.Fields, C_3 extends Record<string, any>>(tag: Tag, fields: Payload_3, config: C_3 & RequestConfig): S.TaggedRequestClass<Self, Tag, {
|
|
120
|
-
readonly _tag: S.tag<Tag>;
|
|
121
|
-
} & Payload_3, typeof S.Void, ([import("effect-app/client").GetEffectError<CTXMap, C_3>] extends [never] ? [] : [import("effect-app/client").GetEffectError<CTXMap, C_3>]) extends infer T ? T extends ([import("effect-app/client").GetEffectError<CTXMap, C_3>] extends [never] ? [] : [import("effect-app/client").GetEffectError<CTXMap, C_3>]) ? T extends readonly S.Schema.All[] ? S.Union<T> : typeof S.Never : never : never> & {
|
|
122
|
-
config: Omit<C_3, "success" | "failure">;
|
|
123
|
-
};
|
|
124
|
-
<Tag extends string, Payload_4 extends S.Struct.Fields>(tag: Tag, fields: Payload_4): S.TaggedRequestClass<Self, Tag, {
|
|
125
|
-
readonly _tag: S.tag<Tag>;
|
|
126
|
-
} & Payload_4, typeof S.Void, never>;
|
|
127
|
-
};
|
|
128
|
-
declare const GetSomething_base: S.TaggedRequestClass<GetSomething, "GetSomething", {
|
|
129
|
-
readonly _tag: S.tag<"GetSomething">;
|
|
130
|
-
} & {
|
|
131
|
-
id: typeof S.String;
|
|
132
|
-
}, typeof S.Void, S.Union<[typeof UnauthorizedError]>> & {
|
|
133
|
-
config: Omit<{
|
|
134
|
-
success: typeof S.Void;
|
|
135
|
-
}, "success" | "failure">;
|
|
136
|
-
};
|
|
137
|
-
export declare class GetSomething extends GetSomething_base {
|
|
138
|
-
}
|
|
139
|
-
declare const GetSomethingElse_base: S.TaggedRequestClass<GetSomethingElse, "GetSomethingElse", {
|
|
140
|
-
readonly _tag: S.tag<"GetSomethingElse">;
|
|
141
|
-
} & {
|
|
142
|
-
id: typeof S.String;
|
|
143
|
-
}, typeof S.String, S.Union<[typeof UnauthorizedError]>> & {
|
|
144
|
-
config: Omit<{
|
|
145
|
-
success: typeof S.String;
|
|
146
|
-
}, "success" | "failure">;
|
|
147
|
-
};
|
|
148
|
-
export declare class GetSomethingElse extends GetSomethingElse_base {
|
|
149
|
-
}
|
|
150
|
-
declare const SomethingService_base: import("effect/Effect").Service.Class<SomethingService, "SomethingService", {
|
|
151
|
-
readonly dependencies: readonly [];
|
|
152
|
-
readonly effect: Effect.Effect<{}, never, never>;
|
|
153
|
-
}>;
|
|
154
|
-
export declare class SomethingService extends SomethingService_base {
|
|
155
|
-
}
|
|
156
|
-
declare const SomethingRepo_base: import("effect/Effect").Service.Class<SomethingRepo, "SomethingRepo", {
|
|
157
|
-
readonly dependencies: readonly [Layer.Layer<SomethingService, never, never>];
|
|
158
|
-
readonly effect: Effect.Effect<{}, never, SomethingService>;
|
|
159
|
-
}>;
|
|
160
|
-
export declare class SomethingRepo extends SomethingRepo_base {
|
|
161
|
-
}
|
|
162
|
-
declare const SomethingService2_base: import("effect/Effect").Service.Class<SomethingService2, "SomethingService2", {
|
|
163
|
-
readonly dependencies: readonly [];
|
|
164
|
-
readonly effect: Effect.Effect<{}, never, never>;
|
|
165
|
-
}>;
|
|
166
|
-
export declare class SomethingService2 extends SomethingService2_base {
|
|
167
|
-
}
|
|
168
|
-
export {};
|
|
169
|
-
//# sourceMappingURL=controller.test%20copy.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"controller.test copy.d.ts","sourceRoot":"","sources":["../controller.test copy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC/G,OAAO,EAAe,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAOhE,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,MAAM,MAAM,GAAG;IAGnB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACvF,CAAA;AAmGD,eAAO,MAAQ,QAAQ;;;;;sBA2DnB,KACH;;;;;;GA5DwB,QAAQ;;;;;;uDAmG8B,KAAK,CAAC,GAAG;;;;;;;;;;uDAAkyD,KAAK,CAAC,GAAG;;;;;;;;;;uDAAkyD,KAAK,CAAC,GAAG;;;;;;;;;;uDAAkyD,KAAK,CAAC,GAAG;;;;;;;;;;uDAA6vD,KAAK,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;CAnG7oO,CAAA;AAElE,MAAM,MAAM,aAAa,GAAG;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,iEAAiE;IACjE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC/B,CAAA;AACD,eAAO,MAAuB,GAAG;2CAxEM,MAAM,CAAC,MAAM;mBAgC1C,MA9BA,CAAC,GAAG,KA8BJ,MA5BD,CA4BC,MA5BM;mBA4BN,MA3BC,CAAE,GAAE,KAAM,MAAK,CAAC,MAAM;;;;;;6CASqB,MAAM,CAAC,MAAM;mBACtD,MAAK,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;;;;;;6CAUpB,MAAM,CAAC,MAAM;mBACG,MAAM,CAAC,GAAG,KAAK,MAAM,CAAE,MAAK;;;;;;6CAclD,MAAG,CAAC,MAAM;;;;;6CAMwC,MAAM,CAAC,MACrE;;;CA4BA,CAAA;;;;;;;;;;AAEF,qBAAa,YAAa,SAAQ,iBAEX;CAAG;;;;;;;;;;AAE1B,qBAAa,gBAAiB,SAAQ,qBAEb;CAAG;;;;;AAI5B,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AASL,qBAAa,aAAc,SAAQ,kBAOjC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG"}
|