@growth-labs/mailer 0.4.4 → 0.4.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAyB,MAAM,cAAc,CAAA;AAIxE,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,WAAW,EAAE,aAAa,GAAG,gBAAgB,CA0D3E;AAED,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAExE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,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,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"}
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,aAAa,EAAyB,MAAM,cAAc,CAAA;AAiBxE,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,WAAW,EAAE,aAAa,GAAG,gBAAgB,CA0D3E;AAED,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAExE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,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,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
@@ -1,5 +1,16 @@
1
+ import { fileURLToPath } from 'node:url';
1
2
  import { mailerOptionsSchema } from './options.js';
2
3
  import { growthLabsMailerPlugin } from './vite-plugin.js';
4
+ const ENTRYPOINT_EXTENSION = import.meta.url.endsWith('.ts') ? '.ts' : '.js';
5
+ function resolveEntrypoint(path) {
6
+ if (path.endsWith('.astro')) {
7
+ const sourcePath = import.meta.url.endsWith('.ts')
8
+ ? path
9
+ : `../src/${path.replace(/^\.\//, '')}`;
10
+ return fileURLToPath(new URL(sourcePath, import.meta.url));
11
+ }
12
+ return fileURLToPath(new URL(`${path}${ENTRYPOINT_EXTENSION}`, import.meta.url));
13
+ }
3
14
  export default function mailer(userOptions) {
4
15
  const options = mailerOptionsSchema.parse(userOptions);
5
16
  return {
@@ -19,35 +30,35 @@ export default function mailer(userOptions) {
19
30
  // Inject routes
20
31
  injectRoute({
21
32
  pattern: options.subscribePath,
22
- entrypoint: '@growth-labs/mailer/routes/subscribe',
33
+ entrypoint: resolveEntrypoint('./routes/subscribe'),
23
34
  });
24
35
  injectRoute({
25
36
  pattern: options.confirmPath,
26
- entrypoint: '@growth-labs/mailer/routes/confirm',
37
+ entrypoint: resolveEntrypoint('./routes/confirm'),
27
38
  });
28
39
  injectRoute({
29
40
  pattern: options.unsubscribePath,
30
- entrypoint: '@growth-labs/mailer/routes/unsubscribe',
41
+ entrypoint: resolveEntrypoint('./routes/unsubscribe'),
31
42
  });
32
43
  injectRoute({
33
44
  pattern: options.preferencesPath,
34
- entrypoint: '@growth-labs/mailer/routes/preferences',
45
+ entrypoint: resolveEntrypoint('./routes/preferences.astro'),
35
46
  });
36
47
  injectRoute({
37
48
  pattern: options.webhookPath,
38
- entrypoint: '@growth-labs/mailer/routes/webhook',
49
+ entrypoint: resolveEntrypoint('./routes/webhook'),
39
50
  });
40
51
  injectRoute({
41
52
  pattern: `${options.trackOpenPath}/[trackingId]`,
42
- entrypoint: '@growth-labs/mailer/routes/track-open',
53
+ entrypoint: resolveEntrypoint('./routes/track-open'),
43
54
  });
44
55
  injectRoute({
45
56
  pattern: `${options.trackClickPath}/[trackingId]`,
46
- entrypoint: '@growth-labs/mailer/routes/track-click',
57
+ entrypoint: resolveEntrypoint('./routes/track-click'),
47
58
  });
48
59
  // Add tracking middleware
49
60
  addMiddleware({
50
- entrypoint: '@growth-labs/mailer/middleware/tracking',
61
+ entrypoint: resolveEntrypoint('./middleware/tracking'),
51
62
  order: 'post',
52
63
  });
53
64
  },
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAEzD,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,WAA0B;IACxD,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAA0B,CAAA;IAE/E,OAAO;QACN,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE;YACN,oBAAoB,EAAE,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;gBAC3F,qCAAqC;gBACrC,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,wBAAwB,CAC1C,CAAA;gBACD,IAAI,YAAY,EAAE,CAAC;oBAClB,CAAC;oBAAC,OAAmC,CAAC,gBAAgB,GAAG,IAAI,CAAA;gBAC9D,CAAC;gBAED,yCAAyC;gBACzC,YAAY,CAAC;oBACZ,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,EAAE;iBACpD,CAAC,CAAA;gBAEF,gBAAgB;gBAChB,WAAW,CAAC;oBACX,OAAO,EAAE,OAAO,CAAC,aAAa;oBAC9B,UAAU,EAAE,sCAAsC;iBAClD,CAAC,CAAA;gBACF,WAAW,CAAC;oBACX,OAAO,EAAE,OAAO,CAAC,WAAW;oBAC5B,UAAU,EAAE,oCAAoC;iBAChD,CAAC,CAAA;gBACF,WAAW,CAAC;oBACX,OAAO,EAAE,OAAO,CAAC,eAAe;oBAChC,UAAU,EAAE,wCAAwC;iBACpD,CAAC,CAAA;gBACF,WAAW,CAAC;oBACX,OAAO,EAAE,OAAO,CAAC,eAAe;oBAChC,UAAU,EAAE,wCAAwC;iBACpD,CAAC,CAAA;gBACF,WAAW,CAAC;oBACX,OAAO,EAAE,OAAO,CAAC,WAAW;oBAC5B,UAAU,EAAE,oCAAoC;iBAChD,CAAC,CAAA;gBACF,WAAW,CAAC;oBACX,OAAO,EAAE,GAAG,OAAO,CAAC,aAAa,eAAe;oBAChD,UAAU,EAAE,uCAAuC;iBACnD,CAAC,CAAA;gBACF,WAAW,CAAC;oBACX,OAAO,EAAE,GAAG,OAAO,CAAC,cAAc,eAAe;oBACjD,UAAU,EAAE,wCAAwC;iBACpD,CAAC,CAAA;gBAEF,0BAA0B;gBAC1B,aAAa,CAAC;oBACb,UAAU,EAAE,yCAAyC;oBACrD,KAAK,EAAE,MAAM;iBACb,CAAC,CAAA;YACH,CAAC;SACD;KACD,CAAA;AACF,CAAC;AAGD,8BAA8B;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAkBlD,OAAO,EACN,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,kBAAkB,GAClB,MAAM,uBAAuB,CAAA;AAE9B,yCAAyC;AACzC,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@growth-labs/mailer",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "type": "module",
5
5
  "types": "./dist/index.d.ts",
6
6
  "exports": {
@@ -58,8 +58,12 @@
58
58
  },
59
59
  "files": [
60
60
  "dist",
61
+ "src/**/*.ts",
62
+ "src/**/*.astro",
63
+ "src/**/*.css",
64
+ "src/**/*.md",
65
+ "src/**/*.sql",
61
66
  "migrations",
62
- "src",
63
67
  "README.md"
64
68
  ],
65
69
  "publishConfig": {
@@ -67,7 +71,7 @@
67
71
  "registry": "https://registry.npmjs.org/"
68
72
  },
69
73
  "peerDependencies": {
70
- "astro": "^6.0.0"
74
+ "astro": "^6.1.10"
71
75
  },
72
76
  "peerDependenciesMeta": {
73
77
  "@growth-labs/analytics": {
@@ -75,16 +79,16 @@
75
79
  }
76
80
  },
77
81
  "dependencies": {
78
- "drizzle-orm": "^0.38.0",
82
+ "drizzle-orm": "^0.45.2",
79
83
  "ulidx": "^2.4.0",
80
84
  "zod": "^3.23.0"
81
85
  },
82
86
  "devDependencies": {
83
87
  "@cloudflare/workers-types": "^4.20260402.1",
84
- "astro": "^6.0.0",
88
+ "astro": "^6.1.10",
85
89
  "drizzle-kit": "^0.30.0",
86
90
  "typescript": "^5.7.0",
87
- "vite": "^7.0.0",
91
+ "vite": "^7.3.2",
88
92
  "vitest": "^3.0.0"
89
93
  },
90
94
  "scripts": {
package/src/index.ts CHANGED
@@ -1,8 +1,22 @@
1
+ import { fileURLToPath } from 'node:url'
1
2
  import type { AstroIntegration } from 'astro'
2
3
  import type { MailerOptions, ResolvedMailerOptions } from './options.js'
3
4
  import { mailerOptionsSchema } from './options.js'
4
5
  import { growthLabsMailerPlugin } from './vite-plugin.js'
5
6
 
7
+ const ENTRYPOINT_EXTENSION = import.meta.url.endsWith('.ts') ? '.ts' : '.js'
8
+
9
+ function resolveEntrypoint(path: string): string {
10
+ if (path.endsWith('.astro')) {
11
+ const sourcePath = import.meta.url.endsWith('.ts')
12
+ ? path
13
+ : `../src/${path.replace(/^\.\//, '')}`
14
+ return fileURLToPath(new URL(sourcePath, import.meta.url))
15
+ }
16
+
17
+ return fileURLToPath(new URL(`${path}${ENTRYPOINT_EXTENSION}`, import.meta.url))
18
+ }
19
+
6
20
  export default function mailer(userOptions: MailerOptions): AstroIntegration {
7
21
  const options = mailerOptionsSchema.parse(userOptions) as ResolvedMailerOptions
8
22
 
@@ -26,36 +40,36 @@ export default function mailer(userOptions: MailerOptions): AstroIntegration {
26
40
  // Inject routes
27
41
  injectRoute({
28
42
  pattern: options.subscribePath,
29
- entrypoint: '@growth-labs/mailer/routes/subscribe',
43
+ entrypoint: resolveEntrypoint('./routes/subscribe'),
30
44
  })
31
45
  injectRoute({
32
46
  pattern: options.confirmPath,
33
- entrypoint: '@growth-labs/mailer/routes/confirm',
47
+ entrypoint: resolveEntrypoint('./routes/confirm'),
34
48
  })
35
49
  injectRoute({
36
50
  pattern: options.unsubscribePath,
37
- entrypoint: '@growth-labs/mailer/routes/unsubscribe',
51
+ entrypoint: resolveEntrypoint('./routes/unsubscribe'),
38
52
  })
39
53
  injectRoute({
40
54
  pattern: options.preferencesPath,
41
- entrypoint: '@growth-labs/mailer/routes/preferences',
55
+ entrypoint: resolveEntrypoint('./routes/preferences.astro'),
42
56
  })
43
57
  injectRoute({
44
58
  pattern: options.webhookPath,
45
- entrypoint: '@growth-labs/mailer/routes/webhook',
59
+ entrypoint: resolveEntrypoint('./routes/webhook'),
46
60
  })
47
61
  injectRoute({
48
62
  pattern: `${options.trackOpenPath}/[trackingId]`,
49
- entrypoint: '@growth-labs/mailer/routes/track-open',
63
+ entrypoint: resolveEntrypoint('./routes/track-open'),
50
64
  })
51
65
  injectRoute({
52
66
  pattern: `${options.trackClickPath}/[trackingId]`,
53
- entrypoint: '@growth-labs/mailer/routes/track-click',
67
+ entrypoint: resolveEntrypoint('./routes/track-click'),
54
68
  })
55
69
 
56
70
  // Add tracking middleware
57
71
  addMiddleware({
58
- entrypoint: '@growth-labs/mailer/middleware/tracking',
72
+ entrypoint: resolveEntrypoint('./middleware/tracking'),
59
73
  order: 'post',
60
74
  })
61
75
  },