@cp949/japanpost-react 1.0.2 → 1.0.4

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 (33) hide show
  1. package/README.ko.md +27 -1
  2. package/README.md +24 -0
  3. package/dist/{src/core/types.d.ts → client.d.ts} +64 -29
  4. package/dist/client.es.js +495 -0
  5. package/dist/index.d.ts +291 -1
  6. package/dist/index.es.js +512 -459
  7. package/package.json +10 -10
  8. package/dist/index.umd.cjs +0 -6
  9. package/dist/src/components/AddressSearchInput.d.ts +0 -8
  10. package/dist/src/components/AddressSearchInput.d.ts.map +0 -1
  11. package/dist/src/components/PostalCodeInput.d.ts +0 -8
  12. package/dist/src/components/PostalCodeInput.d.ts.map +0 -1
  13. package/dist/src/core/errors.d.ts +0 -11
  14. package/dist/src/core/errors.d.ts.map +0 -1
  15. package/dist/src/core/formatters.d.ts +0 -12
  16. package/dist/src/core/formatters.d.ts.map +0 -1
  17. package/dist/src/core/normalizers.d.ts +0 -7
  18. package/dist/src/core/normalizers.d.ts.map +0 -1
  19. package/dist/src/core/types.d.ts.map +0 -1
  20. package/dist/src/core/validators.d.ts +0 -6
  21. package/dist/src/core/validators.d.ts.map +0 -1
  22. package/dist/src/index.d.ts +0 -11
  23. package/dist/src/index.d.ts.map +0 -1
  24. package/dist/src/react/toJapanAddressError.d.ts +0 -8
  25. package/dist/src/react/toJapanAddressError.d.ts.map +0 -1
  26. package/dist/src/react/useJapanAddress.d.ts +0 -8
  27. package/dist/src/react/useJapanAddress.d.ts.map +0 -1
  28. package/dist/src/react/useJapanAddressSearch.d.ts +0 -7
  29. package/dist/src/react/useJapanAddressSearch.d.ts.map +0 -1
  30. package/dist/src/react/useJapanPostalCode.d.ts +0 -7
  31. package/dist/src/react/useJapanPostalCode.d.ts.map +0 -1
  32. package/dist/src/react/useLatestRequestState.d.ts +0 -23
  33. package/dist/src/react/useLatestRequestState.d.ts.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cp949/japanpost-react",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Headless React hooks and optional components for Japan Post postcode and address search",
5
5
  "type": "module",
6
6
  "author": "cp949",
@@ -13,7 +13,7 @@
13
13
  "bugs": {
14
14
  "url": "https://github.com/cp949/japanpost-react/issues"
15
15
  },
16
- "main": "dist/index.umd.cjs",
16
+ "main": "dist/index.es.js",
17
17
  "module": "dist/index.es.js",
18
18
  "types": "dist/index.d.ts",
19
19
  "sideEffects": false,
@@ -31,8 +31,11 @@
31
31
  "exports": {
32
32
  ".": {
33
33
  "types": "./dist/index.d.ts",
34
- "import": "./dist/index.es.js",
35
- "require": "./dist/index.umd.cjs"
34
+ "import": "./dist/index.es.js"
35
+ },
36
+ "./client": {
37
+ "types": "./dist/client.d.ts",
38
+ "import": "./dist/client.es.js"
36
39
  }
37
40
  },
38
41
  "keywords": [
@@ -52,21 +55,18 @@
52
55
  "@types/node": "^25.5.0",
53
56
  "@types/react": "^19.2.14",
54
57
  "@types/react-dom": "^19.2.3",
55
- "@vitejs/plugin-react": "^6.0.1",
56
58
  "jsdom": "^29.0.1",
57
59
  "react": "^19.2.4",
58
60
  "react-dom": "^19.2.4",
61
+ "tsup": "^8.5.0",
59
62
  "typescript": "6.0.2",
60
- "vite": "^8.0.2",
61
- "vite-plugin-dts": "^4.5.4",
62
63
  "vitest": "^4.1.1",
63
64
  "@repo/typescript-config": "0.0.0"
64
65
  },
65
66
  "scripts": {
66
- "dev": "vite build --watch",
67
- "build": "tsc && vite build",
67
+ "dev": "tsup --config tsup.config.ts --watch",
68
+ "build": "tsup --config tsup.config.ts && node scripts/postbuild-client.mjs",
68
69
  "release": "pnpm --dir ../.. readme:package && pnpm --dir ../.. test && pnpm build && pnpm publish --access public --no-git-checks",
69
- "preview": "vite preview",
70
70
  "lint": "biome lint .",
71
71
  "check-types": "tsc --noEmit",
72
72
  "test": "pnpm test:unit",
@@ -1,6 +0,0 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`react`)):typeof define==`function`&&define.amd?define([`exports`,`react`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.JapanPostcodeReact={},e.React))})(this,function(e,t){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var n=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),r=n((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),i=n((e=>{process.env.NODE_ENV!==`production`&&(function(){function t(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===O?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case _:return`Fragment`;case y:return`Profiler`;case v:return`StrictMode`;case C:return`Suspense`;case w:return`SuspenseList`;case D:return`Activity`}if(typeof e==`object`)switch(typeof e.tag==`number`&&console.error(`Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.`),e.$$typeof){case g:return`Portal`;case x:return e.displayName||`Context`;case b:return(e._context.displayName||`Context`)+`.Consumer`;case S:var n=e.render;return e=e.displayName,e||=(e=n.displayName||n.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case T:return n=e.displayName||null,n===null?t(e.type)||`Memo`:n;case E:n=e._payload,e=e._init;try{return t(e(n))}catch{}}return null}function n(e){return``+e}function r(e){try{n(e);var t=!1}catch{t=!0}if(t){t=console;var r=t.error,i=typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`;return r.call(t,`The provided key is an unsupported type %s. This value must be coerced to a string before using it here.`,i),n(e)}}function i(e){if(e===_)return`<>`;if(typeof e==`object`&&e&&e.$$typeof===E)return`<...>`;try{var n=t(e);return n?`<`+n+`>`:`<...>`}catch{return`<...>`}}function a(){var e=k.A;return e===null?null:e.getOwner()}function o(){return Error(`react-stack-top-frame`)}function s(e){if(A.call(e,`key`)){var t=Object.getOwnPropertyDescriptor(e,`key`).get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function c(e,t){function n(){N||(N=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}n.isReactWarning=!0,Object.defineProperty(e,`key`,{get:n,configurable:!0})}function l(){var e=t(this.type);return P[e]||(P[e]=!0,console.error(`Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.`)),e=this.props.ref,e===void 0?null:e}function u(e,t,n,r,i,a){var o=n.ref;return e={$$typeof:h,type:e,key:t,props:n,_owner:r},(o===void 0?null:o)===null?Object.defineProperty(e,`ref`,{enumerable:!1,value:null}):Object.defineProperty(e,`ref`,{enumerable:!1,get:l}),e._store={},Object.defineProperty(e._store,`validated`,{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,`_debugInfo`,{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,`_debugStack`,{configurable:!1,enumerable:!1,writable:!0,value:i}),Object.defineProperty(e,`_debugTask`,{configurable:!1,enumerable:!1,writable:!0,value:a}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function d(e,n,i,o,l,d){var p=n.children;if(p!==void 0)if(o)if(j(p)){for(o=0;o<p.length;o++)f(p[o]);Object.freeze&&Object.freeze(p)}else console.error(`React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.`);else f(p);if(A.call(n,`key`)){p=t(e);var m=Object.keys(n).filter(function(e){return e!==`key`});o=0<m.length?`{key: someKey, `+m.join(`: ..., `)+`: ...}`:`{key: someKey}`,L[p+o]||(m=0<m.length?`{`+m.join(`: ..., `)+`: ...}`:`{}`,console.error(`A props object containing a "key" prop is being spread into JSX:
2
- let props = %s;
3
- <%s {...props} />
4
- React keys must be passed directly to JSX without using spread:
5
- let props = %s;
6
- <%s key={someKey} {...props} />`,o,p,m,p),L[p+o]=!0)}if(p=null,i!==void 0&&(r(i),p=``+i),s(n)&&(r(n.key),p=``+n.key),`key`in n)for(var h in i={},n)h!==`key`&&(i[h]=n[h]);else i=n;return p&&c(i,typeof e==`function`?e.displayName||e.name||`Unknown`:e),u(e,p,i,a(),l,d)}function f(e){p(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===E&&(e._payload.status===`fulfilled`?p(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function p(e){return typeof e==`object`&&!!e&&e.$$typeof===h}var m=require(`react`),h=Symbol.for(`react.transitional.element`),g=Symbol.for(`react.portal`),_=Symbol.for(`react.fragment`),v=Symbol.for(`react.strict_mode`),y=Symbol.for(`react.profiler`),b=Symbol.for(`react.consumer`),x=Symbol.for(`react.context`),S=Symbol.for(`react.forward_ref`),C=Symbol.for(`react.suspense`),w=Symbol.for(`react.suspense_list`),T=Symbol.for(`react.memo`),E=Symbol.for(`react.lazy`),D=Symbol.for(`react.activity`),O=Symbol.for(`react.client.reference`),k=m.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,A=Object.prototype.hasOwnProperty,j=Array.isArray,M=console.createTask?console.createTask:function(){return null};m={react_stack_bottom_frame:function(e){return e()}};var N,P={},F=m.react_stack_bottom_frame.bind(m,o)(),I=M(i(o)),L={};e.Fragment=_,e.jsx=function(e,t,n){var r=1e4>k.recentlyCreatedOwnerStacks++;return d(e,t,n,!1,r?Error(`react-stack-top-frame`):F,r?M(i(e)):I)},e.jsxs=function(e,t,n){var r=1e4>k.recentlyCreatedOwnerStacks++;return d(e,t,n,!0,r?Error(`react-stack-top-frame`):F,r?M(i(e)):I)}})()})),a=n(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=r():t.exports=i()}))();function o({defaultValue:e=``,value:n,disabled:r,label:i=`Address keyword`,buttonLabel:o=`Search`,inputProps:s,buttonProps:c,onChange:l,onSearch:u}){let[d,f]=(0,t.useState)(e),p=n??d;function m(e){e.preventDefault(),u(p.trim())}function h(e){n===void 0&&f(e),l?.(e)}return(0,a.jsxs)(`form`,{onSubmit:m,children:[(0,a.jsxs)(`label`,{children:[i,(0,a.jsx)(`input`,{...s,disabled:r,value:p,onChange:e=>h(e.target.value)})]}),(0,a.jsx)(`button`,{...c,disabled:r,type:`submit`,children:o})]})}function s(e){return e.replace(/[^\d]/g,``)}function c(e){let t=s(e);return t.length===7?`${t.slice(0,3)}-${t.slice(3)}`:t}function l({defaultValue:e=``,value:n,disabled:r,label:i=`Postal code`,buttonLabel:o=`Search`,inputProps:c,buttonProps:l,onChange:u,onSearch:d}){let[f,p]=(0,t.useState)(e),m=n??f;function h(e){e.preventDefault(),d(s(m))}function g(e){n===void 0&&p(e),u?.(e)}return(0,a.jsxs)(`form`,{onSubmit:h,children:[(0,a.jsxs)(`label`,{children:[i,(0,a.jsx)(`input`,{...c,disabled:r,inputMode:c?.inputMode??`numeric`,value:m,onChange:e=>g(e.target.value)})]}),(0,a.jsx)(`button`,{...l,disabled:r,type:`submit`,children:o})]})}function u(e,t,n){let r=Error(t);return r.name=`JapanAddressError`,r.code=e,r.cause=n?.cause,r.status=n?.status,r}function d(e){return e.filter(Boolean).join(` `).trim()}function f(e){let t=d([e.prefecture,e.city,e.town,e.detail??``]);return{postalCode:e.postalCode,prefecture:e.prefecture,prefectureKana:e.prefectureKana,city:e.city,cityKana:e.cityKana,town:e.town,townKana:e.townKana,address:t,provider:`japan-post`}}function p(e){return/^\d{7}$/.test(s(e))}function m(e){return typeof e==`object`&&e&&`code`in e&&typeof e.code==`string`?e:u(`data_source_error`,e instanceof Error?e.message:`Unknown error`,{cause:e})}function h(){let e=(0,t.useRef)(0),n=(0,t.useRef)(!0),r=(0,t.useRef)(null),[i,a]=(0,t.useState)(!1),[o,s]=(0,t.useState)(null),[c,l]=(0,t.useState)(null),u=(0,t.useCallback)(t=>n.current&&t===e.current,[]),d=(0,t.useCallback)(()=>{e.current+=1,r.current?.abort(),r.current=null},[]);(0,t.useEffect)(()=>(n.current=!0,()=>{n.current=!1,d()}),[d]);let f=(0,t.useCallback)(()=>{let t=e.current+1;e.current=t,r.current?.abort();let n=new AbortController;return r.current=n,a(!0),l(null),{requestId:t,signal:n.signal}},[]),p=(0,t.useCallback)((e,t)=>{u(e)&&s(t)},[u]),m=(0,t.useCallback)((e,t)=>(u(e)&&(l(t),s(null)),null),[u]),h=(0,t.useCallback)(()=>{d(),a(!1)},[d]);return{loading:i,data:o,error:c,beginRequest:f,setSuccess:p,setFailure:m,finishRequest:(0,t.useCallback)(e=>{u(e)&&(a(!1),r.current=null)},[u]),cancel:h,reset:(0,t.useCallback)(()=>{h(),s(null),l(null)},[h])}}function g(e){if(e)return e;throw Error(`useJapanAddressSearch requires options.dataSource`)}function _(e){return e?.trim()||void 0}function v(e){let t=typeof e==`string`?{addressQuery:e}:e,n=_(t.addressQuery),r=_(t.prefCode),i=_(t.prefName),a=_(t.prefKana),o=_(t.prefRoma),s=_(t.cityCode),c=_(t.cityName),l=_(t.cityKana),u=_(t.cityRoma),d=_(t.townName),f=_(t.townKana),p=_(t.townRoma);return n===void 0&&r===void 0&&i===void 0&&a===void 0&&o===void 0&&s===void 0&&c===void 0&&l===void 0&&u===void 0&&d===void 0&&f===void 0&&p===void 0?null:{...n===void 0?{}:{addressQuery:n},...r===void 0?{}:{prefCode:r},...i===void 0?{}:{prefName:i},...a===void 0?{}:{prefKana:a},...o===void 0?{}:{prefRoma:o},...s===void 0?{}:{cityCode:s},...c===void 0?{}:{cityName:c},...l===void 0?{}:{cityKana:l},...u===void 0?{}:{cityRoma:u},...d===void 0?{}:{townName:d},...f===void 0?{}:{townKana:f},...p===void 0?{}:{townRoma:p},pageNumber:t.pageNumber??0,rowsPerPage:t.rowsPerPage??100,...t.includeCityDetails===void 0?{}:{includeCityDetails:t.includeCityDetails},...t.includePrefectureDetails===void 0?{}:{includePrefectureDetails:t.includePrefectureDetails}}}function y(e){return e.aborted?Promise.resolve(null):new Promise(t=>{let n=()=>{e.removeEventListener(`abort`,n),t(null)};e.addEventListener(`abort`,n,{once:!0})})}function b(e){let n=(0,t.useMemo)(()=>g(e.dataSource),[e.dataSource]),r=e.debounceMs??0,i=(0,t.useRef)(null),a=(0,t.useRef)(null),{loading:o,data:s,error:c,beginRequest:l,setSuccess:d,setFailure:f,finishRequest:p,cancel:_,reset:b}=h(),x=(0,t.useCallback)(e=>{i.current!==null&&(globalThis.clearTimeout(i.current),i.current=null),a.current?.(e),a.current=null},[]);(0,t.useEffect)(()=>()=>{x(null)},[x]);let S=(0,t.useCallback)(()=>{x(null),b()},[x,b]),C=(0,t.useCallback)(()=>{x(null),_()},[x,_]),w=(0,t.useCallback)(async(e,t,r)=>{try{let i={signal:t},a=n.searchAddress(r,i),o=await Promise.race([a,y(t)]);return t.aborted||o===null?null:(d(e,o),o)}catch(n){return t.aborted?null:f(e,m(n))}finally{p(e)}},[n,p,f,d]);return{loading:o,data:s,error:c,cancel:C,reset:S,search:(0,t.useCallback)(e=>{let t=v(e),{requestId:n,signal:o}=l();if(x(null),t===null){let e=f(n,u(`invalid_query`,`Address query is required`));return p(n),Promise.resolve(e)}return r<=0?new Promise(e=>{a.current=e,w(n,o,t).then(t=>{e(t),a.current===e&&(a.current=null)})}):new Promise(e=>{a.current=e,i.current=globalThis.setTimeout(()=>{i.current=null;let e=a.current;a.current=null,w(n,o,t).then(t=>{e?.(t)})},r)})},[l,x,r,w])}}function x(e){if(e)return e;throw Error(`useJapanPostalCode requires options.dataSource`)}function S(e){let n=(0,t.useMemo)(()=>x(e.dataSource),[e.dataSource]),{loading:r,data:i,error:a,beginRequest:o,setSuccess:c,setFailure:l,finishRequest:d,cancel:f,reset:p}=h();return{loading:r,data:i,error:a,cancel:f,reset:p,search:(0,t.useCallback)(async e=>{let{requestId:t,signal:r}=o();try{let i=typeof e==`string`?{postalCode:e}:e,a=s(i.postalCode);if(!/^\d{3,7}$/.test(a))throw u(`invalid_postal_code`,`Postal code must contain between 3 and 7 digits`);let o={signal:r},l={postalCode:a,pageNumber:i.pageNumber??0,rowsPerPage:i.rowsPerPage??100,...i.includeParenthesesTown===void 0?{}:{includeParenthesesTown:i.includeParenthesesTown}},d=await n.lookupPostalCode(l,o);return r.aborted?null:(c(t,d),d)}catch(e){return r.aborted?null:l(t,m(e))}finally{d(t)}},[o,n,d,l,c])}}function C(e){let n=(0,t.useMemo)(()=>{if(e.dataSource)return e.dataSource;throw Error(`useJapanAddress requires options.dataSource`)},[e.dataSource]),r=S({dataSource:n}),i=b({dataSource:n,debounceMs:e.debounceMs}),a=r.reset,o=r.search,s=i.reset,c=i.search,[l,u]=(0,t.useState)(null),d=(0,t.useCallback)(async e=>(s(),u(`postalCode`),o(e)),[s,o]),f=(0,t.useCallback)(async e=>(a(),u(`addressQuery`),c(e)),[a,c]),p=(0,t.useCallback)(()=>{a(),s(),u(null)},[s,a]),m=l===`postalCode`?r.data:l===`addressQuery`?i.data:null,h=l===`postalCode`?r.error:l===`addressQuery`?i.error:null;return{loading:r.loading||i.loading,data:m,error:h,reset:p,searchByPostalCode:d,searchByAddressQuery:f}}e.AddressSearchInput=o,e.PostalCodeInput=l,e.createJapanAddressError=u,e.formatJapanPostalCode=c,e.isValidJapanPostalCode=p,e.normalizeJapanPostAddressRecord=f,e.normalizeJapanPostalCode=s,e.useJapanAddress=C,e.useJapanAddressSearch=b,e.useJapanPostalCode=S});
@@ -1,8 +0,0 @@
1
- import { AddressSearchInputProps } from '../core/types';
2
- /**
3
- * 스타일 의존성이 없는 최소한의 주소 키워드 검색 입력 컴포넌트.
4
- * value를 전달하면 제어 모드, 전달하지 않으면 비제어 모드로 동작한다.
5
- * 검색 시 trim 처리를 내부에서 수행해 공백만 다른 입력이 별도 쿼리로 번지지 않게 한다.
6
- */
7
- export declare function AddressSearchInput({ defaultValue, value, disabled, label, buttonLabel, inputProps, buttonProps, onChange, onSearch, }: AddressSearchInputProps): import("react/jsx-runtime").JSX.Element;
8
- //# sourceMappingURL=AddressSearchInput.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AddressSearchInput.d.ts","sourceRoot":"","sources":["../../../src/components/AddressSearchInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,YAAiB,EACjB,KAAK,EACL,QAAQ,EACR,KAAyB,EACzB,WAAsB,EACtB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,QAAQ,GACT,EAAE,uBAAuB,2CA4CzB"}
@@ -1,8 +0,0 @@
1
- import { PostalCodeInputProps } from '../core/types';
2
- /**
3
- * 스타일 의존성이 없는 최소한의 우편번호 입력 컴포넌트.
4
- * value를 전달하면 제어 모드, 전달하지 않으면 비제어 모드로 동작한다.
5
- * 제출 시에는 표시 형식이 아니라 정규화된 숫자 문자열을 콜백에 넘기는 것이 핵심 계약이다.
6
- */
7
- export declare function PostalCodeInput({ defaultValue, value, disabled, label, buttonLabel, inputProps, buttonProps, onChange, onSearch, }: PostalCodeInputProps): import("react/jsx-runtime").JSX.Element;
8
- //# sourceMappingURL=PostalCodeInput.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PostalCodeInput.d.ts","sourceRoot":"","sources":["../../../src/components/PostalCodeInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC9B,YAAiB,EACjB,KAAK,EACL,QAAQ,EACR,KAAqB,EACrB,WAAsB,EACtB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,QAAQ,GACT,EAAE,oBAAoB,2CA8CtB"}
@@ -1,11 +0,0 @@
1
- import { JapanAddressError, JapanAddressErrorCode } from './types';
2
- /**
3
- * 라이브러리 전반에서 공통으로 쓰는 오류 객체 생성기다.
4
- * 브라우저 fetch 오류, validation 오류, data source 오류를 모두 같은 표면으로 맞춰
5
- * 소비자가 code/status만으로 분기할 수 있게 한다.
6
- */
7
- export declare function createJapanAddressError(code: JapanAddressErrorCode, message: string, options?: {
8
- cause?: unknown;
9
- status?: number;
10
- }): JapanAddressError;
11
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/core/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAExE;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,qBAAqB,EAC3B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C,iBAAiB,CAQnB"}
@@ -1,12 +0,0 @@
1
- /**
2
- * 우편번호에서 숫자가 아닌 문자(하이픈 등)를 제거해 순수 숫자 문자열로 만든다.
3
- * 예: "123-4567" → "1234567"
4
- */
5
- export declare function normalizeJapanPostalCode(value: string): string;
6
- /**
7
- * 우편번호를 "NNN-NNNN" 형식으로 포맷한다.
8
- * 정확히 7자리가 아닐 때는 하이픈 없이 숫자만 반환한다.
9
- * 예: "1234567" → "123-4567"
10
- */
11
- export declare function formatJapanPostalCode(value: string): string;
12
- //# sourceMappingURL=formatters.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../../src/core/formatters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAW3D"}
@@ -1,7 +0,0 @@
1
- import { JapanAddress, NormalizedJapanAddressRecord } from './types';
2
- /**
3
- * 정규화된 내부 주소 레코드를 라이브러리 공개 JapanAddress 형태로 변환한다.
4
- * address는 표시용 convenience 필드이므로, 구조화된 필드와 같은 순서를 유지해 예측 가능성을 보장한다.
5
- */
6
- export declare function normalizeJapanPostAddressRecord(record: NormalizedJapanAddressRecord): JapanAddress;
7
- //# sourceMappingURL=normalizers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalizers.d.ts","sourceRoot":"","sources":["../../../src/core/normalizers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAe1E;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,4BAA4B,GACnC,YAAY,CAoBd"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * 입력값을 정규화했을 때 정확히 7자리 숫자인지 검사한다.
3
- * 하이픈(-)이 포함된 "123-4567" 형태도 유효로 판정된다.
4
- */
5
- export declare function isValidJapanPostalCode(value: string): boolean;
6
- //# sourceMappingURL=validators.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../../src/core/validators.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAG7D"}
@@ -1,11 +0,0 @@
1
- export { AddressSearchInput } from './components/AddressSearchInput';
2
- export { PostalCodeInput } from './components/PostalCodeInput';
3
- export { createJapanAddressError } from './core/errors';
4
- export { formatJapanPostalCode, normalizeJapanPostalCode, } from './core/formatters';
5
- export { normalizeJapanPostAddressRecord } from './core/normalizers';
6
- export type { AddressSearchInputProps, JapanAddress, JapanAddressDataSource, JapanAddressError, JapanAddressErrorCode, JapanAddressSearchInput, JapanPostAddresszipRequest, JapanPostalCodeSearchInput, JapanPostSearchcodeRequest, JapanAddressRequestOptions, JapanAddressSearchResult, JapanPostalCodeLookupResult, NormalizedJapanAddressRecord, Page, PostalCodeInputProps, UseJapanAddressOptions, UseJapanAddressResult, UseJapanAddressSearchOptions, UseJapanAddressSearchResult, UseJapanPostalCodeOptions, UseJapanPostalCodeResult, } from './core/types';
7
- export { isValidJapanPostalCode } from './core/validators';
8
- export { useJapanAddress } from './react/useJapanAddress';
9
- export { useJapanAddressSearch } from './react/useJapanAddressSearch';
10
- export { useJapanPostalCode } from './react/useJapanPostalCode';
11
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAGrE,YAAY,EACV,uBAAuB,EACvB,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,2BAA2B,EAC3B,4BAA4B,EAC5B,IAAI,EACJ,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,4BAA4B,EAC5B,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1,8 +0,0 @@
1
- import { JapanAddressError } from '../core/types';
2
- /**
3
- * 알 수 없는 에러를 JapanAddressError로 변환한다.
4
- * data source 구현이 라이브러리 전용 에러를 직접 던질 수도 있고 일반 Error를 던질 수도 있으므로,
5
- * 훅 바깥으로는 항상 같은 오류 계약만 보이게 맞춘다.
6
- */
7
- export declare function toJapanAddressError(error: unknown): JapanAddressError;
8
- //# sourceMappingURL=toJapanAddressError.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toJapanAddressError.d.ts","sourceRoot":"","sources":["../../../src/react/toJapanAddressError.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAiBrE"}
@@ -1,8 +0,0 @@
1
- import { UseJapanAddressOptions, UseJapanAddressResult } from '../core/types';
2
- /**
3
- * 우편번호 조회와 키워드 주소 검색을 하나의 인터페이스로 제공하는 통합 훅.
4
- * 두 검색 모드가 공유하는 data source를 내부에서 재사용하고,
5
- * 마지막으로 실행된 검색 종류만 외부에 노출해 두 결과가 섞이지 않도록 한다.
6
- */
7
- export declare function useJapanAddress(options: UseJapanAddressOptions): UseJapanAddressResult;
8
- //# sourceMappingURL=useJapanAddress.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useJapanAddress.d.ts","sourceRoot":"","sources":["../../../src/react/useJapanAddress.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAIvB;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,sBAAsB,GAC9B,qBAAqB,CAiFvB"}
@@ -1,7 +0,0 @@
1
- import { UseJapanAddressSearchOptions, UseJapanAddressSearchResult } from '../core/types';
2
- /**
3
- * 자유 형식 키워드로 일본 주소를 검색하는 훅.
4
- * 디바운스를 지원하며 loading / data / error 상태와 search / reset 함수를 제공한다.
5
- */
6
- export declare function useJapanAddressSearch(options: UseJapanAddressSearchOptions): UseJapanAddressSearchResult;
7
- //# sourceMappingURL=useJapanAddressSearch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useJapanAddressSearch.d.ts","sourceRoot":"","sources":["../../../src/react/useJapanAddressSearch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAMV,4BAA4B,EAC5B,2BAA2B,EAC5B,MAAM,eAAe,CAAC;AAmGvB;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,4BAA4B,GACpC,2BAA2B,CAwK7B"}
@@ -1,7 +0,0 @@
1
- import { UseJapanPostalCodeOptions, UseJapanPostalCodeResult } from '../core/types';
2
- /**
3
- * 일본 우편번호로 주소를 조회하는 훅.
4
- * loading / data / error 상태와 search / reset 함수를 제공한다.
5
- */
6
- export declare function useJapanPostalCode(options: UseJapanPostalCodeOptions): UseJapanPostalCodeResult;
7
- //# sourceMappingURL=useJapanPostalCode.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useJapanPostalCode.d.ts","sourceRoot":"","sources":["../../../src/react/useJapanPostalCode.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAKV,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,eAAe,CAAC;AAgBvB;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,yBAAyB,GACjC,wBAAwB,CAqF1B"}
@@ -1,23 +0,0 @@
1
- import { JapanAddressError } from '../core/types';
2
- /**
3
- * 개별 검색 훅에서 공통으로 사용하는 "최신 요청 우선(last request wins)" 상태 관리 훅이다.
4
- * 같은 훅 인스턴스 안에서 요청이 겹치면 가장 마지막 요청만 성공/실패 상태를 반영하고,
5
- * 이전 요청은 AbortSignal과 requestId 비교를 함께 사용해 조용히 무효화한다.
6
- */
7
- type BeginRequestResult = {
8
- requestId: number;
9
- signal: AbortSignal;
10
- };
11
- export declare function useLatestRequestState<TResult>(): {
12
- loading: boolean;
13
- data: TResult | null;
14
- error: JapanAddressError | null;
15
- beginRequest: () => BeginRequestResult;
16
- setSuccess: (requestId: number, result: TResult) => void;
17
- setFailure: (requestId: number, nextError: JapanAddressError) => null;
18
- finishRequest: (requestId: number) => void;
19
- cancel: () => void;
20
- reset: () => void;
21
- };
22
- export {};
23
- //# sourceMappingURL=useLatestRequestState.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLatestRequestState.d.ts","sourceRoot":"","sources":["../../../src/react/useLatestRequestState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;;GAIG;AACH,KAAK,kBAAkB,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,OAAO;;;;wBAgCN,kBAAkB;4BAqBZ,MAAM,UAAU,OAAO;4BAOpD,MAAM,aAAa,iBAAiB;+BAmBJ,MAAM;;;EA0BrD"}