@growth-labs/mailer 0.6.0 → 0.6.3
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/README.md +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +12 -1
- package/src/routes/preferences.astro +2 -2
package/README.md
CHANGED
|
@@ -14,6 +14,10 @@ Use `@growth-labs/mailer` (this package) for newsletter and campaign
|
|
|
14
14
|
workflows. Use `@growth-labs/email` for transactional one-off sends.
|
|
15
15
|
See the `@growth-labs/email` README for the full distinction.
|
|
16
16
|
|
|
17
|
+
Both integrations register the package's existing virtual config types through
|
|
18
|
+
Astro's `astro:config:done` type injection. No consumer-owned declaration is
|
|
19
|
+
needed for `virtual:growth-labs/mailer/config`; runtime route selection is unchanged.
|
|
20
|
+
|
|
17
21
|
## Config
|
|
18
22
|
|
|
19
23
|
```typescript
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,aAAa,EAAyB,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,aAAa,EAAyB,MAAM,cAAc,CAAA;AA4BjG,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,WAAW,EAAE,aAAa,GAAG,gBAAgB,CAkE3E;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,uBAAuB,GAAG,gBAAgB,CAWvF;AAED,YAAY,EACX,uBAAuB,EACvB,aAAa,EACb,+BAA+B,EAC/B,qBAAqB,GACrB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACjF,YAAY,EACX,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,YAAY,GACZ,MAAM,YAAY,CAAA;AACnB,YAAY,EACX,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACnB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EACN,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,kBAAkB,GAClB,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GACjB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -6,17 +6,24 @@ function isSourceEntrypoint() {
|
|
|
6
6
|
}
|
|
7
7
|
const ENTRYPOINT_EXTENSION = isSourceEntrypoint() ? '.ts' : '.js';
|
|
8
8
|
function resolveEntrypoint(path) {
|
|
9
|
-
if (path.endsWith('.astro')) {
|
|
9
|
+
if (path.endsWith('.astro') || path.endsWith('.d.ts')) {
|
|
10
10
|
const sourcePath = isSourceEntrypoint() ? path : `../src/${path.replace(/^\.\//, '')}`;
|
|
11
11
|
return fileURLToPath(new URL(sourcePath, import.meta.url));
|
|
12
12
|
}
|
|
13
13
|
return fileURLToPath(new URL(`${path}${ENTRYPOINT_EXTENSION}`, import.meta.url));
|
|
14
14
|
}
|
|
15
|
+
const injectMailerTypes = ({ injectTypes, }) => {
|
|
16
|
+
injectTypes({
|
|
17
|
+
filename: 'config.d.ts',
|
|
18
|
+
content: `/// <reference path="${resolveEntrypoint('./virtual.d.ts')}" />`,
|
|
19
|
+
});
|
|
20
|
+
};
|
|
15
21
|
export default function mailer(userOptions) {
|
|
16
22
|
const options = mailerOptionsSchema.parse(userOptions);
|
|
17
23
|
return {
|
|
18
24
|
name: '@growth-labs/mailer',
|
|
19
25
|
hooks: {
|
|
26
|
+
'astro:config:done': injectMailerTypes,
|
|
20
27
|
'astro:config:setup': ({ injectRoute, addMiddleware, updateConfig, config: astroConfig }) => {
|
|
21
28
|
// Auto-detect @growth-labs/analytics
|
|
22
29
|
const hasAnalytics = astroConfig.integrations.some((i) => i.name === '@growth-labs/analytics');
|
|
@@ -79,6 +86,7 @@ export function mailerComponents(userOptions) {
|
|
|
79
86
|
return {
|
|
80
87
|
name: '@growth-labs/mailer/components',
|
|
81
88
|
hooks: {
|
|
89
|
+
'astro:config:done': injectMailerTypes,
|
|
82
90
|
'astro:config:setup': ({ updateConfig }) => {
|
|
83
91
|
updateConfig({ vite: { plugins: [growthLabsMailerPlugin(options)] } });
|
|
84
92
|
},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAGxC,OAAO,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAEzD,SAAS,kBAAkB;IAC1B,OAAO,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC9E,CAAC;AAED,MAAM,oBAAoB,GAAG,kBAAkB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;AAEjE,SAAS,iBAAiB,CAAC,IAAY;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -11,7 +11,7 @@ function isSourceEntrypoint(): boolean {
|
|
|
11
11
|
const ENTRYPOINT_EXTENSION = isSourceEntrypoint() ? '.ts' : '.js'
|
|
12
12
|
|
|
13
13
|
function resolveEntrypoint(path: string): string {
|
|
14
|
-
if (path.endsWith('.astro')) {
|
|
14
|
+
if (path.endsWith('.astro') || path.endsWith('.d.ts')) {
|
|
15
15
|
const sourcePath = isSourceEntrypoint() ? path : `../src/${path.replace(/^\.\//, '')}`
|
|
16
16
|
return fileURLToPath(new URL(sourcePath, import.meta.url))
|
|
17
17
|
}
|
|
@@ -19,12 +19,22 @@ function resolveEntrypoint(path: string): string {
|
|
|
19
19
|
return fileURLToPath(new URL(`${path}${ENTRYPOINT_EXTENSION}`, import.meta.url))
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
const injectMailerTypes: NonNullable<AstroIntegration['hooks']['astro:config:done']> = ({
|
|
23
|
+
injectTypes,
|
|
24
|
+
}) => {
|
|
25
|
+
injectTypes({
|
|
26
|
+
filename: 'config.d.ts',
|
|
27
|
+
content: `/// <reference path="${resolveEntrypoint('./virtual.d.ts')}" />`,
|
|
28
|
+
})
|
|
29
|
+
}
|
|
30
|
+
|
|
22
31
|
export default function mailer(userOptions: MailerOptions): AstroIntegration {
|
|
23
32
|
const options = mailerOptionsSchema.parse(userOptions) as ResolvedMailerOptions
|
|
24
33
|
|
|
25
34
|
return {
|
|
26
35
|
name: '@growth-labs/mailer',
|
|
27
36
|
hooks: {
|
|
37
|
+
'astro:config:done': injectMailerTypes,
|
|
28
38
|
'astro:config:setup': ({ injectRoute, addMiddleware, updateConfig, config: astroConfig }) => {
|
|
29
39
|
// Auto-detect @growth-labs/analytics
|
|
30
40
|
const hasAnalytics = astroConfig.integrations.some(
|
|
@@ -92,6 +102,7 @@ export function mailerComponents(userOptions: MailerComponentsOptions): AstroInt
|
|
|
92
102
|
return {
|
|
93
103
|
name: '@growth-labs/mailer/components',
|
|
94
104
|
hooks: {
|
|
105
|
+
'astro:config:done': injectMailerTypes,
|
|
95
106
|
'astro:config:setup': ({ updateConfig }) => {
|
|
96
107
|
updateConfig({ vite: { plugins: [growthLabsMailerPlugin(options)] } })
|
|
97
108
|
},
|
|
@@ -67,8 +67,8 @@ if (!d1) {
|
|
|
67
67
|
}
|
|
68
68
|
const db = drizzle(d1);
|
|
69
69
|
|
|
70
|
-
//
|
|
71
|
-
if (
|
|
70
|
+
// Form data is parsed only for POST requests.
|
|
71
|
+
if (formData) {
|
|
72
72
|
const action = formData.get("action");
|
|
73
73
|
|
|
74
74
|
if (action === "unsubscribe") {
|