nitrostack 1.0.0 → 1.0.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.
Files changed (115) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/package.json +1 -1
  3. package/templates/typescript-auth/.env.example +23 -0
  4. package/templates/typescript-auth/src/app.module.ts +103 -0
  5. package/templates/typescript-auth/src/db/database.ts +163 -0
  6. package/templates/typescript-auth/src/db/seed.ts +374 -0
  7. package/templates/typescript-auth/src/db/setup.ts +87 -0
  8. package/templates/typescript-auth/src/events/analytics.service.ts +52 -0
  9. package/templates/typescript-auth/src/events/notification.service.ts +40 -0
  10. package/templates/typescript-auth/src/filters/global-exception.filter.ts +28 -0
  11. package/templates/typescript-auth/src/guards/README.md +75 -0
  12. package/templates/typescript-auth/src/guards/jwt.guard.ts +105 -0
  13. package/templates/typescript-auth/src/health/database.health.ts +41 -0
  14. package/templates/typescript-auth/src/index.ts +26 -0
  15. package/templates/typescript-auth/src/interceptors/transform.interceptor.ts +24 -0
  16. package/templates/typescript-auth/src/middleware/logging.middleware.ts +42 -0
  17. package/templates/typescript-auth/src/modules/addresses/addresses.module.ts +16 -0
  18. package/templates/typescript-auth/src/modules/addresses/addresses.prompts.ts +114 -0
  19. package/templates/typescript-auth/src/modules/addresses/addresses.resources.ts +40 -0
  20. package/templates/typescript-auth/src/modules/addresses/addresses.tools.ts +241 -0
  21. package/templates/typescript-auth/src/modules/auth/auth.module.ts +16 -0
  22. package/templates/typescript-auth/src/modules/auth/auth.prompts.ts +147 -0
  23. package/templates/typescript-auth/src/modules/auth/auth.resources.ts +84 -0
  24. package/templates/typescript-auth/src/modules/auth/auth.tools.ts +139 -0
  25. package/templates/typescript-auth/src/modules/cart/cart.module.ts +16 -0
  26. package/templates/typescript-auth/src/modules/cart/cart.prompts.ts +95 -0
  27. package/templates/typescript-auth/src/modules/cart/cart.resources.ts +44 -0
  28. package/templates/typescript-auth/src/modules/cart/cart.tools.ts +281 -0
  29. package/templates/typescript-auth/src/modules/orders/orders.module.ts +16 -0
  30. package/templates/typescript-auth/src/modules/orders/orders.prompts.ts +88 -0
  31. package/templates/typescript-auth/src/modules/orders/orders.resources.ts +48 -0
  32. package/templates/typescript-auth/src/modules/orders/orders.tools.ts +281 -0
  33. package/templates/typescript-auth/src/modules/products/products.module.ts +16 -0
  34. package/templates/typescript-auth/src/modules/products/products.prompts.ts +146 -0
  35. package/templates/typescript-auth/src/modules/products/products.resources.ts +98 -0
  36. package/templates/typescript-auth/src/modules/products/products.tools.ts +266 -0
  37. package/templates/typescript-auth/src/pipes/validation.pipe.ts +42 -0
  38. package/templates/typescript-auth/src/services/database.service.ts +90 -0
  39. package/templates/typescript-auth/src/widgets/app/add-to-cart/page.tsx +122 -0
  40. package/templates/typescript-auth/src/widgets/app/address-added/page.tsx +116 -0
  41. package/templates/typescript-auth/src/widgets/app/address-deleted/page.tsx +105 -0
  42. package/templates/typescript-auth/src/widgets/app/address-list/page.tsx +139 -0
  43. package/templates/typescript-auth/src/widgets/app/address-updated/page.tsx +153 -0
  44. package/templates/typescript-auth/src/widgets/app/cart-cleared/page.tsx +86 -0
  45. package/templates/typescript-auth/src/widgets/app/cart-updated/page.tsx +116 -0
  46. package/templates/typescript-auth/src/widgets/app/categories/page.tsx +134 -0
  47. package/templates/typescript-auth/src/widgets/app/layout.tsx +21 -0
  48. package/templates/typescript-auth/src/widgets/app/login-result/page.tsx +129 -0
  49. package/templates/typescript-auth/src/widgets/app/order-confirmation/page.tsx +206 -0
  50. package/templates/typescript-auth/src/widgets/app/order-details/page.tsx +225 -0
  51. package/templates/typescript-auth/src/widgets/app/order-history/page.tsx +218 -0
  52. package/templates/typescript-auth/src/widgets/app/product-card/page.tsx +121 -0
  53. package/templates/typescript-auth/src/widgets/app/products-grid/page.tsx +173 -0
  54. package/templates/typescript-auth/src/widgets/app/shopping-cart/page.tsx +187 -0
  55. package/templates/typescript-auth/src/widgets/app/whoami/page.tsx +165 -0
  56. package/templates/typescript-auth/src/widgets/next.config.js +38 -0
  57. package/templates/typescript-auth/src/widgets/package.json +18 -0
  58. package/templates/typescript-auth/src/widgets/styles/ecommerce.ts +169 -0
  59. package/templates/typescript-auth/src/widgets/tsconfig.json +28 -0
  60. package/templates/typescript-auth/src/widgets/types/tool-data.ts +141 -0
  61. package/templates/typescript-auth/src/widgets/widget-manifest.json +464 -0
  62. package/templates/typescript-auth/tsconfig.json +27 -0
  63. package/templates/typescript-auth-api-key/.env +15 -0
  64. package/templates/typescript-auth-api-key/.env.example +4 -0
  65. package/templates/typescript-auth-api-key/src/app.module.ts +38 -0
  66. package/templates/typescript-auth-api-key/src/guards/apikey.guard.ts +47 -0
  67. package/templates/typescript-auth-api-key/src/guards/multi-auth.guard.ts +157 -0
  68. package/templates/typescript-auth-api-key/src/health/system.health.ts +55 -0
  69. package/templates/typescript-auth-api-key/src/index.ts +47 -0
  70. package/templates/typescript-auth-api-key/src/modules/calculator/calculator.module.ts +12 -0
  71. package/templates/typescript-auth-api-key/src/modules/calculator/calculator.prompts.ts +73 -0
  72. package/templates/typescript-auth-api-key/src/modules/calculator/calculator.resources.ts +60 -0
  73. package/templates/typescript-auth-api-key/src/modules/calculator/calculator.tools.ts +71 -0
  74. package/templates/typescript-auth-api-key/src/modules/demo/demo.module.ts +18 -0
  75. package/templates/typescript-auth-api-key/src/modules/demo/demo.tools.ts +155 -0
  76. package/templates/typescript-auth-api-key/src/modules/demo/multi-auth.tools.ts +123 -0
  77. package/templates/typescript-auth-api-key/src/widgets/app/calculator-operations/page.tsx +133 -0
  78. package/templates/typescript-auth-api-key/src/widgets/app/calculator-result/page.tsx +134 -0
  79. package/templates/typescript-auth-api-key/src/widgets/app/layout.tsx +14 -0
  80. package/templates/typescript-auth-api-key/src/widgets/next.config.js +37 -0
  81. package/templates/typescript-auth-api-key/src/widgets/package.json +24 -0
  82. package/templates/typescript-auth-api-key/src/widgets/tsconfig.json +28 -0
  83. package/templates/typescript-auth-api-key/src/widgets/widget-manifest.json +48 -0
  84. package/templates/typescript-auth-api-key/tsconfig.json +23 -0
  85. package/templates/typescript-oauth/.env.example +91 -0
  86. package/templates/typescript-oauth/src/app.module.ts +89 -0
  87. package/templates/typescript-oauth/src/guards/oauth.guard.ts +127 -0
  88. package/templates/typescript-oauth/src/index.ts +74 -0
  89. package/templates/typescript-oauth/src/modules/demo/demo.module.ts +16 -0
  90. package/templates/typescript-oauth/src/modules/demo/demo.tools.ts +190 -0
  91. package/templates/typescript-oauth/src/widgets/app/calculator-operations/page.tsx +133 -0
  92. package/templates/typescript-oauth/src/widgets/app/calculator-result/page.tsx +134 -0
  93. package/templates/typescript-oauth/src/widgets/app/layout.tsx +14 -0
  94. package/templates/typescript-oauth/src/widgets/next.config.js +37 -0
  95. package/templates/typescript-oauth/src/widgets/package.json +24 -0
  96. package/templates/typescript-oauth/src/widgets/tsconfig.json +28 -0
  97. package/templates/typescript-oauth/src/widgets/widget-manifest.json +48 -0
  98. package/templates/typescript-oauth/tsconfig.json +23 -0
  99. package/templates/typescript-starter/.env.example +4 -0
  100. package/templates/typescript-starter/src/app.module.ts +34 -0
  101. package/templates/typescript-starter/src/health/system.health.ts +55 -0
  102. package/templates/typescript-starter/src/index.ts +27 -0
  103. package/templates/typescript-starter/src/modules/calculator/calculator.module.ts +12 -0
  104. package/templates/typescript-starter/src/modules/calculator/calculator.prompts.ts +73 -0
  105. package/templates/typescript-starter/src/modules/calculator/calculator.resources.ts +60 -0
  106. package/templates/typescript-starter/src/modules/calculator/calculator.tools.ts +71 -0
  107. package/templates/typescript-starter/src/widgets/app/calculator-operations/page.tsx +133 -0
  108. package/templates/typescript-starter/src/widgets/app/calculator-result/page.tsx +134 -0
  109. package/templates/typescript-starter/src/widgets/app/layout.tsx +14 -0
  110. package/templates/typescript-starter/src/widgets/next.config.js +37 -0
  111. package/templates/typescript-starter/src/widgets/package.json +24 -0
  112. package/templates/typescript-starter/src/widgets/tsconfig.json +28 -0
  113. package/templates/typescript-starter/src/widgets/widget-manifest.json +48 -0
  114. package/templates/typescript-starter/tsconfig.json +23 -0
  115. package/LICENSE_URLS_UPDATE_COMPLETE.md +0 -388
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Shared E-commerce Design System
3
+ * Consistent styling across all widgets
4
+ */
5
+
6
+ export const colors = {
7
+ primary: '#D4AF37', // Gold
8
+ primaryHover: '#F5C842',
9
+ black: '#000000',
10
+ white: '#FFFFFF',
11
+ gray: {
12
+ 50: '#F9FAFB',
13
+ 100: '#F3F4F6',
14
+ 200: '#E5E7EB',
15
+ 300: '#D1D5DB',
16
+ 400: '#9CA3AF',
17
+ 500: '#6B7280',
18
+ 600: '#4B5563',
19
+ 700: '#374151',
20
+ 800: '#1F2937',
21
+ 900: '#111827',
22
+ },
23
+ success: '#10B981',
24
+ error: '#EF4444',
25
+ warning: '#F59E0B',
26
+ };
27
+
28
+ export const spacing = {
29
+ xs: '4px',
30
+ sm: '8px',
31
+ md: '12px',
32
+ lg: '16px',
33
+ xl: '20px',
34
+ '2xl': '24px',
35
+ '3xl': '32px',
36
+ '4xl': '40px',
37
+ };
38
+
39
+ export const borderRadius = {
40
+ sm: '4px',
41
+ md: '8px',
42
+ lg: '12px',
43
+ xl: '16px',
44
+ full: '9999px',
45
+ };
46
+
47
+ export const shadows = {
48
+ sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
49
+ md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',
50
+ lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
51
+ xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',
52
+ };
53
+
54
+ export const typography = {
55
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',
56
+ fontSize: {
57
+ xs: '12px',
58
+ sm: '14px',
59
+ base: '16px',
60
+ lg: '18px',
61
+ xl: '20px',
62
+ '2xl': '24px',
63
+ '3xl': '30px',
64
+ },
65
+ fontWeight: {
66
+ normal: 400,
67
+ medium: 500,
68
+ semibold: 600,
69
+ bold: 700,
70
+ extrabold: 800,
71
+ },
72
+ lineHeight: {
73
+ tight: 1.25,
74
+ normal: 1.5,
75
+ relaxed: 1.75,
76
+ },
77
+ };
78
+
79
+ // Common component styles
80
+
81
+ export const containerStyle: React.CSSProperties = {
82
+ background: `linear-gradient(135deg, ${colors.gray[50]} 0%, ${colors.gray[100]} 100%)`,
83
+ minHeight: '250px',
84
+ padding: spacing['2xl'],
85
+ fontFamily: typography.fontFamily,
86
+ };
87
+
88
+ export const cardStyle: React.CSSProperties = {
89
+ background: colors.white,
90
+ borderRadius: borderRadius.lg,
91
+ padding: spacing.lg,
92
+ boxShadow: shadows.md,
93
+ transition: 'all 0.2s ease',
94
+ border: `1px solid ${colors.gray[200]}`,
95
+ };
96
+
97
+ export const cardHoverStyle: React.CSSProperties = {
98
+ ...cardStyle,
99
+ boxShadow: shadows.lg,
100
+ transform: 'translateY(-4px)',
101
+ };
102
+
103
+ export const imageStyle: React.CSSProperties = {
104
+ width: '100%',
105
+ height: 'auto',
106
+ borderRadius: borderRadius.md,
107
+ objectFit: 'cover',
108
+ };
109
+
110
+ export const badgeStyle: React.CSSProperties = {
111
+ display: 'inline-flex',
112
+ alignItems: 'center',
113
+ padding: `${spacing.xs} ${spacing.md}`,
114
+ borderRadius: borderRadius.full,
115
+ fontSize: typography.fontSize.xs,
116
+ fontWeight: typography.fontWeight.semibold,
117
+ background: colors.gray[100],
118
+ color: colors.gray[700],
119
+ };
120
+
121
+ export const buttonStyle: React.CSSProperties = {
122
+ display: 'inline-flex',
123
+ alignItems: 'center',
124
+ justifyContent: 'center',
125
+ padding: `${spacing.md} ${spacing.xl}`,
126
+ borderRadius: borderRadius.md,
127
+ fontSize: typography.fontSize.sm,
128
+ fontWeight: typography.fontWeight.semibold,
129
+ background: `linear-gradient(135deg, ${colors.primary} 0%, ${colors.primaryHover} 100%)`,
130
+ color: colors.black,
131
+ border: 'none',
132
+ cursor: 'pointer',
133
+ transition: 'all 0.2s ease',
134
+ boxShadow: shadows.sm,
135
+ };
136
+
137
+ export const titleStyle: React.CSSProperties = {
138
+ fontSize: typography.fontSize['2xl'],
139
+ fontWeight: typography.fontWeight.bold,
140
+ color: colors.gray[900],
141
+ marginBottom: spacing.lg,
142
+ display: 'flex',
143
+ alignItems: 'center',
144
+ gap: spacing.sm,
145
+ };
146
+
147
+ export const emptyStateStyle: React.CSSProperties = {
148
+ textAlign: 'center',
149
+ padding: spacing['4xl'],
150
+ color: colors.gray[500],
151
+ };
152
+
153
+ export const gridStyle: React.CSSProperties = {
154
+ display: 'grid',
155
+ gridTemplateColumns: 'repeat(auto-fill, minmax(250px, 1fr))',
156
+ gap: spacing.lg,
157
+ };
158
+
159
+ export const priceStyle: React.CSSProperties = {
160
+ fontSize: typography.fontSize.xl,
161
+ fontWeight: typography.fontWeight.bold,
162
+ color: colors.primary,
163
+ };
164
+
165
+ export const metaTextStyle: React.CSSProperties = {
166
+ fontSize: typography.fontSize.sm,
167
+ color: colors.gray[600],
168
+ };
169
+
@@ -0,0 +1,28 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "lib": ["dom", "dom.iterable", "esnext"],
5
+ "allowJs": true,
6
+ "skipLibCheck": true,
7
+ "strict": true,
8
+ "noEmit": true,
9
+ "esModuleInterop": true,
10
+ "module": "esnext",
11
+ "moduleResolution": "bundler",
12
+ "resolveJsonModule": true,
13
+ "isolatedModules": true,
14
+ "jsx": "preserve",
15
+ "incremental": true,
16
+ "plugins": [
17
+ {
18
+ "name": "next"
19
+ }
20
+ ],
21
+ "paths": {
22
+ "@/*": ["./*"]
23
+ }
24
+ },
25
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
26
+ "exclude": ["node_modules"]
27
+ }
28
+
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Type-safe interfaces for all tool outputs
3
+ * Auto-generated from tool schemas for better DX
4
+ */
5
+
6
+ // Common types
7
+ export interface Product {
8
+ id: string;
9
+ name: string;
10
+ description: string;
11
+ price: number;
12
+ category: string;
13
+ stock: number;
14
+ image_url: string;
15
+ created_at: string;
16
+ }
17
+
18
+ export interface User {
19
+ id: string;
20
+ email: string;
21
+ name: string;
22
+ profile_picture?: string;
23
+ memberSince?: string;
24
+ created_at?: string;
25
+ }
26
+
27
+ export interface Address {
28
+ id: string;
29
+ user_id: string;
30
+ full_name: string;
31
+ street: string;
32
+ city: string;
33
+ state: string;
34
+ zip_code: string;
35
+ country: string;
36
+ phone: string;
37
+ is_default: boolean;
38
+ created_at: string;
39
+ }
40
+
41
+ export interface CartItem {
42
+ product_id: string;
43
+ name: string;
44
+ description: string;
45
+ price: number;
46
+ quantity: number;
47
+ image_url: string;
48
+ stock: number;
49
+ }
50
+
51
+ export interface OrderItem {
52
+ id: string;
53
+ product_id: string;
54
+ name: string;
55
+ price: number;
56
+ quantity: number;
57
+ image_url?: string;
58
+ }
59
+
60
+ export interface Order {
61
+ id: string;
62
+ user_id: string;
63
+ address_id: string;
64
+ total: number;
65
+ status: string;
66
+ created_at: string;
67
+ items: OrderItem[];
68
+ full_name?: string;
69
+ street?: string;
70
+ city?: string;
71
+ state?: string;
72
+ zip_code?: string;
73
+ itemCount?: number;
74
+ }
75
+
76
+ export interface Pagination {
77
+ page: number;
78
+ limit: number;
79
+ total: number;
80
+ totalPages: number;
81
+ hasMore?: boolean;
82
+ }
83
+
84
+ // Tool output interfaces
85
+
86
+ export interface LoginResult {
87
+ user: User;
88
+ token: string;
89
+ message: string;
90
+ }
91
+
92
+ export interface WhoAmIResult {
93
+ user: User;
94
+ authenticated: boolean;
95
+ }
96
+
97
+ export interface ProductsGridData {
98
+ products: Product[];
99
+ pagination: Pagination;
100
+ }
101
+
102
+ export interface ProductCardData {
103
+ product: Product;
104
+ }
105
+
106
+ export interface ShoppingCartData {
107
+ items: CartItem[];
108
+ total: number;
109
+ itemCount: number;
110
+ }
111
+
112
+ export interface AddToCartResult {
113
+ message: string;
114
+ cartItemCount: number;
115
+ item: CartItem;
116
+ }
117
+
118
+ export interface OrderConfirmationData {
119
+ order: Order;
120
+ message: string;
121
+ }
122
+
123
+ export interface OrderHistoryData {
124
+ orders: Order[];
125
+ pagination: Pagination;
126
+ }
127
+
128
+ export interface OrderDetailsData {
129
+ order: Order;
130
+ }
131
+
132
+ export interface AddressListData {
133
+ addresses: Address[];
134
+ }
135
+
136
+ export interface AddAddressResult {
137
+ message: string;
138
+ addressId: string;
139
+ isDefault: boolean;
140
+ }
141
+