@famgia/omnify-japan 0.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.
- package/dist/index.cjs +192 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +25 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.js +166 -0
- package/dist/index.js.map +1 -0
- package/package.json +29 -0
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/index.ts
|
|
21
|
+
var index_exports = {};
|
|
22
|
+
__export(index_exports, {
|
|
23
|
+
PREFECTURES: () => PREFECTURES,
|
|
24
|
+
default: () => index_default,
|
|
25
|
+
japanTypesPlugin: () => japanTypesPlugin
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(index_exports);
|
|
28
|
+
var PREFECTURES = [
|
|
29
|
+
"\u5317\u6D77\u9053",
|
|
30
|
+
"\u9752\u68EE\u770C",
|
|
31
|
+
"\u5CA9\u624B\u770C",
|
|
32
|
+
"\u5BAE\u57CE\u770C",
|
|
33
|
+
"\u79CB\u7530\u770C",
|
|
34
|
+
"\u5C71\u5F62\u770C",
|
|
35
|
+
"\u798F\u5CF6\u770C",
|
|
36
|
+
"\u8328\u57CE\u770C",
|
|
37
|
+
"\u6803\u6728\u770C",
|
|
38
|
+
"\u7FA4\u99AC\u770C",
|
|
39
|
+
"\u57FC\u7389\u770C",
|
|
40
|
+
"\u5343\u8449\u770C",
|
|
41
|
+
"\u6771\u4EAC\u90FD",
|
|
42
|
+
"\u795E\u5948\u5DDD\u770C",
|
|
43
|
+
"\u65B0\u6F5F\u770C",
|
|
44
|
+
"\u5BCC\u5C71\u770C",
|
|
45
|
+
"\u77F3\u5DDD\u770C",
|
|
46
|
+
"\u798F\u4E95\u770C",
|
|
47
|
+
"\u5C71\u68A8\u770C",
|
|
48
|
+
"\u9577\u91CE\u770C",
|
|
49
|
+
"\u5C90\u961C\u770C",
|
|
50
|
+
"\u9759\u5CA1\u770C",
|
|
51
|
+
"\u611B\u77E5\u770C",
|
|
52
|
+
"\u4E09\u91CD\u770C",
|
|
53
|
+
"\u6ECB\u8CC0\u770C",
|
|
54
|
+
"\u4EAC\u90FD\u5E9C",
|
|
55
|
+
"\u5927\u962A\u5E9C",
|
|
56
|
+
"\u5175\u5EAB\u770C",
|
|
57
|
+
"\u5948\u826F\u770C",
|
|
58
|
+
"\u548C\u6B4C\u5C71\u770C",
|
|
59
|
+
"\u9CE5\u53D6\u770C",
|
|
60
|
+
"\u5CF6\u6839\u770C",
|
|
61
|
+
"\u5CA1\u5C71\u770C",
|
|
62
|
+
"\u5E83\u5CF6\u770C",
|
|
63
|
+
"\u5C71\u53E3\u770C",
|
|
64
|
+
"\u5FB3\u5CF6\u770C",
|
|
65
|
+
"\u9999\u5DDD\u770C",
|
|
66
|
+
"\u611B\u5A9B\u770C",
|
|
67
|
+
"\u9AD8\u77E5\u770C",
|
|
68
|
+
"\u798F\u5CA1\u770C",
|
|
69
|
+
"\u4F50\u8CC0\u770C",
|
|
70
|
+
"\u9577\u5D0E\u770C",
|
|
71
|
+
"\u718A\u672C\u770C",
|
|
72
|
+
"\u5927\u5206\u770C",
|
|
73
|
+
"\u5BAE\u5D0E\u770C",
|
|
74
|
+
"\u9E7F\u5150\u5CF6\u770C",
|
|
75
|
+
"\u6C96\u7E04\u770C"
|
|
76
|
+
];
|
|
77
|
+
var japanPhoneType = {
|
|
78
|
+
name: "JapanPhone",
|
|
79
|
+
description: "Japanese phone number (e.g., 090-1234-5678)",
|
|
80
|
+
sql: {
|
|
81
|
+
sqlType: "VARCHAR",
|
|
82
|
+
length: 15
|
|
83
|
+
},
|
|
84
|
+
typescript: {
|
|
85
|
+
type: "string"
|
|
86
|
+
},
|
|
87
|
+
validate: (_prop) => {
|
|
88
|
+
return void 0;
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
var japanPostalCodeType = {
|
|
92
|
+
name: "JapanPostalCode",
|
|
93
|
+
description: "Japanese postal code (e.g., 123-4567)",
|
|
94
|
+
sql: {
|
|
95
|
+
sqlType: "VARCHAR",
|
|
96
|
+
length: 8
|
|
97
|
+
},
|
|
98
|
+
typescript: {
|
|
99
|
+
type: "string"
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
var japanAddressType = {
|
|
103
|
+
name: "JapanAddress",
|
|
104
|
+
description: "Full Japanese address with postal code, prefecture, city, and street",
|
|
105
|
+
compound: true,
|
|
106
|
+
expand: [
|
|
107
|
+
{
|
|
108
|
+
suffix: "PostalCode",
|
|
109
|
+
sql: { sqlType: "VARCHAR", length: 8 },
|
|
110
|
+
typescript: { type: "string" }
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
suffix: "Prefecture",
|
|
114
|
+
sql: { sqlType: "VARCHAR", length: 10 },
|
|
115
|
+
typescript: { type: "string" }
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
suffix: "City",
|
|
119
|
+
sql: { sqlType: "VARCHAR", length: 100 },
|
|
120
|
+
typescript: { type: "string" }
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
suffix: "Address1",
|
|
124
|
+
sql: { sqlType: "VARCHAR", length: 255 },
|
|
125
|
+
typescript: { type: "string" }
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
suffix: "Address2",
|
|
129
|
+
sql: { sqlType: "VARCHAR", length: 255, nullable: true },
|
|
130
|
+
typescript: { type: "string" }
|
|
131
|
+
}
|
|
132
|
+
]
|
|
133
|
+
};
|
|
134
|
+
var japanNameType = {
|
|
135
|
+
name: "JapanName",
|
|
136
|
+
description: "Japanese name with kanji and kana variants",
|
|
137
|
+
compound: true,
|
|
138
|
+
expand: [
|
|
139
|
+
{
|
|
140
|
+
suffix: "LastName",
|
|
141
|
+
sql: { sqlType: "VARCHAR", length: 50 },
|
|
142
|
+
typescript: { type: "string" }
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
suffix: "FirstName",
|
|
146
|
+
sql: { sqlType: "VARCHAR", length: 50 },
|
|
147
|
+
typescript: { type: "string" }
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
suffix: "LastNameKana",
|
|
151
|
+
sql: { sqlType: "VARCHAR", length: 100 },
|
|
152
|
+
typescript: { type: "string" }
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
suffix: "FirstNameKana",
|
|
156
|
+
sql: { sqlType: "VARCHAR", length: 100 },
|
|
157
|
+
typescript: { type: "string" }
|
|
158
|
+
}
|
|
159
|
+
]
|
|
160
|
+
};
|
|
161
|
+
var japanBankAccountType = {
|
|
162
|
+
name: "JapanBankAccount",
|
|
163
|
+
description: "Japanese bank account number",
|
|
164
|
+
sql: {
|
|
165
|
+
sqlType: "VARCHAR",
|
|
166
|
+
length: 7
|
|
167
|
+
},
|
|
168
|
+
typescript: {
|
|
169
|
+
type: "string"
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
var japanTypesPlugin = {
|
|
173
|
+
name: "@famgia/omnify-japan",
|
|
174
|
+
version: "0.0.1",
|
|
175
|
+
types: [
|
|
176
|
+
japanPhoneType,
|
|
177
|
+
japanPostalCodeType,
|
|
178
|
+
japanAddressType,
|
|
179
|
+
japanNameType,
|
|
180
|
+
japanBankAccountType
|
|
181
|
+
],
|
|
182
|
+
setup: (context) => {
|
|
183
|
+
context.logger.debug("Japan types plugin loaded");
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
var index_default = japanTypesPlugin;
|
|
187
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
188
|
+
0 && (module.exports = {
|
|
189
|
+
PREFECTURES,
|
|
190
|
+
japanTypesPlugin
|
|
191
|
+
});
|
|
192
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @famgia/omnify-japan\n * Japan-specific types plugin for omnify-schema\n *\n * Provides custom types for Japanese data formats:\n * - JapanPhone: Japanese phone number format\n * - JapanPostalCode: Japanese postal code format\n * - JapanAddress: Compound type for full Japanese address\n * - Prefecture: Japanese prefecture enum\n */\n\nimport type { OmnifyPlugin, CustomTypeDefinition } from '@famgia/omnify-types';\n\n/**\n * Japanese prefectures (都道府県)\n */\nexport const PREFECTURES = [\n '北海道', '青森県', '岩手県', '宮城県', '秋田県', '山形県', '福島県',\n '茨城県', '栃木県', '群馬県', '埼玉県', '千葉県', '東京都', '神奈川県',\n '新潟県', '富山県', '石川県', '福井県', '山梨県', '長野県', '岐阜県',\n '静岡県', '愛知県', '三重県', '滋賀県', '京都府', '大阪府', '兵庫県',\n '奈良県', '和歌山県', '鳥取県', '島根県', '岡山県', '広島県', '山口県',\n '徳島県', '香川県', '愛媛県', '高知県', '福岡県', '佐賀県', '長崎県',\n '熊本県', '大分県', '宮崎県', '鹿児島県', '沖縄県',\n] as const;\n\nexport type Prefecture = typeof PREFECTURES[number];\n\n/**\n * JapanPhone type definition\n * Format: 090-1234-5678 or 03-1234-5678\n */\nconst japanPhoneType: CustomTypeDefinition = {\n name: 'JapanPhone',\n description: 'Japanese phone number (e.g., 090-1234-5678)',\n sql: {\n sqlType: 'VARCHAR',\n length: 15,\n },\n typescript: {\n type: 'string',\n },\n validate: (_prop) => {\n // Optional validation logic\n return undefined;\n },\n};\n\n/**\n * JapanPostalCode type definition\n * Format: 123-4567\n */\nconst japanPostalCodeType: CustomTypeDefinition = {\n name: 'JapanPostalCode',\n description: 'Japanese postal code (e.g., 123-4567)',\n sql: {\n sqlType: 'VARCHAR',\n length: 8,\n },\n typescript: {\n type: 'string',\n },\n};\n\n/**\n * JapanAddress compound type definition\n * Expands to: postal_code, prefecture, city, address1, address2\n */\nconst japanAddressType: CustomTypeDefinition = {\n name: 'JapanAddress',\n description: 'Full Japanese address with postal code, prefecture, city, and street',\n compound: true,\n expand: [\n {\n suffix: 'PostalCode',\n sql: { sqlType: 'VARCHAR', length: 8 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Prefecture',\n sql: { sqlType: 'VARCHAR', length: 10 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'City',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address1',\n sql: { sqlType: 'VARCHAR', length: 255 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address2',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanName compound type definition\n * Expands to: first_name, last_name, first_name_kana, last_name_kana\n */\nconst japanNameType: CustomTypeDefinition = {\n name: 'JapanName',\n description: 'Japanese name with kanji and kana variants',\n compound: true,\n expand: [\n {\n suffix: 'LastName',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'FirstName',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'LastNameKana',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'FirstNameKana',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanBankAccount type definition\n */\nconst japanBankAccountType: CustomTypeDefinition = {\n name: 'JapanBankAccount',\n description: 'Japanese bank account number',\n sql: {\n sqlType: 'VARCHAR',\n length: 7,\n },\n typescript: {\n type: 'string',\n },\n};\n\n/**\n * @famgia/omnify-japan plugin definition\n */\nexport const japanTypesPlugin: OmnifyPlugin = {\n name: '@famgia/omnify-japan',\n version: '0.0.1',\n types: [\n japanPhoneType,\n japanPostalCodeType,\n japanAddressType,\n japanNameType,\n japanBankAccountType,\n ],\n setup: (context) => {\n context.logger.debug('Japan types plugin loaded');\n },\n};\n\n/**\n * Default export for easy importing\n */\nexport default japanTypesPlugin;\n\n/**\n * Re-export types for type-safe usage\n */\nexport type { OmnifyPlugin, CustomTypeDefinition } from '@famgia/omnify-types';\n"],"mappings":"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","names":[]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { OmnifyPlugin } from '@famgia/omnify-types';
|
|
2
|
+
export { CustomTypeDefinition, OmnifyPlugin } from '@famgia/omnify-types';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @famgia/omnify-japan
|
|
6
|
+
* Japan-specific types plugin for omnify-schema
|
|
7
|
+
*
|
|
8
|
+
* Provides custom types for Japanese data formats:
|
|
9
|
+
* - JapanPhone: Japanese phone number format
|
|
10
|
+
* - JapanPostalCode: Japanese postal code format
|
|
11
|
+
* - JapanAddress: Compound type for full Japanese address
|
|
12
|
+
* - Prefecture: Japanese prefecture enum
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Japanese prefectures (都道府県)
|
|
17
|
+
*/
|
|
18
|
+
declare const PREFECTURES: readonly ["北海道", "青森県", "岩手県", "宮城県", "秋田県", "山形県", "福島県", "茨城県", "栃木県", "群馬県", "埼玉県", "千葉県", "東京都", "神奈川県", "新潟県", "富山県", "石川県", "福井県", "山梨県", "長野県", "岐阜県", "静岡県", "愛知県", "三重県", "滋賀県", "京都府", "大阪府", "兵庫県", "奈良県", "和歌山県", "鳥取県", "島根県", "岡山県", "広島県", "山口県", "徳島県", "香川県", "愛媛県", "高知県", "福岡県", "佐賀県", "長崎県", "熊本県", "大分県", "宮崎県", "鹿児島県", "沖縄県"];
|
|
19
|
+
type Prefecture = typeof PREFECTURES[number];
|
|
20
|
+
/**
|
|
21
|
+
* @famgia/omnify-japan plugin definition
|
|
22
|
+
*/
|
|
23
|
+
declare const japanTypesPlugin: OmnifyPlugin;
|
|
24
|
+
|
|
25
|
+
export { PREFECTURES, type Prefecture, japanTypesPlugin as default, japanTypesPlugin };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { OmnifyPlugin } from '@famgia/omnify-types';
|
|
2
|
+
export { CustomTypeDefinition, OmnifyPlugin } from '@famgia/omnify-types';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @famgia/omnify-japan
|
|
6
|
+
* Japan-specific types plugin for omnify-schema
|
|
7
|
+
*
|
|
8
|
+
* Provides custom types for Japanese data formats:
|
|
9
|
+
* - JapanPhone: Japanese phone number format
|
|
10
|
+
* - JapanPostalCode: Japanese postal code format
|
|
11
|
+
* - JapanAddress: Compound type for full Japanese address
|
|
12
|
+
* - Prefecture: Japanese prefecture enum
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Japanese prefectures (都道府県)
|
|
17
|
+
*/
|
|
18
|
+
declare const PREFECTURES: readonly ["北海道", "青森県", "岩手県", "宮城県", "秋田県", "山形県", "福島県", "茨城県", "栃木県", "群馬県", "埼玉県", "千葉県", "東京都", "神奈川県", "新潟県", "富山県", "石川県", "福井県", "山梨県", "長野県", "岐阜県", "静岡県", "愛知県", "三重県", "滋賀県", "京都府", "大阪府", "兵庫県", "奈良県", "和歌山県", "鳥取県", "島根県", "岡山県", "広島県", "山口県", "徳島県", "香川県", "愛媛県", "高知県", "福岡県", "佐賀県", "長崎県", "熊本県", "大分県", "宮崎県", "鹿児島県", "沖縄県"];
|
|
19
|
+
type Prefecture = typeof PREFECTURES[number];
|
|
20
|
+
/**
|
|
21
|
+
* @famgia/omnify-japan plugin definition
|
|
22
|
+
*/
|
|
23
|
+
declare const japanTypesPlugin: OmnifyPlugin;
|
|
24
|
+
|
|
25
|
+
export { PREFECTURES, type Prefecture, japanTypesPlugin as default, japanTypesPlugin };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
// src/index.ts
|
|
2
|
+
var PREFECTURES = [
|
|
3
|
+
"\u5317\u6D77\u9053",
|
|
4
|
+
"\u9752\u68EE\u770C",
|
|
5
|
+
"\u5CA9\u624B\u770C",
|
|
6
|
+
"\u5BAE\u57CE\u770C",
|
|
7
|
+
"\u79CB\u7530\u770C",
|
|
8
|
+
"\u5C71\u5F62\u770C",
|
|
9
|
+
"\u798F\u5CF6\u770C",
|
|
10
|
+
"\u8328\u57CE\u770C",
|
|
11
|
+
"\u6803\u6728\u770C",
|
|
12
|
+
"\u7FA4\u99AC\u770C",
|
|
13
|
+
"\u57FC\u7389\u770C",
|
|
14
|
+
"\u5343\u8449\u770C",
|
|
15
|
+
"\u6771\u4EAC\u90FD",
|
|
16
|
+
"\u795E\u5948\u5DDD\u770C",
|
|
17
|
+
"\u65B0\u6F5F\u770C",
|
|
18
|
+
"\u5BCC\u5C71\u770C",
|
|
19
|
+
"\u77F3\u5DDD\u770C",
|
|
20
|
+
"\u798F\u4E95\u770C",
|
|
21
|
+
"\u5C71\u68A8\u770C",
|
|
22
|
+
"\u9577\u91CE\u770C",
|
|
23
|
+
"\u5C90\u961C\u770C",
|
|
24
|
+
"\u9759\u5CA1\u770C",
|
|
25
|
+
"\u611B\u77E5\u770C",
|
|
26
|
+
"\u4E09\u91CD\u770C",
|
|
27
|
+
"\u6ECB\u8CC0\u770C",
|
|
28
|
+
"\u4EAC\u90FD\u5E9C",
|
|
29
|
+
"\u5927\u962A\u5E9C",
|
|
30
|
+
"\u5175\u5EAB\u770C",
|
|
31
|
+
"\u5948\u826F\u770C",
|
|
32
|
+
"\u548C\u6B4C\u5C71\u770C",
|
|
33
|
+
"\u9CE5\u53D6\u770C",
|
|
34
|
+
"\u5CF6\u6839\u770C",
|
|
35
|
+
"\u5CA1\u5C71\u770C",
|
|
36
|
+
"\u5E83\u5CF6\u770C",
|
|
37
|
+
"\u5C71\u53E3\u770C",
|
|
38
|
+
"\u5FB3\u5CF6\u770C",
|
|
39
|
+
"\u9999\u5DDD\u770C",
|
|
40
|
+
"\u611B\u5A9B\u770C",
|
|
41
|
+
"\u9AD8\u77E5\u770C",
|
|
42
|
+
"\u798F\u5CA1\u770C",
|
|
43
|
+
"\u4F50\u8CC0\u770C",
|
|
44
|
+
"\u9577\u5D0E\u770C",
|
|
45
|
+
"\u718A\u672C\u770C",
|
|
46
|
+
"\u5927\u5206\u770C",
|
|
47
|
+
"\u5BAE\u5D0E\u770C",
|
|
48
|
+
"\u9E7F\u5150\u5CF6\u770C",
|
|
49
|
+
"\u6C96\u7E04\u770C"
|
|
50
|
+
];
|
|
51
|
+
var japanPhoneType = {
|
|
52
|
+
name: "JapanPhone",
|
|
53
|
+
description: "Japanese phone number (e.g., 090-1234-5678)",
|
|
54
|
+
sql: {
|
|
55
|
+
sqlType: "VARCHAR",
|
|
56
|
+
length: 15
|
|
57
|
+
},
|
|
58
|
+
typescript: {
|
|
59
|
+
type: "string"
|
|
60
|
+
},
|
|
61
|
+
validate: (_prop) => {
|
|
62
|
+
return void 0;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
var japanPostalCodeType = {
|
|
66
|
+
name: "JapanPostalCode",
|
|
67
|
+
description: "Japanese postal code (e.g., 123-4567)",
|
|
68
|
+
sql: {
|
|
69
|
+
sqlType: "VARCHAR",
|
|
70
|
+
length: 8
|
|
71
|
+
},
|
|
72
|
+
typescript: {
|
|
73
|
+
type: "string"
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
var japanAddressType = {
|
|
77
|
+
name: "JapanAddress",
|
|
78
|
+
description: "Full Japanese address with postal code, prefecture, city, and street",
|
|
79
|
+
compound: true,
|
|
80
|
+
expand: [
|
|
81
|
+
{
|
|
82
|
+
suffix: "PostalCode",
|
|
83
|
+
sql: { sqlType: "VARCHAR", length: 8 },
|
|
84
|
+
typescript: { type: "string" }
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
suffix: "Prefecture",
|
|
88
|
+
sql: { sqlType: "VARCHAR", length: 10 },
|
|
89
|
+
typescript: { type: "string" }
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
suffix: "City",
|
|
93
|
+
sql: { sqlType: "VARCHAR", length: 100 },
|
|
94
|
+
typescript: { type: "string" }
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
suffix: "Address1",
|
|
98
|
+
sql: { sqlType: "VARCHAR", length: 255 },
|
|
99
|
+
typescript: { type: "string" }
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
suffix: "Address2",
|
|
103
|
+
sql: { sqlType: "VARCHAR", length: 255, nullable: true },
|
|
104
|
+
typescript: { type: "string" }
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
};
|
|
108
|
+
var japanNameType = {
|
|
109
|
+
name: "JapanName",
|
|
110
|
+
description: "Japanese name with kanji and kana variants",
|
|
111
|
+
compound: true,
|
|
112
|
+
expand: [
|
|
113
|
+
{
|
|
114
|
+
suffix: "LastName",
|
|
115
|
+
sql: { sqlType: "VARCHAR", length: 50 },
|
|
116
|
+
typescript: { type: "string" }
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
suffix: "FirstName",
|
|
120
|
+
sql: { sqlType: "VARCHAR", length: 50 },
|
|
121
|
+
typescript: { type: "string" }
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
suffix: "LastNameKana",
|
|
125
|
+
sql: { sqlType: "VARCHAR", length: 100 },
|
|
126
|
+
typescript: { type: "string" }
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
suffix: "FirstNameKana",
|
|
130
|
+
sql: { sqlType: "VARCHAR", length: 100 },
|
|
131
|
+
typescript: { type: "string" }
|
|
132
|
+
}
|
|
133
|
+
]
|
|
134
|
+
};
|
|
135
|
+
var japanBankAccountType = {
|
|
136
|
+
name: "JapanBankAccount",
|
|
137
|
+
description: "Japanese bank account number",
|
|
138
|
+
sql: {
|
|
139
|
+
sqlType: "VARCHAR",
|
|
140
|
+
length: 7
|
|
141
|
+
},
|
|
142
|
+
typescript: {
|
|
143
|
+
type: "string"
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
var japanTypesPlugin = {
|
|
147
|
+
name: "@famgia/omnify-japan",
|
|
148
|
+
version: "0.0.1",
|
|
149
|
+
types: [
|
|
150
|
+
japanPhoneType,
|
|
151
|
+
japanPostalCodeType,
|
|
152
|
+
japanAddressType,
|
|
153
|
+
japanNameType,
|
|
154
|
+
japanBankAccountType
|
|
155
|
+
],
|
|
156
|
+
setup: (context) => {
|
|
157
|
+
context.logger.debug("Japan types plugin loaded");
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
var index_default = japanTypesPlugin;
|
|
161
|
+
export {
|
|
162
|
+
PREFECTURES,
|
|
163
|
+
index_default as default,
|
|
164
|
+
japanTypesPlugin
|
|
165
|
+
};
|
|
166
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @famgia/omnify-japan\n * Japan-specific types plugin for omnify-schema\n *\n * Provides custom types for Japanese data formats:\n * - JapanPhone: Japanese phone number format\n * - JapanPostalCode: Japanese postal code format\n * - JapanAddress: Compound type for full Japanese address\n * - Prefecture: Japanese prefecture enum\n */\n\nimport type { OmnifyPlugin, CustomTypeDefinition } from '@famgia/omnify-types';\n\n/**\n * Japanese prefectures (都道府県)\n */\nexport const PREFECTURES = [\n '北海道', '青森県', '岩手県', '宮城県', '秋田県', '山形県', '福島県',\n '茨城県', '栃木県', '群馬県', '埼玉県', '千葉県', '東京都', '神奈川県',\n '新潟県', '富山県', '石川県', '福井県', '山梨県', '長野県', '岐阜県',\n '静岡県', '愛知県', '三重県', '滋賀県', '京都府', '大阪府', '兵庫県',\n '奈良県', '和歌山県', '鳥取県', '島根県', '岡山県', '広島県', '山口県',\n '徳島県', '香川県', '愛媛県', '高知県', '福岡県', '佐賀県', '長崎県',\n '熊本県', '大分県', '宮崎県', '鹿児島県', '沖縄県',\n] as const;\n\nexport type Prefecture = typeof PREFECTURES[number];\n\n/**\n * JapanPhone type definition\n * Format: 090-1234-5678 or 03-1234-5678\n */\nconst japanPhoneType: CustomTypeDefinition = {\n name: 'JapanPhone',\n description: 'Japanese phone number (e.g., 090-1234-5678)',\n sql: {\n sqlType: 'VARCHAR',\n length: 15,\n },\n typescript: {\n type: 'string',\n },\n validate: (_prop) => {\n // Optional validation logic\n return undefined;\n },\n};\n\n/**\n * JapanPostalCode type definition\n * Format: 123-4567\n */\nconst japanPostalCodeType: CustomTypeDefinition = {\n name: 'JapanPostalCode',\n description: 'Japanese postal code (e.g., 123-4567)',\n sql: {\n sqlType: 'VARCHAR',\n length: 8,\n },\n typescript: {\n type: 'string',\n },\n};\n\n/**\n * JapanAddress compound type definition\n * Expands to: postal_code, prefecture, city, address1, address2\n */\nconst japanAddressType: CustomTypeDefinition = {\n name: 'JapanAddress',\n description: 'Full Japanese address with postal code, prefecture, city, and street',\n compound: true,\n expand: [\n {\n suffix: 'PostalCode',\n sql: { sqlType: 'VARCHAR', length: 8 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Prefecture',\n sql: { sqlType: 'VARCHAR', length: 10 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'City',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address1',\n sql: { sqlType: 'VARCHAR', length: 255 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address2',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanName compound type definition\n * Expands to: first_name, last_name, first_name_kana, last_name_kana\n */\nconst japanNameType: CustomTypeDefinition = {\n name: 'JapanName',\n description: 'Japanese name with kanji and kana variants',\n compound: true,\n expand: [\n {\n suffix: 'LastName',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'FirstName',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'LastNameKana',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'FirstNameKana',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanBankAccount type definition\n */\nconst japanBankAccountType: CustomTypeDefinition = {\n name: 'JapanBankAccount',\n description: 'Japanese bank account number',\n sql: {\n sqlType: 'VARCHAR',\n length: 7,\n },\n typescript: {\n type: 'string',\n },\n};\n\n/**\n * @famgia/omnify-japan plugin definition\n */\nexport const japanTypesPlugin: OmnifyPlugin = {\n name: '@famgia/omnify-japan',\n version: '0.0.1',\n types: [\n japanPhoneType,\n japanPostalCodeType,\n japanAddressType,\n japanNameType,\n japanBankAccountType,\n ],\n setup: (context) => {\n context.logger.debug('Japan types plugin loaded');\n },\n};\n\n/**\n * Default export for easy importing\n */\nexport default japanTypesPlugin;\n\n/**\n * Re-export types for type-safe usage\n */\nexport type { OmnifyPlugin, CustomTypeDefinition } from '@famgia/omnify-types';\n"],"mappings":"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","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@famgia/omnify-japan",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Japan-specific types plugin for omnify-schema",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"require": "./dist/index.cjs"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@famgia/omnify-types": "0.0.1"
|
|
21
|
+
},
|
|
22
|
+
"scripts": {
|
|
23
|
+
"build": "tsup",
|
|
24
|
+
"clean": "rm -rf dist",
|
|
25
|
+
"test": "vitest run --passWithNoTests",
|
|
26
|
+
"test:watch": "vitest",
|
|
27
|
+
"lint": "eslint src"
|
|
28
|
+
}
|
|
29
|
+
}
|