@famgia/omnify 0.12.9 → 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 -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,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,54 +0,0 @@
1
- export interface EnumValue {
2
- value: string;
3
- label: string;
4
- }
5
- /**
6
- * Pivot field configuration for ManyToMany relationships
7
- */
8
- export interface PivotField {
9
- type: 'Int' | 'Float' | 'String' | 'Text' | 'Boolean' | 'Date' | 'Timestamp' | 'DateTime' | 'BigInt' | 'Decimal' | 'Json';
10
- nullable?: boolean;
11
- default?: string | number | boolean;
12
- displayName?: string;
13
- }
14
- /**
15
- * Collection of pivot fields for a ManyToMany relationship
16
- */
17
- export type PivotFields = Record<string, PivotField>;
18
- export interface Property {
19
- objectName: string;
20
- propertyName: string;
21
- displayName: string;
22
- description: string | null;
23
- type: string;
24
- enum?: EnumValue[] | Record<string, EnumValue>;
25
- nullable?: boolean;
26
- primary?: boolean;
27
- unique?: boolean;
28
- length?: number | null;
29
- default?: string;
30
- relation?: string;
31
- target?: string;
32
- foreignKey?: string | null;
33
- inversedBy?: string | null;
34
- mappedBy?: string | null;
35
- pivotFields?: PivotFields;
36
- fields?: Record<string, any>;
37
- morphName?: string | null;
38
- }
39
- export interface OmnifyObject {
40
- objectName: string;
41
- kind: string;
42
- titleIndex: string;
43
- groupName: string;
44
- displayName: string;
45
- singularName: string;
46
- pluralName: string;
47
- tableName: string;
48
- description: string | null;
49
- properties: Record<string, Property>;
50
- }
51
- export interface SchemaLock {
52
- [key: string]: OmnifyObject;
53
- }
54
- //# 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;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IAC1H,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAErD,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,WAAW,CAAC,EAAE,WAAW,CAAC;IAG1B,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,10 +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
- /**
7
- * Map pivot field type to TypeScript type
8
- */
9
- export declare function mapPivotFieldTypeToTypeScript(pivotType: string, nullable?: boolean): string;
10
- //# 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;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAoC3F"}
@@ -1,119 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mapOmnifyTypeToTypeScript = mapOmnifyTypeToTypeScript;
4
- exports.normalizeEnumArray = normalizeEnumArray;
5
- exports.mapPivotFieldTypeToTypeScript = mapPivotFieldTypeToTypeScript;
6
- function mapOmnifyTypeToTypeScript(omnifyType, nullable) {
7
- let tsType;
8
- switch (omnifyType) {
9
- // Numeric types
10
- case 'Id':
11
- case 'Int':
12
- case 'TinyInt':
13
- case 'BigInt':
14
- case 'Float':
15
- tsType = 'number';
16
- break;
17
- // String types
18
- case 'String':
19
- case 'Text':
20
- case 'LongText':
21
- case 'Email':
22
- case 'Password':
23
- case 'JapanPhone':
24
- case 'Color':
25
- case 'Time':
26
- tsType = 'string';
27
- break;
28
- // Boolean types
29
- case 'Boolean':
30
- tsType = 'boolean';
31
- break;
32
- // Date/Time types
33
- case 'Date':
34
- case 'Timestamp':
35
- tsType = 'string'; // ISO string format
36
- break;
37
- // JSON/Object types
38
- case 'Json':
39
- tsType = 'Record<string, any>';
40
- break;
41
- // Enum types
42
- case 'Enum':
43
- tsType = 'string'; // Will be replaced with specific enum type
44
- break;
45
- // Relation types
46
- case 'Association':
47
- case 'Polymorphic':
48
- case 'Lookup':
49
- tsType = 'any'; // Relations are complex
50
- break;
51
- // Select types
52
- case 'Select':
53
- case 'SingleSelect':
54
- case 'MultiSelect':
55
- tsType = 'string';
56
- break;
57
- // File types
58
- case 'File':
59
- case 'MultiFile':
60
- tsType = 'string'; // Usually file path or URL
61
- break;
62
- // Address type
63
- case 'Address':
64
- tsType = 'string';
65
- break;
66
- // Composite types (will be expanded)
67
- case 'JapanAddress':
68
- case 'JapanPersonName':
69
- tsType = 'object'; // Complex types - should be expanded
70
- break;
71
- default:
72
- console.warn(`Unknown Omnify type: ${omnifyType}, mapping to 'any'`);
73
- tsType = 'any';
74
- }
75
- return nullable ? `${tsType} | null` : tsType;
76
- }
77
- function normalizeEnumArray(enumData) {
78
- if (Array.isArray(enumData)) {
79
- return enumData;
80
- }
81
- if (typeof enumData === 'object' && enumData !== null) {
82
- return Object.values(enumData);
83
- }
84
- return [];
85
- }
86
- /**
87
- * Map pivot field type to TypeScript type
88
- */
89
- function mapPivotFieldTypeToTypeScript(pivotType, nullable) {
90
- let tsType;
91
- switch (pivotType) {
92
- case 'Int':
93
- case 'BigInt':
94
- case 'Float':
95
- case 'Decimal':
96
- tsType = 'number';
97
- break;
98
- case 'String':
99
- case 'Text':
100
- tsType = 'string';
101
- break;
102
- case 'Boolean':
103
- case 'Bool':
104
- tsType = 'boolean';
105
- break;
106
- case 'Date':
107
- case 'Timestamp':
108
- case 'DateTime':
109
- tsType = 'string'; // ISO string format
110
- break;
111
- case 'Json':
112
- tsType = 'Record<string, any>';
113
- break;
114
- default:
115
- tsType = 'any';
116
- }
117
- return nullable ? `${tsType} | null` : tsType;
118
- }
119
- //# sourceMappingURL=typeMapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typeMapper.js","sourceRoot":"","sources":["../../src/utils/typeMapper.ts"],"names":[],"mappings":"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"}