attio 0.0.1-experimental.20240614.1 → 0.0.1-experimental.20240617
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/lib/commands/dev.d.ts.map +1 -1
- package/lib/commands/dev.js +8 -2
- package/lib/commands/dev.js.map +1 -1
- package/lib/commands/index.d.ts +9 -3
- package/lib/commands/index.d.ts.map +1 -1
- package/lib/commands/index.js +41 -14
- package/lib/commands/index.js.map +1 -1
- package/lib/components/InitialInstructions.d.ts.map +1 -1
- package/lib/components/InitialInstructions.js +8 -7
- package/lib/components/InitialInstructions.js.map +1 -1
- package/lib/machines/dev-machine.d.ts +29 -22
- package/lib/machines/dev-machine.d.ts.map +1 -1
- package/lib/machines/dev-machine.js +29 -12
- package/lib/machines/dev-machine.js.map +1 -1
- package/lib/machines/scaffold-machine.d.ts +208 -26
- package/lib/machines/scaffold-machine.d.ts.map +1 -1
- package/lib/machines/scaffold-machine.js +303 -157
- package/lib/machines/scaffold-machine.js.map +1 -1
- package/lib/machines/ts-machine.d.ts.map +1 -1
- package/lib/machines/ts-machine.js +1 -0
- package/lib/machines/ts-machine.js.map +1 -1
- package/lib/templates/javascript/package.json +6 -1
- package/lib/templates/typescript/package.json +6 -1
- package/lib/util/make-extension-name.d.ts +1 -0
- package/lib/util/make-extension-name.d.ts.map +1 -1
- package/lib/util/make-extension-name.js +4 -1
- package/lib/util/make-extension-name.js.map +1 -1
- package/lib/util/upload-bundle.d.ts +64 -10
- package/lib/util/upload-bundle.d.ts.map +1 -1
- package/lib/util/upload-bundle.js +56 -16
- package/lib/util/upload-bundle.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-extension-name.d.ts","sourceRoot":"","sources":["../../src/util/make-extension-name.ts"],"names":[],"mappings":"AASA,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAExD"}
|
|
1
|
+
{"version":3,"file":"make-extension-name.d.ts","sourceRoot":"","sources":["../../src/util/make-extension-name.ts"],"names":[],"mappings":"AASA,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAExD"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
const slugify = (string) => string
|
|
2
2
|
.toLowerCase()
|
|
3
3
|
.replace(/\s+/g, "-")
|
|
4
|
-
.replace(/[^\w]+_/g, "")
|
|
4
|
+
.replace(/[^\w]+_'"/g, "")
|
|
5
5
|
.replace(/--+ /g, "-")
|
|
6
6
|
.replace(/^-+/, "")
|
|
7
7
|
.replace(/-+$/, "");
|
|
8
|
+
export function makeIntegrationSlug(string) {
|
|
9
|
+
return slugify(string.toLowerCase().trim());
|
|
10
|
+
}
|
|
8
11
|
export function makeExtensionName(string) {
|
|
9
12
|
return slugify(string.toLowerCase().trim());
|
|
10
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-extension-name.js","sourceRoot":"","sources":["../../src/util/make-extension-name.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE,CAC/B,MAAM;KACD,WAAW,EAAE;KACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;KACpB,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"make-extension-name.js","sourceRoot":"","sources":["../../src/util/make-extension-name.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE,CAC/B,MAAM;KACD,WAAW,EAAE;KACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;KACpB,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;KACzB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;KACrB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;KAClB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAE3B,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAC9C,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC5C,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;AAC/C,CAAC"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
export declare const EXTENSION_API_URL: string;
|
|
3
|
+
export declare const createIntegration: (token: string, devSlug: string, slug: string, title: string) => Promise<{
|
|
4
|
+
title: string;
|
|
5
|
+
description: string;
|
|
6
|
+
developer_account_id: string;
|
|
7
|
+
integration_id: string;
|
|
8
|
+
slug: string;
|
|
9
|
+
avatar_url: string | null;
|
|
10
|
+
}>;
|
|
2
11
|
declare const createDevVersionSchema: z.ZodObject<{
|
|
3
12
|
integration_id: z.ZodString;
|
|
4
13
|
integration_dev_version_id: z.ZodString;
|
|
@@ -28,21 +37,68 @@ export declare const startUpload: (token: string, devSlug: string, integrationId
|
|
|
28
37
|
server_bundle_upload_url: string;
|
|
29
38
|
integration_dev_version_bundle_id: string;
|
|
30
39
|
}>;
|
|
40
|
+
declare const packageJsonSchema: z.ZodObject<{
|
|
41
|
+
attio: z.ZodObject<{
|
|
42
|
+
app: z.ZodString;
|
|
43
|
+
integration: z.ZodObject<{
|
|
44
|
+
id: z.ZodString;
|
|
45
|
+
slug: z.ZodString;
|
|
46
|
+
title: z.ZodString;
|
|
47
|
+
}, "strip", z.ZodTypeAny, {
|
|
48
|
+
title: string;
|
|
49
|
+
id: string;
|
|
50
|
+
slug: string;
|
|
51
|
+
}, {
|
|
52
|
+
title: string;
|
|
53
|
+
id: string;
|
|
54
|
+
slug: string;
|
|
55
|
+
}>;
|
|
56
|
+
}, "strip", z.ZodTypeAny, {
|
|
57
|
+
app: string;
|
|
58
|
+
integration: {
|
|
59
|
+
title: string;
|
|
60
|
+
id: string;
|
|
61
|
+
slug: string;
|
|
62
|
+
};
|
|
63
|
+
}, {
|
|
64
|
+
app: string;
|
|
65
|
+
integration: {
|
|
66
|
+
title: string;
|
|
67
|
+
id: string;
|
|
68
|
+
slug: string;
|
|
69
|
+
};
|
|
70
|
+
}>;
|
|
71
|
+
}, "strip", z.ZodTypeAny, {
|
|
72
|
+
attio: {
|
|
73
|
+
app: string;
|
|
74
|
+
integration: {
|
|
75
|
+
title: string;
|
|
76
|
+
id: string;
|
|
77
|
+
slug: string;
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
}, {
|
|
81
|
+
attio: {
|
|
82
|
+
app: string;
|
|
83
|
+
integration: {
|
|
84
|
+
title: string;
|
|
85
|
+
id: string;
|
|
86
|
+
slug: string;
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
}>;
|
|
90
|
+
type IntegrationConfig = z.infer<typeof packageJsonSchema>["attio"]["integration"];
|
|
91
|
+
type IntegrationConfigError = "No package.json" | "Invalid package.json";
|
|
92
|
+
export declare const loadIntegrationConfig: () => IntegrationConfig | IntegrationConfigError;
|
|
31
93
|
export declare const initialConfigSchema: z.ZodObject<{
|
|
32
94
|
token: z.ZodString;
|
|
33
95
|
developer_slug: z.ZodString;
|
|
34
|
-
integration_slug: z.ZodString;
|
|
35
|
-
integration_title: z.ZodString;
|
|
36
96
|
}, "strip", z.ZodTypeAny, {
|
|
37
97
|
token: string;
|
|
38
98
|
developer_slug: string;
|
|
39
|
-
integration_slug: string;
|
|
40
|
-
integration_title: string;
|
|
41
99
|
}, {
|
|
42
100
|
token: string;
|
|
43
101
|
developer_slug: string;
|
|
44
|
-
integration_slug: string;
|
|
45
|
-
integration_title: string;
|
|
46
102
|
}>;
|
|
47
103
|
export type InitialConfig = z.infer<typeof initialConfigSchema>;
|
|
48
104
|
export declare const configFileName = ".attio.json";
|
|
@@ -51,12 +107,10 @@ export declare const loadInitialConfig: () => InitialConfig | InitialConfigError
|
|
|
51
107
|
export declare const loadConfig: () => Promise<{
|
|
52
108
|
developer_account_id: string;
|
|
53
109
|
developer_account_member_id: string;
|
|
54
|
-
integration_id: string;
|
|
55
110
|
token: string;
|
|
56
111
|
developer_slug: string;
|
|
57
|
-
|
|
58
|
-
integration_title: string;
|
|
59
|
-
}>;
|
|
112
|
+
} | InitialConfigError>;
|
|
60
113
|
export declare const completeBundleUpload: (token: string, devSlug: string, integrationId: string, devVersionId: string, bundleId: string) => Promise<true>;
|
|
114
|
+
export declare const isIntegrationSlugValid: (token: string, devSlug: string, integrationSlug: string) => Promise<boolean>;
|
|
61
115
|
export {};
|
|
62
116
|
//# sourceMappingURL=upload-bundle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-bundle.d.ts","sourceRoot":"","sources":["../../src/util/upload-bundle.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"upload-bundle.d.ts","sourceRoot":"","sources":["../../src/util/upload-bundle.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAA;AAErB,eAAO,MAAM,iBAAiB,QAC8D,CAAA;AA0D5F,eAAO,MAAM,iBAAiB,UACnB,MAAM,WACJ,MAAM,QACT,MAAM,SACL,MAAM;;;;;;;EAmBhB,CAAA;AAED,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;EAK1B,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE/D,eAAO,MAAM,gBAAgB,UAAiB,MAAM,WAAW,MAAM,iBAAiB,MAAM;;;;;EAW3F,CAAA;AAQD,eAAO,MAAM,WAAW,UACb,MAAM,WACJ,MAAM,iBACA,MAAM,gBACP,MAAM;;;;;EAYvB,CAAA;AAED,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASrB,CAAA;AAEF,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAA;AAClF,KAAK,sBAAsB,GAAG,iBAAiB,GAAG,sBAAsB,CAAA;AAIxE,eAAO,MAAM,qBAAqB,QAAO,iBAAiB,GAAG,sBAO5D,CAAA;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;EAG9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAO/D,eAAO,MAAM,cAAc,gBAAgB,CAAA;AAG3C,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,GAAG,qBAAqB,CAAA;AAEzE,eAAO,MAAM,iBAAiB,QAAO,aAAa,GAAG,kBAOpD,CAAA;AAED,eAAO,MAAM,UAAU;;;;;uBAsBtB,CAAA;AAMD,eAAO,MAAM,oBAAoB,UACtB,MAAM,WACJ,MAAM,iBACA,MAAM,gBACP,MAAM,YACV,MAAM,kBAiBnB,CAAA;AAMD,eAAO,MAAM,sBAAsB,UACxB,MAAM,WACJ,MAAM,mBACE,MAAM,qBAY1B,CAAA"}
|
|
@@ -3,14 +3,26 @@ import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
|
3
3
|
import { homedir } from "os";
|
|
4
4
|
import { v4 as uuid } from "uuid";
|
|
5
5
|
import { z } from "zod";
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
: "https://api.attio.com";
|
|
6
|
+
export const EXTENSION_API_URL = ((_a = process.env.NODE_ENV) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === "development" ? "api.attio.me" : "api.attio.com";
|
|
7
|
+
const BASE_URL = `https://${EXTENSION_API_URL}`;
|
|
9
8
|
const getHeaders = (token) => ({
|
|
10
9
|
"x-attio-platform": "web-app",
|
|
11
10
|
"Authorization": `Bearer ${token}`,
|
|
12
11
|
"Content-Type": "application/json",
|
|
13
12
|
});
|
|
13
|
+
const serverErrorSchema = z.object({
|
|
14
|
+
statusCode: z.number(),
|
|
15
|
+
error: z.string(),
|
|
16
|
+
message: z.string(),
|
|
17
|
+
status_code: z.number(),
|
|
18
|
+
});
|
|
19
|
+
const handleError = async (response) => {
|
|
20
|
+
if (response.ok)
|
|
21
|
+
return;
|
|
22
|
+
const json = await response.json();
|
|
23
|
+
const error = serverErrorSchema.parse(json);
|
|
24
|
+
throw new Error(error.message);
|
|
25
|
+
};
|
|
14
26
|
const createDeveloperAccountSchema = z.object({
|
|
15
27
|
developer_account: z.object({
|
|
16
28
|
developer_account_id: z.string(),
|
|
@@ -19,13 +31,14 @@ const createDeveloperAccountSchema = z.object({
|
|
|
19
31
|
developer_account_member_id: z.string(),
|
|
20
32
|
}),
|
|
21
33
|
});
|
|
22
|
-
const createDeveloperAccount = async (token, slug
|
|
34
|
+
const createDeveloperAccount = async (token, slug) => {
|
|
23
35
|
const accountId = uuid();
|
|
24
36
|
const response = await fetch(`${BASE_URL}/developer-portal/accounts/${accountId}`, {
|
|
25
37
|
method: "PUT",
|
|
26
38
|
headers: getHeaders(token),
|
|
27
|
-
body: JSON.stringify({ slug, title }),
|
|
39
|
+
body: JSON.stringify({ slug, title: slug }),
|
|
28
40
|
});
|
|
41
|
+
await handleError(response);
|
|
29
42
|
const json = await response.json();
|
|
30
43
|
try {
|
|
31
44
|
return createDeveloperAccountSchema.parse(json);
|
|
@@ -42,13 +55,14 @@ const createIntegrationSchema = z.object({
|
|
|
42
55
|
description: z.string(),
|
|
43
56
|
avatar_url: z.string().nullable(),
|
|
44
57
|
});
|
|
45
|
-
const createIntegration = async (token, devSlug, slug, title) => {
|
|
58
|
+
export const createIntegration = async (token, devSlug, slug, title) => {
|
|
46
59
|
const integrationId = uuid();
|
|
47
60
|
const response = await fetch(`${BASE_URL}/developer-portal/accounts/${devSlug}/integrations/${integrationId}`, {
|
|
48
61
|
method: "PUT",
|
|
49
62
|
headers: getHeaders(token),
|
|
50
63
|
body: JSON.stringify({ slug, title }),
|
|
51
64
|
});
|
|
65
|
+
await handleError(response);
|
|
52
66
|
const json = await response.json();
|
|
53
67
|
try {
|
|
54
68
|
return createIntegrationSchema.parse(json);
|
|
@@ -68,6 +82,7 @@ export const createDevVersion = async (token, devSlug, integrationId) => {
|
|
|
68
82
|
method: "POST",
|
|
69
83
|
headers: getHeaders(token),
|
|
70
84
|
});
|
|
85
|
+
await handleError(response);
|
|
71
86
|
return createDevVersionSchema.parse(await response.json());
|
|
72
87
|
};
|
|
73
88
|
const startUploadSchema = z.object({
|
|
@@ -81,18 +96,36 @@ export const startUpload = async (token, devSlug, integrationId, devVersionId) =
|
|
|
81
96
|
method: "POST",
|
|
82
97
|
headers: getHeaders(token),
|
|
83
98
|
});
|
|
99
|
+
await handleError(response);
|
|
84
100
|
return startUploadSchema.parse(await response.json());
|
|
85
101
|
};
|
|
102
|
+
const packageJsonSchema = z.object({
|
|
103
|
+
attio: z.object({
|
|
104
|
+
app: z.string(),
|
|
105
|
+
integration: z.object({
|
|
106
|
+
id: z.string(),
|
|
107
|
+
slug: z.string(),
|
|
108
|
+
title: z.string(),
|
|
109
|
+
}),
|
|
110
|
+
}),
|
|
111
|
+
});
|
|
112
|
+
const packageJsonPath = "./package.json";
|
|
113
|
+
export const loadIntegrationConfig = () => {
|
|
114
|
+
if (!existsSync(packageJsonPath))
|
|
115
|
+
return "No package.json";
|
|
116
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, { encoding: "utf8" }));
|
|
117
|
+
const parsed = packageJsonSchema.safeParse(packageJson);
|
|
118
|
+
if (!parsed.success)
|
|
119
|
+
return "Invalid package.json";
|
|
120
|
+
return parsed.data.attio.integration;
|
|
121
|
+
};
|
|
86
122
|
export const initialConfigSchema = z.object({
|
|
87
123
|
token: z.string(),
|
|
88
124
|
developer_slug: z.string(),
|
|
89
|
-
integration_slug: z.string(),
|
|
90
|
-
integration_title: z.string(),
|
|
91
125
|
});
|
|
92
126
|
const configSchema = initialConfigSchema.extend({
|
|
93
127
|
developer_account_id: z.string(),
|
|
94
128
|
developer_account_member_id: z.string(),
|
|
95
|
-
integration_id: z.string(),
|
|
96
129
|
});
|
|
97
130
|
export const configFileName = ".attio.json";
|
|
98
131
|
const configPath = `${homedir()}/${configFileName}`;
|
|
@@ -112,18 +145,14 @@ export const loadConfig = async () => {
|
|
|
112
145
|
return parsed.data;
|
|
113
146
|
const initialConfig = loadInitialConfig();
|
|
114
147
|
if (typeof initialConfig === "string")
|
|
115
|
-
|
|
116
|
-
const { token, developer_slug
|
|
117
|
-
const devAccount = await createDeveloperAccount(token, developer_slug
|
|
118
|
-
const integration = await createIntegration(token, developer_slug, integration_slug, integration_title);
|
|
148
|
+
return initialConfig;
|
|
149
|
+
const { token, developer_slug } = initialConfig;
|
|
150
|
+
const devAccount = await createDeveloperAccount(token, developer_slug);
|
|
119
151
|
const config = configSchema.parse({
|
|
120
152
|
token,
|
|
121
153
|
developer_slug,
|
|
122
154
|
developer_account_id: devAccount.developer_account.developer_account_id,
|
|
123
155
|
developer_account_member_id: devAccount.developer_account_member.developer_account_member_id,
|
|
124
|
-
integration_id: integration.integration_id,
|
|
125
|
-
integration_slug,
|
|
126
|
-
integration_title,
|
|
127
156
|
});
|
|
128
157
|
writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
129
158
|
return config;
|
|
@@ -136,6 +165,7 @@ export const completeBundleUpload = async (token, devSlug, integrationId, devVer
|
|
|
136
165
|
method: "POST",
|
|
137
166
|
headers: getHeaders(token),
|
|
138
167
|
});
|
|
168
|
+
await handleError(response);
|
|
139
169
|
const json = await response.json();
|
|
140
170
|
try {
|
|
141
171
|
return completeBundleUploadSchema.parse(json).success;
|
|
@@ -144,4 +174,14 @@ export const completeBundleUpload = async (token, devSlug, integrationId, devVer
|
|
|
144
174
|
throw new Error(JSON.stringify(json));
|
|
145
175
|
}
|
|
146
176
|
};
|
|
177
|
+
const isIntegrationSlugValidSchema = z.object({
|
|
178
|
+
exists: z.boolean(),
|
|
179
|
+
});
|
|
180
|
+
export const isIntegrationSlugValid = async (token, devSlug, integrationSlug) => {
|
|
181
|
+
const response = await fetch(`${BASE_URL}/developer-portal/accounts/${devSlug}/integrations/${integrationSlug}/exists`, {
|
|
182
|
+
headers: getHeaders(token),
|
|
183
|
+
});
|
|
184
|
+
await handleError(response);
|
|
185
|
+
return !isIntegrationSlugValidSchema.parse(await response.json()).exists;
|
|
186
|
+
};
|
|
147
187
|
//# sourceMappingURL=upload-bundle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-bundle.js","sourceRoot":"","sources":["../../src/util/upload-bundle.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAE,YAAY,EAAE,aAAa,EAAC,MAAM,IAAI,CAAA;AAC1D,OAAO,EAAC,OAAO,EAAC,MAAM,IAAI,CAAA;AAC1B,OAAO,EAAC,EAAE,IAAI,IAAI,EAAC,MAAM,MAAM,CAAA;AAC/B,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAA;AAErB,MAAM,
|
|
1
|
+
{"version":3,"file":"upload-bundle.js","sourceRoot":"","sources":["../../src/util/upload-bundle.ts"],"names":[],"mappings":"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"}
|