@famgia/omnify 0.12.9 → 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 (78) hide show
  1. package/README.md +435 -89
  2. package/dist/index.cjs +101 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +4 -0
  5. package/dist/index.d.ts +4 -7
  6. package/dist/index.js +78 -22
  7. package/dist/index.js.map +1 -1
  8. package/package.json +34 -65
  9. package/CHANGELOG.md +0 -129
  10. package/dist/__tests__/generators/contextGenerator.test.d.ts +0 -2
  11. package/dist/__tests__/generators/contextGenerator.test.d.ts.map +0 -1
  12. package/dist/__tests__/generators/contextGenerator.test.js +0 -109
  13. package/dist/__tests__/generators/contextGenerator.test.js.map +0 -1
  14. package/dist/__tests__/generators/enumGenerator.test.d.ts +0 -2
  15. package/dist/__tests__/generators/enumGenerator.test.d.ts.map +0 -1
  16. package/dist/__tests__/generators/enumGenerator.test.js +0 -151
  17. package/dist/__tests__/generators/enumGenerator.test.js.map +0 -1
  18. package/dist/__tests__/generators/modelGenerator.test.d.ts +0 -2
  19. package/dist/__tests__/generators/modelGenerator.test.d.ts.map +0 -1
  20. package/dist/__tests__/generators/modelGenerator.test.js +0 -329
  21. package/dist/__tests__/generators/modelGenerator.test.js.map +0 -1
  22. package/dist/__tests__/utils/pascalCase.test.d.ts +0 -1
  23. package/dist/__tests__/utils/pascalCase.test.d.ts.map +0 -1
  24. package/dist/__tests__/utils/pascalCase.test.js +0 -75
  25. package/dist/__tests__/utils/pascalCase.test.js.map +0 -1
  26. package/dist/__tests__/utils/typeMapper.test.d.ts +0 -2
  27. package/dist/__tests__/utils/typeMapper.test.d.ts.map +0 -1
  28. package/dist/__tests__/utils/typeMapper.test.js +0 -41
  29. package/dist/__tests__/utils/typeMapper.test.js.map +0 -1
  30. package/dist/cli.d.ts +0 -3
  31. package/dist/cli.d.ts.map +0 -1
  32. package/dist/cli.js +0 -248
  33. package/dist/cli.js.map +0 -1
  34. package/dist/generators/commonTypesGenerator.d.ts +0 -5
  35. package/dist/generators/commonTypesGenerator.d.ts.map +0 -1
  36. package/dist/generators/commonTypesGenerator.js +0 -37
  37. package/dist/generators/commonTypesGenerator.js.map +0 -1
  38. package/dist/generators/contextGenerator.d.ts +0 -3
  39. package/dist/generators/contextGenerator.d.ts.map +0 -1
  40. package/dist/generators/contextGenerator.js +0 -248
  41. package/dist/generators/contextGenerator.js.map +0 -1
  42. package/dist/generators/enumGenerator.d.ts +0 -13
  43. package/dist/generators/enumGenerator.d.ts.map +0 -1
  44. package/dist/generators/enumGenerator.js +0 -83
  45. package/dist/generators/enumGenerator.js.map +0 -1
  46. package/dist/generators/hooksGenerator.d.ts +0 -4
  47. package/dist/generators/hooksGenerator.d.ts.map +0 -1
  48. package/dist/generators/hooksGenerator.js +0 -265
  49. package/dist/generators/hooksGenerator.js.map +0 -1
  50. package/dist/generators/modelGenerator.d.ts +0 -13
  51. package/dist/generators/modelGenerator.d.ts.map +0 -1
  52. package/dist/generators/modelGenerator.js +0 -262
  53. package/dist/generators/modelGenerator.js.map +0 -1
  54. package/dist/index.d.ts.map +0 -1
  55. package/dist/runtime/hooks/useFormSubmit.d.ts +0 -36
  56. package/dist/runtime/hooks/useFormSubmit.d.ts.map +0 -1
  57. package/dist/runtime/hooks/useFormSubmit.js +0 -86
  58. package/dist/runtime/hooks/useFormSubmit.js.map +0 -1
  59. package/dist/runtime/index.d.ts +0 -5
  60. package/dist/runtime/index.d.ts.map +0 -1
  61. package/dist/runtime/index.js +0 -21
  62. package/dist/runtime/index.js.map +0 -1
  63. package/dist/runtime/lib/axios.d.ts +0 -7
  64. package/dist/runtime/lib/axios.d.ts.map +0 -1
  65. package/dist/runtime/lib/axios.js +0 -54
  66. package/dist/runtime/lib/axios.js.map +0 -1
  67. package/dist/runtime/lib/validation.d.ts +0 -50
  68. package/dist/runtime/lib/validation.d.ts.map +0 -1
  69. package/dist/runtime/lib/validation.js +0 -85
  70. package/dist/runtime/lib/validation.js.map +0 -1
  71. package/dist/types.d.ts +0 -54
  72. package/dist/types.d.ts.map +0 -1
  73. package/dist/types.js +0 -3
  74. package/dist/types.js.map +0 -1
  75. package/dist/utils/typeMapper.d.ts +0 -10
  76. package/dist/utils/typeMapper.d.ts.map +0 -1
  77. package/dist/utils/typeMapper.js +0 -119
  78. package/dist/utils/typeMapper.js.map +0 -1
@@ -1,262 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateModelFile = generateModelFile;
4
- exports.generateAllModels = generateAllModels;
5
- exports.generateExtendedModelFile = generateExtendedModelFile;
6
- exports.generateModelsIndexFile = generateModelsIndexFile;
7
- const typeMapper_1 = require("../utils/typeMapper");
8
- function toPascalCase(str) {
9
- // Preserve case for already uppercase words like "ApplicationForm"
10
- // Just capitalize first letter of each underscore-separated part
11
- return str
12
- .split('_')
13
- .map(word => {
14
- // If word is already mixed case (e.g. "ApplicationForm"), keep it
15
- if (word !== word.toUpperCase() && word !== word.toLowerCase()) {
16
- return word;
17
- }
18
- // Otherwise capitalize first letter
19
- return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
20
- })
21
- .join('');
22
- }
23
- function expandCompositeFields(prop) {
24
- if (!prop.fields)
25
- return [];
26
- const fields = [];
27
- for (const [fieldName, field] of Object.entries(prop.fields)) {
28
- const tsType = (0, typeMapper_1.mapOmnifyTypeToTypeScript)(field.type, field.nullable);
29
- const optional = field.nullable ? '?' : '';
30
- const comment = field.displayName ? ` // ${field.displayName}` : '';
31
- fields.push({
32
- name: field.propertyName,
33
- type: tsType,
34
- optional,
35
- comment,
36
- });
37
- }
38
- return fields;
39
- }
40
- function generateModelFile(objectName, object, useBasePrefix = true) {
41
- const lines = [];
42
- lines.push('// Auto-generated by @famgia/omnify');
43
- lines.push('// Do not edit this file manually');
44
- lines.push('');
45
- const interfaceName = useBasePrefix ? `Base${objectName}` : objectName;
46
- // Generate interface
47
- lines.push(`export interface ${interfaceName} {`);
48
- for (const [propName, prop] of Object.entries(object.properties)) {
49
- // Skip relations for now (they're complex)
50
- if (prop.type === 'Association' || prop.type === 'Polymorphic') {
51
- continue;
52
- }
53
- // Handle composite types - expand fields
54
- if (prop.fields) {
55
- const expandedFields = expandCompositeFields(prop);
56
- for (const field of expandedFields) {
57
- lines.push(` ${field.name}${field.optional}: ${field.type};${field.comment}`);
58
- }
59
- continue;
60
- }
61
- let propType;
62
- if (prop.type === 'Enum' && prop.enum) {
63
- propType = `${toPascalCase(objectName)}${toPascalCase(propName)}`;
64
- }
65
- else {
66
- propType = (0, typeMapper_1.mapOmnifyTypeToTypeScript)(prop.type, prop.nullable);
67
- }
68
- const optional = prop.nullable ? '?' : '';
69
- const comment = prop.displayName ? ` // ${prop.displayName}` : '';
70
- lines.push(` ${propName}${optional}: ${propType};${comment}`);
71
- }
72
- lines.push('}');
73
- lines.push('');
74
- return lines.join('\n');
75
- }
76
- /**
77
- * Generate pivot interface for ManyToMany relationship with pivot fields
78
- */
79
- function generatePivotInterface(objectName, propName, targetName, pivotFields) {
80
- const lines = [];
81
- const pivotInterfaceName = `${toPascalCase(objectName)}${toPascalCase(propName)}Pivot`;
82
- lines.push(`// Pivot data for ${objectName}.${propName} -> ${targetName}`);
83
- lines.push(`export interface ${pivotInterfaceName} {`);
84
- for (const [fieldName, field] of Object.entries(pivotFields)) {
85
- const tsType = (0, typeMapper_1.mapPivotFieldTypeToTypeScript)(field.type, field.nullable);
86
- const optional = field.nullable ? '?' : '';
87
- const comment = field.displayName ? ` // ${field.displayName}` : '';
88
- lines.push(` ${fieldName}${optional}: ${tsType};${comment}`);
89
- }
90
- lines.push('}');
91
- lines.push('');
92
- return lines;
93
- }
94
- /**
95
- * Generate interface for ManyToMany relation item with pivot data
96
- */
97
- function generateManyToManyWithPivotInterface(objectName, propName, targetName) {
98
- const pivotInterfaceName = `${toPascalCase(objectName)}${toPascalCase(propName)}Pivot`;
99
- return `${targetName} & { pivot: ${pivotInterfaceName} }`;
100
- }
101
- function generateAllModels(schema) {
102
- const lines = [];
103
- lines.push('// Auto-generated by @famgia/omnify');
104
- lines.push('// Do not edit this file manually');
105
- lines.push('// These are BASE models - DO NOT EDIT');
106
- lines.push('// Use models/ directory for customizable extended models');
107
- lines.push('');
108
- lines.push('import * as Enums from \'./enums\';');
109
- lines.push('');
110
- // Collect all model names for import
111
- const modelNames = Object.keys(schema).filter(key => schema[key] && typeof schema[key] === 'object' && schema[key].objectName);
112
- // Import extended models from ../models
113
- if (modelNames.length > 0) {
114
- lines.push('// Import extended models for relations');
115
- lines.push(`import type { ${modelNames.join(', ')} } from '../models';`);
116
- lines.push('');
117
- }
118
- // PHASE 0: Generate pivot interfaces for ManyToMany with pivotFields
119
- const pivotInterfaces = [];
120
- for (const [objectName, object] of Object.entries(schema)) {
121
- for (const [propName, prop] of Object.entries(object.properties)) {
122
- if (prop.type === 'Association' &&
123
- prop.relation === 'ManyToMany' &&
124
- prop.pivotFields &&
125
- Object.keys(prop.pivotFields).length > 0) {
126
- const pivotLines = generatePivotInterface(objectName, propName, prop.target || 'unknown', prop.pivotFields);
127
- pivotInterfaces.push(...pivotLines);
128
- }
129
- }
130
- }
131
- if (pivotInterfaces.length > 0) {
132
- lines.push('// ==========================================');
133
- lines.push('// Pivot Interfaces for ManyToMany Relations');
134
- lines.push('// ==========================================');
135
- lines.push('');
136
- lines.push(...pivotInterfaces);
137
- }
138
- // Generate models
139
- for (const [objectName, object] of Object.entries(schema)) {
140
- lines.push(`// ${object.displayName}`);
141
- lines.push(`export interface Base${objectName} {`);
142
- // Track processed properties to avoid duplicates from composite fields
143
- const processedProps = new Set();
144
- // PHASE 1: Add foreign keys for ManyToOne associations first
145
- for (const [propName, prop] of Object.entries(object.properties)) {
146
- if (prop.type === 'Association' && prop.relation === 'ManyToOne') {
147
- const foreignKeyName = prop.foreignKey || `${propName}_id`;
148
- if (!processedProps.has(foreignKeyName)) {
149
- const comment = ` // Foreign key for ${prop.displayName || propName}`;
150
- lines.push(` ${foreignKeyName}?: number | null;${comment}`);
151
- processedProps.add(foreignKeyName);
152
- }
153
- }
154
- }
155
- // PHASE 2: Add all other properties
156
- for (const [propName, prop] of Object.entries(object.properties)) {
157
- // Skip if already processed
158
- if (processedProps.has(propName)) {
159
- continue;
160
- }
161
- // Handle Association types
162
- if (prop.type === 'Association') {
163
- const comment = prop.displayName ? ` // ${prop.displayName}` : '';
164
- // Use extended models (imported from ../models) for relations
165
- const target = prop.target;
166
- switch (prop.relation) {
167
- case 'ManyToOne':
168
- lines.push(` ${propName}?: ${target} | null;${comment}`);
169
- break;
170
- case 'OneToOne':
171
- lines.push(` ${propName}?: ${target} | null;${comment}`);
172
- break;
173
- case 'OneToMany':
174
- lines.push(` ${propName}?: ${target}[];${comment}`);
175
- break;
176
- case 'ManyToMany':
177
- // Check if pivot fields are defined
178
- if (prop.pivotFields && Object.keys(prop.pivotFields).length > 0) {
179
- const pivotType = generateManyToManyWithPivotInterface(objectName, propName, target || 'any');
180
- lines.push(` ${propName}?: (${pivotType})[];${comment}`);
181
- }
182
- else {
183
- lines.push(` ${propName}?: ${target}[];${comment}`);
184
- }
185
- break;
186
- }
187
- processedProps.add(propName);
188
- continue;
189
- }
190
- // Skip Polymorphic for now (too complex)
191
- if (prop.type === 'Polymorphic') {
192
- continue;
193
- }
194
- // Handle composite types - expand fields and mark them as processed
195
- if (prop.fields) {
196
- const expandedFields = expandCompositeFields(prop);
197
- for (const field of expandedFields) {
198
- if (!processedProps.has(field.name)) {
199
- lines.push(` ${field.name}${field.optional}: ${field.type};${field.comment}`);
200
- processedProps.add(field.name);
201
- }
202
- }
203
- continue;
204
- }
205
- let propType;
206
- if (prop.type === 'Enum' && prop.enum) {
207
- propType = `Enums.${toPascalCase(objectName)}${toPascalCase(propName)}`;
208
- }
209
- else {
210
- propType = (0, typeMapper_1.mapOmnifyTypeToTypeScript)(prop.type, prop.nullable);
211
- }
212
- const optional = prop.nullable ? '?' : '';
213
- const comment = prop.displayName ? ` // ${prop.displayName}` : '';
214
- lines.push(` ${propName}${optional}: ${propType};${comment}`);
215
- processedProps.add(propName);
216
- }
217
- lines.push('}');
218
- lines.push('');
219
- }
220
- return lines.join('\n');
221
- }
222
- /**
223
- * Generate extended model file that users can customize
224
- * This file won't be overwritten on rebuild
225
- */
226
- function generateExtendedModelFile(objectName) {
227
- const lines = [];
228
- lines.push(`// Extended model for ${objectName}`);
229
- lines.push('// You can customize this file - it will not be overwritten');
230
- lines.push('');
231
- lines.push(`import { Base${objectName} } from '../types/models';`);
232
- lines.push('');
233
- lines.push(`// Extend the base model with your custom fields/methods`);
234
- lines.push(`export interface ${objectName} extends Base${objectName} {`);
235
- lines.push(' // Add your custom fields here');
236
- lines.push(' // Example:');
237
- lines.push(' // customField?: string;');
238
- lines.push('}');
239
- lines.push('');
240
- lines.push('// You can also add helper functions or methods here');
241
- lines.push(`// Example:`);
242
- lines.push(`// export function create${objectName}(data: Partial<${objectName}>): ${objectName} {`);
243
- lines.push(`// return { ...data } as ${objectName};`);
244
- lines.push(`// }`);
245
- lines.push('');
246
- return lines.join('\n');
247
- }
248
- /**
249
- * Generate models index file that exports all extended models
250
- */
251
- function generateModelsIndexFile(objectNames) {
252
- const lines = [];
253
- lines.push('// Auto-generated by @famgia/omnify');
254
- lines.push('// Extended models for customization');
255
- lines.push('');
256
- for (const objectName of objectNames) {
257
- lines.push(`export * from './${objectName}';`);
258
- }
259
- lines.push('');
260
- return lines.join('\n');
261
- }
262
- //# sourceMappingURL=modelGenerator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modelGenerator.js","sourceRoot":"","sources":["../../src/generators/modelGenerator.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAC1B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC"}
@@ -1,36 +0,0 @@
1
- import { FormInstance } from 'antd';
2
- export interface UseFormSubmitOptions<TResponse = any> {
3
- form: FormInstance;
4
- submitFn: (values: any) => Promise<TResponse>;
5
- onSuccess?: (response: TResponse, values: any) => void | Promise<void>;
6
- onError?: (error: any, values: any) => void | Promise<void>;
7
- getCsrfToken?: () => Promise<void>;
8
- errorMessages?: {
9
- 500?: string;
10
- 401?: string;
11
- 403?: string;
12
- default?: string;
13
- };
14
- }
15
- export interface UseFormSubmitResult {
16
- handleSubmit: (values: any) => Promise<void>;
17
- loading: boolean;
18
- setLoading: (loading: boolean) => void;
19
- }
20
- /**
21
- * Custom hook for handling form submission with automatic Laravel validation error mapping
22
- *
23
- * @example
24
- * ```tsx
25
- * const { handleSubmit, loading } = useFormSubmit({
26
- * form,
27
- * submitFn: createUser,
28
- * getCsrfToken: () => getCsrfCookie(apiUrl),
29
- * onSuccess: (response) => {
30
- * message.success('Success!');
31
- * },
32
- * });
33
- * ```
34
- */
35
- export declare function useFormSubmit<TResponse = any>(options: UseFormSubmitOptions<TResponse>): UseFormSubmitResult;
36
- //# sourceMappingURL=useFormSubmit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFormSubmit.d.ts","sourceRoot":"","sources":["../../../src/runtime/hooks/useFormSubmit.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAO,MAAM,MAAM,CAAC;AAEzC,MAAM,WAAW,oBAAoB,CAAC,SAAS,GAAG,GAAG;IACjD,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACL;AAED,MAAM,WAAW,mBAAmB;IAChC,YAAY,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,SAAS,GAAG,GAAG,EACzC,OAAO,EAAE,oBAAoB,CAAC,SAAS,CAAC,GACzC,mBAAmB,CAsFrB"}
@@ -1,86 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useFormSubmit = useFormSubmit;
4
- const react_1 = require("react");
5
- const antd_1 = require("antd");
6
- /**
7
- * Custom hook for handling form submission with automatic Laravel validation error mapping
8
- *
9
- * @example
10
- * ```tsx
11
- * const { handleSubmit, loading } = useFormSubmit({
12
- * form,
13
- * submitFn: createUser,
14
- * getCsrfToken: () => getCsrfCookie(apiUrl),
15
- * onSuccess: (response) => {
16
- * message.success('Success!');
17
- * },
18
- * });
19
- * ```
20
- */
21
- function useFormSubmit(options) {
22
- const { form, submitFn, onSuccess, onError, getCsrfToken, errorMessages = {}, } = options;
23
- const [loading, setLoading] = (0, react_1.useState)(false);
24
- const { message: messageApi } = antd_1.App.useApp();
25
- const handleSubmit = async (values) => {
26
- setLoading(true);
27
- try {
28
- if (getCsrfToken) {
29
- await getCsrfToken();
30
- }
31
- const response = await submitFn(values);
32
- if (onSuccess) {
33
- await onSuccess(response, values);
34
- }
35
- }
36
- catch (error) {
37
- console.error('Form submission error:', error);
38
- if (onError) {
39
- await onError(error, values);
40
- return;
41
- }
42
- // Handle validation errors (422)
43
- if (error.response?.status === 422 && error.response?.data?.errors) {
44
- const errors = error.response.data.errors;
45
- // Set field errors
46
- const formErrors = Object.keys(errors).map((field) => ({
47
- name: field,
48
- errors: errors[field],
49
- }));
50
- form.setFields(formErrors);
51
- // Show error message
52
- const errorCount = Object.keys(errors).length;
53
- const errorList = Object.values(errors)
54
- .map((msgs) => msgs[0])
55
- .join(' / ');
56
- messageApi.error({
57
- content: `入力内容にエラーがあります(${errorCount}件): ${errorList}`,
58
- duration: 8,
59
- });
60
- console.error('Validation errors:', errors);
61
- }
62
- // Handle server errors
63
- else if (error.response?.status >= 500) {
64
- messageApi.error(errorMessages[500] || 'サーバーエラーが発生しました。しばらくしてから再度お試しください。');
65
- }
66
- // Handle auth errors
67
- else if (error.response?.status === 401 || error.response?.status === 403) {
68
- const status = error.response.status;
69
- messageApi.error(errorMessages[status] || '認証エラーが発生しました。再度ログインしてください。');
70
- }
71
- // Handle generic errors
72
- else {
73
- messageApi.error(error.response?.data?.message || errorMessages.default || '送信に失敗しました');
74
- }
75
- }
76
- finally {
77
- setLoading(false);
78
- }
79
- };
80
- return {
81
- handleSubmit,
82
- loading,
83
- setLoading,
84
- };
85
- }
86
- //# sourceMappingURL=useFormSubmit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFormSubmit.js","sourceRoot":"","sources":["../../../src/runtime/hooks/useFormSubmit.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export { useFormSubmit } from './hooks/useFormSubmit';
2
- export type { UseFormSubmitOptions, UseFormSubmitResult } from './hooks/useFormSubmit';
3
- export { createLaravelAxios, getCsrfCookie } from './lib/axios';
4
- export { VALIDATION_PATTERNS, katakanaRule, kanaWithNumbersRule, hiraganaRule, kanaRule, halfWidthKatakanaRule, isKatakana, isHiragana, isKana, isHalfWidthKatakana, } from './lib/validation';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEvF,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EACH,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,MAAM,EACN,mBAAmB,GACtB,MAAM,kBAAkB,CAAC"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isHalfWidthKatakana = exports.isKana = exports.isHiragana = exports.isKatakana = exports.halfWidthKatakanaRule = exports.kanaRule = exports.hiraganaRule = exports.kanaWithNumbersRule = exports.katakanaRule = exports.VALIDATION_PATTERNS = exports.getCsrfCookie = exports.createLaravelAxios = exports.useFormSubmit = void 0;
4
- // Runtime helpers for React + Laravel + Ant Design
5
- var useFormSubmit_1 = require("./hooks/useFormSubmit");
6
- Object.defineProperty(exports, "useFormSubmit", { enumerable: true, get: function () { return useFormSubmit_1.useFormSubmit; } });
7
- var axios_1 = require("./lib/axios");
8
- Object.defineProperty(exports, "createLaravelAxios", { enumerable: true, get: function () { return axios_1.createLaravelAxios; } });
9
- Object.defineProperty(exports, "getCsrfCookie", { enumerable: true, get: function () { return axios_1.getCsrfCookie; } });
10
- var validation_1 = require("./lib/validation");
11
- Object.defineProperty(exports, "VALIDATION_PATTERNS", { enumerable: true, get: function () { return validation_1.VALIDATION_PATTERNS; } });
12
- Object.defineProperty(exports, "katakanaRule", { enumerable: true, get: function () { return validation_1.katakanaRule; } });
13
- Object.defineProperty(exports, "kanaWithNumbersRule", { enumerable: true, get: function () { return validation_1.kanaWithNumbersRule; } });
14
- Object.defineProperty(exports, "hiraganaRule", { enumerable: true, get: function () { return validation_1.hiraganaRule; } });
15
- Object.defineProperty(exports, "kanaRule", { enumerable: true, get: function () { return validation_1.kanaRule; } });
16
- Object.defineProperty(exports, "halfWidthKatakanaRule", { enumerable: true, get: function () { return validation_1.halfWidthKatakanaRule; } });
17
- Object.defineProperty(exports, "isKatakana", { enumerable: true, get: function () { return validation_1.isKatakana; } });
18
- Object.defineProperty(exports, "isHiragana", { enumerable: true, get: function () { return validation_1.isHiragana; } });
19
- Object.defineProperty(exports, "isKana", { enumerable: true, get: function () { return validation_1.isKana; } });
20
- Object.defineProperty(exports, "isHalfWidthKatakana", { enumerable: true, get: function () { return validation_1.isHalfWidthKatakana; } });
21
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":";;;AAAA,mDAAmD;AACnD,uDAAsD;AAA7C,8GAAA,aAAa,OAAA;AAGtB,qCAAgE;AAAvD,2GAAA,kBAAkB,OAAA;AAAE,sGAAA,aAAa,OAAA;AAE1C,+CAW0B;AAVtB,iHAAA,mBAAmB,OAAA;AACnB,0GAAA,YAAY,OAAA;AACZ,iHAAA,mBAAmB,OAAA;AACnB,0GAAA,YAAY,OAAA;AACZ,sGAAA,QAAQ,OAAA;AACR,mHAAA,qBAAqB,OAAA;AACrB,wGAAA,UAAU,OAAA;AACV,wGAAA,UAAU,OAAA;AACV,oGAAA,MAAM,OAAA;AACN,iHAAA,mBAAmB,OAAA"}
@@ -1,7 +0,0 @@
1
- export declare const createLaravelAxios: (baseURL: string) => import("axios").AxiosInstance;
2
- /**
3
- * Get CSRF cookie before making authenticated requests
4
- * Required for Laravel Sanctum cookie-based authentication
5
- */
6
- export declare const getCsrfCookie: (baseURL: string) => Promise<void>;
7
- //# sourceMappingURL=axios.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"axios.d.ts","sourceRoot":"","sources":["../../../src/runtime/lib/axios.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,kCAqCjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CAIjE,CAAC"}
@@ -1,54 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getCsrfCookie = exports.createLaravelAxios = void 0;
7
- const axios_1 = __importDefault(require("axios"));
8
- // Create axios instance for Laravel API
9
- const createLaravelAxios = (baseURL) => {
10
- const axiosInstance = axios_1.default.create({
11
- baseURL,
12
- timeout: 30000,
13
- withCredentials: true,
14
- headers: {
15
- 'Accept': 'application/json',
16
- 'Content-Type': 'application/json',
17
- },
18
- xsrfCookieName: 'XSRF-TOKEN',
19
- xsrfHeaderName: 'X-XSRF-TOKEN',
20
- });
21
- // Helper to get cookie value by name
22
- function getCookie(name) {
23
- if (typeof document === 'undefined')
24
- return null;
25
- const value = `; ${document.cookie}`;
26
- const parts = value.split(`; ${name}=`);
27
- if (parts.length === 2)
28
- return parts.pop()?.split(';').shift() || null;
29
- return null;
30
- }
31
- // Request interceptor
32
- axiosInstance.interceptors.request.use((config) => {
33
- const token = getCookie('XSRF-TOKEN');
34
- if (token) {
35
- config.headers['X-XSRF-TOKEN'] = decodeURIComponent(token);
36
- }
37
- return config;
38
- }, (error) => {
39
- return Promise.reject(error);
40
- });
41
- return axiosInstance;
42
- };
43
- exports.createLaravelAxios = createLaravelAxios;
44
- /**
45
- * Get CSRF cookie before making authenticated requests
46
- * Required for Laravel Sanctum cookie-based authentication
47
- */
48
- const getCsrfCookie = async (baseURL) => {
49
- await axios_1.default.get(`${baseURL}/sanctum/csrf-cookie`, {
50
- withCredentials: true,
51
- });
52
- };
53
- exports.getCsrfCookie = getCsrfCookie;
54
- //# sourceMappingURL=axios.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"axios.js","sourceRoot":"","sources":["../../../src/runtime/lib/axios.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAsE;AAEtE,wCAAwC;AACjC,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAE,EAAE;IAClD,MAAM,aAAa,GAAG,eAAK,CAAC,MAAM,CAAC;QAC/B,OAAO;QACP,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,IAAI;QACrB,OAAO,EAAE;YACL,QAAQ,EAAE,kBAAkB;YAC5B,cAAc,EAAE,kBAAkB;SACrC;QACD,cAAc,EAAE,YAAY;QAC5B,cAAc,EAAE,cAAc;KACjC,CAAC,CAAC;IAEH,qCAAqC;IACrC,SAAS,SAAS,CAAC,IAAY;QAC3B,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QACjD,MAAM,KAAK,GAAG,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;QACvE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,sBAAsB;IACtB,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAClC,CAAC,MAAkC,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC,EACD,CAAC,KAAiB,EAAE,EAAE;QAClB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,CACJ,CAAC;IAEF,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AArCW,QAAA,kBAAkB,sBAqC7B;AAEF;;;GAGG;AACI,MAAM,aAAa,GAAG,KAAK,EAAE,OAAe,EAAiB,EAAE;IAClE,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,OAAO,sBAAsB,EAAE;QAC9C,eAAe,EAAE,IAAI;KACxB,CAAC,CAAC;AACP,CAAC,CAAC;AAJW,QAAA,aAAa,iBAIxB"}
@@ -1,50 +0,0 @@
1
- import type { Rule } from 'antd/es/form';
2
- /**
3
- * Regular expression patterns for Japanese character validation
4
- */
5
- export declare const VALIDATION_PATTERNS: {
6
- readonly KATAKANA: RegExp;
7
- readonly HIRAGANA: RegExp;
8
- readonly KANA: RegExp;
9
- readonly HALF_WIDTH_KATAKANA: RegExp;
10
- };
11
- /**
12
- * Ant Design validation rule for full-width katakana (includes numbers)
13
- * Accepts: Katakana + full-width numbers (0-9) + half-width numbers (0-9)
14
- */
15
- export declare const katakanaRule: (message?: string) => Rule;
16
- /**
17
- * Ant Design validation rule for katakana with numbers
18
- * Alias for katakanaRule with clearer naming
19
- * Use for: company name kana, shop name kana, address kana, etc.
20
- */
21
- export declare const kanaWithNumbersRule: (message?: string) => Rule;
22
- /**
23
- * Ant Design validation rule for hiragana
24
- */
25
- export declare const hiraganaRule: (message?: string) => Rule;
26
- /**
27
- * Ant Design validation rule for kana (katakana or hiragana)
28
- */
29
- export declare const kanaRule: (message?: string) => Rule;
30
- /**
31
- * Ant Design validation rule for half-width katakana
32
- */
33
- export declare const halfWidthKatakanaRule: (message?: string) => Rule;
34
- /**
35
- * Validator function that checks if a string contains only full-width katakana
36
- */
37
- export declare const isKatakana: (value: string) => boolean;
38
- /**
39
- * Validator function that checks if a string contains only hiragana
40
- */
41
- export declare const isHiragana: (value: string) => boolean;
42
- /**
43
- * Validator function that checks if a string contains only kana (katakana or hiragana)
44
- */
45
- export declare const isKana: (value: string) => boolean;
46
- /**
47
- * Validator function that checks if a string contains only half-width katakana
48
- */
49
- export declare const isHalfWidthKatakana: (value: string) => boolean;
50
- //# sourceMappingURL=validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/runtime/lib/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;CAatB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,KAAG,IAG9C,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,aAVO,MAAM,KAAG,IAUD,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,KAAG,IAG9C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,UAAU,MAAM,KAAG,IAG1C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,IAGvD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,OAE1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,OAE1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,KAAG,OAEtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,KAAG,OAEnD,CAAC"}