create-coreback 1.0.2 → 1.0.3
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/.github/workflows/publish.yml +36 -3
- package/dist/generators/envExample.d.ts.map +1 -1
- package/dist/generators/envExample.js +9 -0
- package/dist/generators/envExample.js.map +1 -1
- package/dist/generators/packageJson.d.ts.map +1 -1
- package/dist/generators/packageJson.js +29 -27
- package/dist/generators/packageJson.js.map +1 -1
- package/dist/generators/prisma.d.ts.map +1 -1
- package/dist/generators/prisma.js +6 -1
- package/dist/generators/prisma.js.map +1 -1
- package/dist/generators/sourceFiles.js +481 -9
- package/dist/generators/sourceFiles.js.map +1 -1
- package/dist/index.js +12 -12
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/pnpm-workspace.yaml +2 -0
- package/src/generators/envExample.ts +9 -0
- package/src/generators/packageJson.ts +29 -27
- package/src/generators/prisma.ts +6 -1
- package/src/generators/sourceFiles.ts +486 -9
- package/src/index.ts +12 -12
|
@@ -42,7 +42,16 @@ jobs:
|
|
|
42
42
|
run: |
|
|
43
43
|
git config user.name "github-actions[bot]"
|
|
44
44
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
45
|
-
|
|
45
|
+
# Detect lock file type
|
|
46
|
+
LOCK_FILES="package.json"
|
|
47
|
+
if [ -f "package-lock.json" ]; then
|
|
48
|
+
LOCK_FILES="$LOCK_FILES package-lock.json"
|
|
49
|
+
elif [ -f "pnpm-lock.yaml" ]; then
|
|
50
|
+
LOCK_FILES="$LOCK_FILES pnpm-lock.yaml"
|
|
51
|
+
elif [ -f "yarn.lock" ]; then
|
|
52
|
+
LOCK_FILES="$LOCK_FILES yarn.lock"
|
|
53
|
+
fi
|
|
54
|
+
git add $LOCK_FILES
|
|
46
55
|
if git diff --staged --quiet; then
|
|
47
56
|
echo "No changes to commit"
|
|
48
57
|
else
|
|
@@ -51,11 +60,35 @@ jobs:
|
|
|
51
60
|
git push origin HEAD:main || echo "Push failed, continuing..."
|
|
52
61
|
fi
|
|
53
62
|
|
|
63
|
+
- name: Detect package manager
|
|
64
|
+
id: pkg-manager
|
|
65
|
+
run: |
|
|
66
|
+
if [ -f "pnpm-lock.yaml" ]; then
|
|
67
|
+
echo "manager=pnpm" >> $GITHUB_OUTPUT
|
|
68
|
+
echo "install_cmd=pnpm install --frozen-lockfile" >> $GITHUB_OUTPUT
|
|
69
|
+
echo "build_cmd=pnpm run build" >> $GITHUB_OUTPUT
|
|
70
|
+
elif [ -f "yarn.lock" ]; then
|
|
71
|
+
echo "manager=yarn" >> $GITHUB_OUTPUT
|
|
72
|
+
echo "install_cmd=yarn install --frozen-lockfile" >> $GITHUB_OUTPUT
|
|
73
|
+
echo "build_cmd=yarn run build" >> $GITHUB_OUTPUT
|
|
74
|
+
else
|
|
75
|
+
echo "manager=npm" >> $GITHUB_OUTPUT
|
|
76
|
+
echo "install_cmd=npm ci" >> $GITHUB_OUTPUT
|
|
77
|
+
echo "build_cmd=npm run build" >> $GITHUB_OUTPUT
|
|
78
|
+
fi
|
|
79
|
+
echo "Detected package manager: ${{ steps.pkg-manager.outputs.manager }}"
|
|
80
|
+
|
|
81
|
+
- name: Setup package manager
|
|
82
|
+
if: steps.pkg-manager.outputs.manager == 'pnpm'
|
|
83
|
+
uses: pnpm/action-setup@v4
|
|
84
|
+
with:
|
|
85
|
+
version: 10
|
|
86
|
+
|
|
54
87
|
- name: Install dependencies
|
|
55
|
-
run:
|
|
88
|
+
run: ${{ steps.pkg-manager.outputs.install_cmd }}
|
|
56
89
|
|
|
57
90
|
- name: Build project
|
|
58
|
-
run:
|
|
91
|
+
run: ${{ steps.pkg-manager.outputs.build_cmd }}
|
|
59
92
|
|
|
60
93
|
- name: Publish to NPM
|
|
61
94
|
env:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envExample.d.ts","sourceRoot":"","sources":["../../src/generators/envExample.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"envExample.d.ts","sourceRoot":"","sources":["../../src/generators/envExample.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAiDf"}
|
|
@@ -27,6 +27,15 @@ DATABASE_URL="${databaseUrl}"
|
|
|
27
27
|
# JWT
|
|
28
28
|
JWT_SECRET=your-super-secret-key-change-this-in-production
|
|
29
29
|
JWT_EXPIRES_IN=7d
|
|
30
|
+
|
|
31
|
+
# Email (Optional - if not configured, uses test account)
|
|
32
|
+
# EMAIL_HOST=smtp.gmail.com
|
|
33
|
+
# EMAIL_PORT=587
|
|
34
|
+
# EMAIL_SECURE=false
|
|
35
|
+
# EMAIL_USER=your-email@gmail.com
|
|
36
|
+
# EMAIL_PASSWORD=your-app-password
|
|
37
|
+
EMAIL_FROM=noreply@coreback.app
|
|
38
|
+
APP_URL=http://localhost:3000
|
|
30
39
|
`;
|
|
31
40
|
}
|
|
32
41
|
envContent += `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envExample.js","sourceRoot":"","sources":["../../src/generators/envExample.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAmB,EACnB,MAAqB;IAErB,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,YAAY;YACf,WAAW,GAAG,gDAAgD,CAAC;YAC/D,MAAM;QACR,KAAK,OAAO;YACV,WAAW,GAAG,2CAA2C,CAAC;YAC1D,MAAM;QACR,KAAK,SAAS;YACZ,WAAW,GAAG,gCAAgC,CAAC;YAC/C,MAAM;QACR,KAAK,QAAQ;YACX,WAAW,GAAG,eAAe,CAAC;YAC9B,MAAM;IACV,CAAC;IAED,IAAI,UAAU,GAAG;;;;gBAIH,WAAW;CAC1B,CAAC;IAEA,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,UAAU,IAAI
|
|
1
|
+
{"version":3,"file":"envExample.js","sourceRoot":"","sources":["../../src/generators/envExample.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAmB,EACnB,MAAqB;IAErB,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,YAAY;YACf,WAAW,GAAG,gDAAgD,CAAC;YAC/D,MAAM;QACR,KAAK,OAAO;YACV,WAAW,GAAG,2CAA2C,CAAC;YAC1D,MAAM;QACR,KAAK,SAAS;YACZ,WAAW,GAAG,gCAAgC,CAAC;YAC/C,MAAM;QACR,KAAK,QAAQ;YACX,WAAW,GAAG,eAAe,CAAC;YAC9B,MAAM;IACV,CAAC;IAED,IAAI,UAAU,GAAG;;;;gBAIH,WAAW;CAC1B,CAAC;IAEA,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,UAAU,IAAI;;;;;;;;;;;;;CAajB,CAAC;IACA,CAAC;IAED,UAAU,IAAI;;;;CAIf,CAAC;IAEA,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageJson.d.ts","sourceRoot":"","sources":["../../src/generators/packageJson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"packageJson.d.ts","sourceRoot":"","sources":["../../src/generators/packageJson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAkFf"}
|
|
@@ -2,43 +2,45 @@ import fs from 'fs-extra';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
export async function generatePackageJson(projectPath, config) {
|
|
4
4
|
const dependencies = {
|
|
5
|
-
express: '^4.
|
|
6
|
-
'express-rate-limit': '^
|
|
5
|
+
express: '^4.21.1',
|
|
6
|
+
'express-rate-limit': '^8.2.1',
|
|
7
7
|
cors: '^2.8.5',
|
|
8
|
-
helmet: '^
|
|
9
|
-
compression: '^1.
|
|
10
|
-
dotenv: '^
|
|
11
|
-
zod: '^3.
|
|
12
|
-
winston: '^3.
|
|
13
|
-
'@prisma/client': '^5.
|
|
8
|
+
helmet: '^8.1.0',
|
|
9
|
+
compression: '^1.8.1',
|
|
10
|
+
dotenv: '^17.2.3',
|
|
11
|
+
zod: '^3.25.76',
|
|
12
|
+
winston: '^3.19.0',
|
|
13
|
+
'@prisma/client': '^5.22.0',
|
|
14
14
|
'swagger-jsdoc': '^6.2.8',
|
|
15
|
-
'swagger-ui-express': '^5.0.
|
|
15
|
+
'swagger-ui-express': '^5.0.1',
|
|
16
16
|
};
|
|
17
17
|
if (config.includeAuth) {
|
|
18
18
|
dependencies['jsonwebtoken'] = '^9.0.2';
|
|
19
19
|
dependencies['bcrypt'] = '^5.1.1';
|
|
20
|
+
dependencies['nodemailer'] = '^6.9.8';
|
|
20
21
|
}
|
|
21
22
|
const devDependencies = {
|
|
22
|
-
'@types/express': '^4.17.
|
|
23
|
-
'@types/cors': '^2.8.
|
|
24
|
-
'@types/compression': '^1.
|
|
25
|
-
'@types/node': '^20.
|
|
26
|
-
'@types/jsonwebtoken': '^9.0.
|
|
23
|
+
'@types/express': '^4.17.25',
|
|
24
|
+
'@types/cors': '^2.8.19',
|
|
25
|
+
'@types/compression': '^1.8.1',
|
|
26
|
+
'@types/node': '^20.19.27',
|
|
27
|
+
'@types/jsonwebtoken': '^9.0.10',
|
|
27
28
|
'@types/bcrypt': '^5.0.2',
|
|
29
|
+
'@types/nodemailer': '^6.4.14',
|
|
28
30
|
'@types/swagger-jsdoc': '^6.0.4',
|
|
29
|
-
'@types/swagger-ui-express': '^4.1.
|
|
30
|
-
'@types/jest': '^29.5.
|
|
31
|
-
'@types/supertest': '^6.0.
|
|
32
|
-
'@typescript-eslint/eslint-plugin': '^
|
|
33
|
-
'@typescript-eslint/parser': '^
|
|
34
|
-
eslint: '^8.
|
|
35
|
-
prettier: '^3.
|
|
36
|
-
'ts-jest': '^29.
|
|
37
|
-
jest: '^
|
|
38
|
-
supertest: '^
|
|
39
|
-
tsx: '^4.
|
|
40
|
-
typescript: '^5.
|
|
41
|
-
prisma: '^5.
|
|
31
|
+
'@types/swagger-ui-express': '^4.1.8',
|
|
32
|
+
'@types/jest': '^29.5.14',
|
|
33
|
+
'@types/supertest': '^6.0.3',
|
|
34
|
+
'@typescript-eslint/eslint-plugin': '^8.50.1',
|
|
35
|
+
'@typescript-eslint/parser': '^8.50.1',
|
|
36
|
+
eslint: '^8.57.1',
|
|
37
|
+
prettier: '^3.7.4',
|
|
38
|
+
'ts-jest': '^29.4.6',
|
|
39
|
+
jest: '^30.2.0',
|
|
40
|
+
supertest: '^7.1.4',
|
|
41
|
+
tsx: '^4.21.0',
|
|
42
|
+
typescript: '^5.9.3',
|
|
43
|
+
prisma: '^5.22.0',
|
|
42
44
|
};
|
|
43
45
|
const packageJson = {
|
|
44
46
|
name: config.projectName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageJson.js","sourceRoot":"","sources":["../../src/generators/packageJson.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAmB,EACnB,MAAqB;IAErB,MAAM,YAAY,GAA2B;QAC3C,OAAO,EAAE,SAAS;QAClB,oBAAoB,EAAE,QAAQ;QAC9B,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,QAAQ;QACrB,MAAM,EAAE,SAAS;QACjB,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"packageJson.js","sourceRoot":"","sources":["../../src/generators/packageJson.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAmB,EACnB,MAAqB;IAErB,MAAM,YAAY,GAA2B;QAC3C,OAAO,EAAE,SAAS;QAClB,oBAAoB,EAAE,QAAQ;QAC9B,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,QAAQ;QACrB,MAAM,EAAE,SAAS;QACjB,GAAG,EAAE,UAAU;QACf,OAAO,EAAE,SAAS;QAClB,gBAAgB,EAAE,SAAS;QAC3B,eAAe,EAAE,QAAQ;QACzB,oBAAoB,EAAE,QAAQ;KAC/B,CAAC;IAEF,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,YAAY,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC;QACxC,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;QAClC,YAAY,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;IACxC,CAAC;IAED,MAAM,eAAe,GAA2B;QAC9C,gBAAgB,EAAE,UAAU;QAC5B,aAAa,EAAE,SAAS;QACxB,oBAAoB,EAAE,QAAQ;QAC9B,aAAa,EAAE,WAAW;QAC1B,qBAAqB,EAAE,SAAS;QAChC,eAAe,EAAE,QAAQ;QACzB,mBAAmB,EAAE,SAAS;QAC9B,sBAAsB,EAAE,QAAQ;QAChC,2BAA2B,EAAE,QAAQ;QACrC,aAAa,EAAE,UAAU;QACzB,kBAAkB,EAAE,QAAQ;QAC5B,kCAAkC,EAAE,SAAS;QAC7C,2BAA2B,EAAE,SAAS;QACtC,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,SAAS;QACpB,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,QAAQ;QACnB,GAAG,EAAE,SAAS;QACd,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,SAAS;KAClB,CAAC;IAEF,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,MAAM,CAAC,WAAW;QACxB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE;YACP,GAAG,EAAE,wBAAwB;YAC7B,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,sBAAsB;YAC5B,UAAU,EAAE,4BAA4B;YACxC,MAAM,EAAE,gCAAgC;YACxC,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,cAAc;YAC5B,eAAe,EAAE,iBAAiB;YAClC,SAAS,EAAE,gBAAgB;YAC3B,YAAY,EAAE,oBAAoB;YAClC,WAAW,EAAE,eAAe;YAC5B,aAAa,EAAE,iBAAiB;YAChC,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI;gBAC1B,WAAW,EAAE,sBAAsB;gBACnC,aAAa,EAAE,qBAAqB;aACrC,CAAC;SACH;QACD,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC;QACrD,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,KAAK;QACd,YAAY;QACZ,eAAe;QACf,OAAO,EAAE;YACP,IAAI,EAAE,UAAU;SACjB;KACF,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,WAAW,EAAE;QACtE,MAAM,EAAE,CAAC;KACV,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../src/generators/prisma.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../src/generators/prisma.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CA8Df"}
|
|
@@ -43,7 +43,12 @@ model User {
|
|
|
43
43
|
updatedAt DateTime @updatedAt
|
|
44
44
|
`;
|
|
45
45
|
if (config.includeAuth) {
|
|
46
|
-
schema += ` password
|
|
46
|
+
schema += ` password String
|
|
47
|
+
emailVerified Boolean @default(false)
|
|
48
|
+
emailVerificationToken String?
|
|
49
|
+
emailVerificationExpires DateTime?
|
|
50
|
+
passwordResetToken String?
|
|
51
|
+
passwordResetExpires DateTime?
|
|
47
52
|
`;
|
|
48
53
|
}
|
|
49
54
|
schema += `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../src/generators/prisma.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAmB,EACnB,MAAqB;IAErB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAE9B,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,YAAY;YACf,QAAQ,GAAG,YAAY,CAAC;YACxB,GAAG,GAAG,qBAAqB,CAAC;YAC5B,MAAM;QACR,KAAK,OAAO;YACV,QAAQ,GAAG,OAAO,CAAC;YACnB,GAAG,GAAG,qBAAqB,CAAC;YAC5B,MAAM;QACR,KAAK,SAAS;YACZ,QAAQ,GAAG,SAAS,CAAC;YACrB,GAAG,GAAG,qBAAqB,CAAC;YAC5B,MAAM;QACR,KAAK,QAAQ;YACX,QAAQ,GAAG,QAAQ,CAAC;YACpB,GAAG,GAAG,qBAAqB,CAAC;YAC5B,MAAM;IACV,CAAC;IAED,IAAI,MAAM,GAAG;;;;;;;;gBAQC,QAAQ;eACT,GAAG;;;;;;;;;CASjB,CAAC;IAEA,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../src/generators/prisma.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAmB,EACnB,MAAqB;IAErB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAE9B,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,YAAY;YACf,QAAQ,GAAG,YAAY,CAAC;YACxB,GAAG,GAAG,qBAAqB,CAAC;YAC5B,MAAM;QACR,KAAK,OAAO;YACV,QAAQ,GAAG,OAAO,CAAC;YACnB,GAAG,GAAG,qBAAqB,CAAC;YAC5B,MAAM;QACR,KAAK,SAAS;YACZ,QAAQ,GAAG,SAAS,CAAC;YACrB,GAAG,GAAG,qBAAqB,CAAC;YAC5B,MAAM;QACR,KAAK,QAAQ;YACX,QAAQ,GAAG,QAAQ,CAAC;YACpB,GAAG,GAAG,qBAAqB,CAAC;YAC5B,MAAM;IACV,CAAC;IAED,IAAI,MAAM,GAAG;;;;;;;;gBAQC,QAAQ;eACT,GAAG;;;;;;;;;CASjB,CAAC;IAEA,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,IAAI;;;;;;CAMb,CAAC;IACA,CAAC;IAED,MAAM,IAAI;;;CAGX,CAAC;IAEA,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC;AACpE,CAAC"}
|