@famgia/omnify 0.12.8 → 1.0.0

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 +68 -102
  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 -208
  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 -40
  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 -6
  76. package/dist/utils/typeMapper.d.ts.map +0 -1
  77. package/dist/utils/typeMapper.js +0 -85
  78. package/dist/utils/typeMapper.js.map +0 -1
@@ -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"}
@@ -1,85 +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 = void 0;
4
- /**
5
- * Regular expression patterns for Japanese character validation
6
- */
7
- exports.VALIDATION_PATTERNS = {
8
- // Full-width katakana (including small characters, prolonged sound mark, and numbers)
9
- // Added 0-9 (half-width) and \uFF10-\uFF19 (full-width) to allow numbers like "2チョウメ" or "2チョウメ"
10
- KATAKANA: /^[\u30A0-\u30FF\u3099-\u309C0-9\uFF10-\uFF19\s]*$/,
11
- // Hiragana (including small characters)
12
- HIRAGANA: /^[\u3040-\u309F\u3099-\u309C\s]*$/,
13
- // Full-width katakana or Hiragana
14
- KANA: /^[\u3040-\u309F\u30A0-\u30FF\u3099-\u309C\s]*$/,
15
- // Half-width katakana
16
- HALF_WIDTH_KATAKANA: /^[\uFF65-\uFF9F\s]*$/,
17
- };
18
- /**
19
- * Ant Design validation rule for full-width katakana (includes numbers)
20
- * Accepts: Katakana + full-width numbers (0-9) + half-width numbers (0-9)
21
- */
22
- const katakanaRule = (message) => ({
23
- pattern: exports.VALIDATION_PATTERNS.KATAKANA,
24
- message: message || 'カタカナで入力してください',
25
- });
26
- exports.katakanaRule = katakanaRule;
27
- /**
28
- * Ant Design validation rule for katakana with numbers
29
- * Alias for katakanaRule with clearer naming
30
- * Use for: company name kana, shop name kana, address kana, etc.
31
- */
32
- exports.kanaWithNumbersRule = exports.katakanaRule;
33
- /**
34
- * Ant Design validation rule for hiragana
35
- */
36
- const hiraganaRule = (message) => ({
37
- pattern: exports.VALIDATION_PATTERNS.HIRAGANA,
38
- message: message || 'ひらがなで入力してください',
39
- });
40
- exports.hiraganaRule = hiraganaRule;
41
- /**
42
- * Ant Design validation rule for kana (katakana or hiragana)
43
- */
44
- const kanaRule = (message) => ({
45
- pattern: exports.VALIDATION_PATTERNS.KANA,
46
- message: message || 'カナで入力してください',
47
- });
48
- exports.kanaRule = kanaRule;
49
- /**
50
- * Ant Design validation rule for half-width katakana
51
- */
52
- const halfWidthKatakanaRule = (message) => ({
53
- pattern: exports.VALIDATION_PATTERNS.HALF_WIDTH_KATAKANA,
54
- message: message || '半角カタカナで入力してください',
55
- });
56
- exports.halfWidthKatakanaRule = halfWidthKatakanaRule;
57
- /**
58
- * Validator function that checks if a string contains only full-width katakana
59
- */
60
- const isKatakana = (value) => {
61
- return exports.VALIDATION_PATTERNS.KATAKANA.test(value);
62
- };
63
- exports.isKatakana = isKatakana;
64
- /**
65
- * Validator function that checks if a string contains only hiragana
66
- */
67
- const isHiragana = (value) => {
68
- return exports.VALIDATION_PATTERNS.HIRAGANA.test(value);
69
- };
70
- exports.isHiragana = isHiragana;
71
- /**
72
- * Validator function that checks if a string contains only kana (katakana or hiragana)
73
- */
74
- const isKana = (value) => {
75
- return exports.VALIDATION_PATTERNS.KANA.test(value);
76
- };
77
- exports.isKana = isKana;
78
- /**
79
- * Validator function that checks if a string contains only half-width katakana
80
- */
81
- const isHalfWidthKatakana = (value) => {
82
- return exports.VALIDATION_PATTERNS.HALF_WIDTH_KATAKANA.test(value);
83
- };
84
- exports.isHalfWidthKatakana = isHalfWidthKatakana;
85
- //# sourceMappingURL=validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/runtime/lib/validation.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACU,QAAA,mBAAmB,GAAG;IAC/B,sFAAsF;IACtF,iGAAiG;IACjG,QAAQ,EAAE,mDAAmD;IAE7D,wCAAwC;IACxC,QAAQ,EAAE,mCAAmC;IAE7C,kCAAkC;IAClC,IAAI,EAAE,gDAAgD;IAEtD,sBAAsB;IACtB,mBAAmB,EAAE,sBAAsB;CACrC,CAAC;AAEX;;;GAGG;AACI,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAQ,EAAE,CAAC,CAAC;IACrD,OAAO,EAAE,2BAAmB,CAAC,QAAQ;IACrC,OAAO,EAAE,OAAO,IAAI,eAAe;CACtC,CAAC,CAAC;AAHU,QAAA,YAAY,gBAGtB;AAEH;;;;GAIG;AACU,QAAA,mBAAmB,GAAG,oBAAY,CAAC;AAEhD;;GAEG;AACI,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAQ,EAAE,CAAC,CAAC;IACrD,OAAO,EAAE,2BAAmB,CAAC,QAAQ;IACrC,OAAO,EAAE,OAAO,IAAI,eAAe;CACtC,CAAC,CAAC;AAHU,QAAA,YAAY,gBAGtB;AAEH;;GAEG;AACI,MAAM,QAAQ,GAAG,CAAC,OAAgB,EAAQ,EAAE,CAAC,CAAC;IACjD,OAAO,EAAE,2BAAmB,CAAC,IAAI;IACjC,OAAO,EAAE,OAAO,IAAI,aAAa;CACpC,CAAC,CAAC;AAHU,QAAA,QAAQ,YAGlB;AAEH;;GAEG;AACI,MAAM,qBAAqB,GAAG,CAAC,OAAgB,EAAQ,EAAE,CAAC,CAAC;IAC9D,OAAO,EAAE,2BAAmB,CAAC,mBAAmB;IAChD,OAAO,EAAE,OAAO,IAAI,iBAAiB;CACxC,CAAC,CAAC;AAHU,QAAA,qBAAqB,yBAG/B;AAEH;;GAEG;AACI,MAAM,UAAU,GAAG,CAAC,KAAa,EAAW,EAAE;IACjD,OAAO,2BAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB;AAEF;;GAEG;AACI,MAAM,UAAU,GAAG,CAAC,KAAa,EAAW,EAAE;IACjD,OAAO,2BAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB;AAEF;;GAEG;AACI,MAAM,MAAM,GAAG,CAAC,KAAa,EAAW,EAAE;IAC7C,OAAO,2BAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC,CAAC;AAFW,QAAA,MAAM,UAEjB;AAEF;;GAEG;AACI,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAW,EAAE;IAC1D,OAAO,2BAAmB,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC,CAAC;AAFW,QAAA,mBAAmB,uBAE9B"}
package/dist/types.d.ts DELETED
@@ -1,40 +0,0 @@
1
- export interface EnumValue {
2
- value: string;
3
- label: string;
4
- }
5
- export interface Property {
6
- objectName: string;
7
- propertyName: string;
8
- displayName: string;
9
- description: string | null;
10
- type: string;
11
- enum?: EnumValue[] | Record<string, EnumValue>;
12
- nullable?: boolean;
13
- primary?: boolean;
14
- unique?: boolean;
15
- length?: number | null;
16
- default?: string;
17
- relation?: string;
18
- target?: string;
19
- foreignKey?: string | null;
20
- inversedBy?: string | null;
21
- mappedBy?: string | null;
22
- fields?: Record<string, any>;
23
- morphName?: string | null;
24
- }
25
- export interface OmnifyObject {
26
- objectName: string;
27
- kind: string;
28
- titleIndex: string;
29
- groupName: string;
30
- displayName: string;
31
- singularName: string;
32
- pluralName: string;
33
- tableName: string;
34
- description: string | null;
35
- properties: Record<string, Property>;
36
- }
37
- export interface SchemaLock {
38
- [key: string]: OmnifyObject;
39
- }
40
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGzB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAG7B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC;CAC7B"}
package/dist/types.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- export declare function mapOmnifyTypeToTypeScript(omnifyType: string, nullable?: boolean): string;
2
- export declare function normalizeEnumArray(enumData: any): Array<{
3
- value: string;
4
- label: string;
5
- }>;
6
- //# sourceMappingURL=typeMapper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typeMapper.d.ts","sourceRoot":"","sources":["../../src/utils/typeMapper.ts"],"names":[],"mappings":"AAAA,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAmFxF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,GAAG,GAAG,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAUzF"}
@@ -1,85 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mapOmnifyTypeToTypeScript = mapOmnifyTypeToTypeScript;
4
- exports.normalizeEnumArray = normalizeEnumArray;
5
- function mapOmnifyTypeToTypeScript(omnifyType, nullable) {
6
- let tsType;
7
- switch (omnifyType) {
8
- // Numeric types
9
- case 'Id':
10
- case 'Int':
11
- case 'TinyInt':
12
- case 'BigInt':
13
- case 'Float':
14
- tsType = 'number';
15
- break;
16
- // String types
17
- case 'String':
18
- case 'Text':
19
- case 'LongText':
20
- case 'Email':
21
- case 'Password':
22
- case 'JapanPhone':
23
- case 'Color':
24
- case 'Time':
25
- tsType = 'string';
26
- break;
27
- // Boolean types
28
- case 'Boolean':
29
- tsType = 'boolean';
30
- break;
31
- // Date/Time types
32
- case 'Date':
33
- case 'Timestamp':
34
- tsType = 'string'; // ISO string format
35
- break;
36
- // JSON/Object types
37
- case 'Json':
38
- tsType = 'Record<string, any>';
39
- break;
40
- // Enum types
41
- case 'Enum':
42
- tsType = 'string'; // Will be replaced with specific enum type
43
- break;
44
- // Relation types
45
- case 'Association':
46
- case 'Polymorphic':
47
- case 'Lookup':
48
- tsType = 'any'; // Relations are complex
49
- break;
50
- // Select types
51
- case 'Select':
52
- case 'SingleSelect':
53
- case 'MultiSelect':
54
- tsType = 'string';
55
- break;
56
- // File types
57
- case 'File':
58
- case 'MultiFile':
59
- tsType = 'string'; // Usually file path or URL
60
- break;
61
- // Address type
62
- case 'Address':
63
- tsType = 'string';
64
- break;
65
- // Composite types (will be expanded)
66
- case 'JapanAddress':
67
- case 'JapanPersonName':
68
- tsType = 'object'; // Complex types - should be expanded
69
- break;
70
- default:
71
- console.warn(`Unknown Omnify type: ${omnifyType}, mapping to 'any'`);
72
- tsType = 'any';
73
- }
74
- return nullable ? `${tsType} | null` : tsType;
75
- }
76
- function normalizeEnumArray(enumData) {
77
- if (Array.isArray(enumData)) {
78
- return enumData;
79
- }
80
- if (typeof enumData === 'object' && enumData !== null) {
81
- return Object.values(enumData);
82
- }
83
- return [];
84
- }
85
- //# sourceMappingURL=typeMapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typeMapper.js","sourceRoot":"","sources":["../../src/utils/typeMapper.ts"],"names":[],"mappings":";;AAAA,8DAmFC;AAED,gDAUC;AA/FD,SAAgB,yBAAyB,CAAC,UAAkB,EAAE,QAAkB;IAC9E,IAAI,MAAc,CAAC;IAEnB,QAAQ,UAAU,EAAE,CAAC;QACnB,gBAAgB;QAChB,KAAK,IAAI,CAAC;QACV,KAAK,KAAK,CAAC;QACX,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO;YACV,MAAM,GAAG,QAAQ,CAAC;YAClB,MAAM;QAER,eAAe;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO,CAAC;QACb,KAAK,UAAU,CAAC;QAChB,KAAK,YAAY,CAAC;QAClB,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,MAAM,GAAG,QAAQ,CAAC;YAClB,MAAM;QAER,gBAAgB;QAChB,KAAK,SAAS;YACZ,MAAM,GAAG,SAAS,CAAC;YACnB,MAAM;QAER,kBAAkB;QAClB,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW;YACd,MAAM,GAAG,QAAQ,CAAC,CAAC,oBAAoB;YACvC,MAAM;QAER,oBAAoB;QACpB,KAAK,MAAM;YACT,MAAM,GAAG,qBAAqB,CAAC;YAC/B,MAAM;QAER,aAAa;QACb,KAAK,MAAM;YACT,MAAM,GAAG,QAAQ,CAAC,CAAC,2CAA2C;YAC9D,MAAM;QAER,iBAAiB;QACjB,KAAK,aAAa,CAAC;QACnB,KAAK,aAAa,CAAC;QACnB,KAAK,QAAQ;YACX,MAAM,GAAG,KAAK,CAAC,CAAC,wBAAwB;YACxC,MAAM;QAER,eAAe;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,cAAc,CAAC;QACpB,KAAK,aAAa;YAChB,MAAM,GAAG,QAAQ,CAAC;YAClB,MAAM;QAER,aAAa;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW;YACd,MAAM,GAAG,QAAQ,CAAC,CAAC,2BAA2B;YAC9C,MAAM;QAER,eAAe;QACf,KAAK,SAAS;YACZ,MAAM,GAAG,QAAQ,CAAC;YAClB,MAAM;QAER,qCAAqC;QACrC,KAAK,cAAc,CAAC;QACpB,KAAK,iBAAiB;YACpB,MAAM,GAAG,QAAQ,CAAC,CAAC,qCAAqC;YACxD,MAAM;QAER;YACE,OAAO,CAAC,IAAI,CAAC,wBAAwB,UAAU,oBAAoB,CAAC,CAAC;YACrE,MAAM,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AAChD,CAAC;AAED,SAAgB,kBAAkB,CAAC,QAAa;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtD,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}