@owlrelay/api-sdk 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +13 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -2
- package/dist/index.d.mts +7 -2
- package/dist/index.d.ts +7 -2
- package/dist/index.mjs +13 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const ofetch = require('ofetch');
|
|
4
4
|
|
|
5
|
-
const version = "0.0.
|
|
5
|
+
const version = "0.0.2";
|
|
6
6
|
|
|
7
7
|
function createApiClient({ apiKey, baseApiUrl }) {
|
|
8
8
|
const apiClient = ofetch.ofetch.create({
|
|
@@ -24,6 +24,15 @@ function coerceDate(obj) {
|
|
|
24
24
|
updatedAt: new Date(obj.updatedAt)
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
+
function getEmailIdentifier(args) {
|
|
28
|
+
if ("emailId" in args) {
|
|
29
|
+
return { emailIdentifier: args.emailId };
|
|
30
|
+
}
|
|
31
|
+
if ("emailAddress" in args) {
|
|
32
|
+
return { emailIdentifier: args.emailAddress };
|
|
33
|
+
}
|
|
34
|
+
return { emailIdentifier: `${args.username}@${args.domain}` };
|
|
35
|
+
}
|
|
27
36
|
|
|
28
37
|
const OWLRELAY_API_BASE_URL = "https://api.owlrelay.email";
|
|
29
38
|
function createClient({
|
|
@@ -59,10 +68,9 @@ function createClient({
|
|
|
59
68
|
});
|
|
60
69
|
return coerceDate(emailCallback);
|
|
61
70
|
},
|
|
62
|
-
deleteEmail: async (
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
});
|
|
71
|
+
deleteEmail: async (args) => {
|
|
72
|
+
const { emailIdentifier } = getEmailIdentifier(args);
|
|
73
|
+
await apiClient(`/api/email-callbacks/${emailIdentifier}`, { method: "DELETE" });
|
|
66
74
|
},
|
|
67
75
|
getEmail: async ({ emailId }) => {
|
|
68
76
|
const { emailCallback } = await apiClient(`/api/email-callbacks/${emailId}`, {
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/api.ts","../src/api.models.ts","../src/index.ts"],"sourcesContent":["import { ofetch } from 'ofetch';\nimport { version } from '../package.json';\n\nexport function createApiClient({ apiKey, baseApiUrl }: { apiKey: string; baseApiUrl: string }) {\n const apiClient = ofetch.create({\n headers: {\n 'Authorization': `Bearer ${apiKey}`,\n 'X-OwlRelay-Source': `owlrelay-api-sdk-javascript/${version}`,\n },\n baseURL: baseApiUrl,\n });\n\n return {\n apiClient,\n };\n}\n","export function coerceDate<T extends { createdAt: string; updatedAt: string }>(\n obj: T,\n): T & { createdAt: Date; updatedAt: Date } {\n return {\n ...obj,\n createdAt: new Date(obj.createdAt),\n updatedAt: new Date(obj.updatedAt),\n } as T & { createdAt: Date; updatedAt: Date };\n}\n","import { createApiClient } from './api';\nimport { coerceDate } from './api.models';\n\nexport const OWLRELAY_API_BASE_URL = 'https://api.owlrelay.email';\n\n type AsDto<T> = {\n [K in keyof T]: T[K] extends Date ? string : T[K];\n };\n\nexport type OwlRelayEmail = {\n id: string;\n domain: string;\n username: string;\n webhookUrl: string;\n webhookSecret: string;\n isEnabled: boolean;\n allowedOrigins: string[];\n createdAt: Date;\n updatedAt: Date;\n};\n\nexport type OwlRelayEmailProcessing = {\n id: string;\n emailId: string;\n status: string;\n error?: string;\n fromAddress: string;\n subject: string;\n webhookUrl?: string;\n webhookResponseStatusCode?: number;\n\n createdAt: Date;\n updatedAt: Date;\n};\n\nexport function createClient({\n apiKey,\n baseApiUrl = OWLRELAY_API_BASE_URL,\n}: {\n apiKey: string;\n baseApiUrl?: string;\n}) {\n const { apiClient } = createApiClient({ apiKey, baseApiUrl });\n\n const updateEmail = async ({ emailId, ...body }: { emailId: string } & Partial<Omit<OwlRelayEmail, 'id' | 'createdAt' | 'updatedAt'>>): Promise<OwlRelayEmail> => {\n const { emailCallback } = await apiClient<{ emailCallback: AsDto<OwlRelayEmail> }>(`/api/email-callbacks/${emailId}`, {\n method: 'PUT',\n body,\n });\n\n return coerceDate(emailCallback);\n };\n\n return {\n updateEmail,\n\n enableEmail: async ({ emailId }: { emailId: string }) => {\n return updateEmail({ emailId, isEnabled: true });\n },\n\n disableEmail: async ({ emailId }: { emailId: string }) => {\n return updateEmail({ emailId, isEnabled: false });\n },\n\n getEmails: async (): Promise<OwlRelayEmail[]> => {\n const { emailCallbacks } = await apiClient<{ emailCallbacks: AsDto<OwlRelayEmail>[] }>('/api/email-callbacks', {\n method: 'GET',\n });\n\n return emailCallbacks.map(coerceDate);\n },\n\n createEmail: async (body: {\n domain?: string;\n username: string;\n webhookUrl: string;\n webhookSecret?: string;\n allowedOrigins?: string[];\n }): Promise<OwlRelayEmail> => {\n const { emailCallback } = await apiClient<{ emailCallback: AsDto<OwlRelayEmail> }>('/api/email-callbacks', {\n method: 'POST',\n body,\n });\n\n return coerceDate(emailCallback);\n },\n\n deleteEmail: async ({ emailId }: {
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/api.ts","../src/api.models.ts","../src/index.ts"],"sourcesContent":["import { ofetch } from 'ofetch';\nimport { version } from '../package.json';\n\nexport function createApiClient({ apiKey, baseApiUrl }: { apiKey: string; baseApiUrl: string }) {\n const apiClient = ofetch.create({\n headers: {\n 'Authorization': `Bearer ${apiKey}`,\n 'X-OwlRelay-Source': `owlrelay-api-sdk-javascript/${version}`,\n },\n baseURL: baseApiUrl,\n });\n\n return {\n apiClient,\n };\n}\n","export function coerceDate<T extends { createdAt: string; updatedAt: string }>(\n obj: T,\n): T & { createdAt: Date; updatedAt: Date } {\n return {\n ...obj,\n createdAt: new Date(obj.createdAt),\n updatedAt: new Date(obj.updatedAt),\n } as T & { createdAt: Date; updatedAt: Date };\n}\n\nexport function getEmailIdentifier(args: { emailId: string } | { emailAddress: string } | { username: string; domain: string }) {\n if ('emailId' in args) {\n return { emailIdentifier: args.emailId };\n }\n\n if ('emailAddress' in args) {\n return { emailIdentifier: args.emailAddress };\n }\n\n return { emailIdentifier: `${args.username}@${args.domain}` };\n}\n","import { createApiClient } from './api';\nimport { coerceDate, getEmailIdentifier } from './api.models';\n\nexport const OWLRELAY_API_BASE_URL = 'https://api.owlrelay.email';\n\n type AsDto<T> = {\n [K in keyof T]: T[K] extends Date ? string : T[K];\n };\n\nexport type OwlRelayEmail = {\n id: string;\n domain: string;\n username: string;\n webhookUrl: string;\n webhookSecret: string;\n isEnabled: boolean;\n allowedOrigins: string[];\n createdAt: Date;\n updatedAt: Date;\n};\n\nexport type OwlRelayEmailProcessing = {\n id: string;\n emailId: string;\n status: string;\n error?: string;\n fromAddress: string;\n subject: string;\n webhookUrl?: string;\n webhookResponseStatusCode?: number;\n\n createdAt: Date;\n updatedAt: Date;\n};\n\nexport function createClient({\n apiKey,\n baseApiUrl = OWLRELAY_API_BASE_URL,\n}: {\n apiKey: string;\n baseApiUrl?: string;\n}) {\n const { apiClient } = createApiClient({ apiKey, baseApiUrl });\n\n const updateEmail = async ({ emailId, ...body }: { emailId: string } & Partial<Omit<OwlRelayEmail, 'id' | 'createdAt' | 'updatedAt'>>): Promise<OwlRelayEmail> => {\n const { emailCallback } = await apiClient<{ emailCallback: AsDto<OwlRelayEmail> }>(`/api/email-callbacks/${emailId}`, {\n method: 'PUT',\n body,\n });\n\n return coerceDate(emailCallback);\n };\n\n return {\n updateEmail,\n\n enableEmail: async ({ emailId }: { emailId: string }) => {\n return updateEmail({ emailId, isEnabled: true });\n },\n\n disableEmail: async ({ emailId }: { emailId: string }) => {\n return updateEmail({ emailId, isEnabled: false });\n },\n\n getEmails: async (): Promise<OwlRelayEmail[]> => {\n const { emailCallbacks } = await apiClient<{ emailCallbacks: AsDto<OwlRelayEmail>[] }>('/api/email-callbacks', {\n method: 'GET',\n });\n\n return emailCallbacks.map(coerceDate);\n },\n\n createEmail: async (body: {\n domain?: string;\n username: string;\n webhookUrl: string;\n webhookSecret?: string;\n allowedOrigins?: string[];\n }): Promise<OwlRelayEmail> => {\n const { emailCallback } = await apiClient<{ emailCallback: AsDto<OwlRelayEmail> }>('/api/email-callbacks', {\n method: 'POST',\n body,\n });\n\n return coerceDate(emailCallback);\n },\n\n deleteEmail: async (args: { emailId: string } | { emailAddress: string } | { username: string; domain: string }) => {\n const { emailIdentifier } = getEmailIdentifier(args);\n\n await apiClient(`/api/email-callbacks/${emailIdentifier}`, { method: 'DELETE' });\n },\n\n getEmail: async ({ emailId }: { emailId: string }): Promise<OwlRelayEmail> => {\n const { emailCallback } = await apiClient<{ emailCallback: AsDto<OwlRelayEmail> }>(`/api/email-callbacks/${emailId}`, {\n method: 'GET',\n });\n\n return coerceDate(emailCallback);\n },\n\n getEmailProcessings: async ({ emailId }: { emailId: string }): Promise<OwlRelayEmailProcessing[]> => {\n const { processings } = await apiClient<{ processings: AsDto<OwlRelayEmailProcessing>[] }>(`/api/email-callbacks/${emailId}/processings`, {\n method: 'GET',\n });\n\n return processings.map(coerceDate);\n },\n };\n}\n"],"names":["ofetch"],"mappings":"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"}
|
package/dist/index.d.cts
CHANGED
|
@@ -43,9 +43,14 @@ declare function createClient({ apiKey, baseApiUrl, }: {
|
|
|
43
43
|
webhookSecret?: string;
|
|
44
44
|
allowedOrigins?: string[];
|
|
45
45
|
}) => Promise<OwlRelayEmail>;
|
|
46
|
-
deleteEmail: (
|
|
46
|
+
deleteEmail: (args: {
|
|
47
47
|
emailId: string;
|
|
48
|
-
}
|
|
48
|
+
} | {
|
|
49
|
+
emailAddress: string;
|
|
50
|
+
} | {
|
|
51
|
+
username: string;
|
|
52
|
+
domain: string;
|
|
53
|
+
}) => Promise<void>;
|
|
49
54
|
getEmail: ({ emailId }: {
|
|
50
55
|
emailId: string;
|
|
51
56
|
}) => Promise<OwlRelayEmail>;
|
package/dist/index.d.mts
CHANGED
|
@@ -43,9 +43,14 @@ declare function createClient({ apiKey, baseApiUrl, }: {
|
|
|
43
43
|
webhookSecret?: string;
|
|
44
44
|
allowedOrigins?: string[];
|
|
45
45
|
}) => Promise<OwlRelayEmail>;
|
|
46
|
-
deleteEmail: (
|
|
46
|
+
deleteEmail: (args: {
|
|
47
47
|
emailId: string;
|
|
48
|
-
}
|
|
48
|
+
} | {
|
|
49
|
+
emailAddress: string;
|
|
50
|
+
} | {
|
|
51
|
+
username: string;
|
|
52
|
+
domain: string;
|
|
53
|
+
}) => Promise<void>;
|
|
49
54
|
getEmail: ({ emailId }: {
|
|
50
55
|
emailId: string;
|
|
51
56
|
}) => Promise<OwlRelayEmail>;
|
package/dist/index.d.ts
CHANGED
|
@@ -43,9 +43,14 @@ declare function createClient({ apiKey, baseApiUrl, }: {
|
|
|
43
43
|
webhookSecret?: string;
|
|
44
44
|
allowedOrigins?: string[];
|
|
45
45
|
}) => Promise<OwlRelayEmail>;
|
|
46
|
-
deleteEmail: (
|
|
46
|
+
deleteEmail: (args: {
|
|
47
47
|
emailId: string;
|
|
48
|
-
}
|
|
48
|
+
} | {
|
|
49
|
+
emailAddress: string;
|
|
50
|
+
} | {
|
|
51
|
+
username: string;
|
|
52
|
+
domain: string;
|
|
53
|
+
}) => Promise<void>;
|
|
49
54
|
getEmail: ({ emailId }: {
|
|
50
55
|
emailId: string;
|
|
51
56
|
}) => Promise<OwlRelayEmail>;
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ofetch } from 'ofetch';
|
|
2
2
|
|
|
3
|
-
const version = "0.0.
|
|
3
|
+
const version = "0.0.2";
|
|
4
4
|
|
|
5
5
|
function createApiClient({ apiKey, baseApiUrl }) {
|
|
6
6
|
const apiClient = ofetch.create({
|
|
@@ -22,6 +22,15 @@ function coerceDate(obj) {
|
|
|
22
22
|
updatedAt: new Date(obj.updatedAt)
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
+
function getEmailIdentifier(args) {
|
|
26
|
+
if ("emailId" in args) {
|
|
27
|
+
return { emailIdentifier: args.emailId };
|
|
28
|
+
}
|
|
29
|
+
if ("emailAddress" in args) {
|
|
30
|
+
return { emailIdentifier: args.emailAddress };
|
|
31
|
+
}
|
|
32
|
+
return { emailIdentifier: `${args.username}@${args.domain}` };
|
|
33
|
+
}
|
|
25
34
|
|
|
26
35
|
const OWLRELAY_API_BASE_URL = "https://api.owlrelay.email";
|
|
27
36
|
function createClient({
|
|
@@ -57,10 +66,9 @@ function createClient({
|
|
|
57
66
|
});
|
|
58
67
|
return coerceDate(emailCallback);
|
|
59
68
|
},
|
|
60
|
-
deleteEmail: async (
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
});
|
|
69
|
+
deleteEmail: async (args) => {
|
|
70
|
+
const { emailIdentifier } = getEmailIdentifier(args);
|
|
71
|
+
await apiClient(`/api/email-callbacks/${emailIdentifier}`, { method: "DELETE" });
|
|
64
72
|
},
|
|
65
73
|
getEmail: async ({ emailId }) => {
|
|
66
74
|
const { emailCallback } = await apiClient(`/api/email-callbacks/${emailId}`, {
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/api.ts","../src/api.models.ts","../src/index.ts"],"sourcesContent":["import { ofetch } from 'ofetch';\nimport { version } from '../package.json';\n\nexport function createApiClient({ apiKey, baseApiUrl }: { apiKey: string; baseApiUrl: string }) {\n const apiClient = ofetch.create({\n headers: {\n 'Authorization': `Bearer ${apiKey}`,\n 'X-OwlRelay-Source': `owlrelay-api-sdk-javascript/${version}`,\n },\n baseURL: baseApiUrl,\n });\n\n return {\n apiClient,\n };\n}\n","export function coerceDate<T extends { createdAt: string; updatedAt: string }>(\n obj: T,\n): T & { createdAt: Date; updatedAt: Date } {\n return {\n ...obj,\n createdAt: new Date(obj.createdAt),\n updatedAt: new Date(obj.updatedAt),\n } as T & { createdAt: Date; updatedAt: Date };\n}\n","import { createApiClient } from './api';\nimport { coerceDate } from './api.models';\n\nexport const OWLRELAY_API_BASE_URL = 'https://api.owlrelay.email';\n\n type AsDto<T> = {\n [K in keyof T]: T[K] extends Date ? string : T[K];\n };\n\nexport type OwlRelayEmail = {\n id: string;\n domain: string;\n username: string;\n webhookUrl: string;\n webhookSecret: string;\n isEnabled: boolean;\n allowedOrigins: string[];\n createdAt: Date;\n updatedAt: Date;\n};\n\nexport type OwlRelayEmailProcessing = {\n id: string;\n emailId: string;\n status: string;\n error?: string;\n fromAddress: string;\n subject: string;\n webhookUrl?: string;\n webhookResponseStatusCode?: number;\n\n createdAt: Date;\n updatedAt: Date;\n};\n\nexport function createClient({\n apiKey,\n baseApiUrl = OWLRELAY_API_BASE_URL,\n}: {\n apiKey: string;\n baseApiUrl?: string;\n}) {\n const { apiClient } = createApiClient({ apiKey, baseApiUrl });\n\n const updateEmail = async ({ emailId, ...body }: { emailId: string } & Partial<Omit<OwlRelayEmail, 'id' | 'createdAt' | 'updatedAt'>>): Promise<OwlRelayEmail> => {\n const { emailCallback } = await apiClient<{ emailCallback: AsDto<OwlRelayEmail> }>(`/api/email-callbacks/${emailId}`, {\n method: 'PUT',\n body,\n });\n\n return coerceDate(emailCallback);\n };\n\n return {\n updateEmail,\n\n enableEmail: async ({ emailId }: { emailId: string }) => {\n return updateEmail({ emailId, isEnabled: true });\n },\n\n disableEmail: async ({ emailId }: { emailId: string }) => {\n return updateEmail({ emailId, isEnabled: false });\n },\n\n getEmails: async (): Promise<OwlRelayEmail[]> => {\n const { emailCallbacks } = await apiClient<{ emailCallbacks: AsDto<OwlRelayEmail>[] }>('/api/email-callbacks', {\n method: 'GET',\n });\n\n return emailCallbacks.map(coerceDate);\n },\n\n createEmail: async (body: {\n domain?: string;\n username: string;\n webhookUrl: string;\n webhookSecret?: string;\n allowedOrigins?: string[];\n }): Promise<OwlRelayEmail> => {\n const { emailCallback } = await apiClient<{ emailCallback: AsDto<OwlRelayEmail> }>('/api/email-callbacks', {\n method: 'POST',\n body,\n });\n\n return coerceDate(emailCallback);\n },\n\n deleteEmail: async ({ emailId }: {
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/api.ts","../src/api.models.ts","../src/index.ts"],"sourcesContent":["import { ofetch } from 'ofetch';\nimport { version } from '../package.json';\n\nexport function createApiClient({ apiKey, baseApiUrl }: { apiKey: string; baseApiUrl: string }) {\n const apiClient = ofetch.create({\n headers: {\n 'Authorization': `Bearer ${apiKey}`,\n 'X-OwlRelay-Source': `owlrelay-api-sdk-javascript/${version}`,\n },\n baseURL: baseApiUrl,\n });\n\n return {\n apiClient,\n };\n}\n","export function coerceDate<T extends { createdAt: string; updatedAt: string }>(\n obj: T,\n): T & { createdAt: Date; updatedAt: Date } {\n return {\n ...obj,\n createdAt: new Date(obj.createdAt),\n updatedAt: new Date(obj.updatedAt),\n } as T & { createdAt: Date; updatedAt: Date };\n}\n\nexport function getEmailIdentifier(args: { emailId: string } | { emailAddress: string } | { username: string; domain: string }) {\n if ('emailId' in args) {\n return { emailIdentifier: args.emailId };\n }\n\n if ('emailAddress' in args) {\n return { emailIdentifier: args.emailAddress };\n }\n\n return { emailIdentifier: `${args.username}@${args.domain}` };\n}\n","import { createApiClient } from './api';\nimport { coerceDate, getEmailIdentifier } from './api.models';\n\nexport const OWLRELAY_API_BASE_URL = 'https://api.owlrelay.email';\n\n type AsDto<T> = {\n [K in keyof T]: T[K] extends Date ? string : T[K];\n };\n\nexport type OwlRelayEmail = {\n id: string;\n domain: string;\n username: string;\n webhookUrl: string;\n webhookSecret: string;\n isEnabled: boolean;\n allowedOrigins: string[];\n createdAt: Date;\n updatedAt: Date;\n};\n\nexport type OwlRelayEmailProcessing = {\n id: string;\n emailId: string;\n status: string;\n error?: string;\n fromAddress: string;\n subject: string;\n webhookUrl?: string;\n webhookResponseStatusCode?: number;\n\n createdAt: Date;\n updatedAt: Date;\n};\n\nexport function createClient({\n apiKey,\n baseApiUrl = OWLRELAY_API_BASE_URL,\n}: {\n apiKey: string;\n baseApiUrl?: string;\n}) {\n const { apiClient } = createApiClient({ apiKey, baseApiUrl });\n\n const updateEmail = async ({ emailId, ...body }: { emailId: string } & Partial<Omit<OwlRelayEmail, 'id' | 'createdAt' | 'updatedAt'>>): Promise<OwlRelayEmail> => {\n const { emailCallback } = await apiClient<{ emailCallback: AsDto<OwlRelayEmail> }>(`/api/email-callbacks/${emailId}`, {\n method: 'PUT',\n body,\n });\n\n return coerceDate(emailCallback);\n };\n\n return {\n updateEmail,\n\n enableEmail: async ({ emailId }: { emailId: string }) => {\n return updateEmail({ emailId, isEnabled: true });\n },\n\n disableEmail: async ({ emailId }: { emailId: string }) => {\n return updateEmail({ emailId, isEnabled: false });\n },\n\n getEmails: async (): Promise<OwlRelayEmail[]> => {\n const { emailCallbacks } = await apiClient<{ emailCallbacks: AsDto<OwlRelayEmail>[] }>('/api/email-callbacks', {\n method: 'GET',\n });\n\n return emailCallbacks.map(coerceDate);\n },\n\n createEmail: async (body: {\n domain?: string;\n username: string;\n webhookUrl: string;\n webhookSecret?: string;\n allowedOrigins?: string[];\n }): Promise<OwlRelayEmail> => {\n const { emailCallback } = await apiClient<{ emailCallback: AsDto<OwlRelayEmail> }>('/api/email-callbacks', {\n method: 'POST',\n body,\n });\n\n return coerceDate(emailCallback);\n },\n\n deleteEmail: async (args: { emailId: string } | { emailAddress: string } | { username: string; domain: string }) => {\n const { emailIdentifier } = getEmailIdentifier(args);\n\n await apiClient(`/api/email-callbacks/${emailIdentifier}`, { method: 'DELETE' });\n },\n\n getEmail: async ({ emailId }: { emailId: string }): Promise<OwlRelayEmail> => {\n const { emailCallback } = await apiClient<{ emailCallback: AsDto<OwlRelayEmail> }>(`/api/email-callbacks/${emailId}`, {\n method: 'GET',\n });\n\n return coerceDate(emailCallback);\n },\n\n getEmailProcessings: async ({ emailId }: { emailId: string }): Promise<OwlRelayEmailProcessing[]> => {\n const { processings } = await apiClient<{ processings: AsDto<OwlRelayEmailProcessing>[] }>(`/api/email-callbacks/${emailId}/processings`, {\n method: 'GET',\n });\n\n return processings.map(coerceDate);\n },\n };\n}\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlrelay/api-sdk",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.2",
|
|
5
5
|
"description": "OwlRelay API SDK for JavaScript and TypeScript",
|
|
6
6
|
"author": "OwlRelay <hello@owlrelay.email> (https://owlrelay.email)",
|
|
7
7
|
"license": "AGPL-3.0",
|
|
@@ -57,6 +57,6 @@
|
|
|
57
57
|
"test:unit": "vitest run",
|
|
58
58
|
"test:unit:watch": "vitest watch",
|
|
59
59
|
"typecheck": "tsc --noEmit",
|
|
60
|
-
"release": "bumpp --commit --tag --push"
|
|
60
|
+
"release": "bumpp --commit=\"chore(api-sdk): release v%s\" --tag=\"@owlrelay/api-sdk@%s\" --push"
|
|
61
61
|
}
|
|
62
62
|
}
|