@igniter-js/mail 0.1.0 → 0.1.1

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.
@@ -0,0 +1,59 @@
1
+ import * as _igniter_js_telemetry from '@igniter-js/telemetry';
2
+ import { z } from 'zod';
3
+
4
+ /**
5
+ * Telemetry event definitions for `@igniter-js/mail`.
6
+ */
7
+ declare const IgniterMailTelemetryEvents: _igniter_js_telemetry.TelemetryEventsDescriptor<"igniter.mail", {
8
+ send: {
9
+ started: z.ZodObject<{
10
+ 'mail.to': z.ZodString;
11
+ 'mail.template': z.ZodString;
12
+ 'mail.subject': z.ZodOptional<z.ZodString>;
13
+ }, z.core.$strip>;
14
+ } & {
15
+ success: z.ZodObject<{
16
+ 'mail.to': z.ZodString;
17
+ 'mail.template': z.ZodString;
18
+ 'mail.subject': z.ZodOptional<z.ZodString>;
19
+ 'mail.duration_ms': z.ZodOptional<z.ZodNumber>;
20
+ }, z.core.$strip>;
21
+ } & {
22
+ error: z.ZodObject<{
23
+ 'mail.to': z.ZodString;
24
+ 'mail.template': z.ZodString;
25
+ 'mail.subject': z.ZodOptional<z.ZodString>;
26
+ 'mail.error.code': z.ZodString;
27
+ 'mail.error.message': z.ZodString;
28
+ 'mail.duration_ms': z.ZodOptional<z.ZodNumber>;
29
+ }, z.core.$strip>;
30
+ };
31
+ } & {
32
+ schedule: {
33
+ started: z.ZodObject<{
34
+ 'mail.to': z.ZodString;
35
+ 'mail.template': z.ZodString;
36
+ 'mail.scheduled_at': z.ZodString;
37
+ 'mail.delay_ms': z.ZodNumber;
38
+ }, z.core.$strip>;
39
+ } & {
40
+ success: z.ZodObject<{
41
+ 'mail.to': z.ZodString;
42
+ 'mail.template': z.ZodString;
43
+ 'mail.scheduled_at': z.ZodString;
44
+ 'mail.delay_ms': z.ZodNumber;
45
+ 'mail.queue_id': z.ZodOptional<z.ZodString>;
46
+ }, z.core.$strip>;
47
+ } & {
48
+ error: z.ZodObject<{
49
+ 'mail.to': z.ZodString;
50
+ 'mail.template': z.ZodString;
51
+ 'mail.scheduled_at': z.ZodString;
52
+ 'mail.error.code': z.ZodString;
53
+ 'mail.error.message': z.ZodString;
54
+ }, z.core.$strip>;
55
+ };
56
+ }>;
57
+ type IgniterMailTelemetryEvents = typeof IgniterMailTelemetryEvents;
58
+
59
+ export { IgniterMailTelemetryEvents };
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ var telemetry = require('@igniter-js/telemetry');
4
+ var zod = require('zod');
5
+
6
+ // src/telemetry/index.ts
7
+ var TELEMETRY_NAMESPACE = "igniter.mail";
8
+ var IgniterMailTelemetryEvents = telemetry.IgniterTelemetryEvents.namespace(
9
+ TELEMETRY_NAMESPACE
10
+ ).group(
11
+ "send",
12
+ (g) => g.event(
13
+ "started",
14
+ zod.z.object({
15
+ "mail.to": zod.z.string(),
16
+ "mail.template": zod.z.string(),
17
+ "mail.subject": zod.z.string().optional()
18
+ })
19
+ ).event(
20
+ "success",
21
+ zod.z.object({
22
+ "mail.to": zod.z.string(),
23
+ "mail.template": zod.z.string(),
24
+ "mail.subject": zod.z.string().optional(),
25
+ "mail.duration_ms": zod.z.number().optional()
26
+ })
27
+ ).event(
28
+ "error",
29
+ zod.z.object({
30
+ "mail.to": zod.z.string(),
31
+ "mail.template": zod.z.string(),
32
+ "mail.subject": zod.z.string().optional(),
33
+ "mail.error.code": zod.z.string(),
34
+ "mail.error.message": zod.z.string(),
35
+ "mail.duration_ms": zod.z.number().optional()
36
+ })
37
+ )
38
+ ).group(
39
+ "schedule",
40
+ (g) => g.event(
41
+ "started",
42
+ zod.z.object({
43
+ "mail.to": zod.z.string(),
44
+ "mail.template": zod.z.string(),
45
+ "mail.scheduled_at": zod.z.string(),
46
+ "mail.delay_ms": zod.z.number()
47
+ })
48
+ ).event(
49
+ "success",
50
+ zod.z.object({
51
+ "mail.to": zod.z.string(),
52
+ "mail.template": zod.z.string(),
53
+ "mail.scheduled_at": zod.z.string(),
54
+ "mail.delay_ms": zod.z.number(),
55
+ "mail.queue_id": zod.z.string().optional()
56
+ })
57
+ ).event(
58
+ "error",
59
+ zod.z.object({
60
+ "mail.to": zod.z.string(),
61
+ "mail.template": zod.z.string(),
62
+ "mail.scheduled_at": zod.z.string(),
63
+ "mail.error.code": zod.z.string(),
64
+ "mail.error.message": zod.z.string()
65
+ })
66
+ )
67
+ ).build();
68
+
69
+ exports.IgniterMailTelemetryEvents = IgniterMailTelemetryEvents;
70
+ //# sourceMappingURL=index.js.map
71
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/telemetry/index.ts"],"names":["IgniterTelemetryEvents","z"],"mappings":";;;;;;AAYA,IAAM,mBAAA,GAAsB,cAAA;AAKrB,IAAM,6BAA6BA,gCAAA,CAAuB,SAAA;AAAA,EAC/D;AACF,CAAA,CACG,KAAA;AAAA,EAAM,MAAA;AAAA,EAAQ,CAAC,MACd,CAAA,CACG,KAAA;AAAA,IACC,SAAA;AAAA,IACAC,MAAE,MAAA,CAAO;AAAA,MACP,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,MACpB,eAAA,EAAiBA,MAAE,MAAA,EAAO;AAAA,MAC1B,cAAA,EAAgBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KACrC;AAAA,GACH,CACC,KAAA;AAAA,IACC,SAAA;AAAA,IACAA,MAAE,MAAA,CAAO;AAAA,MACP,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,MACpB,eAAA,EAAiBA,MAAE,MAAA,EAAO;AAAA,MAC1B,cAAA,EAAgBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MACpC,kBAAA,EAAoBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KACzC;AAAA,GACH,CACC,KAAA;AAAA,IACC,OAAA;AAAA,IACAA,MAAE,MAAA,CAAO;AAAA,MACP,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,MACpB,eAAA,EAAiBA,MAAE,MAAA,EAAO;AAAA,MAC1B,cAAA,EAAgBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MACpC,iBAAA,EAAmBA,MAAE,MAAA,EAAO;AAAA,MAC5B,oBAAA,EAAsBA,MAAE,MAAA,EAAO;AAAA,MAC/B,kBAAA,EAAoBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KACzC;AAAA;AAEP,CAAA,CACC,KAAA;AAAA,EAAM,UAAA;AAAA,EAAY,CAAC,MAClB,CAAA,CACG,KAAA;AAAA,IACC,SAAA;AAAA,IACAA,MAAE,MAAA,CAAO;AAAA,MACP,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,MACpB,eAAA,EAAiBA,MAAE,MAAA,EAAO;AAAA,MAC1B,mBAAA,EAAqBA,MAAE,MAAA,EAAO;AAAA,MAC9B,eAAA,EAAiBA,MAAE,MAAA;AAAO,KAC3B;AAAA,GACH,CACC,KAAA;AAAA,IACC,SAAA;AAAA,IACAA,MAAE,MAAA,CAAO;AAAA,MACP,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,MACpB,eAAA,EAAiBA,MAAE,MAAA,EAAO;AAAA,MAC1B,mBAAA,EAAqBA,MAAE,MAAA,EAAO;AAAA,MAC9B,eAAA,EAAiBA,MAAE,MAAA,EAAO;AAAA,MAC1B,eAAA,EAAiBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KACtC;AAAA,GACH,CACC,KAAA;AAAA,IACC,OAAA;AAAA,IACAA,MAAE,MAAA,CAAO;AAAA,MACP,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,MACpB,eAAA,EAAiBA,MAAE,MAAA,EAAO;AAAA,MAC1B,mBAAA,EAAqBA,MAAE,MAAA,EAAO;AAAA,MAC9B,iBAAA,EAAmBA,MAAE,MAAA,EAAO;AAAA,MAC5B,oBAAA,EAAsBA,MAAE,MAAA;AAAO,KAChC;AAAA;AAEP,CAAA,CACC,KAAA","file":"index.js","sourcesContent":["/**\n * @fileoverview Telemetry events for @igniter-js/mail\n * @module @igniter-js/mail/telemetry\n */\n\nimport { IgniterTelemetryEvents } from '@igniter-js/telemetry'\nimport { z } from 'zod'\n\n/**\n * Telemetry namespace for mail.\n * All events are prefixed with `igniter.mail.`\n */\nconst TELEMETRY_NAMESPACE = 'igniter.mail'\n\n/**\n * Telemetry event definitions for `@igniter-js/mail`.\n */\nexport const IgniterMailTelemetryEvents = IgniterTelemetryEvents.namespace(\n TELEMETRY_NAMESPACE,\n)\n .group('send', (g) =>\n g\n .event(\n 'started',\n z.object({\n 'mail.to': z.string(),\n 'mail.template': z.string(),\n 'mail.subject': z.string().optional(),\n }),\n )\n .event(\n 'success',\n z.object({\n 'mail.to': z.string(),\n 'mail.template': z.string(),\n 'mail.subject': z.string().optional(),\n 'mail.duration_ms': z.number().optional(),\n }),\n )\n .event(\n 'error',\n z.object({\n 'mail.to': z.string(),\n 'mail.template': z.string(),\n 'mail.subject': z.string().optional(),\n 'mail.error.code': z.string(),\n 'mail.error.message': z.string(),\n 'mail.duration_ms': z.number().optional(),\n }),\n ),\n )\n .group('schedule', (g) =>\n g\n .event(\n 'started',\n z.object({\n 'mail.to': z.string(),\n 'mail.template': z.string(),\n 'mail.scheduled_at': z.string(),\n 'mail.delay_ms': z.number(),\n }),\n )\n .event(\n 'success',\n z.object({\n 'mail.to': z.string(),\n 'mail.template': z.string(),\n 'mail.scheduled_at': z.string(),\n 'mail.delay_ms': z.number(),\n 'mail.queue_id': z.string().optional(),\n }),\n )\n .event(\n 'error',\n z.object({\n 'mail.to': z.string(),\n 'mail.template': z.string(),\n 'mail.scheduled_at': z.string(),\n 'mail.error.code': z.string(),\n 'mail.error.message': z.string(),\n }),\n ),\n )\n .build()\n\nexport type IgniterMailTelemetryEvents = typeof IgniterMailTelemetryEvents\n"]}
@@ -0,0 +1,69 @@
1
+ import { IgniterTelemetryEvents } from '@igniter-js/telemetry';
2
+ import { z } from 'zod';
3
+
4
+ // src/telemetry/index.ts
5
+ var TELEMETRY_NAMESPACE = "igniter.mail";
6
+ var IgniterMailTelemetryEvents = IgniterTelemetryEvents.namespace(
7
+ TELEMETRY_NAMESPACE
8
+ ).group(
9
+ "send",
10
+ (g) => g.event(
11
+ "started",
12
+ z.object({
13
+ "mail.to": z.string(),
14
+ "mail.template": z.string(),
15
+ "mail.subject": z.string().optional()
16
+ })
17
+ ).event(
18
+ "success",
19
+ z.object({
20
+ "mail.to": z.string(),
21
+ "mail.template": z.string(),
22
+ "mail.subject": z.string().optional(),
23
+ "mail.duration_ms": z.number().optional()
24
+ })
25
+ ).event(
26
+ "error",
27
+ z.object({
28
+ "mail.to": z.string(),
29
+ "mail.template": z.string(),
30
+ "mail.subject": z.string().optional(),
31
+ "mail.error.code": z.string(),
32
+ "mail.error.message": z.string(),
33
+ "mail.duration_ms": z.number().optional()
34
+ })
35
+ )
36
+ ).group(
37
+ "schedule",
38
+ (g) => g.event(
39
+ "started",
40
+ z.object({
41
+ "mail.to": z.string(),
42
+ "mail.template": z.string(),
43
+ "mail.scheduled_at": z.string(),
44
+ "mail.delay_ms": z.number()
45
+ })
46
+ ).event(
47
+ "success",
48
+ z.object({
49
+ "mail.to": z.string(),
50
+ "mail.template": z.string(),
51
+ "mail.scheduled_at": z.string(),
52
+ "mail.delay_ms": z.number(),
53
+ "mail.queue_id": z.string().optional()
54
+ })
55
+ ).event(
56
+ "error",
57
+ z.object({
58
+ "mail.to": z.string(),
59
+ "mail.template": z.string(),
60
+ "mail.scheduled_at": z.string(),
61
+ "mail.error.code": z.string(),
62
+ "mail.error.message": z.string()
63
+ })
64
+ )
65
+ ).build();
66
+
67
+ export { IgniterMailTelemetryEvents };
68
+ //# sourceMappingURL=index.mjs.map
69
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/telemetry/index.ts"],"names":[],"mappings":";;;;AAYA,IAAM,mBAAA,GAAsB,cAAA;AAKrB,IAAM,6BAA6B,sBAAA,CAAuB,SAAA;AAAA,EAC/D;AACF,CAAA,CACG,KAAA;AAAA,EAAM,MAAA;AAAA,EAAQ,CAAC,MACd,CAAA,CACG,KAAA;AAAA,IACC,SAAA;AAAA,IACA,EAAE,MAAA,CAAO;AAAA,MACP,SAAA,EAAW,EAAE,MAAA,EAAO;AAAA,MACpB,eAAA,EAAiB,EAAE,MAAA,EAAO;AAAA,MAC1B,cAAA,EAAgB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KACrC;AAAA,GACH,CACC,KAAA;AAAA,IACC,SAAA;AAAA,IACA,EAAE,MAAA,CAAO;AAAA,MACP,SAAA,EAAW,EAAE,MAAA,EAAO;AAAA,MACpB,eAAA,EAAiB,EAAE,MAAA,EAAO;AAAA,MAC1B,cAAA,EAAgB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MACpC,kBAAA,EAAoB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KACzC;AAAA,GACH,CACC,KAAA;AAAA,IACC,OAAA;AAAA,IACA,EAAE,MAAA,CAAO;AAAA,MACP,SAAA,EAAW,EAAE,MAAA,EAAO;AAAA,MACpB,eAAA,EAAiB,EAAE,MAAA,EAAO;AAAA,MAC1B,cAAA,EAAgB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MACpC,iBAAA,EAAmB,EAAE,MAAA,EAAO;AAAA,MAC5B,oBAAA,EAAsB,EAAE,MAAA,EAAO;AAAA,MAC/B,kBAAA,EAAoB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KACzC;AAAA;AAEP,CAAA,CACC,KAAA;AAAA,EAAM,UAAA;AAAA,EAAY,CAAC,MAClB,CAAA,CACG,KAAA;AAAA,IACC,SAAA;AAAA,IACA,EAAE,MAAA,CAAO;AAAA,MACP,SAAA,EAAW,EAAE,MAAA,EAAO;AAAA,MACpB,eAAA,EAAiB,EAAE,MAAA,EAAO;AAAA,MAC1B,mBAAA,EAAqB,EAAE,MAAA,EAAO;AAAA,MAC9B,eAAA,EAAiB,EAAE,MAAA;AAAO,KAC3B;AAAA,GACH,CACC,KAAA;AAAA,IACC,SAAA;AAAA,IACA,EAAE,MAAA,CAAO;AAAA,MACP,SAAA,EAAW,EAAE,MAAA,EAAO;AAAA,MACpB,eAAA,EAAiB,EAAE,MAAA,EAAO;AAAA,MAC1B,mBAAA,EAAqB,EAAE,MAAA,EAAO;AAAA,MAC9B,eAAA,EAAiB,EAAE,MAAA,EAAO;AAAA,MAC1B,eAAA,EAAiB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KACtC;AAAA,GACH,CACC,KAAA;AAAA,IACC,OAAA;AAAA,IACA,EAAE,MAAA,CAAO;AAAA,MACP,SAAA,EAAW,EAAE,MAAA,EAAO;AAAA,MACpB,eAAA,EAAiB,EAAE,MAAA,EAAO;AAAA,MAC1B,mBAAA,EAAqB,EAAE,MAAA,EAAO;AAAA,MAC9B,iBAAA,EAAmB,EAAE,MAAA,EAAO;AAAA,MAC5B,oBAAA,EAAsB,EAAE,MAAA;AAAO,KAChC;AAAA;AAEP,CAAA,CACC,KAAA","file":"index.mjs","sourcesContent":["/**\n * @fileoverview Telemetry events for @igniter-js/mail\n * @module @igniter-js/mail/telemetry\n */\n\nimport { IgniterTelemetryEvents } from '@igniter-js/telemetry'\nimport { z } from 'zod'\n\n/**\n * Telemetry namespace for mail.\n * All events are prefixed with `igniter.mail.`\n */\nconst TELEMETRY_NAMESPACE = 'igniter.mail'\n\n/**\n * Telemetry event definitions for `@igniter-js/mail`.\n */\nexport const IgniterMailTelemetryEvents = IgniterTelemetryEvents.namespace(\n TELEMETRY_NAMESPACE,\n)\n .group('send', (g) =>\n g\n .event(\n 'started',\n z.object({\n 'mail.to': z.string(),\n 'mail.template': z.string(),\n 'mail.subject': z.string().optional(),\n }),\n )\n .event(\n 'success',\n z.object({\n 'mail.to': z.string(),\n 'mail.template': z.string(),\n 'mail.subject': z.string().optional(),\n 'mail.duration_ms': z.number().optional(),\n }),\n )\n .event(\n 'error',\n z.object({\n 'mail.to': z.string(),\n 'mail.template': z.string(),\n 'mail.subject': z.string().optional(),\n 'mail.error.code': z.string(),\n 'mail.error.message': z.string(),\n 'mail.duration_ms': z.number().optional(),\n }),\n ),\n )\n .group('schedule', (g) =>\n g\n .event(\n 'started',\n z.object({\n 'mail.to': z.string(),\n 'mail.template': z.string(),\n 'mail.scheduled_at': z.string(),\n 'mail.delay_ms': z.number(),\n }),\n )\n .event(\n 'success',\n z.object({\n 'mail.to': z.string(),\n 'mail.template': z.string(),\n 'mail.scheduled_at': z.string(),\n 'mail.delay_ms': z.number(),\n 'mail.queue_id': z.string().optional(),\n }),\n )\n .event(\n 'error',\n z.object({\n 'mail.to': z.string(),\n 'mail.template': z.string(),\n 'mail.scheduled_at': z.string(),\n 'mail.error.code': z.string(),\n 'mail.error.message': z.string(),\n }),\n ),\n )\n .build()\n\nexport type IgniterMailTelemetryEvents = typeof IgniterMailTelemetryEvents\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@igniter-js/mail",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Type-safe email library for Igniter.js with React Email templates and multiple provider adapters",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -14,10 +14,28 @@
14
14
  "exports": {
15
15
  ".": {
16
16
  "types": "./dist/index.d.ts",
17
+ "browser": "./dist/shim.js",
17
18
  "import": "./dist/index.js",
18
19
  "require": "./dist/index.js"
20
+ },
21
+ "./telemetry": {
22
+ "types": "./dist/telemetry/index.d.ts",
23
+ "browser": "./dist/shim.js",
24
+ "import": "./dist/telemetry/index.js",
25
+ "require": "./dist/telemetry/index.js"
26
+ },
27
+ "./adapters": {
28
+ "types": "./dist/adapters/index.d.ts",
29
+ "browser": "./dist/shim.js",
30
+ "import": "./dist/adapters/index.js",
31
+ "require": "./dist/adapters/index.js"
19
32
  }
20
33
  },
34
+ "browser": {
35
+ "./dist/index.js": "./dist/shim.js",
36
+ "./dist/adapters/index.js": "./dist/shim.js",
37
+ "./dist/telemetry/index.js": "./dist/shim.js"
38
+ },
21
39
  "scripts": {
22
40
  "dev": "tsup --watch",
23
41
  "build": "tsup",
@@ -56,21 +74,28 @@
56
74
  },
57
75
  "devDependencies": {
58
76
  "@igniter-js/core": "*",
77
+ "@igniter-js/telemetry": "*",
59
78
  "@types/node": "^22.7.5",
60
79
  "@types/nodemailer": "^6.4.16",
61
80
  "@types/react": "^18.3.12",
62
81
  "nodemailer": "^6.9.15",
63
82
  "react": "^18.3.1",
64
83
  "resend": "^4.0.1",
84
+ "zod": "^3.25.42",
65
85
  "typescript": "^5.6.3",
66
86
  "tsup": "^8.3.0",
67
87
  "vitest": "^2.1.4"
68
88
  },
69
89
  "peerDependencies": {
70
90
  "@igniter-js/core": "*",
71
- "react": "^18.0.0"
91
+ "@igniter-js/telemetry": "*",
92
+ "react": "^18.0.0",
93
+ "zod": ">=3.25.42"
72
94
  },
73
95
  "peerDependenciesMeta": {
96
+ "@igniter-js/telemetry": {
97
+ "optional": true
98
+ },
74
99
  "nodemailer": {
75
100
  "optional": true
76
101
  },