attio 0.0.1-experimental.20240624 → 0.0.1-experimental.20240627
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 +13 -1
- package/lib/commands/dev.d.ts.map +1 -1
- package/lib/commands/dev.js +32 -4
- package/lib/commands/dev.js.map +1 -1
- package/lib/commands/index.d.ts +1 -4
- package/lib/commands/index.d.ts.map +1 -1
- package/lib/commands/index.js +19 -30
- package/lib/commands/index.js.map +1 -1
- package/lib/components/Disclaimer.js +3 -3
- package/lib/components/Disclaimer.js.map +1 -1
- package/lib/components/InitialInstructions.d.ts.map +1 -1
- package/lib/components/InitialInstructions.js +19 -15
- package/lib/components/InitialInstructions.js.map +1 -1
- package/lib/env.d.ts +5 -0
- package/lib/env.d.ts.map +1 -0
- package/lib/env.js +6 -0
- package/lib/env.js.map +1 -0
- package/lib/machines/dev-machine.d.ts +30 -10
- package/lib/machines/dev-machine.d.ts.map +1 -1
- package/lib/machines/dev-machine.js +38 -19
- package/lib/machines/dev-machine.js.map +1 -1
- package/lib/machines/scaffold-machine.d.ts +100 -147
- package/lib/machines/scaffold-machine.d.ts.map +1 -1
- package/lib/machines/scaffold-machine.js +142 -152
- package/lib/machines/scaffold-machine.js.map +1 -1
- package/lib/templates/javascript/package.json +3 -3
- package/lib/templates/typescript/package.json +4 -4
- package/lib/util/slugify-extension.d.ts +2 -0
- package/lib/util/slugify-extension.d.ts.map +1 -0
- package/lib/util/slugify-extension.js +15 -0
- package/lib/util/slugify-extension.js.map +1 -0
- package/lib/util/upload-bundle.d.ts +1 -9
- package/lib/util/upload-bundle.d.ts.map +1 -1
- package/lib/util/upload-bundle.js +25 -13
- package/lib/util/upload-bundle.js.map +1 -1
- package/lib/util/validate-slug.d.ts +3 -0
- package/lib/util/validate-slug.d.ts.map +1 -0
- package/lib/util/validate-slug.js +14 -0
- package/lib/util/validate-slug.js.map +1 -0
- package/package.json +3 -3
- package/lib/util/make-extension-name.d.ts +0 -3
- package/lib/util/make-extension-name.d.ts.map +0 -1
- package/lib/util/make-extension-name.js +0 -14
- package/lib/util/make-extension-name.js.map +0 -1
- package/lib/util/validate-project-name.d.ts +0 -3
- package/lib/util/validate-project-name.d.ts.map +0 -1
- package/lib/util/validate-project-name.js +0 -28
- package/lib/util/validate-project-name.js.map +0 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export declare const EXTENSION_API_URL: string;
|
|
3
2
|
export declare const createIntegration: (token: string, devSlug: string, slug: string, title: string) => Promise<{
|
|
4
3
|
title: string;
|
|
5
4
|
description: string;
|
|
@@ -35,27 +34,22 @@ declare const packageJsonSchema: z.ZodObject<{
|
|
|
35
34
|
integration: z.ZodObject<{
|
|
36
35
|
id: z.ZodString;
|
|
37
36
|
slug: z.ZodString;
|
|
38
|
-
title: z.ZodString;
|
|
39
37
|
}, "strip", z.ZodTypeAny, {
|
|
40
|
-
title: string;
|
|
41
38
|
id: string;
|
|
42
39
|
slug: string;
|
|
43
40
|
}, {
|
|
44
|
-
title: string;
|
|
45
41
|
id: string;
|
|
46
42
|
slug: string;
|
|
47
43
|
}>;
|
|
48
44
|
}, "strip", z.ZodTypeAny, {
|
|
49
45
|
app: string;
|
|
50
46
|
integration: {
|
|
51
|
-
title: string;
|
|
52
47
|
id: string;
|
|
53
48
|
slug: string;
|
|
54
49
|
};
|
|
55
50
|
}, {
|
|
56
51
|
app: string;
|
|
57
52
|
integration: {
|
|
58
|
-
title: string;
|
|
59
53
|
id: string;
|
|
60
54
|
slug: string;
|
|
61
55
|
};
|
|
@@ -64,7 +58,6 @@ declare const packageJsonSchema: z.ZodObject<{
|
|
|
64
58
|
attio: {
|
|
65
59
|
app: string;
|
|
66
60
|
integration: {
|
|
67
|
-
title: string;
|
|
68
61
|
id: string;
|
|
69
62
|
slug: string;
|
|
70
63
|
};
|
|
@@ -73,7 +66,6 @@ declare const packageJsonSchema: z.ZodObject<{
|
|
|
73
66
|
attio: {
|
|
74
67
|
app: string;
|
|
75
68
|
integration: {
|
|
76
|
-
title: string;
|
|
77
69
|
id: string;
|
|
78
70
|
slug: string;
|
|
79
71
|
};
|
|
@@ -111,7 +103,7 @@ declare const configSchema: z.ZodObject<{
|
|
|
111
103
|
}>;
|
|
112
104
|
type Config = z.infer<typeof configSchema>;
|
|
113
105
|
export declare const configFileName = ".attio.json";
|
|
114
|
-
export type InitialConfigError = "No config file" | "Invalid config file";
|
|
106
|
+
export type InitialConfigError = "No config file" | "Invalid config file" | "Invalid developer_slug: must be lower kebab case and contain only letters and hyphens. e.g. my-slug";
|
|
115
107
|
export declare const loadInitialConfig: () => InitialConfig | InitialConfigError;
|
|
116
108
|
export declare const loadConfig: () => Promise<Config | InitialConfigError>;
|
|
117
109
|
export declare const completeBundleUpload: (token: string, devSlug: string, integrationId: string, devVersionId: string, bundleId: string) => Promise<true>;
|
|
@@ -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;AAiErB,eAAO,MAAM,iBAAiB,UACnB,MAAM,WACJ,MAAM,QACT,MAAM,SACL,MAAM;;;;;;;EA6BhB,CAAA;AAED,QAAA,MAAM,sBAAsB;;;;;;;;;EAG1B,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQrB,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;AAE/D,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;EAGhB,CAAA;AACF,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAE1C,eAAO,MAAM,cAAc,gBAAgB,CAAA;AAG3C,MAAM,MAAM,kBAAkB,GACxB,gBAAgB,GAChB,qBAAqB,GACrB,qGAAqG,CAAA;AAE3G,eAAO,MAAM,iBAAiB,QAAO,aAAa,GAAG,kBAOpD,CAAA;AAED,eAAO,MAAM,UAAU,QAAa,QAAQ,MAAM,GAAG,kBAAkB,CAsCtE,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,qBAa1B,CAAA;AAMD,eAAO,MAAM,IAAI,UACN,MAAM,WACJ,MAAM,iBACA,MAAM,gBACP,MAAM,qBAYvB,CAAA"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
var _a;
|
|
2
1
|
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
3
2
|
import { homedir } from "os";
|
|
4
3
|
import { v4 as uuid } from "uuid";
|
|
5
4
|
import { z } from "zod";
|
|
5
|
+
import { API } from "../env.js";
|
|
6
|
+
import { isValidSlug } from "./validate-slug.js";
|
|
6
7
|
const isTest = process.env.NODE_ENV === "test";
|
|
7
|
-
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";
|
|
8
|
-
const BASE_URL = `https://${EXTENSION_API_URL}`;
|
|
9
8
|
const getHeaders = (token) => ({
|
|
10
9
|
"x-attio-platform": "web-app",
|
|
11
10
|
"Authorization": `Bearer ${token}`,
|
|
@@ -37,7 +36,7 @@ const createDeveloperAccount = async (token, slug) => {
|
|
|
37
36
|
developer_account_member: { developer_account_member_id: accountId },
|
|
38
37
|
});
|
|
39
38
|
}
|
|
40
|
-
const response = await fetch(`${
|
|
39
|
+
const response = await fetch(`${API}/developer-portal/accounts/${accountId}`, {
|
|
41
40
|
method: "PUT",
|
|
42
41
|
headers: getHeaders(token),
|
|
43
42
|
body: JSON.stringify({ slug, title: slug }),
|
|
@@ -71,7 +70,7 @@ export const createIntegration = async (token, devSlug, slug, title) => {
|
|
|
71
70
|
avatar_url: null,
|
|
72
71
|
});
|
|
73
72
|
}
|
|
74
|
-
const response = await fetch(`${
|
|
73
|
+
const response = await fetch(`${API}/developer-portal/accounts/${devSlug}/integrations/${integrationId}`, {
|
|
75
74
|
method: "PUT",
|
|
76
75
|
headers: getHeaders(token),
|
|
77
76
|
body: JSON.stringify({ slug, title }),
|
|
@@ -90,7 +89,7 @@ const createDevVersionSchema = z.object({
|
|
|
90
89
|
integration_dev_version_id: z.string(),
|
|
91
90
|
});
|
|
92
91
|
export const createDevVersion = async (token, devSlug, integrationId) => {
|
|
93
|
-
const response = await fetch(`${
|
|
92
|
+
const response = await fetch(`${API}/developer-portal/accounts/${devSlug}/integrations/${integrationId}/dev-versions`, {
|
|
94
93
|
method: "POST",
|
|
95
94
|
headers: getHeaders(token),
|
|
96
95
|
});
|
|
@@ -104,7 +103,7 @@ const startUploadSchema = z.object({
|
|
|
104
103
|
server_bundle_upload_url: z.string(),
|
|
105
104
|
});
|
|
106
105
|
export const startUpload = async (token, devSlug, integrationId, devVersionId) => {
|
|
107
|
-
const response = await fetch(`${
|
|
106
|
+
const response = await fetch(`${API}/developer-portal/accounts/${devSlug}/integrations/${integrationId}/dev-versions/${devVersionId}/bundles`, {
|
|
108
107
|
method: "POST",
|
|
109
108
|
headers: getHeaders(token),
|
|
110
109
|
});
|
|
@@ -117,7 +116,6 @@ const packageJsonSchema = z.object({
|
|
|
117
116
|
integration: z.object({
|
|
118
117
|
id: z.string(),
|
|
119
118
|
slug: z.string(),
|
|
120
|
-
title: z.string(),
|
|
121
119
|
}),
|
|
122
120
|
}),
|
|
123
121
|
});
|
|
@@ -153,14 +151,28 @@ export const loadInitialConfig = () => {
|
|
|
153
151
|
export const loadConfig = async () => {
|
|
154
152
|
if (!existsSync(configPath))
|
|
155
153
|
return "No config file";
|
|
156
|
-
const
|
|
154
|
+
const configFileContents = readFileSync(configPath, { encoding: "utf8" });
|
|
155
|
+
let configFile;
|
|
156
|
+
try {
|
|
157
|
+
configFile = JSON.parse(configFileContents);
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
return "Invalid config file";
|
|
161
|
+
}
|
|
157
162
|
const parsed = configSchema.safeParse(configFile);
|
|
158
|
-
if (parsed.success)
|
|
163
|
+
if (parsed.success) {
|
|
164
|
+
if (!isValidSlug(parsed.data.developer_slug)) {
|
|
165
|
+
return "Invalid developer_slug: must be lower kebab case and contain only letters and hyphens. e.g. my-slug";
|
|
166
|
+
}
|
|
159
167
|
return parsed.data;
|
|
168
|
+
}
|
|
160
169
|
const initialConfig = loadInitialConfig();
|
|
161
170
|
if (typeof initialConfig === "string")
|
|
162
171
|
return initialConfig;
|
|
163
172
|
const { token, developer_slug } = initialConfig;
|
|
173
|
+
if (!isValidSlug(developer_slug)) {
|
|
174
|
+
return "Invalid developer_slug: must be lower kebab case and contain only letters and hyphens. e.g. my-slug";
|
|
175
|
+
}
|
|
164
176
|
const devAccount = await createDeveloperAccount(token, developer_slug);
|
|
165
177
|
const config = configSchema.parse({
|
|
166
178
|
token,
|
|
@@ -175,7 +187,7 @@ const completeBundleUploadSchema = z.object({
|
|
|
175
187
|
success: z.literal(true),
|
|
176
188
|
});
|
|
177
189
|
export const completeBundleUpload = async (token, devSlug, integrationId, devVersionId, bundleId) => {
|
|
178
|
-
const response = await fetch(`${
|
|
190
|
+
const response = await fetch(`${API}/developer-portal/accounts/${devSlug}/integrations/${integrationId}/dev-versions/${devVersionId}/bundles/${bundleId}/complete`, {
|
|
179
191
|
method: "POST",
|
|
180
192
|
headers: getHeaders(token),
|
|
181
193
|
});
|
|
@@ -194,7 +206,7 @@ const isIntegrationSlugValidSchema = z.object({
|
|
|
194
206
|
export const isIntegrationSlugValid = async (token, devSlug, integrationSlug) => {
|
|
195
207
|
if (isTest)
|
|
196
208
|
return true;
|
|
197
|
-
const response = await fetch(`${
|
|
209
|
+
const response = await fetch(`${API}/developer-portal/accounts/${devSlug}/integrations/${integrationSlug}/exists`, {
|
|
198
210
|
headers: getHeaders(token),
|
|
199
211
|
});
|
|
200
212
|
await handleError(response);
|
|
@@ -204,7 +216,7 @@ const pingSchema = z.object({
|
|
|
204
216
|
success: z.boolean(),
|
|
205
217
|
});
|
|
206
218
|
export const ping = async (token, devSlug, integrationId, devVersionId) => {
|
|
207
|
-
const response = await fetch(`${
|
|
219
|
+
const response = await fetch(`${API}/developer-portal/accounts/${devSlug}/integrations/${integrationId}/dev-versions/${devVersionId}/ping`, {
|
|
208
220
|
method: "POST",
|
|
209
221
|
headers: getHeaders(token),
|
|
210
222
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-bundle.js","sourceRoot":"","sources":["../../src/util/upload-bundle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upload-bundle.js","sourceRoot":"","sources":["../../src/util/upload-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-slug.d.ts","sourceRoot":"","sources":["../../src/util/validate-slug.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ,SAAU,MAAM,KAAG,OAQvC,CAAA;AAED,eAAO,MAAM,WAAW,SAAU,MAAM,KAAG,OAA+B,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { accessSync, constants } from "fs";
|
|
2
|
+
import { resolve } from "path";
|
|
3
|
+
const slugRegex = /^(?!-)[a-z\-]*(?<!-)$/;
|
|
4
|
+
export const canWrite = (path) => {
|
|
5
|
+
try {
|
|
6
|
+
accessSync(resolve(path), constants.W_OK);
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
export const isValidSlug = (slug) => slugRegex.test(slug);
|
|
14
|
+
//# sourceMappingURL=validate-slug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-slug.js","sourceRoot":"","sources":["../../src/util/validate-slug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,IAAI,CAAA;AACxC,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAA;AAE5B,MAAM,SAAS,GAAG,uBAAuB,CAAA;AAEzC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAW,EAAE;IAC9C,IAAI,CAAC;QACD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QAEzC,OAAO,IAAI,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAA;IAChB,CAAC;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "attio",
|
|
3
|
-
"version": "0.0.1-experimental.
|
|
3
|
+
"version": "0.0.1-experimental.20240627",
|
|
4
4
|
"bin": "lib/attio.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"scripts": {
|
|
10
10
|
"build": "NODE_ENV=production tsc --build && node ./scripts/copy-templates.js",
|
|
11
11
|
"build-watch": "tsc --build --watch",
|
|
12
|
-
"pretest": "./scripts/install-bun.sh && PATH=$HOME/.bun/bin:$PATH concurrently --timings -n build,bun,yarn,pnpm,config \"yarn build\" \"bun --version\" \"npm install --global yarn\" \"npm install --global pnpm\" \"echo '{\\\"token\\\":\\\"CI\\\",\\\"developer_slug\\\":\\\"
|
|
12
|
+
"pretest": "./scripts/install-bun.sh && PATH=$HOME/.bun/bin:$PATH concurrently --timings -n build,bun,yarn,pnpm,config \"yarn build\" \"bun --version\" \"npm install --global yarn\" \"npm install --global pnpm\" \"echo '{\\\"token\\\":\\\"CI\\\",\\\"developer_slug\\\":\\\"ci\\\"}' > ~/.attio.json\"",
|
|
13
13
|
"test": "yarn run test-typescript && PATH=$HOME/.bun/bin:$PATH yarn run test-jest",
|
|
14
14
|
"test-jest": "jest --config ./jest.config.cjs",
|
|
15
15
|
"test-typescript": "tsc --build",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"pastel": "^2.0.2",
|
|
54
54
|
"react": "18.3.1",
|
|
55
55
|
"typescript": "5.4.5",
|
|
56
|
-
"uuid": "^9.0.
|
|
56
|
+
"uuid": "^9.0.1",
|
|
57
57
|
"xstate": "^5.12.0",
|
|
58
58
|
"yargs": "^17.7.2",
|
|
59
59
|
"zod": "^3.22.3"
|
|
@@ -1 +0,0 @@
|
|
|
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,14 +0,0 @@
|
|
|
1
|
-
const slugify = (string) => string
|
|
2
|
-
.toLowerCase()
|
|
3
|
-
.replace(/\s+/g, "-")
|
|
4
|
-
.replace(/[^\w]+_'"/g, "")
|
|
5
|
-
.replace(/--+ /g, "-")
|
|
6
|
-
.replace(/^-+/, "")
|
|
7
|
-
.replace(/-+$/, "");
|
|
8
|
-
export function makeIntegrationSlug(string) {
|
|
9
|
-
return slugify(string.toLowerCase().trim());
|
|
10
|
-
}
|
|
11
|
-
export function makeExtensionName(string) {
|
|
12
|
-
return slugify(string.toLowerCase().trim());
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=make-extension-name.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate-project-name.d.ts","sourceRoot":"","sources":["../../src/util/validate-project-name.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,WAAW,SAAU,MAAM,KAAG,OAA+B,CAAA;AAQ1E,eAAO,MAAM,mBAAmB,SAAU,MAAM,KAAG,MAAM,GAAG,IAiB3D,CAAA"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { accessSync, constants, existsSync } from "fs";
|
|
2
|
-
import { join, resolve } from "path";
|
|
3
|
-
const slugRegex = /^(?!-)[a-z\-]*(?<!-)$/;
|
|
4
|
-
const canWrite = (path) => {
|
|
5
|
-
try {
|
|
6
|
-
accessSync(resolve(path), constants.W_OK);
|
|
7
|
-
return true;
|
|
8
|
-
}
|
|
9
|
-
catch {
|
|
10
|
-
return false;
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
export const isValidSlug = (slug) => slugRegex.test(slug);
|
|
14
|
-
export const validateProjectName = (name) => {
|
|
15
|
-
if (!name.trim())
|
|
16
|
-
return "Missing name";
|
|
17
|
-
if (!isValidSlug(name)) {
|
|
18
|
-
return "Name contains invalid characters. Must be lowercase letters or hyphens only.";
|
|
19
|
-
}
|
|
20
|
-
if (existsSync(join(process.cwd(), name))) {
|
|
21
|
-
return `Directory "${name}" already exists`;
|
|
22
|
-
}
|
|
23
|
-
if (!canWrite(".")) {
|
|
24
|
-
return "Write access denied to current directory";
|
|
25
|
-
}
|
|
26
|
-
return null;
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=validate-project-name.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate-project-name.js","sourceRoot":"","sources":["../../src/util/validate-project-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAC,MAAM,IAAI,CAAA;AACpD,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,MAAM,MAAM,CAAA;AAElC,MAAM,SAAS,GAAG,uBAAuB,CAAA;AAEzC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAW,EAAE;IACvC,IAAI,CAAC;QACD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QAEzC,OAAO,IAAI,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAA;IAChB,CAAC;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAQ1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAiB,EAAE;IAC/D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,cAAc,CAAA;IACvC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,8EAA8E,CAAA;IACzF,CAAC;IAGD,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO,cAAc,IAAI,kBAAkB,CAAA;IAC/C,CAAC;IAGD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjB,OAAO,0CAA0C,CAAA;IACrD,CAAC;IAED,OAAO,IAAI,CAAA;AACf,CAAC,CAAA"}
|