@doswiftly/cli 0.1.4 → 0.1.6
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/commands/deploy.d.ts +9 -0
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +40 -1
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +7 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/template.d.ts.map +1 -1
- package/dist/commands/template.js +388 -345
- package/dist/commands/template.js.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +63 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +25 -2
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +4 -0
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/logger.d.ts +6 -0
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +11 -0
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/shared-api-client.d.ts.map +1 -1
- package/dist/lib/shared-api-client.js +14 -0
- package/dist/lib/shared-api-client.js.map +1 -1
- package/package.json +1 -1
- package/templates/storefront-nextjs/app/auth/register/page.tsx +0 -16
- package/templates/storefront-nextjs-shadcn/app/account/settings/page.tsx +1 -25
- package/templates/storefront-nextjs-shadcn/components/auth/register-form.tsx +0 -21
- package/dist/lib/api.d.ts +0 -67
- package/dist/lib/api.d.ts.map +0 -1
- package/dist/lib/api.js +0 -36
- package/dist/lib/api.js.map +0 -1
- package/templates/storefront-nextjs/.github/workflows/deploy.yml +0 -45
- package/templates/storefront-nextjs/.github/workflows/preview.yml +0 -45
- package/templates/storefront-nextjs-shadcn/.github/workflows/deploy.yml +0 -45
- package/templates/storefront-nextjs-shadcn/.github/workflows/preview.yml +0 -45
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-api-client.d.ts","sourceRoot":"","sources":["../../src/lib/shared-api-client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAqB7C;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAOrD;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAQpC;AAED,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"shared-api-client.d.ts","sourceRoot":"","sources":["../../src/lib/shared-api-client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAqB7C;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAOrD;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAQpC;AAED,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,aAAa,CA0DrF"}
|
|
@@ -87,6 +87,20 @@ export function createSharedApiClient(options) {
|
|
|
87
87
|
if (shopSlug) {
|
|
88
88
|
client.defaults.headers.common['X-Shop-Slug'] = shopSlug;
|
|
89
89
|
}
|
|
90
|
+
// Warn on 401 when local config overrides profile API URL — likely JWT secret mismatch
|
|
91
|
+
const profileApiUrl = getApiUrl();
|
|
92
|
+
if (localApiUrl && profileApiUrl && localApiUrl !== profileApiUrl) {
|
|
93
|
+
client.interceptors.response.use(undefined, (error) => {
|
|
94
|
+
if (error.response?.status === 401) {
|
|
95
|
+
console.error(`\n ⚠ API URL mismatch detected!` +
|
|
96
|
+
`\n Request sent to: ${localApiUrl} (from doswiftly.config.ts)` +
|
|
97
|
+
`\n Profile API URL: ${profileApiUrl}` +
|
|
98
|
+
`\n Your token was issued by the profile API and is invalid on a different server.` +
|
|
99
|
+
`\n Fix: update api.url in doswiftly.config.ts, or remove it to use the profile URL.\n`);
|
|
100
|
+
}
|
|
101
|
+
return Promise.reject(error);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
90
104
|
return client;
|
|
91
105
|
}
|
|
92
106
|
//# sourceMappingURL=shared-api-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-api-client.js","sourceRoot":"","sources":["../../src/lib/shared-api-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shared-api-client.js","sourceRoot":"","sources":["../../src/lib/shared-api-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -16,7 +16,6 @@ function RegisterForm() {
|
|
|
16
16
|
email: "",
|
|
17
17
|
password: "",
|
|
18
18
|
confirmPassword: "",
|
|
19
|
-
acceptsMarketing: false,
|
|
20
19
|
});
|
|
21
20
|
const [error, setError] = useState<string | null>(null);
|
|
22
21
|
|
|
@@ -51,7 +50,6 @@ function RegisterForm() {
|
|
|
51
50
|
password: formData.password,
|
|
52
51
|
firstName: formData.firstName || undefined,
|
|
53
52
|
lastName: formData.lastName || undefined,
|
|
54
|
-
acceptsMarketing: formData.acceptsMarketing,
|
|
55
53
|
},
|
|
56
54
|
});
|
|
57
55
|
|
|
@@ -182,20 +180,6 @@ function RegisterForm() {
|
|
|
182
180
|
/>
|
|
183
181
|
</div>
|
|
184
182
|
|
|
185
|
-
<div className="flex items-center gap-2">
|
|
186
|
-
<input
|
|
187
|
-
type="checkbox"
|
|
188
|
-
id="acceptsMarketing"
|
|
189
|
-
name="acceptsMarketing"
|
|
190
|
-
checked={formData.acceptsMarketing}
|
|
191
|
-
onChange={handleChange}
|
|
192
|
-
className="h-4 w-4 rounded border-gray-300"
|
|
193
|
-
/>
|
|
194
|
-
<label htmlFor="acceptsMarketing" className="text-sm text-gray-600">
|
|
195
|
-
I want to receive marketing emails
|
|
196
|
-
</label>
|
|
197
|
-
</div>
|
|
198
|
-
|
|
199
183
|
<button
|
|
200
184
|
type="submit"
|
|
201
185
|
disabled={register.isPending}
|
|
@@ -19,7 +19,6 @@ export default function SettingsPage() {
|
|
|
19
19
|
const [firstName, setFirstName] = useState("");
|
|
20
20
|
const [lastName, setLastName] = useState("");
|
|
21
21
|
const [phone, setPhone] = useState("");
|
|
22
|
-
const [acceptsMarketing, setAcceptsMarketing] = useState(false);
|
|
23
22
|
|
|
24
23
|
// Fetch customer data
|
|
25
24
|
const { data: customerData } = useQuery({
|
|
@@ -38,7 +37,6 @@ export default function SettingsPage() {
|
|
|
38
37
|
setFirstName(customerData.customer.firstName || "");
|
|
39
38
|
setLastName(customerData.customer.lastName || "");
|
|
40
39
|
setPhone(customerData.customer.phone || "");
|
|
41
|
-
setAcceptsMarketing(customerData.customer.acceptsMarketing || false);
|
|
42
40
|
}
|
|
43
41
|
});
|
|
44
42
|
|
|
@@ -66,7 +64,6 @@ export default function SettingsPage() {
|
|
|
66
64
|
lastName,
|
|
67
65
|
email,
|
|
68
66
|
phone,
|
|
69
|
-
acceptsMarketing,
|
|
70
67
|
});
|
|
71
68
|
};
|
|
72
69
|
|
|
@@ -166,28 +163,7 @@ export default function SettingsPage() {
|
|
|
166
163
|
</CardContent>
|
|
167
164
|
</Card>
|
|
168
165
|
|
|
169
|
-
{/*
|
|
170
|
-
<Card>
|
|
171
|
-
<CardHeader>
|
|
172
|
-
<CardTitle>Preferences</CardTitle>
|
|
173
|
-
</CardHeader>
|
|
174
|
-
<CardContent className="space-y-4">
|
|
175
|
-
<div className="flex items-center justify-between">
|
|
176
|
-
<div>
|
|
177
|
-
<p className="font-medium">Marketing Emails</p>
|
|
178
|
-
<p className="text-sm text-muted-foreground">
|
|
179
|
-
Receive emails about new products and special offers
|
|
180
|
-
</p>
|
|
181
|
-
</div>
|
|
182
|
-
<input
|
|
183
|
-
type="checkbox"
|
|
184
|
-
checked={acceptsMarketing}
|
|
185
|
-
onChange={(e) => setAcceptsMarketing(e.target.checked)}
|
|
186
|
-
className="h-4 w-4 rounded border-border text-primary focus:ring-2 focus:ring-ring"
|
|
187
|
-
/>
|
|
188
|
-
</div>
|
|
189
|
-
</CardContent>
|
|
190
|
-
</Card>
|
|
166
|
+
{/* Email preferences are managed via the self-service preferences portal */}
|
|
191
167
|
</div>
|
|
192
168
|
</div>
|
|
193
169
|
</div>
|
|
@@ -34,7 +34,6 @@ const registerSchema = z.object({
|
|
|
34
34
|
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)/,
|
|
35
35
|
"Password must contain at least one uppercase letter, one lowercase letter, and one number"
|
|
36
36
|
),
|
|
37
|
-
acceptsMarketing: z.boolean().optional(),
|
|
38
37
|
});
|
|
39
38
|
|
|
40
39
|
type RegisterFormData = z.infer<typeof registerSchema>;
|
|
@@ -56,7 +55,6 @@ export function RegisterForm({ onSuccess, redirectTo = "/account" }: RegisterFor
|
|
|
56
55
|
const [password, setPassword] = useState("");
|
|
57
56
|
const [firstName, setFirstName] = useState("");
|
|
58
57
|
const [lastName, setLastName] = useState("");
|
|
59
|
-
const [acceptsMarketing, setAcceptsMarketing] = useState(false);
|
|
60
58
|
const [error, setError] = useState("");
|
|
61
59
|
const [fieldErrors, setFieldErrors] = useState<Partial<Record<keyof RegisterFormData, string>>>({});
|
|
62
60
|
|
|
@@ -68,7 +66,6 @@ export function RegisterForm({ onSuccess, redirectTo = "/account" }: RegisterFor
|
|
|
68
66
|
password: string;
|
|
69
67
|
firstName: string;
|
|
70
68
|
lastName: string;
|
|
71
|
-
acceptsMarketing: boolean;
|
|
72
69
|
}) => {
|
|
73
70
|
return client.request(CustomerCreateDocument, { input });
|
|
74
71
|
},
|
|
@@ -85,7 +82,6 @@ export function RegisterForm({ onSuccess, redirectTo = "/account" }: RegisterFor
|
|
|
85
82
|
lastName,
|
|
86
83
|
email,
|
|
87
84
|
password,
|
|
88
|
-
acceptsMarketing,
|
|
89
85
|
});
|
|
90
86
|
|
|
91
87
|
if (!result.success) {
|
|
@@ -106,7 +102,6 @@ export function RegisterForm({ onSuccess, redirectTo = "/account" }: RegisterFor
|
|
|
106
102
|
password,
|
|
107
103
|
firstName,
|
|
108
104
|
lastName,
|
|
109
|
-
acceptsMarketing,
|
|
110
105
|
});
|
|
111
106
|
|
|
112
107
|
// Check for user errors first
|
|
@@ -267,22 +262,6 @@ export function RegisterForm({ onSuccess, redirectTo = "/account" }: RegisterFor
|
|
|
267
262
|
)}
|
|
268
263
|
</div>
|
|
269
264
|
|
|
270
|
-
<div className="flex items-start gap-2">
|
|
271
|
-
<input
|
|
272
|
-
id="acceptsMarketing"
|
|
273
|
-
type="checkbox"
|
|
274
|
-
checked={acceptsMarketing}
|
|
275
|
-
onChange={(e) => setAcceptsMarketing(e.target.checked)}
|
|
276
|
-
className="mt-1 h-4 w-4 rounded border-border text-primary focus:ring-2 focus:ring-ring focus:ring-offset-2"
|
|
277
|
-
/>
|
|
278
|
-
<label
|
|
279
|
-
htmlFor="acceptsMarketing"
|
|
280
|
-
className="text-sm text-muted-foreground"
|
|
281
|
-
>
|
|
282
|
-
I want to receive emails about products, promotions, and special offers
|
|
283
|
-
</label>
|
|
284
|
-
</div>
|
|
285
|
-
|
|
286
265
|
<Button
|
|
287
266
|
type="submit"
|
|
288
267
|
className="w-full"
|
package/dist/lib/api.d.ts
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { AxiosInstance } from "axios";
|
|
2
|
-
export declare function createApiClient(token: string): AxiosInstance;
|
|
3
|
-
export interface CLIConfig {
|
|
4
|
-
project: {
|
|
5
|
-
id: string;
|
|
6
|
-
name: string;
|
|
7
|
-
subdomain: string;
|
|
8
|
-
team: {
|
|
9
|
-
id: string;
|
|
10
|
-
name: string;
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
commerce: {
|
|
14
|
-
enabled: boolean;
|
|
15
|
-
storeName: string;
|
|
16
|
-
currency: string;
|
|
17
|
-
locale: string;
|
|
18
|
-
};
|
|
19
|
-
features: {
|
|
20
|
-
cart: boolean;
|
|
21
|
-
checkout: boolean;
|
|
22
|
-
customerAuth: boolean;
|
|
23
|
-
guestCheckout: boolean;
|
|
24
|
-
wishlist: boolean;
|
|
25
|
-
productReviews: boolean;
|
|
26
|
-
returns: boolean;
|
|
27
|
-
multiCurrency: boolean;
|
|
28
|
-
};
|
|
29
|
-
shipping: {
|
|
30
|
-
providers: string[];
|
|
31
|
-
default: string;
|
|
32
|
-
freeThreshold?: number;
|
|
33
|
-
};
|
|
34
|
-
payments: {
|
|
35
|
-
providers: string[];
|
|
36
|
-
default: string;
|
|
37
|
-
};
|
|
38
|
-
storefront: {
|
|
39
|
-
primaryColor?: string;
|
|
40
|
-
logo?: string;
|
|
41
|
-
customCss?: string;
|
|
42
|
-
metaTitle?: string;
|
|
43
|
-
metaDescription?: string;
|
|
44
|
-
};
|
|
45
|
-
business: {
|
|
46
|
-
taxEnabled: boolean;
|
|
47
|
-
taxRate: number;
|
|
48
|
-
taxId?: string;
|
|
49
|
-
};
|
|
50
|
-
returnPolicy: {
|
|
51
|
-
enabled: boolean;
|
|
52
|
-
daysToReturn: number;
|
|
53
|
-
instructions: string;
|
|
54
|
-
};
|
|
55
|
-
apiKey: {
|
|
56
|
-
public: string;
|
|
57
|
-
};
|
|
58
|
-
api?: {
|
|
59
|
-
url?: string;
|
|
60
|
-
};
|
|
61
|
-
dev?: {
|
|
62
|
-
port?: number;
|
|
63
|
-
openBrowser?: boolean;
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
export declare function fetchCLIConfig(token: string, projectId: string): Promise<CLIConfig>;
|
|
67
|
-
//# sourceMappingURL=api.d.ts.map
|
package/dist/lib/api.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAM7C,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAc5D;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE;YACJ,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;IAEF,QAAQ,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO,CAAC;QACd,QAAQ,EAAE,OAAO,CAAC;QAClB,YAAY,EAAE,OAAO,CAAC;QACtB,aAAa,EAAE,OAAO,CAAC;QACvB,QAAQ,EAAE,OAAO,CAAC;QAClB,cAAc,EAAE,OAAO,CAAC;QACxB,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IAEF,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IAEF,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF,UAAU,EAAE;QACV,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF,QAAQ,EAAE;QACR,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,YAAY,EAAE;QACZ,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IAEF,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,GAAG,CAAC,EAAE;QACJ,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,GAAG,CAAC,EAAE;QACJ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;CACH;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,SAAS,CAAC,CAoBpB"}
|
package/dist/lib/api.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import axios from "axios";
|
|
2
|
-
const API_URL = process.env.DOSWIFTLY_API_URL || "https://api.doswiftly.pl";
|
|
3
|
-
let apiClient = null;
|
|
4
|
-
export function createApiClient(token) {
|
|
5
|
-
if (!apiClient) {
|
|
6
|
-
apiClient = axios.create({
|
|
7
|
-
baseURL: API_URL,
|
|
8
|
-
headers: {
|
|
9
|
-
"Content-Type": "application/json",
|
|
10
|
-
},
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
// Set authorization header
|
|
14
|
-
apiClient.defaults.headers.common["Authorization"] = `Bearer ${token}`;
|
|
15
|
-
return apiClient;
|
|
16
|
-
}
|
|
17
|
-
export async function fetchCLIConfig(token, projectId) {
|
|
18
|
-
const client = createApiClient(token);
|
|
19
|
-
try {
|
|
20
|
-
const response = await client.get(`/v1/projects/${projectId}/cli-config`);
|
|
21
|
-
return response.data;
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
if (axios.isAxiosError(error)) {
|
|
25
|
-
if (error.response?.status === 401) {
|
|
26
|
-
throw new Error("Authentication failed. Please login again.");
|
|
27
|
-
}
|
|
28
|
-
if (error.response?.status === 404) {
|
|
29
|
-
throw new Error(`Project ${projectId} not found.`);
|
|
30
|
-
}
|
|
31
|
-
throw new Error(`API error: ${error.response?.data?.message || error.message}`);
|
|
32
|
-
}
|
|
33
|
-
throw error;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=api.js.map
|
package/dist/lib/api.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAE7C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,0BAA0B,CAAC;AAE5E,IAAI,SAAS,GAAyB,IAAI,CAAC;AAE3C,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;YACvB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC;IAEvE,OAAO,SAAS,CAAC;AACnB,CAAC;AA4ED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAa,EACb,SAAiB;IAEjB,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,gBAAgB,SAAS,aAAa,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,aAAa,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,IAAI,KAAK,CACb,cAAc,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAC/D,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
name: Deploy Storefront
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
|
|
7
|
-
jobs:
|
|
8
|
-
deploy:
|
|
9
|
-
runs-on: ubuntu-latest
|
|
10
|
-
env:
|
|
11
|
-
NEXT_PUBLIC_API_URL: ${{ secrets.NEXT_PUBLIC_API_URL }}
|
|
12
|
-
NEXT_PUBLIC_SHOP_SLUG: ${{ secrets.NEXT_PUBLIC_SHOP_SLUG }}
|
|
13
|
-
steps:
|
|
14
|
-
- uses: actions/checkout@v4
|
|
15
|
-
|
|
16
|
-
- name: Detect package manager
|
|
17
|
-
id: pm
|
|
18
|
-
run: |
|
|
19
|
-
if [ -f pnpm-lock.yaml ]; then
|
|
20
|
-
echo "manager=pnpm" >> $GITHUB_OUTPUT
|
|
21
|
-
echo "install=pnpm install --frozen-lockfile" >> $GITHUB_OUTPUT
|
|
22
|
-
elif [ -f yarn.lock ]; then
|
|
23
|
-
echo "manager=yarn" >> $GITHUB_OUTPUT
|
|
24
|
-
echo "install=yarn install --frozen-lockfile" >> $GITHUB_OUTPUT
|
|
25
|
-
else
|
|
26
|
-
echo "manager=npm" >> $GITHUB_OUTPUT
|
|
27
|
-
echo "install=npm ci" >> $GITHUB_OUTPUT
|
|
28
|
-
fi
|
|
29
|
-
|
|
30
|
-
- name: Setup pnpm
|
|
31
|
-
if: steps.pm.outputs.manager == 'pnpm'
|
|
32
|
-
uses: pnpm/action-setup@v4
|
|
33
|
-
|
|
34
|
-
- uses: actions/setup-node@v4
|
|
35
|
-
with:
|
|
36
|
-
node-version: 20
|
|
37
|
-
cache: ${{ steps.pm.outputs.manager }}
|
|
38
|
-
|
|
39
|
-
- name: Install dependencies
|
|
40
|
-
run: ${{ steps.pm.outputs.install }}
|
|
41
|
-
|
|
42
|
-
- name: Deploy to DoSwiftly
|
|
43
|
-
run: npx --yes @doswiftly/cli deploy run --type PRODUCTION
|
|
44
|
-
env:
|
|
45
|
-
DOSWIFTLY_DEPLOY_TOKEN: ${{ secrets.DOSWIFTLY_DEPLOY_TOKEN }}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
name: Preview Deployment
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
pull_request:
|
|
5
|
-
types: [opened, synchronize]
|
|
6
|
-
|
|
7
|
-
jobs:
|
|
8
|
-
preview:
|
|
9
|
-
runs-on: ubuntu-latest
|
|
10
|
-
env:
|
|
11
|
-
NEXT_PUBLIC_API_URL: ${{ secrets.NEXT_PUBLIC_API_URL }}
|
|
12
|
-
NEXT_PUBLIC_SHOP_SLUG: ${{ secrets.NEXT_PUBLIC_SHOP_SLUG }}
|
|
13
|
-
steps:
|
|
14
|
-
- uses: actions/checkout@v4
|
|
15
|
-
|
|
16
|
-
- name: Detect package manager
|
|
17
|
-
id: pm
|
|
18
|
-
run: |
|
|
19
|
-
if [ -f pnpm-lock.yaml ]; then
|
|
20
|
-
echo "manager=pnpm" >> $GITHUB_OUTPUT
|
|
21
|
-
echo "install=pnpm install --frozen-lockfile" >> $GITHUB_OUTPUT
|
|
22
|
-
elif [ -f yarn.lock ]; then
|
|
23
|
-
echo "manager=yarn" >> $GITHUB_OUTPUT
|
|
24
|
-
echo "install=yarn install --frozen-lockfile" >> $GITHUB_OUTPUT
|
|
25
|
-
else
|
|
26
|
-
echo "manager=npm" >> $GITHUB_OUTPUT
|
|
27
|
-
echo "install=npm ci" >> $GITHUB_OUTPUT
|
|
28
|
-
fi
|
|
29
|
-
|
|
30
|
-
- name: Setup pnpm
|
|
31
|
-
if: steps.pm.outputs.manager == 'pnpm'
|
|
32
|
-
uses: pnpm/action-setup@v4
|
|
33
|
-
|
|
34
|
-
- uses: actions/setup-node@v4
|
|
35
|
-
with:
|
|
36
|
-
node-version: 20
|
|
37
|
-
cache: ${{ steps.pm.outputs.manager }}
|
|
38
|
-
|
|
39
|
-
- name: Install dependencies
|
|
40
|
-
run: ${{ steps.pm.outputs.install }}
|
|
41
|
-
|
|
42
|
-
- name: Deploy preview
|
|
43
|
-
run: npx --yes @doswiftly/cli deploy run --type PREVIEW --branch ${{ github.head_ref }}
|
|
44
|
-
env:
|
|
45
|
-
DOSWIFTLY_DEPLOY_TOKEN: ${{ secrets.DOSWIFTLY_DEPLOY_TOKEN }}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
name: Deploy Storefront
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
|
|
7
|
-
jobs:
|
|
8
|
-
deploy:
|
|
9
|
-
runs-on: ubuntu-latest
|
|
10
|
-
env:
|
|
11
|
-
NEXT_PUBLIC_API_URL: ${{ secrets.NEXT_PUBLIC_API_URL }}
|
|
12
|
-
NEXT_PUBLIC_SHOP_SLUG: ${{ secrets.NEXT_PUBLIC_SHOP_SLUG }}
|
|
13
|
-
steps:
|
|
14
|
-
- uses: actions/checkout@v4
|
|
15
|
-
|
|
16
|
-
- name: Detect package manager
|
|
17
|
-
id: pm
|
|
18
|
-
run: |
|
|
19
|
-
if [ -f pnpm-lock.yaml ]; then
|
|
20
|
-
echo "manager=pnpm" >> $GITHUB_OUTPUT
|
|
21
|
-
echo "install=pnpm install --frozen-lockfile" >> $GITHUB_OUTPUT
|
|
22
|
-
elif [ -f yarn.lock ]; then
|
|
23
|
-
echo "manager=yarn" >> $GITHUB_OUTPUT
|
|
24
|
-
echo "install=yarn install --frozen-lockfile" >> $GITHUB_OUTPUT
|
|
25
|
-
else
|
|
26
|
-
echo "manager=npm" >> $GITHUB_OUTPUT
|
|
27
|
-
echo "install=npm ci" >> $GITHUB_OUTPUT
|
|
28
|
-
fi
|
|
29
|
-
|
|
30
|
-
- name: Setup pnpm
|
|
31
|
-
if: steps.pm.outputs.manager == 'pnpm'
|
|
32
|
-
uses: pnpm/action-setup@v4
|
|
33
|
-
|
|
34
|
-
- uses: actions/setup-node@v4
|
|
35
|
-
with:
|
|
36
|
-
node-version: 20
|
|
37
|
-
cache: ${{ steps.pm.outputs.manager }}
|
|
38
|
-
|
|
39
|
-
- name: Install dependencies
|
|
40
|
-
run: ${{ steps.pm.outputs.install }}
|
|
41
|
-
|
|
42
|
-
- name: Deploy to DoSwiftly
|
|
43
|
-
run: npx --yes @doswiftly/cli deploy run --type PRODUCTION
|
|
44
|
-
env:
|
|
45
|
-
DOSWIFTLY_DEPLOY_TOKEN: ${{ secrets.DOSWIFTLY_DEPLOY_TOKEN }}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
name: Preview Deployment
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
pull_request:
|
|
5
|
-
types: [opened, synchronize]
|
|
6
|
-
|
|
7
|
-
jobs:
|
|
8
|
-
preview:
|
|
9
|
-
runs-on: ubuntu-latest
|
|
10
|
-
env:
|
|
11
|
-
NEXT_PUBLIC_API_URL: ${{ secrets.NEXT_PUBLIC_API_URL }}
|
|
12
|
-
NEXT_PUBLIC_SHOP_SLUG: ${{ secrets.NEXT_PUBLIC_SHOP_SLUG }}
|
|
13
|
-
steps:
|
|
14
|
-
- uses: actions/checkout@v4
|
|
15
|
-
|
|
16
|
-
- name: Detect package manager
|
|
17
|
-
id: pm
|
|
18
|
-
run: |
|
|
19
|
-
if [ -f pnpm-lock.yaml ]; then
|
|
20
|
-
echo "manager=pnpm" >> $GITHUB_OUTPUT
|
|
21
|
-
echo "install=pnpm install --frozen-lockfile" >> $GITHUB_OUTPUT
|
|
22
|
-
elif [ -f yarn.lock ]; then
|
|
23
|
-
echo "manager=yarn" >> $GITHUB_OUTPUT
|
|
24
|
-
echo "install=yarn install --frozen-lockfile" >> $GITHUB_OUTPUT
|
|
25
|
-
else
|
|
26
|
-
echo "manager=npm" >> $GITHUB_OUTPUT
|
|
27
|
-
echo "install=npm ci" >> $GITHUB_OUTPUT
|
|
28
|
-
fi
|
|
29
|
-
|
|
30
|
-
- name: Setup pnpm
|
|
31
|
-
if: steps.pm.outputs.manager == 'pnpm'
|
|
32
|
-
uses: pnpm/action-setup@v4
|
|
33
|
-
|
|
34
|
-
- uses: actions/setup-node@v4
|
|
35
|
-
with:
|
|
36
|
-
node-version: 20
|
|
37
|
-
cache: ${{ steps.pm.outputs.manager }}
|
|
38
|
-
|
|
39
|
-
- name: Install dependencies
|
|
40
|
-
run: ${{ steps.pm.outputs.install }}
|
|
41
|
-
|
|
42
|
-
- name: Deploy preview
|
|
43
|
-
run: npx --yes @doswiftly/cli deploy run --type PREVIEW --branch ${{ github.head_ref }}
|
|
44
|
-
env:
|
|
45
|
-
DOSWIFTLY_DEPLOY_TOKEN: ${{ secrets.DOSWIFTLY_DEPLOY_TOKEN }}
|