attio 0.0.1-experimental.20240614 → 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 +57 -14
- 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"}
|
|
@@ -1,13 +1,28 @@
|
|
|
1
|
+
var _a;
|
|
1
2
|
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
2
3
|
import { homedir } from "os";
|
|
3
4
|
import { v4 as uuid } from "uuid";
|
|
4
5
|
import { z } from "zod";
|
|
5
|
-
const
|
|
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}`;
|
|
6
8
|
const getHeaders = (token) => ({
|
|
7
9
|
"x-attio-platform": "web-app",
|
|
8
10
|
"Authorization": `Bearer ${token}`,
|
|
9
11
|
"Content-Type": "application/json",
|
|
10
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
|
+
};
|
|
11
26
|
const createDeveloperAccountSchema = z.object({
|
|
12
27
|
developer_account: z.object({
|
|
13
28
|
developer_account_id: z.string(),
|
|
@@ -16,13 +31,14 @@ const createDeveloperAccountSchema = z.object({
|
|
|
16
31
|
developer_account_member_id: z.string(),
|
|
17
32
|
}),
|
|
18
33
|
});
|
|
19
|
-
const createDeveloperAccount = async (token, slug
|
|
34
|
+
const createDeveloperAccount = async (token, slug) => {
|
|
20
35
|
const accountId = uuid();
|
|
21
36
|
const response = await fetch(`${BASE_URL}/developer-portal/accounts/${accountId}`, {
|
|
22
37
|
method: "PUT",
|
|
23
38
|
headers: getHeaders(token),
|
|
24
|
-
body: JSON.stringify({ slug, title }),
|
|
39
|
+
body: JSON.stringify({ slug, title: slug }),
|
|
25
40
|
});
|
|
41
|
+
await handleError(response);
|
|
26
42
|
const json = await response.json();
|
|
27
43
|
try {
|
|
28
44
|
return createDeveloperAccountSchema.parse(json);
|
|
@@ -39,13 +55,14 @@ const createIntegrationSchema = z.object({
|
|
|
39
55
|
description: z.string(),
|
|
40
56
|
avatar_url: z.string().nullable(),
|
|
41
57
|
});
|
|
42
|
-
const createIntegration = async (token, devSlug, slug, title) => {
|
|
58
|
+
export const createIntegration = async (token, devSlug, slug, title) => {
|
|
43
59
|
const integrationId = uuid();
|
|
44
60
|
const response = await fetch(`${BASE_URL}/developer-portal/accounts/${devSlug}/integrations/${integrationId}`, {
|
|
45
61
|
method: "PUT",
|
|
46
62
|
headers: getHeaders(token),
|
|
47
63
|
body: JSON.stringify({ slug, title }),
|
|
48
64
|
});
|
|
65
|
+
await handleError(response);
|
|
49
66
|
const json = await response.json();
|
|
50
67
|
try {
|
|
51
68
|
return createIntegrationSchema.parse(json);
|
|
@@ -65,6 +82,7 @@ export const createDevVersion = async (token, devSlug, integrationId) => {
|
|
|
65
82
|
method: "POST",
|
|
66
83
|
headers: getHeaders(token),
|
|
67
84
|
});
|
|
85
|
+
await handleError(response);
|
|
68
86
|
return createDevVersionSchema.parse(await response.json());
|
|
69
87
|
};
|
|
70
88
|
const startUploadSchema = z.object({
|
|
@@ -78,18 +96,36 @@ export const startUpload = async (token, devSlug, integrationId, devVersionId) =
|
|
|
78
96
|
method: "POST",
|
|
79
97
|
headers: getHeaders(token),
|
|
80
98
|
});
|
|
99
|
+
await handleError(response);
|
|
81
100
|
return startUploadSchema.parse(await response.json());
|
|
82
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
|
+
};
|
|
83
122
|
export const initialConfigSchema = z.object({
|
|
84
123
|
token: z.string(),
|
|
85
124
|
developer_slug: z.string(),
|
|
86
|
-
integration_slug: z.string(),
|
|
87
|
-
integration_title: z.string(),
|
|
88
125
|
});
|
|
89
126
|
const configSchema = initialConfigSchema.extend({
|
|
90
127
|
developer_account_id: z.string(),
|
|
91
128
|
developer_account_member_id: z.string(),
|
|
92
|
-
integration_id: z.string(),
|
|
93
129
|
});
|
|
94
130
|
export const configFileName = ".attio.json";
|
|
95
131
|
const configPath = `${homedir()}/${configFileName}`;
|
|
@@ -109,18 +145,14 @@ export const loadConfig = async () => {
|
|
|
109
145
|
return parsed.data;
|
|
110
146
|
const initialConfig = loadInitialConfig();
|
|
111
147
|
if (typeof initialConfig === "string")
|
|
112
|
-
|
|
113
|
-
const { token, developer_slug
|
|
114
|
-
const devAccount = await createDeveloperAccount(token, developer_slug
|
|
115
|
-
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);
|
|
116
151
|
const config = configSchema.parse({
|
|
117
152
|
token,
|
|
118
153
|
developer_slug,
|
|
119
154
|
developer_account_id: devAccount.developer_account.developer_account_id,
|
|
120
155
|
developer_account_member_id: devAccount.developer_account_member.developer_account_member_id,
|
|
121
|
-
integration_id: integration.integration_id,
|
|
122
|
-
integration_slug,
|
|
123
|
-
integration_title,
|
|
124
156
|
});
|
|
125
157
|
writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
126
158
|
return config;
|
|
@@ -133,6 +165,7 @@ export const completeBundleUpload = async (token, devSlug, integrationId, devVer
|
|
|
133
165
|
method: "POST",
|
|
134
166
|
headers: getHeaders(token),
|
|
135
167
|
});
|
|
168
|
+
await handleError(response);
|
|
136
169
|
const json = await response.json();
|
|
137
170
|
try {
|
|
138
171
|
return completeBundleUploadSchema.parse(json).success;
|
|
@@ -141,4 +174,14 @@ export const completeBundleUpload = async (token, devSlug, integrationId, devVer
|
|
|
141
174
|
throw new Error(JSON.stringify(json));
|
|
142
175
|
}
|
|
143
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
|
+
};
|
|
144
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,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"upload-bundle.js","sourceRoot":"","sources":["../../src/util/upload-bundle.ts"],"names":[],"mappings":"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"}
|