@sidekick-coder/zenith-kit 0.1.0 → 0.3.1

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/eslint.config.mts CHANGED
@@ -8,6 +8,9 @@ import { defineConfig } from "eslint/config";
8
8
 
9
9
  export default defineConfig([
10
10
  { files: ["**/*.{js,mjs,cjs,ts,mts,cts,vue}"], plugins: { js }, extends: ["js/recommended"], languageOptions: { globals: { ...globals.browser, ...globals.node } } },
11
+ {
12
+ ignores: ["src/client/components/ui/*"]
13
+ },
11
14
  tseslint.configs.recommended,
12
15
  pluginVue.configs["flat/essential"],
13
16
  { files: ["**/*.vue"], languageOptions: { parserOptions: { parser: tseslint.parser } } },
@@ -16,6 +19,7 @@ export default defineConfig([
16
19
  eslintConfigPrettier,
17
20
  {
18
21
  rules: {
22
+ 'no-undef': 'off', // let typescript handle this
19
23
  '@typescript-eslint/no-explicit-any': 'off',
20
24
  '@typescript-eslint/no-empty-object-type': 'off',
21
25
  }
@@ -1,3 +1,3 @@
1
1
  <script lang="ts">
2
- export { ZAlertButton as default } from '@sidekick-coder/zenith-kit/components'
2
+ export { ZAlertButton as default } from './ZAlertButton.vue'
3
3
  </script>
@@ -0,0 +1,3 @@
1
+ <script lang="ts">
2
+ export { AdminLayout as default } from '@sidekick-coder/zenith-kit/components'
3
+ </script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sidekick-coder/zenith-kit",
3
- "version": "0.1.0",
3
+ "version": "0.3.1",
4
4
  "license": "MIT",
5
5
  "description": "Package to use with zenith framework",
6
6
  "author": "Henrique Oliveira <henriqueoliwork@gmail.com>",
@@ -23,43 +23,69 @@
23
23
  },
24
24
  "exports": {
25
25
  "./shared": {
26
+ "development": {
27
+ "types": "./src/shared/index.ts",
28
+ "import": "./src/shared/index.ts"
29
+ },
26
30
  "types": "./dist/shared/index.d.mts",
27
31
  "import": "./dist/shared/index.mjs",
28
32
  "require": "./dist/shared/index.js"
29
33
  },
30
34
  "./server": {
35
+ "development": {
36
+ "types": "./src/server/index.ts",
37
+ "import": "./src/server/index.ts"
38
+ },
31
39
  "types": "./dist/server/index.d.mts",
32
40
  "import": "./dist/server/index.mjs",
33
41
  "require": "./dist/server/index.js"
34
42
  },
35
43
  "./client": {
44
+ "development": {
45
+ "types": "./src/client/index.ts",
46
+ "import": "./src/client/index.ts"
47
+ },
36
48
  "types": "./dist/client/index.d.mts",
37
49
  "import": "./dist/client/index.mjs",
38
50
  "require": "./dist/client/index.mjs"
39
51
  },
40
52
  "./components": {
41
- "types": "./dist/components/index.d.mts",
53
+ "development": {
54
+ "types": "./src/client/components.ts",
55
+ "import": "./src/client/components.ts"
56
+ },
57
+ "types": "./dist/components/src/client/components.d.ts",
42
58
  "import": "./dist/components/index.es.js",
43
59
  "require": "./dist/components/index.es.js"
44
60
  },
45
61
  "./vite": {
46
62
  "import": "./vite/plugins/vite.js",
47
63
  "require": "./vite/plugins/vite.js"
48
- },
49
- "./styles": "./dist/components/styles.css",
50
- "./client-globals": {
51
- "types": "./src/client/zenith-env.d.ts"
52
64
  }
53
65
  },
54
66
  "scripts": {
55
- "build": "npm run build:tsdown && npm run build:vite",
56
67
  "build:tsdown": "tsdown",
57
68
  "build:vite": "vite build",
69
+ "build": "npm-run-all -p build:*",
70
+ "test:unit": "vitest --project unit",
71
+ "test:int": "vitest -p integration",
72
+ "test": "npm-run-all -p test:*",
58
73
  "release": "node artisan.js release"
59
74
  },
75
+ "peerDependencies": {
76
+ "vue": "^3.5.31"
77
+ },
60
78
  "devDependencies": {
61
79
  "@eslint/js": "^9.39.4",
62
- "@eslint/json": "^0.14.0"
80
+ "@eslint/json": "^0.14.0",
81
+ "@faker-js/faker": "^10.4.0",
82
+ "@microsoft/api-extractor": "^7.58.7",
83
+ "@types/bcrypt": "^6.0.0",
84
+ "@types/cookie-parser": "^1.4.10",
85
+ "@types/cors": "^2.8.19",
86
+ "@types/supertest": "^7.2.0",
87
+ "better-sqlite3": "^12.10.0",
88
+ "npm-run-all": "^4.1.5"
63
89
  },
64
90
  "dependencies": {
65
91
  "@aws-sdk/client-s3": "^3.1039.0",
@@ -83,10 +109,13 @@
83
109
  "@vue/language-core": "^3.1.8",
84
110
  "@vue/tsconfig": "^0.9.1",
85
111
  "@vueuse/router": "^14.3.0",
112
+ "bcrypt": "^6.0.0",
86
113
  "class-variance-authority": "^0.7.1",
87
114
  "cli-table3": "^0.6.5",
88
115
  "clsx": "^2.1.1",
89
116
  "commander": "^14.0.3",
117
+ "cookie-parser": "^1.4.7",
118
+ "cors": "^2.8.6",
90
119
  "cosmiconfig": "^9.0.1",
91
120
  "date-fns": "^4.1.0",
92
121
  "dotenv": "^17.4.2",
@@ -94,6 +123,7 @@
94
123
  "eslint": "^9.39.4",
95
124
  "eslint-config-prettier": "^10.1.8",
96
125
  "eslint-plugin-vue": "^10.8.0",
126
+ "express": "^5.2.1",
97
127
  "fast-glob": "^3.3.3",
98
128
  "globals": "^17.5.0",
99
129
  "js-yaml": "^4.1.1",
@@ -107,6 +137,7 @@
107
137
  "pg": "^8.20.0",
108
138
  "qs": "^6.15.1",
109
139
  "reka-ui": "^2.9.6",
140
+ "supertest": "^7.2.2",
110
141
  "tailwind-merge": "^3.5.0",
111
142
  "tsdown": "^0.21.9",
112
143
  "tw-animate-css": "^1.4.0",
@@ -4,22 +4,28 @@
4
4
  ],
5
5
  "compilerOptions": {
6
6
  "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
7
+ "types": [
8
+ "vite/client"
9
+ ],
7
10
  "strict": true,
8
11
  "noUnusedLocals": false,
9
12
  "noUnusedParameters": true,
10
13
  "noFallthroughCasesInSwitch": true,
11
14
  "noUncheckedSideEffectImports": true,
12
15
  "strictPropertyInitialization": false,
13
- "baseUrl": ".",
14
- "lib": [
15
- "es2023",
16
- "dom",
17
- "dom.iterable"
18
- ]
16
+ "baseUrl": "src",
17
+ "paths": {
18
+ "#client/*": [
19
+ "client/*"
20
+ ],
21
+ "#shared/*": [
22
+ "shared/*"
23
+ ]
24
+ }
19
25
  },
20
26
  "include": [
21
- "src/client/**/**/*.ts",
22
- "src/client/**/**/*.vue",
23
- "src/shared/**/**/*.ts"
27
+ "src/client/**/*.ts",
28
+ "src/client/**/*.vue",
29
+ "src/shared/**/*.ts"
24
30
  ]
25
31
  }
package/tsdown.config.ts CHANGED
@@ -57,6 +57,7 @@ export default defineConfig([
57
57
  'src/server/loaders',
58
58
  'src/server/entities',
59
59
  'src/server/queries',
60
+ 'src/server/relations',
60
61
  'src/server/middlewares',
61
62
  'src/server/utils',
62
63
  ],
@@ -86,6 +87,7 @@ export default defineConfig([
86
87
  generateIndexFile({
87
88
  folders: [
88
89
  'src/client/services',
90
+ 'src/client/composables',
89
91
  'src/client/repositories',
90
92
  'src/client/mixins',
91
93
  'src/client/facades',
@@ -93,6 +95,7 @@ export default defineConfig([
93
95
  'src/client/entities',
94
96
  'src/client/utils',
95
97
  'src/client/guards',
98
+ 'src/client/registry',
96
99
  ],
97
100
  filename: 'src/client/index.ts'
98
101
  })
@@ -9,6 +9,7 @@ import zenith from './plugins/zenith.js'
9
9
  * @property {string} [name] - Library name (default: `server`)
10
10
  * @property {string} [entry] - Entry file or directory (default: `src/server/index.ts`)
11
11
  * @property {string} [outDir] - Output directory (default: `dist/server`)
12
+ * @property {Object} [env] - Environment variables to replace in the code (default: `{}`)
12
13
  * @property {boolean} [ssr] - Whether to build for SSR (default: `false`). If `true`, external dependencies will be treated as CommonJS modules. If `false`, they will be treated as ES modules.
13
14
  */
14
15
 
@@ -20,6 +21,9 @@ import zenith from './plugins/zenith.js'
20
21
  */
21
22
  export default function(options) {
22
23
  return defineConfig({
24
+ define: {
25
+ 'process.env': options.env || {}
26
+ },
23
27
  plugins: [
24
28
  vue({
25
29
  template: {
@@ -35,6 +39,7 @@ export default function(options) {
35
39
  imports: [
36
40
  'vue',
37
41
  'vue-router',
42
+ 'vee-validate'
38
43
  ],
39
44
  })
40
45
  ],
package/vite.config.ts CHANGED
@@ -1,6 +1,7 @@
1
- import { createLogger, defineConfig } from 'vite'
1
+ import { createLogger, defineConfig, UserConfig } from 'vite'
2
2
  import vue from '@vitejs/plugin-vue'
3
3
  import tailwindcss from '@tailwindcss/vite'
4
+ import dts from 'vite-plugin-dts'
4
5
  import { generateIndexFile } from '#server/utils/generateIndexFile.ts'
5
6
 
6
7
  const logger = createLogger()
@@ -9,18 +10,14 @@ const prebuild = () => ({
9
10
  name: 'prebuild',
10
11
  buildStart() {
11
12
  generateIndexFile({
12
- glob: '**/*.{ts,vue,css}',
13
- folders: [
14
- 'src/client/composables',
15
- // 'src/client/utils',
16
- // 'src/client/facades',
17
- 'src/client/components',
18
- 'src/client/layouts',
19
- // 'src/client/services',
20
- // 'src/client/guards',
21
- 'src/client/css',
22
- ],
23
- filename: 'src/client/components.ts'
13
+ filename: 'src/client/components.ts',
14
+ patterns: [
15
+ 'src/client/composables/*.ts',
16
+ 'src/client/components/ui/**/index.ts',
17
+ 'src/client/components/*.vue',
18
+ 'src/client/layouts/*.vue',
19
+ 'src/client/css/*.css',
20
+ ]
24
21
  })
25
22
 
26
23
  logger.info('Generated index.ts for client')
@@ -33,26 +30,29 @@ const externals = [
33
30
  'vee-validate',
34
31
  ]
35
32
 
36
- export default defineConfig({
37
- customLogger: logger,
38
- plugins: [
39
- vue({
40
- template: {
41
- compilerOptions: {
42
- isCustomElement: (tag) => {
43
- return ['iconify-icon'].includes(tag)
44
- }
33
+ const plugins: UserConfig['plugins'] = [
34
+ vue({
35
+ template: {
36
+ compilerOptions: {
37
+ isCustomElement: (tag) => {
38
+ return ['iconify-icon'].includes(tag)
45
39
  }
46
40
  }
47
- }),
48
- // dts({
49
- // entryRoot: 'src/client/index.ts',
50
- // tsconfigPath: 'tsconfig.client.json',
51
- // bundleTypes: true,
52
- // }),
53
- tailwindcss(),
54
- prebuild(),
55
- ],
41
+ }
42
+ }),
43
+ ]
44
+
45
+ plugins.push(dts({
46
+ // entryRoot: 'src/client/components.ts',
47
+ tsconfigPath: './tsconfig.client.json',
48
+ staticImport: true
49
+ }))
50
+
51
+ plugins.push(tailwindcss(), prebuild())
52
+
53
+ export default defineConfig({
54
+ customLogger: logger,
55
+ plugins: plugins,
56
56
  build: {
57
57
  outDir: 'dist/components',
58
58
  minify: false,
@@ -0,0 +1,35 @@
1
+ // eslint-disable-next-line import/extensions
2
+ import { defineConfig } from 'vitest/config'
3
+
4
+ export default defineConfig({
5
+ test: {
6
+ watch: false,
7
+ exclude: [
8
+ '**/node_modules/**',
9
+ '**/dist/**',
10
+ '**/build/**',
11
+ '**/coverage/**',
12
+ '**/logs/**',
13
+ '**/root/**'
14
+ ],
15
+ projects: [
16
+ {
17
+ test: {
18
+ name: 'unit',
19
+ include: ['**/*.unit.test.ts'],
20
+ exclude: ['**/modules/**'],
21
+ setupFiles: ['src/server/__tests__/setup.ts'],
22
+ }
23
+ },
24
+ {
25
+ test: {
26
+ name: 'integration',
27
+ include: ['**/*.int.test.ts'],
28
+ exclude: ['**/modules/**'],
29
+ testTimeout: 60000, // Increase timeout for integration tests
30
+ hookTimeout: 60000, // Increase hook timeout for integration tests
31
+ }
32
+ }
33
+ ]
34
+ },
35
+ })