@alisamadiillc/devtools 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/client.cjs +74 -0
- package/dist/client.cjs.map +1 -0
- package/dist/client.d.cts +33 -0
- package/dist/client.d.ts +33 -0
- package/dist/client.js +71 -0
- package/dist/client.js.map +1 -0
- package/package.json +11 -1
package/dist/client.cjs
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/client/contact.ts
|
|
4
|
+
async function sendContact(baseUrl, sourceUrl, input) {
|
|
5
|
+
const headers = {
|
|
6
|
+
"Content-Type": "application/json"
|
|
7
|
+
};
|
|
8
|
+
if (input.origin) {
|
|
9
|
+
headers["Origin"] = input.origin;
|
|
10
|
+
}
|
|
11
|
+
const body = {
|
|
12
|
+
name: input.name,
|
|
13
|
+
email: input.email,
|
|
14
|
+
subject: input.subject,
|
|
15
|
+
message: input.message
|
|
16
|
+
};
|
|
17
|
+
if (input.metadata) {
|
|
18
|
+
body.metadata = input.metadata;
|
|
19
|
+
}
|
|
20
|
+
if (sourceUrl) {
|
|
21
|
+
body.sourceUrl = sourceUrl;
|
|
22
|
+
}
|
|
23
|
+
const response = await fetch(`${baseUrl}/api/contact`, {
|
|
24
|
+
method: "POST",
|
|
25
|
+
headers,
|
|
26
|
+
body: JSON.stringify(body)
|
|
27
|
+
});
|
|
28
|
+
const data = await response.json();
|
|
29
|
+
if (!response.ok) {
|
|
30
|
+
return {
|
|
31
|
+
success: false,
|
|
32
|
+
error: data.error || `Request failed with status ${response.status}`,
|
|
33
|
+
details: data.details
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
success: true,
|
|
38
|
+
id: data.id,
|
|
39
|
+
message: data.message
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// src/client/client.ts
|
|
44
|
+
var DEFAULT_BASE_URL = "https://www.alisamadii.com";
|
|
45
|
+
function detectSourceUrl() {
|
|
46
|
+
if (typeof window !== "undefined") {
|
|
47
|
+
return window.location.origin;
|
|
48
|
+
}
|
|
49
|
+
if (process.env.NEXT_PUBLIC_SITE_URL) return process.env.NEXT_PUBLIC_SITE_URL;
|
|
50
|
+
if (process.env.VERCEL_PROJECT_PRODUCTION_URL)
|
|
51
|
+
return `https://${process.env.VERCEL_PROJECT_PRODUCTION_URL}`;
|
|
52
|
+
if (process.env.VERCEL_URL) return `https://${process.env.VERCEL_URL}`;
|
|
53
|
+
return void 0;
|
|
54
|
+
}
|
|
55
|
+
var AgencyClient = class {
|
|
56
|
+
constructor(config) {
|
|
57
|
+
this.baseUrl = config?.baseUrl ?? DEFAULT_BASE_URL;
|
|
58
|
+
this.sourceUrl = config?.sourceUrl;
|
|
59
|
+
}
|
|
60
|
+
getSourceUrl() {
|
|
61
|
+
return this.sourceUrl ?? detectSourceUrl();
|
|
62
|
+
}
|
|
63
|
+
async contact(input) {
|
|
64
|
+
return sendContact(this.baseUrl, this.getSourceUrl(), input);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
function createClient(config) {
|
|
68
|
+
return new AgencyClient(config);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
exports.AgencyClient = AgencyClient;
|
|
72
|
+
exports.createClient = createClient;
|
|
73
|
+
//# sourceMappingURL=client.cjs.map
|
|
74
|
+
//# sourceMappingURL=client.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/client/contact.ts","../src/client/client.ts"],"names":[],"mappings":";;;AAEA,eAAsB,WAAA,CACpB,OAAA,EACA,SAAA,EACA,KAAA,EAC0B;AAC1B,EAAA,MAAM,OAAA,GAAkC;AAAA,IACtC,cAAA,EAAgB;AAAA,GAClB;AAEA,EAAA,IAAI,MAAM,MAAA,EAAQ;AAChB,IAAA,OAAA,CAAQ,QAAQ,IAAI,KAAA,CAAM,MAAA;AAAA,EAC5B;AAEA,EAAA,MAAM,IAAA,GAAgC;AAAA,IACpC,MAAM,KAAA,CAAM,IAAA;AAAA,IACZ,OAAO,KAAA,CAAM,KAAA;AAAA,IACb,SAAS,KAAA,CAAM,OAAA;AAAA,IACf,SAAS,KAAA,CAAM;AAAA,GACjB;AAEA,EAAA,IAAI,MAAM,QAAA,EAAU;AAClB,IAAA,IAAA,CAAK,WAAW,KAAA,CAAM,QAAA;AAAA,EACxB;AAEA,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,IAAA,CAAK,SAAA,GAAY,SAAA;AAAA,EACnB;AAEA,EAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,CAAA,EAAG,OAAO,CAAA,YAAA,CAAA,EAAgB;AAAA,IACrD,MAAA,EAAQ,MAAA;AAAA,IACR,OAAA;AAAA,IACA,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,IAAI;AAAA,GAC1B,CAAA;AAED,EAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AAEjC,EAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,KAAA;AAAA,MACT,KAAA,EAAO,IAAA,CAAK,KAAA,IAAS,CAAA,2BAAA,EAA8B,SAAS,MAAM,CAAA,CAAA;AAAA,MAClE,SAAS,IAAA,CAAK;AAAA,KAChB;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,IAAA;AAAA,IACT,IAAI,IAAA,CAAK,EAAA;AAAA,IACT,SAAS,IAAA,CAAK;AAAA,GAChB;AACF;;;AChDA,IAAM,gBAAA,GAAmB,4BAAA;AAEzB,SAAS,eAAA,GAAsC;AAC7C,EAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AACjC,IAAA,OAAO,OAAO,QAAA,CAAS,MAAA;AAAA,EACzB;AAEA,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,oBAAA,EAAsB,OAAO,QAAQ,GAAA,CAAI,oBAAA;AACzD,EAAA,IAAI,QAAQ,GAAA,CAAI,6BAAA;AACd,IAAA,OAAO,CAAA,QAAA,EAAW,OAAA,CAAQ,GAAA,CAAI,6BAA6B,CAAA,CAAA;AAC7D,EAAA,IAAI,QAAQ,GAAA,CAAI,UAAA,SAAmB,CAAA,QAAA,EAAW,OAAA,CAAQ,IAAI,UAAU,CAAA,CAAA;AACpE,EAAA,OAAO,MAAA;AACT;AAEO,IAAM,eAAN,MAAmB;AAAA,EAIxB,YAAY,MAAA,EAAuB;AACjC,IAAA,IAAA,CAAK,OAAA,GAAU,QAAQ,OAAA,IAAW,gBAAA;AAClC,IAAA,IAAA,CAAK,YAAY,MAAA,EAAQ,SAAA;AAAA,EAC3B;AAAA,EAEQ,YAAA,GAAmC;AACzC,IAAA,OAAO,IAAA,CAAK,aAAa,eAAA,EAAgB;AAAA,EAC3C;AAAA,EAEA,MAAM,QAAQ,KAAA,EAA+C;AAC3D,IAAA,OAAO,YAAY,IAAA,CAAK,OAAA,EAAS,IAAA,CAAK,YAAA,IAAgB,KAAK,CAAA;AAAA,EAC7D;AACF;AAEO,SAAS,aAAa,MAAA,EAAqC;AAChE,EAAA,OAAO,IAAI,aAAa,MAAM,CAAA;AAChC","file":"client.cjs","sourcesContent":["import type { ContactInput, ContactResponse } from \"./types\";\n\nexport async function sendContact(\n baseUrl: string,\n sourceUrl: string | undefined,\n input: ContactInput\n): Promise<ContactResponse> {\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n };\n\n if (input.origin) {\n headers[\"Origin\"] = input.origin;\n }\n\n const body: Record<string, unknown> = {\n name: input.name,\n email: input.email,\n subject: input.subject,\n message: input.message,\n };\n\n if (input.metadata) {\n body.metadata = input.metadata;\n }\n\n if (sourceUrl) {\n body.sourceUrl = sourceUrl;\n }\n\n const response = await fetch(`${baseUrl}/api/contact`, {\n method: \"POST\",\n headers,\n body: JSON.stringify(body),\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n return {\n success: false,\n error: data.error || `Request failed with status ${response.status}`,\n details: data.details,\n };\n }\n\n return {\n success: true,\n id: data.id,\n message: data.message,\n };\n}\n","import { sendContact } from \"./contact\";\nimport type { ClientConfig, ContactInput, ContactResponse } from \"./types\";\n\nconst DEFAULT_BASE_URL = \"https://www.alisamadii.com\";\n\nfunction detectSourceUrl(): string | undefined {\n if (typeof window !== \"undefined\") {\n return window.location.origin;\n }\n // Server-side: check common env vars\n if (process.env.NEXT_PUBLIC_SITE_URL) return process.env.NEXT_PUBLIC_SITE_URL;\n if (process.env.VERCEL_PROJECT_PRODUCTION_URL)\n return `https://${process.env.VERCEL_PROJECT_PRODUCTION_URL}`;\n if (process.env.VERCEL_URL) return `https://${process.env.VERCEL_URL}`;\n return undefined;\n}\n\nexport class AgencyClient {\n private baseUrl: string;\n private sourceUrl: string | undefined;\n\n constructor(config?: ClientConfig) {\n this.baseUrl = config?.baseUrl ?? DEFAULT_BASE_URL;\n this.sourceUrl = config?.sourceUrl;\n }\n\n private getSourceUrl(): string | undefined {\n return this.sourceUrl ?? detectSourceUrl();\n }\n\n async contact(input: ContactInput): Promise<ContactResponse> {\n return sendContact(this.baseUrl, this.getSourceUrl(), input);\n }\n}\n\nexport function createClient(config?: ClientConfig): AgencyClient {\n return new AgencyClient(config);\n}\n"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
interface ClientConfig {
|
|
2
|
+
/** API base URL. Default: "https://www.alisamadii.com" */
|
|
3
|
+
baseUrl?: string;
|
|
4
|
+
/** Client site URL, sent as sourceUrl in requests */
|
|
5
|
+
sourceUrl?: string;
|
|
6
|
+
}
|
|
7
|
+
interface ContactInput {
|
|
8
|
+
name: string;
|
|
9
|
+
email: string;
|
|
10
|
+
subject: string;
|
|
11
|
+
message: string;
|
|
12
|
+
metadata?: Record<string, unknown>;
|
|
13
|
+
/** Pass from incoming request headers for CORS origin validation */
|
|
14
|
+
origin?: string | null;
|
|
15
|
+
}
|
|
16
|
+
interface ContactResponse {
|
|
17
|
+
success: boolean;
|
|
18
|
+
id?: string;
|
|
19
|
+
message?: string;
|
|
20
|
+
error?: string;
|
|
21
|
+
details?: string[];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
declare class AgencyClient {
|
|
25
|
+
private baseUrl;
|
|
26
|
+
private sourceUrl;
|
|
27
|
+
constructor(config?: ClientConfig);
|
|
28
|
+
private getSourceUrl;
|
|
29
|
+
contact(input: ContactInput): Promise<ContactResponse>;
|
|
30
|
+
}
|
|
31
|
+
declare function createClient(config?: ClientConfig): AgencyClient;
|
|
32
|
+
|
|
33
|
+
export { AgencyClient, type ClientConfig, type ContactInput, type ContactResponse, createClient };
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
interface ClientConfig {
|
|
2
|
+
/** API base URL. Default: "https://www.alisamadii.com" */
|
|
3
|
+
baseUrl?: string;
|
|
4
|
+
/** Client site URL, sent as sourceUrl in requests */
|
|
5
|
+
sourceUrl?: string;
|
|
6
|
+
}
|
|
7
|
+
interface ContactInput {
|
|
8
|
+
name: string;
|
|
9
|
+
email: string;
|
|
10
|
+
subject: string;
|
|
11
|
+
message: string;
|
|
12
|
+
metadata?: Record<string, unknown>;
|
|
13
|
+
/** Pass from incoming request headers for CORS origin validation */
|
|
14
|
+
origin?: string | null;
|
|
15
|
+
}
|
|
16
|
+
interface ContactResponse {
|
|
17
|
+
success: boolean;
|
|
18
|
+
id?: string;
|
|
19
|
+
message?: string;
|
|
20
|
+
error?: string;
|
|
21
|
+
details?: string[];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
declare class AgencyClient {
|
|
25
|
+
private baseUrl;
|
|
26
|
+
private sourceUrl;
|
|
27
|
+
constructor(config?: ClientConfig);
|
|
28
|
+
private getSourceUrl;
|
|
29
|
+
contact(input: ContactInput): Promise<ContactResponse>;
|
|
30
|
+
}
|
|
31
|
+
declare function createClient(config?: ClientConfig): AgencyClient;
|
|
32
|
+
|
|
33
|
+
export { AgencyClient, type ClientConfig, type ContactInput, type ContactResponse, createClient };
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// src/client/contact.ts
|
|
2
|
+
async function sendContact(baseUrl, sourceUrl, input) {
|
|
3
|
+
const headers = {
|
|
4
|
+
"Content-Type": "application/json"
|
|
5
|
+
};
|
|
6
|
+
if (input.origin) {
|
|
7
|
+
headers["Origin"] = input.origin;
|
|
8
|
+
}
|
|
9
|
+
const body = {
|
|
10
|
+
name: input.name,
|
|
11
|
+
email: input.email,
|
|
12
|
+
subject: input.subject,
|
|
13
|
+
message: input.message
|
|
14
|
+
};
|
|
15
|
+
if (input.metadata) {
|
|
16
|
+
body.metadata = input.metadata;
|
|
17
|
+
}
|
|
18
|
+
if (sourceUrl) {
|
|
19
|
+
body.sourceUrl = sourceUrl;
|
|
20
|
+
}
|
|
21
|
+
const response = await fetch(`${baseUrl}/api/contact`, {
|
|
22
|
+
method: "POST",
|
|
23
|
+
headers,
|
|
24
|
+
body: JSON.stringify(body)
|
|
25
|
+
});
|
|
26
|
+
const data = await response.json();
|
|
27
|
+
if (!response.ok) {
|
|
28
|
+
return {
|
|
29
|
+
success: false,
|
|
30
|
+
error: data.error || `Request failed with status ${response.status}`,
|
|
31
|
+
details: data.details
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
success: true,
|
|
36
|
+
id: data.id,
|
|
37
|
+
message: data.message
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// src/client/client.ts
|
|
42
|
+
var DEFAULT_BASE_URL = "https://www.alisamadii.com";
|
|
43
|
+
function detectSourceUrl() {
|
|
44
|
+
if (typeof window !== "undefined") {
|
|
45
|
+
return window.location.origin;
|
|
46
|
+
}
|
|
47
|
+
if (process.env.NEXT_PUBLIC_SITE_URL) return process.env.NEXT_PUBLIC_SITE_URL;
|
|
48
|
+
if (process.env.VERCEL_PROJECT_PRODUCTION_URL)
|
|
49
|
+
return `https://${process.env.VERCEL_PROJECT_PRODUCTION_URL}`;
|
|
50
|
+
if (process.env.VERCEL_URL) return `https://${process.env.VERCEL_URL}`;
|
|
51
|
+
return void 0;
|
|
52
|
+
}
|
|
53
|
+
var AgencyClient = class {
|
|
54
|
+
constructor(config) {
|
|
55
|
+
this.baseUrl = config?.baseUrl ?? DEFAULT_BASE_URL;
|
|
56
|
+
this.sourceUrl = config?.sourceUrl;
|
|
57
|
+
}
|
|
58
|
+
getSourceUrl() {
|
|
59
|
+
return this.sourceUrl ?? detectSourceUrl();
|
|
60
|
+
}
|
|
61
|
+
async contact(input) {
|
|
62
|
+
return sendContact(this.baseUrl, this.getSourceUrl(), input);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
function createClient(config) {
|
|
66
|
+
return new AgencyClient(config);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export { AgencyClient, createClient };
|
|
70
|
+
//# sourceMappingURL=client.js.map
|
|
71
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/client/contact.ts","../src/client/client.ts"],"names":[],"mappings":";AAEA,eAAsB,WAAA,CACpB,OAAA,EACA,SAAA,EACA,KAAA,EAC0B;AAC1B,EAAA,MAAM,OAAA,GAAkC;AAAA,IACtC,cAAA,EAAgB;AAAA,GAClB;AAEA,EAAA,IAAI,MAAM,MAAA,EAAQ;AAChB,IAAA,OAAA,CAAQ,QAAQ,IAAI,KAAA,CAAM,MAAA;AAAA,EAC5B;AAEA,EAAA,MAAM,IAAA,GAAgC;AAAA,IACpC,MAAM,KAAA,CAAM,IAAA;AAAA,IACZ,OAAO,KAAA,CAAM,KAAA;AAAA,IACb,SAAS,KAAA,CAAM,OAAA;AAAA,IACf,SAAS,KAAA,CAAM;AAAA,GACjB;AAEA,EAAA,IAAI,MAAM,QAAA,EAAU;AAClB,IAAA,IAAA,CAAK,WAAW,KAAA,CAAM,QAAA;AAAA,EACxB;AAEA,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,IAAA,CAAK,SAAA,GAAY,SAAA;AAAA,EACnB;AAEA,EAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,CAAA,EAAG,OAAO,CAAA,YAAA,CAAA,EAAgB;AAAA,IACrD,MAAA,EAAQ,MAAA;AAAA,IACR,OAAA;AAAA,IACA,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,IAAI;AAAA,GAC1B,CAAA;AAED,EAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AAEjC,EAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,KAAA;AAAA,MACT,KAAA,EAAO,IAAA,CAAK,KAAA,IAAS,CAAA,2BAAA,EAA8B,SAAS,MAAM,CAAA,CAAA;AAAA,MAClE,SAAS,IAAA,CAAK;AAAA,KAChB;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,IAAA;AAAA,IACT,IAAI,IAAA,CAAK,EAAA;AAAA,IACT,SAAS,IAAA,CAAK;AAAA,GAChB;AACF;;;AChDA,IAAM,gBAAA,GAAmB,4BAAA;AAEzB,SAAS,eAAA,GAAsC;AAC7C,EAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AACjC,IAAA,OAAO,OAAO,QAAA,CAAS,MAAA;AAAA,EACzB;AAEA,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,oBAAA,EAAsB,OAAO,QAAQ,GAAA,CAAI,oBAAA;AACzD,EAAA,IAAI,QAAQ,GAAA,CAAI,6BAAA;AACd,IAAA,OAAO,CAAA,QAAA,EAAW,OAAA,CAAQ,GAAA,CAAI,6BAA6B,CAAA,CAAA;AAC7D,EAAA,IAAI,QAAQ,GAAA,CAAI,UAAA,SAAmB,CAAA,QAAA,EAAW,OAAA,CAAQ,IAAI,UAAU,CAAA,CAAA;AACpE,EAAA,OAAO,MAAA;AACT;AAEO,IAAM,eAAN,MAAmB;AAAA,EAIxB,YAAY,MAAA,EAAuB;AACjC,IAAA,IAAA,CAAK,OAAA,GAAU,QAAQ,OAAA,IAAW,gBAAA;AAClC,IAAA,IAAA,CAAK,YAAY,MAAA,EAAQ,SAAA;AAAA,EAC3B;AAAA,EAEQ,YAAA,GAAmC;AACzC,IAAA,OAAO,IAAA,CAAK,aAAa,eAAA,EAAgB;AAAA,EAC3C;AAAA,EAEA,MAAM,QAAQ,KAAA,EAA+C;AAC3D,IAAA,OAAO,YAAY,IAAA,CAAK,OAAA,EAAS,IAAA,CAAK,YAAA,IAAgB,KAAK,CAAA;AAAA,EAC7D;AACF;AAEO,SAAS,aAAa,MAAA,EAAqC;AAChE,EAAA,OAAO,IAAI,aAAa,MAAM,CAAA;AAChC","file":"client.js","sourcesContent":["import type { ContactInput, ContactResponse } from \"./types\";\n\nexport async function sendContact(\n baseUrl: string,\n sourceUrl: string | undefined,\n input: ContactInput\n): Promise<ContactResponse> {\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n };\n\n if (input.origin) {\n headers[\"Origin\"] = input.origin;\n }\n\n const body: Record<string, unknown> = {\n name: input.name,\n email: input.email,\n subject: input.subject,\n message: input.message,\n };\n\n if (input.metadata) {\n body.metadata = input.metadata;\n }\n\n if (sourceUrl) {\n body.sourceUrl = sourceUrl;\n }\n\n const response = await fetch(`${baseUrl}/api/contact`, {\n method: \"POST\",\n headers,\n body: JSON.stringify(body),\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n return {\n success: false,\n error: data.error || `Request failed with status ${response.status}`,\n details: data.details,\n };\n }\n\n return {\n success: true,\n id: data.id,\n message: data.message,\n };\n}\n","import { sendContact } from \"./contact\";\nimport type { ClientConfig, ContactInput, ContactResponse } from \"./types\";\n\nconst DEFAULT_BASE_URL = \"https://www.alisamadii.com\";\n\nfunction detectSourceUrl(): string | undefined {\n if (typeof window !== \"undefined\") {\n return window.location.origin;\n }\n // Server-side: check common env vars\n if (process.env.NEXT_PUBLIC_SITE_URL) return process.env.NEXT_PUBLIC_SITE_URL;\n if (process.env.VERCEL_PROJECT_PRODUCTION_URL)\n return `https://${process.env.VERCEL_PROJECT_PRODUCTION_URL}`;\n if (process.env.VERCEL_URL) return `https://${process.env.VERCEL_URL}`;\n return undefined;\n}\n\nexport class AgencyClient {\n private baseUrl: string;\n private sourceUrl: string | undefined;\n\n constructor(config?: ClientConfig) {\n this.baseUrl = config?.baseUrl ?? DEFAULT_BASE_URL;\n this.sourceUrl = config?.sourceUrl;\n }\n\n private getSourceUrl(): string | undefined {\n return this.sourceUrl ?? detectSourceUrl();\n }\n\n async contact(input: ContactInput): Promise<ContactResponse> {\n return sendContact(this.baseUrl, this.getSourceUrl(), input);\n }\n}\n\nexport function createClient(config?: ClientConfig): AgencyClient {\n return new AgencyClient(config);\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alisamadiillc/devtools",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "Visual feedback devtools for client websites — select elements, edit live, capture screenshots, copy structured feedback",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -17,6 +17,16 @@
|
|
|
17
17
|
"types": "./dist/index.d.cts",
|
|
18
18
|
"default": "./dist/index.cjs"
|
|
19
19
|
}
|
|
20
|
+
},
|
|
21
|
+
"./client": {
|
|
22
|
+
"import": {
|
|
23
|
+
"types": "./dist/client.d.ts",
|
|
24
|
+
"default": "./dist/client.js"
|
|
25
|
+
},
|
|
26
|
+
"require": {
|
|
27
|
+
"types": "./dist/client.d.cts",
|
|
28
|
+
"default": "./dist/client.cjs"
|
|
29
|
+
}
|
|
20
30
|
}
|
|
21
31
|
},
|
|
22
32
|
"files": [
|