@yeongseoksong/framework 0.1.0 → 1.0.2

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.
@@ -1,4 +1,28 @@
1
- declare function setCompanyName(name: string): void;
1
+ /**
2
+ * 소비자 앱이 주입하는 상수들.
3
+ *
4
+ * 값은 소비자 앱의 `NEXT_PUBLIC_*` 환경변수에서 온다. 번들러가 빌드 시점에
5
+ * 리터럴로 치환하므로, tsup이 ui/util 번들을 나눠도 양쪽에 같은 값이 박힌다.
6
+ * (모듈 전역 변수로 주입하던 이전 방식은 번들이 갈리면서 값이 공유되지 않았다.)
7
+ *
8
+ * `process.env.X` 형태로 통째로 접근해야 한다. 구조분해(`const { X } = process.env`)는
9
+ * 번들러의 정적 치환 대상이 아니라서 undefined가 된다.
10
+ */
11
+ /** `%c` 토큰이 치환될 회사명. 소비자 앱에서 필수. */
12
+ declare const COMPANY_NAME: string;
13
+ /** 헤더 로고 이미지 경로. */
14
+ declare const LOGO_SRC: string;
15
+ /** 헤더 로고 대체 텍스트. */
16
+ declare const LOGO_ALT: string;
17
+
18
+ /**
19
+ * @deprecated 동작하지 않는다. tsup이 ui/util을 별개 번들로 빌드하면서 이 모듈이
20
+ * `dist/ui`에 인라인 복사되기 때문에, 여기서 값을 바꿔도 `t()`를 실제로 호출하는
21
+ * `SdText`/`SdTitle`은 다른 사본을 읽는다. 대신 `NEXT_PUBLIC_COMPANY_NAME`을 사용할 것.
22
+ * 2.0.0에서 제거한다.
23
+ */
24
+ declare function setCompanyName(_name: string): void;
25
+ /** 문자열 안의 `%c`를 회사명으로 치환한다. 서버/클라이언트 양쪽에서 안전하다. */
2
26
  declare function t(text: string): string;
3
27
 
4
- export { setCompanyName, t };
28
+ export { COMPANY_NAME, LOGO_ALT, LOGO_SRC, setCompanyName, t };
@@ -1,4 +1,28 @@
1
- declare function setCompanyName(name: string): void;
1
+ /**
2
+ * 소비자 앱이 주입하는 상수들.
3
+ *
4
+ * 값은 소비자 앱의 `NEXT_PUBLIC_*` 환경변수에서 온다. 번들러가 빌드 시점에
5
+ * 리터럴로 치환하므로, tsup이 ui/util 번들을 나눠도 양쪽에 같은 값이 박힌다.
6
+ * (모듈 전역 변수로 주입하던 이전 방식은 번들이 갈리면서 값이 공유되지 않았다.)
7
+ *
8
+ * `process.env.X` 형태로 통째로 접근해야 한다. 구조분해(`const { X } = process.env`)는
9
+ * 번들러의 정적 치환 대상이 아니라서 undefined가 된다.
10
+ */
11
+ /** `%c` 토큰이 치환될 회사명. 소비자 앱에서 필수. */
12
+ declare const COMPANY_NAME: string;
13
+ /** 헤더 로고 이미지 경로. */
14
+ declare const LOGO_SRC: string;
15
+ /** 헤더 로고 대체 텍스트. */
16
+ declare const LOGO_ALT: string;
17
+
18
+ /**
19
+ * @deprecated 동작하지 않는다. tsup이 ui/util을 별개 번들로 빌드하면서 이 모듈이
20
+ * `dist/ui`에 인라인 복사되기 때문에, 여기서 값을 바꿔도 `t()`를 실제로 호출하는
21
+ * `SdText`/`SdTitle`은 다른 사본을 읽는다. 대신 `NEXT_PUBLIC_COMPANY_NAME`을 사용할 것.
22
+ * 2.0.0에서 제거한다.
23
+ */
24
+ declare function setCompanyName(_name: string): void;
25
+ /** 문자열 안의 `%c`를 회사명으로 치환한다. 서버/클라이언트 양쪽에서 안전하다. */
2
26
  declare function t(text: string): string;
3
27
 
4
- export { setCompanyName, t };
28
+ export { COMPANY_NAME, LOGO_ALT, LOGO_SRC, setCompanyName, t };
@@ -20,22 +20,41 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // util/index.ts
21
21
  var util_exports = {};
22
22
  __export(util_exports, {
23
+ COMPANY_NAME: () => COMPANY_NAME,
24
+ LOGO_ALT: () => LOGO_ALT,
25
+ LOGO_SRC: () => LOGO_SRC,
23
26
  setCompanyName: () => setCompanyName,
24
27
  t: () => t
25
28
  });
26
29
  module.exports = __toCommonJS(util_exports);
27
30
 
31
+ // util/env.util.ts
32
+ var _a;
33
+ var COMPANY_NAME = (_a = process.env.NEXT_PUBLIC_COMPANY_NAME) != null ? _a : "";
34
+ var _a2;
35
+ var LOGO_SRC = (_a2 = process.env.NEXT_PUBLIC_LOGO_SRC) != null ? _a2 : "/logo.svg";
36
+ var _a3;
37
+ var LOGO_ALT = (_a3 = process.env.NEXT_PUBLIC_LOGO_ALT) != null ? _a3 : "\uB85C\uACE0";
38
+
28
39
  // util/text.util.ts
29
40
  var COMPANY_TOKEN = "%c";
30
- var companyName = "UKNOWN";
31
- function setCompanyName(name) {
32
- companyName = name;
41
+ var warned = false;
42
+ function setCompanyName(_name) {
43
+ if (!warned) {
44
+ warned = true;
45
+ console.warn(
46
+ "[@yeongseoksong/framework] setCompanyName()\uC740 \uB3D9\uC791\uD558\uC9C0 \uC54A\uC73C\uBA70 2.0.0\uC5D0\uC11C \uC81C\uAC70\uB429\uB2C8\uB2E4. NEXT_PUBLIC_COMPANY_NAME \uD658\uACBD\uBCC0\uC218\uB97C \uC0AC\uC6A9\uD558\uC138\uC694."
47
+ );
48
+ }
33
49
  }
34
50
  function t(text) {
35
- return text.replaceAll(COMPANY_TOKEN, companyName);
51
+ return text.replaceAll(COMPANY_TOKEN, COMPANY_NAME);
36
52
  }
37
53
  // Annotate the CommonJS export names for ESM import in node:
38
54
  0 && (module.exports = {
55
+ COMPANY_NAME,
56
+ LOGO_ALT,
57
+ LOGO_SRC,
39
58
  setCompanyName,
40
59
  t
41
60
  });
@@ -1,13 +1,29 @@
1
+ // util/env.util.ts
2
+ var _a;
3
+ var COMPANY_NAME = (_a = process.env.NEXT_PUBLIC_COMPANY_NAME) != null ? _a : "";
4
+ var _a2;
5
+ var LOGO_SRC = (_a2 = process.env.NEXT_PUBLIC_LOGO_SRC) != null ? _a2 : "/logo.svg";
6
+ var _a3;
7
+ var LOGO_ALT = (_a3 = process.env.NEXT_PUBLIC_LOGO_ALT) != null ? _a3 : "\uB85C\uACE0";
8
+
1
9
  // util/text.util.ts
2
10
  var COMPANY_TOKEN = "%c";
3
- var companyName = "UKNOWN";
4
- function setCompanyName(name) {
5
- companyName = name;
11
+ var warned = false;
12
+ function setCompanyName(_name) {
13
+ if (!warned) {
14
+ warned = true;
15
+ console.warn(
16
+ "[@yeongseoksong/framework] setCompanyName()\uC740 \uB3D9\uC791\uD558\uC9C0 \uC54A\uC73C\uBA70 2.0.0\uC5D0\uC11C \uC81C\uAC70\uB429\uB2C8\uB2E4. NEXT_PUBLIC_COMPANY_NAME \uD658\uACBD\uBCC0\uC218\uB97C \uC0AC\uC6A9\uD558\uC138\uC694."
17
+ );
18
+ }
6
19
  }
7
20
  function t(text) {
8
- return text.replaceAll(COMPANY_TOKEN, companyName);
21
+ return text.replaceAll(COMPANY_TOKEN, COMPANY_NAME);
9
22
  }
10
23
  export {
24
+ COMPANY_NAME,
25
+ LOGO_ALT,
26
+ LOGO_SRC,
11
27
  setCompanyName,
12
28
  t
13
29
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yeongseoksong/framework",
3
- "version": "0.1.0",
3
+ "version": "1.0.2",
4
4
  "files": [
5
5
  "dist"
6
6
  ],
@@ -31,15 +31,13 @@
31
31
  "@mantine/hooks": "^9.2.2",
32
32
  "next": "16.2.2",
33
33
  "react": "19.2.4",
34
- "react-dom": "19.2.4"
34
+ "react-dom": "19.2.4",
35
+ "@tabler/icons-react": "^3.44.0"
35
36
  },
36
37
  "devDependencies": {
37
38
  "@types/react": ">=19",
38
39
  "tsup": "latest"
39
40
  },
40
- "dependencies": {
41
- "@tabler/icons-react": "^3.44.0"
42
- },
43
41
  "scripts": {
44
42
  "build": "tsup",
45
43
  "dev": "tsup --watch"