swallowkit 0.1.0-alpha.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 (91) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +563 -0
  3. package/dist/api/rpc-handler.d.ts +71 -0
  4. package/dist/api/rpc-handler.d.ts.map +1 -0
  5. package/dist/api/rpc-handler.js +205 -0
  6. package/dist/api/rpc-handler.js.map +1 -0
  7. package/dist/cli/commands/build.d.ts +6 -0
  8. package/dist/cli/commands/build.d.ts.map +1 -0
  9. package/dist/cli/commands/build.js +193 -0
  10. package/dist/cli/commands/build.js.map +1 -0
  11. package/dist/cli/commands/dev.d.ts +3 -0
  12. package/dist/cli/commands/dev.d.ts.map +1 -0
  13. package/dist/cli/commands/dev.js +305 -0
  14. package/dist/cli/commands/dev.js.map +1 -0
  15. package/dist/cli/commands/generate.d.ts +4 -0
  16. package/dist/cli/commands/generate.d.ts.map +1 -0
  17. package/dist/cli/commands/generate.js +238 -0
  18. package/dist/cli/commands/generate.js.map +1 -0
  19. package/dist/cli/commands/index.d.ts +9 -0
  20. package/dist/cli/commands/index.d.ts.map +1 -0
  21. package/dist/cli/commands/index.js +18 -0
  22. package/dist/cli/commands/index.js.map +1 -0
  23. package/dist/cli/commands/init.d.ts +7 -0
  24. package/dist/cli/commands/init.d.ts.map +1 -0
  25. package/dist/cli/commands/init.js +383 -0
  26. package/dist/cli/commands/init.js.map +1 -0
  27. package/dist/cli/commands/setup.d.ts +6 -0
  28. package/dist/cli/commands/setup.d.ts.map +1 -0
  29. package/dist/cli/commands/setup.js +254 -0
  30. package/dist/cli/commands/setup.js.map +1 -0
  31. package/dist/cli/index.d.ts +3 -0
  32. package/dist/cli/index.d.ts.map +1 -0
  33. package/dist/cli/index.js +32 -0
  34. package/dist/cli/index.js.map +1 -0
  35. package/dist/core/config.d.ts +25 -0
  36. package/dist/core/config.d.ts.map +1 -0
  37. package/dist/core/config.js +204 -0
  38. package/dist/core/config.js.map +1 -0
  39. package/dist/database/client.d.ts +46 -0
  40. package/dist/database/client.d.ts.map +1 -0
  41. package/dist/database/client.js +156 -0
  42. package/dist/database/client.js.map +1 -0
  43. package/dist/database/repository.d.ts +71 -0
  44. package/dist/database/repository.d.ts.map +1 -0
  45. package/dist/database/repository.js +89 -0
  46. package/dist/database/repository.js.map +1 -0
  47. package/dist/generator/api-generator.d.ts +53 -0
  48. package/dist/generator/api-generator.d.ts.map +1 -0
  49. package/dist/generator/api-generator.js +284 -0
  50. package/dist/generator/api-generator.js.map +1 -0
  51. package/dist/generator/schema-parser.d.ts +45 -0
  52. package/dist/generator/schema-parser.d.ts.map +1 -0
  53. package/dist/generator/schema-parser.js +198 -0
  54. package/dist/generator/schema-parser.js.map +1 -0
  55. package/dist/generator/templates/azure-functions.d.ts +15 -0
  56. package/dist/generator/templates/azure-functions.d.ts.map +1 -0
  57. package/dist/generator/templates/azure-functions.js +274 -0
  58. package/dist/generator/templates/azure-functions.js.map +1 -0
  59. package/dist/generator/templates/default-server-functions.d.ts +2 -0
  60. package/dist/generator/templates/default-server-functions.d.ts.map +1 -0
  61. package/dist/generator/templates/default-server-functions.js +67 -0
  62. package/dist/generator/templates/default-server-functions.js.map +1 -0
  63. package/dist/hooks/server-function-registry.d.ts +67 -0
  64. package/dist/hooks/server-function-registry.d.ts.map +1 -0
  65. package/dist/hooks/server-function-registry.js +153 -0
  66. package/dist/hooks/server-function-registry.js.map +1 -0
  67. package/dist/hooks/useQuery.d.ts +61 -0
  68. package/dist/hooks/useQuery.d.ts.map +1 -0
  69. package/dist/hooks/useQuery.js +147 -0
  70. package/dist/hooks/useQuery.js.map +1 -0
  71. package/dist/hooks/useServerFn.d.ts +27 -0
  72. package/dist/hooks/useServerFn.d.ts.map +1 -0
  73. package/dist/hooks/useServerFn.js +119 -0
  74. package/dist/hooks/useServerFn.js.map +1 -0
  75. package/dist/index.d.ts +17 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +73 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/schemas/example.d.ts +657 -0
  80. package/dist/schemas/example.d.ts.map +1 -0
  81. package/dist/schemas/example.js +133 -0
  82. package/dist/schemas/example.js.map +1 -0
  83. package/dist/server/todo-functions.d.ts +21 -0
  84. package/dist/server/todo-functions.d.ts.map +1 -0
  85. package/dist/server/todo-functions.js +121 -0
  86. package/dist/server/todo-functions.js.map +1 -0
  87. package/dist/types/index.d.ts +53 -0
  88. package/dist/types/index.d.ts.map +1 -0
  89. package/dist/types/index.js +6 -0
  90. package/dist/types/index.js.map +1 -0
  91. package/package.json +68 -0
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SCHEMA_METADATA = exports.ListTodosResponseSchema = exports.ListTodosRequestSchema = exports.UpdateTodoRequestSchema = exports.CreateTodoRequestSchema = exports.ProjectSchema = exports.UserSchema = exports.TodoSchema = void 0;
4
+ exports.validateCreateTodoRequest = validateCreateTodoRequest;
5
+ exports.validateTodo = validateTodo;
6
+ const zod_1 = require("zod");
7
+ // Todo スキーマの例
8
+ exports.TodoSchema = zod_1.z.object({
9
+ id: zod_1.z.string(),
10
+ text: zod_1.z.string().min(1, "テキストは必須です"),
11
+ completed: zod_1.z.boolean().default(false),
12
+ priority: zod_1.z.enum(['low', 'medium', 'high']).default('medium'),
13
+ dueDate: zod_1.z.string().datetime().optional(),
14
+ tags: zod_1.z.array(zod_1.z.string()).default([]),
15
+ createdAt: zod_1.z.string().datetime(),
16
+ updatedAt: zod_1.z.string().datetime(),
17
+ });
18
+ // User スキーマの例
19
+ exports.UserSchema = zod_1.z.object({
20
+ id: zod_1.z.string(),
21
+ email: zod_1.z.string().email("有効なメールアドレスを入力してください"),
22
+ name: zod_1.z.string().min(1, "名前は必須です"),
23
+ avatar: zod_1.z.string().url().optional(),
24
+ role: zod_1.z.enum(['user', 'admin']).default('user'),
25
+ preferences: zod_1.z.object({
26
+ theme: zod_1.z.enum(['light', 'dark']).default('light'),
27
+ language: zod_1.z.string().default('ja'),
28
+ notifications: zod_1.z.boolean().default(true),
29
+ }).default({}),
30
+ createdAt: zod_1.z.string().datetime(),
31
+ updatedAt: zod_1.z.string().datetime(),
32
+ });
33
+ // Project スキーマの例(階層構造のデモ)
34
+ exports.ProjectSchema = zod_1.z.object({
35
+ id: zod_1.z.string(),
36
+ name: zod_1.z.string().min(1, "プロジェクト名は必須です"),
37
+ description: zod_1.z.string().optional(),
38
+ status: zod_1.z.enum(['active', 'completed', 'archived']).default('active'),
39
+ ownerId: zod_1.z.string(), // User.id への参照
40
+ memberIds: zod_1.z.array(zod_1.z.string()).default([]), // User.id の配列
41
+ settings: zod_1.z.object({
42
+ isPublic: zod_1.z.boolean().default(false),
43
+ allowComments: zod_1.z.boolean().default(true),
44
+ autoArchive: zod_1.z.boolean().default(false),
45
+ }).default({}),
46
+ metrics: zod_1.z.object({
47
+ totalTasks: zod_1.z.number().default(0),
48
+ completedTasks: zod_1.z.number().default(0),
49
+ activeMembers: zod_1.z.number().default(0),
50
+ }).default({}),
51
+ createdAt: zod_1.z.string().datetime(),
52
+ updatedAt: zod_1.z.string().datetime(),
53
+ });
54
+ // API リクエスト/レスポンス スキーマの例
55
+ exports.CreateTodoRequestSchema = zod_1.z.object({
56
+ text: zod_1.z.string().min(1),
57
+ priority: zod_1.z.enum(['low', 'medium', 'high']).optional(),
58
+ dueDate: zod_1.z.string().datetime().optional(),
59
+ tags: zod_1.z.array(zod_1.z.string()).optional(),
60
+ });
61
+ exports.UpdateTodoRequestSchema = zod_1.z.object({
62
+ text: zod_1.z.string().min(1).optional(),
63
+ completed: zod_1.z.boolean().optional(),
64
+ priority: zod_1.z.enum(['low', 'medium', 'high']).optional(),
65
+ dueDate: zod_1.z.string().datetime().optional(),
66
+ tags: zod_1.z.array(zod_1.z.string()).optional(),
67
+ });
68
+ exports.ListTodosRequestSchema = zod_1.z.object({
69
+ page: zod_1.z.number().min(1).default(1),
70
+ limit: zod_1.z.number().min(1).max(100).default(20),
71
+ status: zod_1.z.enum(['all', 'active', 'completed']).default('all'),
72
+ priority: zod_1.z.enum(['low', 'medium', 'high']).optional(),
73
+ sortBy: zod_1.z.enum(['createdAt', 'updatedAt', 'dueDate', 'priority']).default('createdAt'),
74
+ sortOrder: zod_1.z.enum(['asc', 'desc']).default('desc'),
75
+ });
76
+ exports.ListTodosResponseSchema = zod_1.z.object({
77
+ items: zod_1.z.array(exports.TodoSchema),
78
+ pagination: zod_1.z.object({
79
+ page: zod_1.z.number(),
80
+ limit: zod_1.z.number(),
81
+ total: zod_1.z.number(),
82
+ totalPages: zod_1.z.number(),
83
+ hasNext: zod_1.z.boolean(),
84
+ hasPrev: zod_1.z.boolean(),
85
+ }),
86
+ });
87
+ // バリデーション関数の例
88
+ function validateCreateTodoRequest(data) {
89
+ return exports.CreateTodoRequestSchema.parse(data);
90
+ }
91
+ function validateTodo(data) {
92
+ return exports.TodoSchema.parse(data);
93
+ }
94
+ // スキーマメタデータ(API生成用)
95
+ exports.SCHEMA_METADATA = {
96
+ Todo: {
97
+ schema: exports.TodoSchema,
98
+ tableName: 'todos',
99
+ partitionKey: 'id',
100
+ searchableFields: ['text', 'tags'],
101
+ sortableFields: ['createdAt', 'updatedAt', 'dueDate', 'priority'],
102
+ filterableFields: ['completed', 'priority', 'tags'],
103
+ operations: {
104
+ create: { requestSchema: exports.CreateTodoRequestSchema },
105
+ update: { requestSchema: exports.UpdateTodoRequestSchema },
106
+ list: {
107
+ requestSchema: exports.ListTodosRequestSchema,
108
+ responseSchema: exports.ListTodosResponseSchema
109
+ },
110
+ },
111
+ },
112
+ User: {
113
+ schema: exports.UserSchema,
114
+ tableName: 'users',
115
+ partitionKey: 'id',
116
+ searchableFields: ['name', 'email'],
117
+ sortableFields: ['createdAt', 'updatedAt', 'name'],
118
+ filterableFields: ['role'],
119
+ },
120
+ Project: {
121
+ schema: exports.ProjectSchema,
122
+ tableName: 'projects',
123
+ partitionKey: 'ownerId', // パーティション分散を考慮
124
+ searchableFields: ['name', 'description'],
125
+ sortableFields: ['createdAt', 'updatedAt', 'name'],
126
+ filterableFields: ['status', 'ownerId'],
127
+ relationships: {
128
+ owner: { schema: 'User', field: 'ownerId' },
129
+ members: { schema: 'User', field: 'memberIds', type: 'array' },
130
+ },
131
+ },
132
+ };
133
+ //# sourceMappingURL=example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.js","sourceRoot":"","sources":["../../src/schemas/example.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { Todo, CreateTodoRequestSchema, UpdateTodoRequestSchema } from '../schemas/example';
2
+ import { z } from 'zod';
3
+ export declare function getTodos(): Promise<Todo[]>;
4
+ export declare function getTodoById(id: string): Promise<Todo | null>;
5
+ export declare function createTodo(data: z.infer<typeof CreateTodoRequestSchema>): Promise<Todo>;
6
+ export declare function updateTodo(id: string, data: z.infer<typeof UpdateTodoRequestSchema>): Promise<Todo | null>;
7
+ export declare function deleteTodo(id: string): Promise<boolean>;
8
+ export declare function toggleTodoComplete(id: string): Promise<Todo | null>;
9
+ export declare function getTodoStats(): Promise<{
10
+ total: number;
11
+ completed: number;
12
+ pending: number;
13
+ overdue: number;
14
+ byPriority: Record<string, number>;
15
+ }>;
16
+ export declare function searchTodos(query: string): Promise<Todo[]>;
17
+ export declare function bulkUpdateTodos(updates: Array<{
18
+ id: string;
19
+ data: z.infer<typeof UpdateTodoRequestSchema>;
20
+ }>): Promise<Todo[]>;
21
+ //# sourceMappingURL=todo-functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo-functions.d.ts","sourceRoot":"","sources":["../../src/server/todo-functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAc,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACxG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAsBhD;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAIlE;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB7F;AAED,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAkBhH;AAED,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI7D;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAOzE;AAGD,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC,CAoBD;AAGD,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAQhE;AAGD,wBAAsB,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;CAAE,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAWpI"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTodos = getTodos;
4
+ exports.getTodoById = getTodoById;
5
+ exports.createTodo = createTodo;
6
+ exports.updateTodo = updateTodo;
7
+ exports.deleteTodo = deleteTodo;
8
+ exports.toggleTodoComplete = toggleTodoComplete;
9
+ exports.getTodoStats = getTodoStats;
10
+ exports.searchTodos = searchTodos;
11
+ exports.bulkUpdateTodos = bulkUpdateTodos;
12
+ const example_1 = require("../schemas/example");
13
+ // Todo CRUD サーバー関数の例
14
+ async function getTodos() {
15
+ // 実際の実装ではCosmos DBから取得
16
+ return [
17
+ {
18
+ id: "1",
19
+ text: "SwallowKitを学ぶ",
20
+ completed: false,
21
+ priority: "high",
22
+ tags: ["学習", "フレームワーク"],
23
+ createdAt: new Date().toISOString(),
24
+ updatedAt: new Date().toISOString(),
25
+ },
26
+ {
27
+ id: "2",
28
+ text: "Azureにデプロイする",
29
+ completed: true,
30
+ priority: "medium",
31
+ tags: ["デプロイ", "Azure"],
32
+ createdAt: new Date().toISOString(),
33
+ updatedAt: new Date().toISOString(),
34
+ },
35
+ ];
36
+ }
37
+ async function getTodoById(id) {
38
+ // 実際の実装ではCosmos DBから取得
39
+ const todos = await getTodos();
40
+ return todos.find(todo => todo.id === id) || null;
41
+ }
42
+ async function createTodo(data) {
43
+ // バリデーション
44
+ const validatedData = example_1.CreateTodoRequestSchema.parse(data);
45
+ // 実際の実装ではCosmos DBに保存
46
+ const newTodo = {
47
+ id: Date.now().toString(),
48
+ ...validatedData,
49
+ completed: false,
50
+ priority: validatedData.priority || 'medium',
51
+ tags: validatedData.tags || [],
52
+ createdAt: new Date().toISOString(),
53
+ updatedAt: new Date().toISOString(),
54
+ };
55
+ return newTodo;
56
+ }
57
+ async function updateTodo(id, data) {
58
+ // バリデーション
59
+ const validatedData = example_1.UpdateTodoRequestSchema.parse(data);
60
+ // 既存のTodoを取得
61
+ const existingTodo = await getTodoById(id);
62
+ if (!existingTodo) {
63
+ return null;
64
+ }
65
+ // 実際の実装ではCosmos DBで更新
66
+ const updatedTodo = {
67
+ ...existingTodo,
68
+ ...validatedData,
69
+ updatedAt: new Date().toISOString(),
70
+ };
71
+ return updatedTodo;
72
+ }
73
+ async function deleteTodo(id) {
74
+ // 実際の実装ではCosmos DBから削除
75
+ const existingTodo = await getTodoById(id);
76
+ return existingTodo !== null;
77
+ }
78
+ async function toggleTodoComplete(id) {
79
+ const existingTodo = await getTodoById(id);
80
+ if (!existingTodo) {
81
+ return null;
82
+ }
83
+ return updateTodo(id, { completed: !existingTodo.completed });
84
+ }
85
+ // 複雑なビジネスロジックの例
86
+ async function getTodoStats() {
87
+ const todos = await getTodos();
88
+ const now = new Date();
89
+ const stats = {
90
+ total: todos.length,
91
+ completed: todos.filter(t => t.completed).length,
92
+ pending: todos.filter(t => !t.completed).length,
93
+ overdue: todos.filter(t => !t.completed &&
94
+ t.dueDate &&
95
+ new Date(t.dueDate) < now).length,
96
+ byPriority: todos.reduce((acc, todo) => {
97
+ acc[todo.priority] = (acc[todo.priority] || 0) + 1;
98
+ return acc;
99
+ }, {}),
100
+ };
101
+ return stats;
102
+ }
103
+ // 検索機能の例
104
+ async function searchTodos(query) {
105
+ const todos = await getTodos();
106
+ const lowerQuery = query.toLowerCase();
107
+ return todos.filter(todo => todo.text.toLowerCase().includes(lowerQuery) ||
108
+ todo.tags.some(tag => tag.toLowerCase().includes(lowerQuery)));
109
+ }
110
+ // バッチ操作の例
111
+ async function bulkUpdateTodos(updates) {
112
+ const results = [];
113
+ for (const update of updates) {
114
+ const result = await updateTodo(update.id, update.data);
115
+ if (result) {
116
+ results.push(result);
117
+ }
118
+ }
119
+ return results;
120
+ }
121
+ //# sourceMappingURL=todo-functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo-functions.js","sourceRoot":"","sources":["../../src/server/todo-functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * SwallowKit の基本型定義
3
+ */
4
+ export type ServerFnMode = "auto" | "force-server" | "force-client";
5
+ export interface UseServerFnOptions {
6
+ mode?: ServerFnMode;
7
+ refetchOnMount?: boolean;
8
+ enabled?: boolean;
9
+ }
10
+ export interface UseServerFnResult<TResult> {
11
+ data: TResult | null;
12
+ loading: boolean;
13
+ error: any;
14
+ refetch: () => void;
15
+ }
16
+ export type ServerFunction<TArgs extends any[], TResult> = (...args: TArgs) => Promise<TResult> | TResult;
17
+ export interface ServerFunctionDefinition<TArgs extends any[] = any[], TResult = any> {
18
+ fn: ServerFunction<TArgs, TResult>;
19
+ name: string;
20
+ id: string;
21
+ }
22
+ export interface ServerFnFactory<TArgs extends any[], TResult> {
23
+ (...args: TArgs): Promise<TResult>;
24
+ __swallowkit_id: string;
25
+ __swallowkit_name: string;
26
+ }
27
+ export interface RPCRequest {
28
+ fnName: string;
29
+ args: any[];
30
+ }
31
+ export interface RPCResponse<T = any> {
32
+ success: boolean;
33
+ data?: T;
34
+ error?: string;
35
+ }
36
+ export interface SwallowKitConfig {
37
+ database?: {
38
+ type?: "cosmos" | "mock";
39
+ connectionString?: string;
40
+ databaseName?: string;
41
+ };
42
+ api?: {
43
+ endpoint?: string;
44
+ cors?: {
45
+ origin?: string | string[];
46
+ credentials?: boolean;
47
+ };
48
+ };
49
+ functions?: {
50
+ outputDir?: string;
51
+ };
52
+ }
53
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,cAAc,GAAG,cAAc,CAAC;AAGpE,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAGD,MAAM,WAAW,iBAAiB,CAAC,OAAO;IACxC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,GAAG,CAAC;IACX,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAGD,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,GAAG,EAAE,EAAE,OAAO,IAAI,CACzD,GAAG,IAAI,EAAE,KAAK,KACX,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAGhC,MAAM,WAAW,wBAAwB,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG;IAClF,EAAE,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAGD,MAAM,WAAW,eAAe,CAAC,KAAK,SAAS,GAAG,EAAE,EAAE,OAAO;IAC3D,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAGD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAGD,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE;YACL,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;YAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;SACvB,CAAC;KACH,CAAC;IACF,SAAS,CAAC,EAAE;QACV,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * SwallowKit の基本型定義
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;GAEG"}
package/package.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "swallowkit",
3
+ "version": "0.1.0-alpha.1",
4
+ "description": "A React framework for building full-stack Azure Static Web Apps with ease.",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "swallowkit": "dist/cli/index.js"
9
+ },
10
+ "files": [
11
+ "dist",
12
+ "README.md",
13
+ "LICENSE"
14
+ ],
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "dev": "tsc --watch",
18
+ "test": "jest",
19
+ "lint": "eslint src/**/*.ts",
20
+ "format": "prettier --write src/**/*.ts"
21
+ },
22
+ "keywords": [
23
+ "azure",
24
+ "static-web-apps",
25
+ "react",
26
+ "hooks",
27
+ "typescript",
28
+ "framework"
29
+ ],
30
+ "author": "Takumasa Hirabayashi",
31
+ "license": "MIT",
32
+ "dependencies": {
33
+ "@azure/cosmos": "^4.0.0",
34
+ "commander": "^11.0.0",
35
+ "cors": "^2.8.5",
36
+ "express": "^4.18.0",
37
+ "react": ">=16.8.0",
38
+ "zod": "^3.25.76"
39
+ },
40
+ "devDependencies": {
41
+ "@types/cors": "^2.8.0",
42
+ "@types/express": "^4.17.0",
43
+ "@types/jest": "^29.0.0",
44
+ "@types/node": "^20.0.0",
45
+ "@types/react": "^18.0.0",
46
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
47
+ "@typescript-eslint/parser": "^6.0.0",
48
+ "eslint": "^8.0.0",
49
+ "jest": "^29.0.0",
50
+ "prettier": "^3.0.0",
51
+ "ts-jest": "^29.0.0",
52
+ "typescript": "^5.9.2"
53
+ },
54
+ "peerDependencies": {
55
+ "react": ">=16.8.0"
56
+ },
57
+ "directories": {
58
+ "doc": "docs"
59
+ },
60
+ "repository": {
61
+ "type": "git",
62
+ "url": "git+https://github.com/himanago/swallowkit.git"
63
+ },
64
+ "bugs": {
65
+ "url": "https://github.com/himanago/swallowkit/issues"
66
+ },
67
+ "homepage": "https://github.com/himanago/swallowkit#readme"
68
+ }