sonamu 0.9.19 → 0.10.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 (282) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +36 -0
  2. package/dist/ai/agents/agent.js +5 -7
  3. package/dist/ai/agents/index.js +1 -2
  4. package/dist/ai/agents/types.js +1 -1
  5. package/dist/ai/index.js +1 -2
  6. package/dist/ai/providers/rtzr/api.js +2 -3
  7. package/dist/ai/providers/rtzr/error.js +14 -29
  8. package/dist/ai/providers/rtzr/index.js +1 -2
  9. package/dist/ai/providers/rtzr/model.js +13 -20
  10. package/dist/ai/providers/rtzr/options.js +2 -3
  11. package/dist/ai/providers/rtzr/provider.js +2 -3
  12. package/dist/ai/providers/rtzr/utils.js +12 -21
  13. package/dist/api/base-frame.js +4 -4
  14. package/dist/api/caster.js +21 -38
  15. package/dist/api/code-converters.js +41 -98
  16. package/dist/api/config.d.ts +1 -10
  17. package/dist/api/config.d.ts.map +1 -1
  18. package/dist/api/config.js +9 -8
  19. package/dist/api/context.js +2 -3
  20. package/dist/api/decorators.js +80 -116
  21. package/dist/api/index.js +2 -3
  22. package/dist/api/secret.js +6 -10
  23. package/dist/api/sonamu.d.ts.map +1 -1
  24. package/dist/api/sonamu.js +200 -387
  25. package/dist/api/validator.js +5 -8
  26. package/dist/api/websocket-helpers.js +21 -32
  27. package/dist/auth/audit-log/builders.js +2 -3
  28. package/dist/auth/audit-log/events.js +2 -2
  29. package/dist/auth/audit-log/plugin.js +30 -61
  30. package/dist/auth/audit-log-ingestor.js +19 -41
  31. package/dist/auth/auth-generator.js +16 -41
  32. package/dist/auth/better-auth-entities.js +3 -4
  33. package/dist/auth/index.js +2 -3
  34. package/dist/auth/knex-adapter.js +18 -45
  35. package/dist/auth/plugins/entity-definitions/admin.js +2 -2
  36. package/dist/auth/plugins/entity-definitions/anonymous.js +2 -2
  37. package/dist/auth/plugins/entity-definitions/api-key.js +2 -2
  38. package/dist/auth/plugins/entity-definitions/audit-log.js +2 -2
  39. package/dist/auth/plugins/entity-definitions/index.js +2 -3
  40. package/dist/auth/plugins/entity-definitions/jwt.js +2 -2
  41. package/dist/auth/plugins/entity-definitions/organization.js +2 -2
  42. package/dist/auth/plugins/entity-definitions/passkey.js +2 -2
  43. package/dist/auth/plugins/entity-definitions/phone-number.js +2 -2
  44. package/dist/auth/plugins/entity-definitions/sso.js +2 -2
  45. package/dist/auth/plugins/entity-definitions/two-factor.js +2 -2
  46. package/dist/auth/plugins/entity-definitions/types.js +1 -1
  47. package/dist/auth/plugins/entity-definitions/username.js +2 -2
  48. package/dist/auth/plugins/index.js +1 -2
  49. package/dist/auth/plugins/wrappers/admin.js +2 -3
  50. package/dist/auth/plugins/wrappers/anonymous.js +2 -3
  51. package/dist/auth/plugins/wrappers/api-key.js +2 -3
  52. package/dist/auth/plugins/wrappers/index.js +1 -2
  53. package/dist/auth/plugins/wrappers/jwt.js +2 -3
  54. package/dist/auth/plugins/wrappers/organization.js +2 -3
  55. package/dist/auth/plugins/wrappers/passkey.js +2 -3
  56. package/dist/auth/plugins/wrappers/phone-number.js +2 -3
  57. package/dist/auth/plugins/wrappers/sso.js +2 -3
  58. package/dist/auth/plugins/wrappers/two-factor.js +2 -3
  59. package/dist/auth/plugins/wrappers/username.js +2 -3
  60. package/dist/bin/build-config.js +2 -2
  61. package/dist/bin/cli.js +151 -258
  62. package/dist/bin/fixture.d.ts.map +1 -1
  63. package/dist/bin/fixture.js +55 -97
  64. package/dist/bin/hmr-hook-register.js +3 -3
  65. package/dist/bin/migrate-targets.d.ts +3 -0
  66. package/dist/bin/migrate-targets.d.ts.map +1 -0
  67. package/dist/bin/migrate-targets.js +11 -0
  68. package/dist/bin/test-command.js +25 -55
  69. package/dist/bin/ts-loader-register.js +5 -6
  70. package/dist/bin/ts-loader-registration.js +6 -13
  71. package/dist/cache/cache-manager.js +3 -4
  72. package/dist/cache/decorator.js +11 -21
  73. package/dist/cache/drivers.js +2 -3
  74. package/dist/cache/index.js +2 -3
  75. package/dist/cache/types.js +1 -1
  76. package/dist/cache-control/cache-control.js +21 -34
  77. package/dist/cache-control/types.js +1 -1
  78. package/dist/compress/compress.js +10 -10
  79. package/dist/compress/index.js +1 -2
  80. package/dist/compress/types.js +1 -1
  81. package/dist/cone/cone-generator.js +25 -63
  82. package/dist/database/_batch_update.js +26 -46
  83. package/dist/database/base-model.js +44 -97
  84. package/dist/database/base-model.types.js +1 -1
  85. package/dist/database/db.d.ts +8 -14
  86. package/dist/database/db.d.ts.map +1 -1
  87. package/dist/database/db.js +127 -72
  88. package/dist/database/knex.js +5 -8
  89. package/dist/database/puri-subset.types.js +1 -1
  90. package/dist/database/puri-wrapper.js +11 -15
  91. package/dist/database/puri.js +117 -234
  92. package/dist/database/puri.types.js +3 -4
  93. package/dist/database/transaction-context.js +4 -5
  94. package/dist/database/upsert-builder.js +109 -176
  95. package/dist/dict/en.d.ts +1 -0
  96. package/dist/dict/en.d.ts.map +1 -1
  97. package/dist/dict/en.js +4 -4
  98. package/dist/dict/index.js +2 -3
  99. package/dist/dict/ko.d.ts +1 -0
  100. package/dist/dict/ko.d.ts.map +1 -1
  101. package/dist/dict/ko.js +4 -4
  102. package/dist/dict/rc-keys.js +3 -4
  103. package/dist/dict/sd.js +8 -19
  104. package/dist/dict/sonamu-dictionary.js +141 -284
  105. package/dist/dict/types.js +1 -1
  106. package/dist/dict/utils.js +4 -5
  107. package/dist/entity/entity-manager.d.ts +2 -2
  108. package/dist/entity/entity-manager.js +34 -82
  109. package/dist/entity/entity-template-cone.js +33 -66
  110. package/dist/entity/entity.js +156 -310
  111. package/dist/env.d.ts +14 -0
  112. package/dist/env.d.ts.map +1 -0
  113. package/dist/env.js +75 -0
  114. package/dist/exceptions/error-handler.js +2 -3
  115. package/dist/exceptions/so-exceptions.js +7 -5
  116. package/dist/filter/index.js +1 -2
  117. package/dist/filter/types.js +3 -4
  118. package/dist/filter/utils.js +21 -54
  119. package/dist/index.js +8 -7
  120. package/dist/logger/category.js +6 -12
  121. package/dist/logger/configure.js +23 -34
  122. package/dist/migration/code-generation.js +146 -314
  123. package/dist/migration/index-where-predicate.js +52 -144
  124. package/dist/migration/migration-set.js +19 -33
  125. package/dist/migration/migrator.d.ts +2 -0
  126. package/dist/migration/migrator.d.ts.map +1 -1
  127. package/dist/migration/migrator.js +69 -53
  128. package/dist/migration/postgresql-schema-reader.js +126 -225
  129. package/dist/migration/slack-confirm.d.ts +1 -0
  130. package/dist/migration/slack-confirm.d.ts.map +1 -1
  131. package/dist/migration/slack-confirm.js +28 -38
  132. package/dist/migration/types.js +1 -1
  133. package/dist/naite/messaging-types.js +1 -1
  134. package/dist/naite/naite-reporter.js +15 -32
  135. package/dist/naite/naite.js +43 -76
  136. package/dist/ssr/index.js +6 -9
  137. package/dist/ssr/registry.js +10 -18
  138. package/dist/ssr/renderer.js +10 -21
  139. package/dist/ssr/types.js +1 -1
  140. package/dist/storage/base-file.js +5 -10
  141. package/dist/storage/buffered-file.js +3 -4
  142. package/dist/storage/drivers.js +2 -3
  143. package/dist/storage/index.js +2 -3
  144. package/dist/storage/s3-driver.js +5 -9
  145. package/dist/storage/storage-manager.js +5 -5
  146. package/dist/storage/types.js +1 -1
  147. package/dist/storage/uploaded-file.js +4 -6
  148. package/dist/stream/index.js +1 -2
  149. package/dist/stream/sse.js +8 -13
  150. package/dist/stream/ws-audience-resolver.js +5 -5
  151. package/dist/stream/ws-audience.js +3 -4
  152. package/dist/stream/ws-cluster-bus.js +3 -4
  153. package/dist/stream/ws-core.js +1 -1
  154. package/dist/stream/ws-delivery.js +11 -25
  155. package/dist/stream/ws-local-connection-store.js +9 -18
  156. package/dist/stream/ws-presence-store.js +43 -97
  157. package/dist/stream/ws-registry.js +17 -22
  158. package/dist/stream/ws-telemetry-memory.js +38 -45
  159. package/dist/stream/ws-telemetry-trace.js +4 -6
  160. package/dist/stream/ws-telemetry.js +82 -135
  161. package/dist/stream/ws.js +47 -91
  162. package/dist/syncer/api-parser.js +81 -147
  163. package/dist/syncer/checksum.js +9 -20
  164. package/dist/syncer/code-generator.js +29 -47
  165. package/dist/syncer/entity-operations.js +17 -27
  166. package/dist/syncer/event-batcher.js +8 -15
  167. package/dist/syncer/file-patterns.js +3 -4
  168. package/dist/syncer/file-tracking.js +6 -10
  169. package/dist/syncer/index.js +1 -2
  170. package/dist/syncer/module-loader.js +10 -26
  171. package/dist/syncer/syncer-actions.js +19 -37
  172. package/dist/syncer/syncer.js +46 -98
  173. package/dist/syncer/watcher.js +12 -26
  174. package/dist/tasks/decorator.js +7 -11
  175. package/dist/tasks/step-wrapper.js +7 -8
  176. package/dist/tasks/workflow-manager.js +18 -25
  177. package/dist/template/entity-converter.js +40 -64
  178. package/dist/template/helpers.js +32 -63
  179. package/dist/template/implementations/entity.template.js +7 -11
  180. package/dist/template/implementations/entry-server.template.js +2 -3
  181. package/dist/template/implementations/generated.template.js +25 -51
  182. package/dist/template/implementations/generated_http.template.js +31 -58
  183. package/dist/template/implementations/generated_sso.template.js +45 -85
  184. package/dist/template/implementations/init_types.template.js +4 -7
  185. package/dist/template/implementations/model.template.js +5 -10
  186. package/dist/template/implementations/model_test.template.js +2 -3
  187. package/dist/template/implementations/queries.template.js +4 -7
  188. package/dist/template/implementations/sd.template.js +17 -35
  189. package/dist/template/implementations/services.template.js +18 -30
  190. package/dist/template/implementations/view_form.template.js +72 -125
  191. package/dist/template/implementations/view_id_all_select.template.js +2 -3
  192. package/dist/template/implementations/view_list.template.js +86 -143
  193. package/dist/template/implementations/view_search_input.template.js +2 -3
  194. package/dist/template/index.js +5 -8
  195. package/dist/template/template-manager.js +13 -26
  196. package/dist/template/template-types.js +2 -3
  197. package/dist/template/template.js +7 -11
  198. package/dist/template/zod-converter.js +173 -348
  199. package/dist/testing/_relation-graph.js +18 -37
  200. package/dist/testing/bootstrap.js +5 -8
  201. package/dist/testing/data-explorer.js +34 -78
  202. package/dist/testing/dev-test-routes.js +54 -60
  203. package/dist/testing/dev-vitest-manager.js +33 -84
  204. package/dist/testing/faker-mappings.js +3 -4
  205. package/dist/testing/fixture-generator.d.ts +2 -1
  206. package/dist/testing/fixture-generator.d.ts.map +1 -1
  207. package/dist/testing/fixture-generator.js +159 -321
  208. package/dist/testing/fixture-loader.js +2 -2
  209. package/dist/testing/fixture-manager.d.ts.map +1 -1
  210. package/dist/testing/fixture-manager.js +124 -227
  211. package/dist/testing/global-setup.d.ts.map +1 -1
  212. package/dist/testing/global-setup.js +29 -17
  213. package/dist/testing/index.js +1 -2
  214. package/dist/testing/naite-vitest-reporter.js +2 -3
  215. package/dist/testing/parallel-db-manager.js +5 -3
  216. package/dist/testing/vitest-helpers.d.ts.map +1 -1
  217. package/dist/testing/vitest-helpers.js +15 -12
  218. package/dist/types/types.d.ts +14 -14
  219. package/dist/types/types.js +27 -50
  220. package/dist/ui/ai-api.js +6 -11
  221. package/dist/ui/ai-client.js +86 -134
  222. package/dist/ui/api.js +99 -195
  223. package/dist/ui/cdd-service.js +78 -130
  224. package/dist/ui/cdd-types.js +1 -1
  225. package/dist/ui-web/assets/{index-Df8q-fhb.js → index-DFStGyd0.js} +49 -49
  226. package/dist/ui-web/assets/index-Dx4ap5i4.css +1 -0
  227. package/dist/ui-web/index.html +2 -2
  228. package/dist/utils/async-utils.js +13 -25
  229. package/dist/utils/class-name.js +3 -4
  230. package/dist/utils/console-util.js +11 -26
  231. package/dist/utils/controller.d.ts.map +1 -1
  232. package/dist/utils/controller.js +14 -12
  233. package/dist/utils/esm-utils.js +5 -8
  234. package/dist/utils/formatter.js +10 -22
  235. package/dist/utils/fs-utils.js +14 -25
  236. package/dist/utils/lodash-able.js +3 -4
  237. package/dist/utils/model.js +7 -14
  238. package/dist/utils/object-utils.js +41 -73
  239. package/dist/utils/path-utils.js +5 -9
  240. package/dist/utils/process-utils.js +4 -7
  241. package/dist/utils/sql-parser.js +6 -13
  242. package/dist/utils/type-utils.js +16 -26
  243. package/dist/utils/utils.js +18 -40
  244. package/dist/utils/zod-error.js +9 -16
  245. package/dist/vector/chunking.js +24 -37
  246. package/dist/vector/config.js +2 -2
  247. package/dist/vector/embedding.js +8 -19
  248. package/dist/vector/index.js +1 -2
  249. package/dist/vector/types.js +1 -1
  250. package/package.json +7 -7
  251. package/src/__tests__/env.test.ts +127 -0
  252. package/src/api/__tests__/config.test.ts +10 -1
  253. package/src/api/config.ts +4 -12
  254. package/src/api/sonamu.ts +14 -4
  255. package/src/bin/__tests__/migrate-targets.test.ts +28 -0
  256. package/src/bin/__tests__/test-command.test.ts +82 -1
  257. package/src/bin/cli.ts +9 -18
  258. package/src/bin/fixture.ts +5 -4
  259. package/src/bin/migrate-targets.ts +7 -0
  260. package/src/bin/test-command.ts +2 -2
  261. package/src/database/__tests__/db.test.ts +175 -0
  262. package/src/database/db.ts +193 -71
  263. package/src/dict/en.ts +2 -0
  264. package/src/dict/ko.ts +2 -0
  265. package/src/env.ts +123 -0
  266. package/src/migration/__tests__/migrator.test.ts +149 -0
  267. package/src/migration/migrator.ts +74 -17
  268. package/src/migration/slack-confirm.ts +21 -0
  269. package/src/skills/sonamu/database.md +1 -1
  270. package/src/skills/sonamu/entity-basic.md +31 -0
  271. package/src/skills/sonamu/puri.md +22 -0
  272. package/src/skills/sonamu/testing-devrunner.md +1 -1
  273. package/src/skills/sonamu/upsert.md +53 -6
  274. package/src/stream/ws-telemetry-memory.ts +2 -2
  275. package/src/testing/fixture-generator.ts +2 -1
  276. package/src/testing/fixture-manager.ts +3 -4
  277. package/src/testing/global-setup.ts +42 -18
  278. package/src/testing/vitest-helpers.ts +14 -0
  279. package/src/utils/controller.ts +14 -7
  280. package/tsdown.api.config.ts +6 -0
  281. package/dist/_virtual/rolldown_runtime.js +0 -39
  282. package/dist/ui-web/assets/index-D4rYm-Xz.css +0 -1
@@ -2,22 +2,17 @@ import { findApiRootPath, init_utils } from "../utils/utils.js";
2
2
  import { init_config, loadConfig } from "../api/config.js";
3
3
  import chalk from "chalk";
4
4
  import path from "node:path";
5
-
6
5
  //#region src/bin/test-command.ts
7
6
  init_config();
8
7
  init_utils();
9
- async function loadTestConfig() {
8
+ async function loadDevServerConfig() {
10
9
  const prevVitest = process.env.VITEST;
11
10
  process.env.VITEST = "true";
12
11
  try {
13
- const apiRootPath = findApiRootPath();
14
- return await loadConfig(apiRootPath);
12
+ return await loadConfig(findApiRootPath());
15
13
  } finally {
16
- if (prevVitest === undefined) {
17
- delete process.env.VITEST;
18
- } else {
19
- process.env.VITEST = prevVitest;
20
- }
14
+ if (prevVitest === void 0) delete process.env.VITEST;
15
+ else process.env.VITEST = prevVitest;
21
16
  }
22
17
  }
23
18
  function resolveTestBaseUrl(config) {
@@ -33,26 +28,19 @@ function resolveTestBaseUrl(config) {
33
28
  }
34
29
  async function testCommand() {
35
30
  const args = process.argv.slice(3);
36
- const config = await loadTestConfig();
31
+ const config = await loadDevServerConfig();
37
32
  const files = [];
38
33
  let pattern;
39
34
  let showTraces = false;
40
35
  let showStatus = false;
41
36
  for (let i = 0; i < args.length; i++) {
42
37
  const arg = args[i];
43
- if (arg === "--pattern" || arg === "-p") {
44
- pattern = args[++i];
45
- } else if (arg === "--traces" || arg === "-t") {
46
- showTraces = true;
47
- } else if (arg === "--status" || arg === "-s") {
48
- showStatus = true;
49
- } else if (!arg.startsWith("-")) {
50
- files.push(arg);
51
- }
52
- }
53
- if (showStatus) {
54
- return testStatusCommand(config);
38
+ if (arg === "--pattern" || arg === "-p") pattern = args[++i];
39
+ else if (arg === "--traces" || arg === "-t") showTraces = true;
40
+ else if (arg === "--status" || arg === "-s") showStatus = true;
41
+ else if (!arg.startsWith("-")) files.push(arg);
55
42
  }
43
+ if (showStatus) return testStatusCommand(config);
56
44
  if (!config.test?.devRunner?.enabled) {
57
45
  console.error(chalk.red("devRunner가 활성화되지 않았습니다. sonamu.config.ts에서 test.devRunner.enabled: true 설정이 필요합니다"));
58
46
  process.exit(1);
@@ -60,12 +48,8 @@ async function testCommand() {
60
48
  const { baseUrl } = resolveTestBaseUrl(config);
61
49
  const url = `${baseUrl}/run`;
62
50
  const payload = {};
63
- if (files.length > 0) {
64
- payload.files = files;
65
- }
66
- if (pattern) {
67
- payload.pattern = pattern;
68
- }
51
+ if (files.length > 0) payload.files = files;
52
+ if (pattern) payload.pattern = pattern;
69
53
  try {
70
54
  const response = await fetch(url, {
71
55
  method: "POST",
@@ -79,9 +63,7 @@ async function testCommand() {
79
63
  if (response.status === 500) {
80
64
  const errorBody = await response.json();
81
65
  console.error(chalk.red("Vitest 인스턴스가 아직 준비되지 않았습니다"));
82
- if (errorBody.error) {
83
- console.error(chalk.red(errorBody.error));
84
- }
66
+ if (errorBody.error) console.error(chalk.red(errorBody.error));
85
67
  process.exit(1);
86
68
  }
87
69
  if (!response.ok) {
@@ -99,9 +81,7 @@ async function testCommand() {
99
81
  console.log(chalk.red.bold("\nFailed tests:"));
100
82
  for (const f of failedTests) {
101
83
  console.log(` ${chalk.red("x")} ${f.fullName} ${chalk.dim(`(${f.file})`)}`);
102
- if (f.error) {
103
- console.log(` ${chalk.red(f.error.message)}`);
104
- }
84
+ if (f.error) console.log(` ${chalk.red(f.error.message)}`);
105
85
  }
106
86
  }
107
87
  if (showTraces) {
@@ -121,9 +101,7 @@ async function testCommand() {
121
101
  }
122
102
  }
123
103
  }
124
- if (!result.ok) {
125
- process.exit(1);
126
- }
104
+ if (!result.ok) process.exit(1);
127
105
  } catch (err) {
128
106
  if (err instanceof TypeError && err.cause) {
129
107
  console.error(chalk.red("dev 서버에 연결할 수 없습니다. sonamu dev가 실행 중인지 확인하세요"));
@@ -135,28 +113,20 @@ async function testCommand() {
135
113
  function collectFailedFromResults(nodes) {
136
114
  const result = [];
137
115
  for (const node of nodes) {
138
- if (node.kind === "test" && node.state === "failed") {
139
- result.push(node);
140
- }
141
- if (node.children.length > 0) {
142
- result.push(...collectFailedFromResults(node.children));
143
- }
116
+ if (node.kind === "test" && node.state === "failed") result.push(node);
117
+ if (node.children.length > 0) result.push(...collectFailedFromResults(node.children));
144
118
  }
145
119
  return result;
146
120
  }
147
121
  function collectTracesFromResults(nodes) {
148
122
  const result = [];
149
123
  for (const node of nodes) {
150
- if (node.kind === "test" && node.traces.length > 0) {
151
- result.push({
152
- testName: node.fullName,
153
- file: node.file,
154
- traces: node.traces
155
- });
156
- }
157
- if (node.children.length > 0) {
158
- result.push(...collectTracesFromResults(node.children));
159
- }
124
+ if (node.kind === "test" && node.traces.length > 0) result.push({
125
+ testName: node.fullName,
126
+ file: node.file,
127
+ traces: node.traces
128
+ });
129
+ if (node.children.length > 0) result.push(...collectTracesFromResults(node.children));
160
130
  }
161
131
  return result;
162
132
  }
@@ -187,7 +157,7 @@ async function testStatusCommand(config) {
187
157
  throw err;
188
158
  }
189
159
  }
190
-
191
160
  //#endregion
192
161
  export { testCommand };
193
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1jb21tYW5kLmpzIiwibmFtZXMiOlsiZmlsZXM6IHN0cmluZ1tdIiwicGF0dGVybjogc3RyaW5nIHwgdW5kZWZpbmVkIiwicGF5bG9hZDogeyBmaWxlcz86IHN0cmluZ1tdOyBwYXR0ZXJuPzogc3RyaW5nIH0iLCJyZXN1bHQ6IFRlc3RDYXNlUmVzdWx0W10iLCJyZXN1bHQ6IHsgdGVzdE5hbWU6IHN0cmluZzsgZmlsZTogc3RyaW5nOyB0cmFjZXM6IFRlc3RDYXNlUmVzdWx0W1widHJhY2VzXCJdIH1bXSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4vdGVzdC1jb21tYW5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcblxuaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuXG5pbXBvcnQgeyB0eXBlIFNvbmFtdUNvbmZpZyB9IGZyb20gXCIuLi9hcGkvY29uZmlnXCI7XG5pbXBvcnQgeyBsb2FkQ29uZmlnIH0gZnJvbSBcIi4uL2FwaS9jb25maWdcIjtcbmltcG9ydCB7IHR5cGUgUnVuUmVzdWx0LCB0eXBlIFRlc3RDYXNlUmVzdWx0IH0gZnJvbSBcIi4uL3Rlc3RpbmdcIjtcbmltcG9ydCB7IGZpbmRBcGlSb290UGF0aCB9IGZyb20gXCIuLi91dGlscy91dGlsc1wiO1xuXG5hc3luYyBmdW5jdGlvbiBsb2FkVGVzdENvbmZpZygpOiBQcm9taXNlPFNvbmFtdUNvbmZpZz4ge1xuICBjb25zdCBwcmV2Vml0ZXN0ID0gcHJvY2Vzcy5lbnYuVklURVNUO1xuICBwcm9jZXNzLmVudi5WSVRFU1QgPSBcInRydWVcIjtcbiAgdHJ5IHtcbiAgICBjb25zdCBhcGlSb290UGF0aCA9IGZpbmRBcGlSb290UGF0aCgpO1xuICAgIHJldHVybiBhd2FpdCBsb2FkQ29uZmlnKGFwaVJvb3RQYXRoKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBpZiAocHJldlZpdGVzdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWxldGUgcHJvY2Vzcy5lbnYuVklURVNUO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcm9jZXNzLmVudi5WSVRFU1QgPSBwcmV2Vml0ZXN0O1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZXNvbHZlVGVzdEJhc2VVcmwoY29uZmlnOiBTb25hbXVDb25maWcpOiB7XG4gIGhvc3Q6IHN0cmluZztcbiAgcG9ydDogbnVtYmVyO1xuICByb3V0ZVByZWZpeDogc3RyaW5nO1xuICBiYXNlVXJsOiBzdHJpbmc7XG59IHtcbiAgY29uc3QgcG9ydCA9IGNvbmZpZy5zZXJ2ZXIubGlzdGVuPy5wb3J0ID8/IDMwMDA7XG4gIGNvbnN0IGhvc3QgPSBjb25maWcuc2VydmVyLmxpc3Rlbj8uaG9zdCA/PyBcImxvY2FsaG9zdFwiO1xuICBjb25zdCByb3V0ZVByZWZpeCA9IGNvbmZpZy50ZXN0Py5kZXZSdW5uZXI/LnJvdXRlUHJlZml4ID8/IFwiL19fdGVzdF9fXCI7XG4gIHJldHVybiB7IGhvc3QsIHBvcnQsIHJvdXRlUHJlZml4LCBiYXNlVXJsOiBgaHR0cDovLyR7aG9zdH06JHtwb3J0fSR7cm91dGVQcmVmaXh9YCB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdENvbW1hbmQoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGFyZ3MgPSBwcm9jZXNzLmFyZ3Yuc2xpY2UoMyk7XG5cbiAgY29uc3QgY29uZmlnID0gYXdhaXQgbG9hZFRlc3RDb25maWcoKTtcblxuICAvLyBwcm9jZXNzLmFyZ3Yg7YyM7IuxOiBzb25hbXUgdGVzdCBbZmlsZS4uLl0gLS1wYXR0ZXJuIFwi7J2066aEXCIgLS10cmFjZXMgLS1zdGF0dXNcbiAgY29uc3QgZmlsZXM6IHN0cmluZ1tdID0gW107XG4gIGxldCBwYXR0ZXJuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGxldCBzaG93VHJhY2VzID0gZmFsc2U7XG4gIGxldCBzaG93U3RhdHVzID0gZmFsc2U7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgYXJnID0gYXJnc1tpXTtcbiAgICBpZiAoYXJnID09PSBcIi0tcGF0dGVyblwiIHx8IGFyZyA9PT0gXCItcFwiKSB7XG4gICAgICBwYXR0ZXJuID0gYXJnc1srK2ldO1xuICAgIH0gZWxzZSBpZiAoYXJnID09PSBcIi0tdHJhY2VzXCIgfHwgYXJnID09PSBcIi10XCIpIHtcbiAgICAgIHNob3dUcmFjZXMgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoYXJnID09PSBcIi0tc3RhdHVzXCIgfHwgYXJnID09PSBcIi1zXCIpIHtcbiAgICAgIHNob3dTdGF0dXMgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoIWFyZy5zdGFydHNXaXRoKFwiLVwiKSkge1xuICAgICAgZmlsZXMucHVzaChhcmcpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChzaG93U3RhdHVzKSB7XG4gICAgcmV0dXJuIHRlc3RTdGF0dXNDb21tYW5kKGNvbmZpZyk7XG4gIH1cblxuICBpZiAoIWNvbmZpZy50ZXN0Py5kZXZSdW5uZXI/LmVuYWJsZWQpIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgY2hhbGsucmVkKFxuICAgICAgICBcImRldlJ1bm5lcuqwgCDtmZzshLHtmZTrkJjsp4Ag7JWK7JWY7Iq164uI64ukLiBzb25hbXUuY29uZmlnLnRz7JeQ7IScIHRlc3QuZGV2UnVubmVyLmVuYWJsZWQ6IHRydWUg7ISk7KCV7J20IO2VhOyalO2VqeuLiOuLpFwiLFxuICAgICAgKSxcbiAgICApO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxuXG4gIGNvbnN0IHsgYmFzZVVybCB9ID0gcmVzb2x2ZVRlc3RCYXNlVXJsKGNvbmZpZyk7XG4gIGNvbnN0IHVybCA9IGAke2Jhc2VVcmx9L3J1bmA7XG5cbiAgY29uc3QgcGF5bG9hZDogeyBmaWxlcz86IHN0cmluZ1tdOyBwYXR0ZXJuPzogc3RyaW5nIH0gPSB7fTtcbiAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICBwYXlsb2FkLmZpbGVzID0gZmlsZXM7XG4gIH1cbiAgaWYgKHBhdHRlcm4pIHtcbiAgICBwYXlsb2FkLnBhdHRlcm4gPSBwYXR0ZXJuO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLFxuICAgIH0pO1xuXG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBjaGFsay5yZWQoXG4gICAgICAgICAgXCJkZXZSdW5uZXLqsIAg7Zmc7ISx7ZmU65CY7KeAIOyViuyVmOyKteuLiOuLpC4gc29uYW11LmNvbmZpZy50c+yXkOyEnCB0ZXN0LmRldlJ1bm5lci5lbmFibGVkOiB0cnVlIOyEpOygleydtCDtlYTsmpTtlanri4jri6RcIixcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICBjb25zdCBlcnJvckJvZHkgPSAoYXdhaXQgcmVzcG9uc2UuanNvbigpKSBhcyB7IGVycm9yPzogc3RyaW5nIH07XG4gICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZChcIlZpdGVzdCDsnbjsiqTthLTsiqTqsIAg7JWE7KeBIOykgOu5hOuQmOyngCDslYrslZjsirXri4jri6RcIikpO1xuICAgICAgaWYgKGVycm9yQm9keS5lcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZChlcnJvckJvZHkuZXJyb3IpKTtcbiAgICAgIH1cbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZChg7JiI7IOB7ZWY7KeAIOuqu+2VnCDsnZHri7U6ICR7cmVzcG9uc2Uuc3RhdHVzfWApKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSAoYXdhaXQgcmVzcG9uc2UuanNvbigpKSBhcyBSdW5SZXN1bHQ7XG5cbiAgICBjb25zdCB7IHBhc3NlZCwgZmFpbGVkOiBmYWlsZWRDb3VudCwgdG90YWwsIGR1cmF0aW9uTXMgfSA9IHJlc3VsdC5zdW1tYXJ5O1xuICAgIGNvbnN0IHBhc3NlZFN0ciA9IGNoYWxrLmdyZWVuKGAke3Bhc3NlZH0gcGFzc2VkYCk7XG4gICAgY29uc3QgZmFpbGVkU3RyID1cbiAgICAgIGZhaWxlZENvdW50ID4gMCA/IGNoYWxrLnJlZChgJHtmYWlsZWRDb3VudH0gZmFpbGVkYCkgOiBgJHtmYWlsZWRDb3VudH0gZmFpbGVkYDtcbiAgICBjb25zb2xlLmxvZyhgXFxuVGVzdHM6ICR7cGFzc2VkU3RyfSwgJHtmYWlsZWRTdHJ9LCAke3RvdGFsfSB0b3RhbGApO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmRpbShgRHVyYXRpb246ICR7ZHVyYXRpb25Nc31tc2ApKTtcblxuICAgIGNvbnN0IGZhaWxlZFRlc3RzID0gY29sbGVjdEZhaWxlZEZyb21SZXN1bHRzKHJlc3VsdC5yZXN1bHRzKTtcbiAgICBpZiAoZmFpbGVkVGVzdHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc29sZS5sb2coY2hhbGsucmVkLmJvbGQoXCJcXG5GYWlsZWQgdGVzdHM6XCIpKTtcbiAgICAgIGZvciAoY29uc3QgZiBvZiBmYWlsZWRUZXN0cykge1xuICAgICAgICBjb25zb2xlLmxvZyhgICAke2NoYWxrLnJlZChcInhcIil9ICR7Zi5mdWxsTmFtZX0gJHtjaGFsay5kaW0oYCgke2YuZmlsZX0pYCl9YCk7XG4gICAgICAgIGlmIChmLmVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYCAgICAke2NoYWxrLnJlZChmLmVycm9yLm1lc3NhZ2UpfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHNob3dUcmFjZXMpIHtcbiAgICAgIGNvbnN0IHRlc3RzV2l0aFRyYWNlcyA9IGNvbGxlY3RUcmFjZXNGcm9tUmVzdWx0cyhyZXN1bHQucmVzdWx0cyk7XG4gICAgICBpZiAodGVzdHNXaXRoVHJhY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbi5ib2xkKFwiXFxuVHJhY2VzOlwiKSk7XG4gICAgICAgIGZvciAoY29uc3QgeyB0ZXN0TmFtZSwgZmlsZSwgdHJhY2VzIH0gb2YgdGVzdHNXaXRoVHJhY2VzKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYFxcbiAgJHtjaGFsay5ib2xkKHRlc3ROYW1lKX1gKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgICAke2NoYWxrLmRpbShwYXRoLmJhc2VuYW1lKGZpbGUpKX1gKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IHRyYWNlIG9mIHRyYWNlcykge1xuICAgICAgICAgICAgY29uc3QgbG9jID0gYCR7cGF0aC5iYXNlbmFtZSh0cmFjZS5maWxlUGF0aCl9OiR7dHJhY2UubGluZU51bWJlcn1gO1xuICAgICAgICAgICAgY29uc3QgdmFsdWVTdHIgPVxuICAgICAgICAgICAgICB0eXBlb2YgdHJhY2UudmFsdWUgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICA/IHRyYWNlLnZhbHVlXG4gICAgICAgICAgICAgICAgOiAoSlNPTi5zdHJpbmdpZnkodHJhY2UudmFsdWUsIG51bGwsIDIpID8/IFwidW5kZWZpbmVkXCIpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFxcbiAgICAke2NoYWxrLnllbGxvdyhgWyR7dHJhY2Uua2V5fV1gKX0gJHtjaGFsay5kaW0obG9jKX1gKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGVudGVkID0gdmFsdWVTdHIuc3BsaXQoXCJcXG5cIikuam9pbihcIlxcbiAgICBcIik7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgICAgICR7aW5kZW50ZWR9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFyZXN1bHQub2spIHtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChlcnIgaW5zdGFuY2VvZiBUeXBlRXJyb3IgJiYgZXJyLmNhdXNlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBjaGFsay5yZWQoXCJkZXYg7ISc67KE7JeQIOyXsOqysO2VoCDsiJgg7JeG7Iq164uI64ukLiBzb25hbXUgZGV26rCAIOyLpO2WiSDspJHsnbjsp4Ag7ZmV7J247ZWY7IS47JqUXCIpLFxuICAgICAgKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbGxlY3RGYWlsZWRGcm9tUmVzdWx0cyhub2RlczogVGVzdENhc2VSZXN1bHRbXSk6IFRlc3RDYXNlUmVzdWx0W10ge1xuICBjb25zdCByZXN1bHQ6IFRlc3RDYXNlUmVzdWx0W10gPSBbXTtcbiAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgaWYgKG5vZGUua2luZCA9PT0gXCJ0ZXN0XCIgJiYgbm9kZS5zdGF0ZSA9PT0gXCJmYWlsZWRcIikge1xuICAgICAgcmVzdWx0LnB1c2gobm9kZSk7XG4gICAgfVxuICAgIGlmIChub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIHJlc3VsdC5wdXNoKC4uLmNvbGxlY3RGYWlsZWRGcm9tUmVzdWx0cyhub2RlLmNoaWxkcmVuKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGNvbGxlY3RUcmFjZXNGcm9tUmVzdWx0cyhcbiAgbm9kZXM6IFRlc3RDYXNlUmVzdWx0W10sXG4pOiB7IHRlc3ROYW1lOiBzdHJpbmc7IGZpbGU6IHN0cmluZzsgdHJhY2VzOiBUZXN0Q2FzZVJlc3VsdFtcInRyYWNlc1wiXSB9W10ge1xuICBjb25zdCByZXN1bHQ6IHsgdGVzdE5hbWU6IHN0cmluZzsgZmlsZTogc3RyaW5nOyB0cmFjZXM6IFRlc3RDYXNlUmVzdWx0W1widHJhY2VzXCJdIH1bXSA9IFtdO1xuICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICBpZiAobm9kZS5raW5kID09PSBcInRlc3RcIiAmJiBub2RlLnRyYWNlcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXN1bHQucHVzaCh7IHRlc3ROYW1lOiBub2RlLmZ1bGxOYW1lLCBmaWxlOiBub2RlLmZpbGUsIHRyYWNlczogbm9kZS50cmFjZXMgfSk7XG4gICAgfVxuICAgIGlmIChub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIHJlc3VsdC5wdXNoKC4uLmNvbGxlY3RUcmFjZXNGcm9tUmVzdWx0cyhub2RlLmNoaWxkcmVuKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHRlc3RTdGF0dXNDb21tYW5kKGNvbmZpZzogU29uYW11Q29uZmlnKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghY29uZmlnLnRlc3Q/LmRldlJ1bm5lcj8uZW5hYmxlZCkge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBjaGFsay5yZWQoXG4gICAgICAgIFwiZGV2UnVubmVy6rCAIO2ZnOyEse2ZlOuQmOyngCDslYrslZjsirXri4jri6QuIHNvbmFtdS5jb25maWcudHPsl5DshJwgdGVzdC5kZXZSdW5uZXIuZW5hYmxlZDogdHJ1ZSDshKTsoJXsnbQg7ZWE7JqU7ZWp64uI64ukXCIsXG4gICAgICApLFxuICAgICk7XG4gICAgcHJvY2Vzcy5leGl0KDEpO1xuICB9XG5cbiAgY29uc3QgeyBiYXNlVXJsIH0gPSByZXNvbHZlVGVzdEJhc2VVcmwoY29uZmlnKTtcbiAgY29uc3QgdXJsID0gYCR7YmFzZVVybH0vc3RhdHVzYDtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKGDsmIjsg4HtlZjsp4Ag66q77ZWcIOydkeuLtTogJHtyZXNwb25zZS5zdGF0dXN9YCkpO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXR1cyA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIHtcbiAgICAgIHJlYWR5OiBib29sZWFuO1xuICAgICAgcnVubmluZzogYm9vbGVhbjtcbiAgICAgIGxhc3RSdW5BdDogc3RyaW5nIHwgbnVsbDtcbiAgICAgIHNzZUF2YWlsYWJsZTogYm9vbGVhbjtcbiAgICB9O1xuXG4gICAgY29uc29sZS5sb2coY2hhbGsuYm9sZChcIkRldlJ1bm5lciDsg4Htg5w6XCIpKTtcbiAgICBjb25zb2xlLmxvZyhgICByZWFkeTogICAgICAgICR7c3RhdHVzLnJlYWR5ID8gY2hhbGsuZ3JlZW4oXCJ0cnVlXCIpIDogY2hhbGsucmVkKFwiZmFsc2VcIil9YCk7XG4gICAgY29uc29sZS5sb2coYCAgcnVubmluZzogICAgICAke3N0YXR1cy5ydW5uaW5nID8gY2hhbGsueWVsbG93KFwidHJ1ZVwiKSA6IFwiZmFsc2VcIn1gKTtcbiAgICBjb25zb2xlLmxvZyhgICBsYXN0UnVuQXQ6ICAgICR7c3RhdHVzLmxhc3RSdW5BdCA/PyBjaGFsay5kaW0oXCLsl4bsnYxcIil9YCk7XG4gICAgY29uc29sZS5sb2coYCAgc3NlQXZhaWxhYmxlOiAke3N0YXR1cy5zc2VBdmFpbGFibGUgPyBjaGFsay5ncmVlbihcInRydWVcIikgOiBcImZhbHNlXCJ9YCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChlcnIgaW5zdGFuY2VvZiBUeXBlRXJyb3IgJiYgZXJyLmNhdXNlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBjaGFsay5yZWQoXCJkZXYg7ISc67KE7JeQIOyXsOqysO2VoCDsiJgg7JeG7Iq164uI64ukLiBzb25hbXUgZGV26rCAIOyLpO2WiSDspJHsnbjsp4Ag7ZmV7J247ZWY7IS47JqUXCIpLFxuICAgICAgKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OzthQUsyQztZQUVNO0FBRWpELGVBQWUsaUJBQXdDO0NBQ3JELE1BQU0sYUFBYSxRQUFRLElBQUk7QUFDL0IsU0FBUSxJQUFJLFNBQVM7QUFDckIsS0FBSTtFQUNGLE1BQU0sY0FBYyxpQkFBaUI7QUFDckMsU0FBTyxNQUFNLFdBQVcsWUFBWTtXQUM1QjtBQUNSLE1BQUksZUFBZSxXQUFXO0FBQzVCLFVBQU8sUUFBUSxJQUFJO1NBQ2Q7QUFDTCxXQUFRLElBQUksU0FBUzs7OztBQUszQixTQUFTLG1CQUFtQixRQUsxQjtDQUNBLE1BQU0sT0FBTyxPQUFPLE9BQU8sUUFBUSxRQUFRO0NBQzNDLE1BQU0sT0FBTyxPQUFPLE9BQU8sUUFBUSxRQUFRO0NBQzNDLE1BQU0sY0FBYyxPQUFPLE1BQU0sV0FBVyxlQUFlO0FBQzNELFFBQU87RUFBRTtFQUFNO0VBQU07RUFBYSxTQUFTLFVBQVUsS0FBSyxHQUFHLE9BQU87RUFBZTs7QUFHckYsZUFBc0IsY0FBNkI7Q0FDakQsTUFBTSxPQUFPLFFBQVEsS0FBSyxNQUFNLEVBQUU7Q0FFbEMsTUFBTSxTQUFTLE1BQU0sZ0JBQWdCO0NBR3JDLE1BQU1BLFFBQWtCLEVBQUU7Q0FDMUIsSUFBSUM7Q0FDSixJQUFJLGFBQWE7Q0FDakIsSUFBSSxhQUFhO0FBRWpCLE1BQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxLQUFLLFFBQVEsS0FBSztFQUNwQyxNQUFNLE1BQU0sS0FBSztBQUNqQixNQUFJLFFBQVEsZUFBZSxRQUFRLE1BQU07QUFDdkMsYUFBVSxLQUFLLEVBQUU7YUFDUixRQUFRLGNBQWMsUUFBUSxNQUFNO0FBQzdDLGdCQUFhO2FBQ0osUUFBUSxjQUFjLFFBQVEsTUFBTTtBQUM3QyxnQkFBYTthQUNKLENBQUMsSUFB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
162
+
163
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1jb21tYW5kLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4vdGVzdC1jb21tYW5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcblxuaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuXG5pbXBvcnQgeyB0eXBlIFNvbmFtdUNvbmZpZyB9IGZyb20gXCIuLi9hcGkvY29uZmlnXCI7XG5pbXBvcnQgeyBsb2FkQ29uZmlnIH0gZnJvbSBcIi4uL2FwaS9jb25maWdcIjtcbmltcG9ydCB7IHR5cGUgUnVuUmVzdWx0LCB0eXBlIFRlc3RDYXNlUmVzdWx0IH0gZnJvbSBcIi4uL3Rlc3RpbmdcIjtcbmltcG9ydCB7IGZpbmRBcGlSb290UGF0aCB9IGZyb20gXCIuLi91dGlscy91dGlsc1wiO1xuXG5hc3luYyBmdW5jdGlvbiBsb2FkRGV2U2VydmVyQ29uZmlnKCk6IFByb21pc2U8U29uYW11Q29uZmlnPiB7XG4gIGNvbnN0IHByZXZWaXRlc3QgPSBwcm9jZXNzLmVudi5WSVRFU1Q7XG4gIHByb2Nlc3MuZW52LlZJVEVTVCA9IFwidHJ1ZVwiO1xuICB0cnkge1xuICAgIGNvbnN0IGFwaVJvb3RQYXRoID0gZmluZEFwaVJvb3RQYXRoKCk7XG4gICAgcmV0dXJuIGF3YWl0IGxvYWRDb25maWcoYXBpUm9vdFBhdGgpO1xuICB9IGZpbmFsbHkge1xuICAgIGlmIChwcmV2Vml0ZXN0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlbGV0ZSBwcm9jZXNzLmVudi5WSVRFU1Q7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByb2Nlc3MuZW52LlZJVEVTVCA9IHByZXZWaXRlc3Q7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVUZXN0QmFzZVVybChjb25maWc6IFNvbmFtdUNvbmZpZyk6IHtcbiAgaG9zdDogc3RyaW5nO1xuICBwb3J0OiBudW1iZXI7XG4gIHJvdXRlUHJlZml4OiBzdHJpbmc7XG4gIGJhc2VVcmw6IHN0cmluZztcbn0ge1xuICBjb25zdCBwb3J0ID0gY29uZmlnLnNlcnZlci5saXN0ZW4/LnBvcnQgPz8gMzAwMDtcbiAgY29uc3QgaG9zdCA9IGNvbmZpZy5zZXJ2ZXIubGlzdGVuPy5ob3N0ID8/IFwibG9jYWxob3N0XCI7XG4gIGNvbnN0IHJvdXRlUHJlZml4ID0gY29uZmlnLnRlc3Q/LmRldlJ1bm5lcj8ucm91dGVQcmVmaXggPz8gXCIvX190ZXN0X19cIjtcbiAgcmV0dXJuIHsgaG9zdCwgcG9ydCwgcm91dGVQcmVmaXgsIGJhc2VVcmw6IGBodHRwOi8vJHtob3N0fToke3BvcnR9JHtyb3V0ZVByZWZpeH1gIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXN0Q29tbWFuZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgYXJncyA9IHByb2Nlc3MuYXJndi5zbGljZSgzKTtcblxuICBjb25zdCBjb25maWcgPSBhd2FpdCBsb2FkRGV2U2VydmVyQ29uZmlnKCk7XG5cbiAgLy8gcHJvY2Vzcy5hcmd2IO2MjOyLsTogc29uYW11IHRlc3QgW2ZpbGUuLi5dIC0tcGF0dGVybiBcIuydtOumhFwiIC0tdHJhY2VzIC0tc3RhdHVzXG4gIGNvbnN0IGZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgcGF0dGVybjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBsZXQgc2hvd1RyYWNlcyA9IGZhbHNlO1xuICBsZXQgc2hvd1N0YXR1cyA9IGZhbHNlO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGFyZyA9IGFyZ3NbaV07XG4gICAgaWYgKGFyZyA9PT0gXCItLXBhdHRlcm5cIiB8fCBhcmcgPT09IFwiLXBcIikge1xuICAgICAgcGF0dGVybiA9IGFyZ3NbKytpXTtcbiAgICB9IGVsc2UgaWYgKGFyZyA9PT0gXCItLXRyYWNlc1wiIHx8IGFyZyA9PT0gXCItdFwiKSB7XG4gICAgICBzaG93VHJhY2VzID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGFyZyA9PT0gXCItLXN0YXR1c1wiIHx8IGFyZyA9PT0gXCItc1wiKSB7XG4gICAgICBzaG93U3RhdHVzID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKCFhcmcuc3RhcnRzV2l0aChcIi1cIikpIHtcbiAgICAgIGZpbGVzLnB1c2goYXJnKTtcbiAgICB9XG4gIH1cblxuICBpZiAoc2hvd1N0YXR1cykge1xuICAgIHJldHVybiB0ZXN0U3RhdHVzQ29tbWFuZChjb25maWcpO1xuICB9XG5cbiAgaWYgKCFjb25maWcudGVzdD8uZGV2UnVubmVyPy5lbmFibGVkKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgIGNoYWxrLnJlZChcbiAgICAgICAgXCJkZXZSdW5uZXLqsIAg7Zmc7ISx7ZmU65CY7KeAIOyViuyVmOyKteuLiOuLpC4gc29uYW11LmNvbmZpZy50c+yXkOyEnCB0ZXN0LmRldlJ1bm5lci5lbmFibGVkOiB0cnVlIOyEpOygleydtCDtlYTsmpTtlanri4jri6RcIixcbiAgICAgICksXG4gICAgKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cblxuICBjb25zdCB7IGJhc2VVcmwgfSA9IHJlc29sdmVUZXN0QmFzZVVybChjb25maWcpO1xuICBjb25zdCB1cmwgPSBgJHtiYXNlVXJsfS9ydW5gO1xuXG4gIGNvbnN0IHBheWxvYWQ6IHsgZmlsZXM/OiBzdHJpbmdbXTsgcGF0dGVybj86IHN0cmluZyB9ID0ge307XG4gIGlmIChmaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgcGF5bG9hZC5maWxlcyA9IGZpbGVzO1xuICB9XG4gIGlmIChwYXR0ZXJuKSB7XG4gICAgcGF5bG9hZC5wYXR0ZXJuID0gcGF0dGVybjtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICB9KTtcblxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgY2hhbGsucmVkKFxuICAgICAgICAgIFwiZGV2UnVubmVy6rCAIO2ZnOyEse2ZlOuQmOyngCDslYrslZjsirXri4jri6QuIHNvbmFtdS5jb25maWcudHPsl5DshJwgdGVzdC5kZXZSdW5uZXIuZW5hYmxlZDogdHJ1ZSDshKTsoJXsnbQg7ZWE7JqU7ZWp64uI64ukXCIsXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cblxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgY29uc3QgZXJyb3JCb2R5ID0gKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgeyBlcnJvcj86IHN0cmluZyB9O1xuICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoXCJWaXRlc3Qg7J247Iqk7YS07Iqk6rCAIOyVhOyngSDspIDruYTrkJjsp4Ag7JWK7JWY7Iq164uI64ukXCIpKTtcbiAgICAgIGlmIChlcnJvckJvZHkuZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoZXJyb3JCb2R5LmVycm9yKSk7XG4gICAgICB9XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoYOyYiOyDge2VmOyngCDrqrvtlZwg7J2R64u1OiAke3Jlc3BvbnNlLnN0YXR1c31gKSk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgUnVuUmVzdWx0O1xuXG4gICAgY29uc3QgeyBwYXNzZWQsIGZhaWxlZDogZmFpbGVkQ291bnQsIHRvdGFsLCBkdXJhdGlvbk1zIH0gPSByZXN1bHQuc3VtbWFyeTtcbiAgICBjb25zdCBwYXNzZWRTdHIgPSBjaGFsay5ncmVlbihgJHtwYXNzZWR9IHBhc3NlZGApO1xuICAgIGNvbnN0IGZhaWxlZFN0ciA9XG4gICAgICBmYWlsZWRDb3VudCA+IDAgPyBjaGFsay5yZWQoYCR7ZmFpbGVkQ291bnR9IGZhaWxlZGApIDogYCR7ZmFpbGVkQ291bnR9IGZhaWxlZGA7XG4gICAgY29uc29sZS5sb2coYFxcblRlc3RzOiAke3Bhc3NlZFN0cn0sICR7ZmFpbGVkU3RyfSwgJHt0b3RhbH0gdG90YWxgKTtcbiAgICBjb25zb2xlLmxvZyhjaGFsay5kaW0oYER1cmF0aW9uOiAke2R1cmF0aW9uTXN9bXNgKSk7XG5cbiAgICBjb25zdCBmYWlsZWRUZXN0cyA9IGNvbGxlY3RGYWlsZWRGcm9tUmVzdWx0cyhyZXN1bHQucmVzdWx0cyk7XG4gICAgaWYgKGZhaWxlZFRlc3RzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnJlZC5ib2xkKFwiXFxuRmFpbGVkIHRlc3RzOlwiKSk7XG4gICAgICBmb3IgKGNvbnN0IGYgb2YgZmFpbGVkVGVzdHMpIHtcbiAgICAgICAgY29uc29sZS5sb2coYCAgJHtjaGFsay5yZWQoXCJ4XCIpfSAke2YuZnVsbE5hbWV9ICR7Y2hhbGsuZGltKGAoJHtmLmZpbGV9KWApfWApO1xuICAgICAgICBpZiAoZi5lcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGAgICAgJHtjaGFsay5yZWQoZi5lcnJvci5tZXNzYWdlKX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzaG93VHJhY2VzKSB7XG4gICAgICBjb25zdCB0ZXN0c1dpdGhUcmFjZXMgPSBjb2xsZWN0VHJhY2VzRnJvbVJlc3VsdHMocmVzdWx0LnJlc3VsdHMpO1xuICAgICAgaWYgKHRlc3RzV2l0aFRyYWNlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4uYm9sZChcIlxcblRyYWNlczpcIikpO1xuICAgICAgICBmb3IgKGNvbnN0IHsgdGVzdE5hbWUsIGZpbGUsIHRyYWNlcyB9IG9mIHRlc3RzV2l0aFRyYWNlcykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBcXG4gICR7Y2hhbGsuYm9sZCh0ZXN0TmFtZSl9YCk7XG4gICAgICAgICAgY29uc29sZS5sb2coYCAgJHtjaGFsay5kaW0ocGF0aC5iYXNlbmFtZShmaWxlKSl9YCk7XG4gICAgICAgICAgZm9yIChjb25zdCB0cmFjZSBvZiB0cmFjZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGxvYyA9IGAke3BhdGguYmFzZW5hbWUodHJhY2UuZmlsZVBhdGgpfToke3RyYWNlLmxpbmVOdW1iZXJ9YDtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlU3RyID1cbiAgICAgICAgICAgICAgdHlwZW9mIHRyYWNlLnZhbHVlID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgPyB0cmFjZS52YWx1ZVxuICAgICAgICAgICAgICAgIDogKEpTT04uc3RyaW5naWZ5KHRyYWNlLnZhbHVlLCBudWxsLCAyKSA/PyBcInVuZGVmaW5lZFwiKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBcXG4gICAgJHtjaGFsay55ZWxsb3coYFske3RyYWNlLmtleX1dYCl9ICR7Y2hhbGsuZGltKGxvYyl9YCk7XG4gICAgICAgICAgICBjb25zdCBpbmRlbnRlZCA9IHZhbHVlU3RyLnNwbGl0KFwiXFxuXCIpLmpvaW4oXCJcXG4gICAgXCIpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coYCAgICAke2luZGVudGVkfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghcmVzdWx0Lm9rKSB7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoZXJyIGluc3RhbmNlb2YgVHlwZUVycm9yICYmIGVyci5jYXVzZSkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgY2hhbGsucmVkKFwiZGV2IOyEnOuyhOyXkCDsl7DqsrDtlaAg7IiYIOyXhuyKteuLiOuLpC4gc29uYW11IGRlduqwgCDsi6Ttlokg7KSR7J247KeAIO2ZleyduO2VmOyEuOyalFwiKSxcbiAgICAgICk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuICAgIHRocm93IGVycjtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb2xsZWN0RmFpbGVkRnJvbVJlc3VsdHMobm9kZXM6IFRlc3RDYXNlUmVzdWx0W10pOiBUZXN0Q2FzZVJlc3VsdFtdIHtcbiAgY29uc3QgcmVzdWx0OiBUZXN0Q2FzZVJlc3VsdFtdID0gW107XG4gIGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xuICAgIGlmIChub2RlLmtpbmQgPT09IFwidGVzdFwiICYmIG5vZGUuc3RhdGUgPT09IFwiZmFpbGVkXCIpIHtcbiAgICAgIHJlc3VsdC5wdXNoKG5vZGUpO1xuICAgIH1cbiAgICBpZiAobm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICByZXN1bHQucHVzaCguLi5jb2xsZWN0RmFpbGVkRnJvbVJlc3VsdHMobm9kZS5jaGlsZHJlbikpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBjb2xsZWN0VHJhY2VzRnJvbVJlc3VsdHMoXG4gIG5vZGVzOiBUZXN0Q2FzZVJlc3VsdFtdLFxuKTogeyB0ZXN0TmFtZTogc3RyaW5nOyBmaWxlOiBzdHJpbmc7IHRyYWNlczogVGVzdENhc2VSZXN1bHRbXCJ0cmFjZXNcIl0gfVtdIHtcbiAgY29uc3QgcmVzdWx0OiB7IHRlc3ROYW1lOiBzdHJpbmc7IGZpbGU6IHN0cmluZzsgdHJhY2VzOiBUZXN0Q2FzZVJlc3VsdFtcInRyYWNlc1wiXSB9W10gPSBbXTtcbiAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgaWYgKG5vZGUua2luZCA9PT0gXCJ0ZXN0XCIgJiYgbm9kZS50cmFjZXMubGVuZ3RoID4gMCkge1xuICAgICAgcmVzdWx0LnB1c2goeyB0ZXN0TmFtZTogbm9kZS5mdWxsTmFtZSwgZmlsZTogbm9kZS5maWxlLCB0cmFjZXM6IG5vZGUudHJhY2VzIH0pO1xuICAgIH1cbiAgICBpZiAobm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICByZXN1bHQucHVzaCguLi5jb2xsZWN0VHJhY2VzRnJvbVJlc3VsdHMobm9kZS5jaGlsZHJlbikpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5hc3luYyBmdW5jdGlvbiB0ZXN0U3RhdHVzQ29tbWFuZChjb25maWc6IFNvbmFtdUNvbmZpZyk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIWNvbmZpZy50ZXN0Py5kZXZSdW5uZXI/LmVuYWJsZWQpIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgY2hhbGsucmVkKFxuICAgICAgICBcImRldlJ1bm5lcuqwgCDtmZzshLHtmZTrkJjsp4Ag7JWK7JWY7Iq164uI64ukLiBzb25hbXUuY29uZmlnLnRz7JeQ7IScIHRlc3QuZGV2UnVubmVyLmVuYWJsZWQ6IHRydWUg7ISk7KCV7J20IO2VhOyalO2VqeuLiOuLpFwiLFxuICAgICAgKSxcbiAgICApO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxuXG4gIGNvbnN0IHsgYmFzZVVybCB9ID0gcmVzb2x2ZVRlc3RCYXNlVXJsKGNvbmZpZyk7XG4gIGNvbnN0IHVybCA9IGAke2Jhc2VVcmx9L3N0YXR1c2A7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCk7XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZChg7JiI7IOB7ZWY7KeAIOuqu+2VnCDsnZHri7U6ICR7cmVzcG9uc2Uuc3RhdHVzfWApKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGF0dXMgPSAoYXdhaXQgcmVzcG9uc2UuanNvbigpKSBhcyB7XG4gICAgICByZWFkeTogYm9vbGVhbjtcbiAgICAgIHJ1bm5pbmc6IGJvb2xlYW47XG4gICAgICBsYXN0UnVuQXQ6IHN0cmluZyB8IG51bGw7XG4gICAgICBzc2VBdmFpbGFibGU6IGJvb2xlYW47XG4gICAgfTtcblxuICAgIGNvbnNvbGUubG9nKGNoYWxrLmJvbGQoXCJEZXZSdW5uZXIg7IOB7YOcOlwiKSk7XG4gICAgY29uc29sZS5sb2coYCAgcmVhZHk6ICAgICAgICAke3N0YXR1cy5yZWFkeSA/IGNoYWxrLmdyZWVuKFwidHJ1ZVwiKSA6IGNoYWxrLnJlZChcImZhbHNlXCIpfWApO1xuICAgIGNvbnNvbGUubG9nKGAgIHJ1bm5pbmc6ICAgICAgJHtzdGF0dXMucnVubmluZyA/IGNoYWxrLnllbGxvdyhcInRydWVcIikgOiBcImZhbHNlXCJ9YCk7XG4gICAgY29uc29sZS5sb2coYCAgbGFzdFJ1bkF0OiAgICAke3N0YXR1cy5sYXN0UnVuQXQgPz8gY2hhbGsuZGltKFwi7JeG7J2MXCIpfWApO1xuICAgIGNvbnNvbGUubG9nKGAgIHNzZUF2YWlsYWJsZTogJHtzdGF0dXMuc3NlQXZhaWxhYmxlID8gY2hhbGsuZ3JlZW4oXCJ0cnVlXCIpIDogXCJmYWxzZVwifWApO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoZXJyIGluc3RhbmNlb2YgVHlwZUVycm9yICYmIGVyci5jYXVzZSkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgY2hhbGsucmVkKFwiZGV2IOyEnOuyhOyXkCDsl7DqsrDtlaAg7IiYIOyXhuyKteuLiOuLpC4gc29uYW11IGRlduqwgCDsi6Ttlokg7KSR7J247KeAIO2ZleyduO2VmOyEuOyalFwiKSxcbiAgICAgICk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuICAgIHRocm93IGVycjtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztZQUswQztXQUVNO0FBRWhELGVBQWUsc0JBQTZDO0NBQzFELE1BQU0sYUFBYSxRQUFRLElBQUk7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
@@ -1,15 +1,14 @@
1
1
  import { findApiRootPath, init_utils } from "../utils/utils.js";
2
2
  import { ensureTsLoaderRegistered, init_ts_loader_registration } from "./ts-loader-registration.js";
3
-
4
3
  //#region src/bin/ts-loader-register.ts
5
- await init_utils();
6
- await init_ts_loader_registration();
4
+ init_utils();
5
+ init_ts_loader_registration();
7
6
  /**
8
7
  * @sonamu-kit/ts-loader/loader를 등록하는 스크립트입니다.
9
8
  * 이 스크립트는 sonamu cli로 dev 실행할 때 --import로 실행됩니다.
10
9
  */
11
10
  await ensureTsLoaderRegistered(findApiRootPath());
12
-
13
11
  //#endregion
14
- export { };
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHMtbG9hZGVyLXJlZ2lzdGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4vdHMtbG9hZGVyLXJlZ2lzdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbmRBcGlSb290UGF0aCB9IGZyb20gXCIuLi91dGlscy91dGlscy5qc1wiO1xuaW1wb3J0IHsgZW5zdXJlVHNMb2FkZXJSZWdpc3RlcmVkIH0gZnJvbSBcIi4vdHMtbG9hZGVyLXJlZ2lzdHJhdGlvbi5qc1wiO1xuXG4vKipcbiAqIEBzb25hbXUta2l0L3RzLWxvYWRlci9sb2FkZXLrpbwg65Ox66Gd7ZWY64qUIOyKpO2BrOumve2KuOyeheuLiOuLpC5cbiAqIOydtCDsiqTtgazrpr3tirjripQgc29uYW11IGNsaeuhnCBkZXYg7Iuk7ZaJ7ZWgIOuVjCAtLWltcG9ydOuhnCDsi6TtlonrkKnri4jri6QuXG4gKi9cbmF3YWl0IGVuc3VyZVRzTG9hZGVyUmVnaXN0ZXJlZChmaW5kQXBpUm9vdFBhdGgoKSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7a0JBQW9EO21DQUNtQjs7Ozs7QUFNdkUsTUFBTSx5QkFBeUIsaUJBQWlCLENBQUMifQ==
12
+ export {};
13
+
14
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHMtbG9hZGVyLXJlZ2lzdGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4vdHMtbG9hZGVyLXJlZ2lzdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbmRBcGlSb290UGF0aCB9IGZyb20gXCIuLi91dGlscy91dGlscy5qc1wiO1xuaW1wb3J0IHsgZW5zdXJlVHNMb2FkZXJSZWdpc3RlcmVkIH0gZnJvbSBcIi4vdHMtbG9hZGVyLXJlZ2lzdHJhdGlvbi5qc1wiO1xuXG4vKipcbiAqIEBzb25hbXUta2l0L3RzLWxvYWRlci9sb2FkZXLrpbwg65Ox66Gd7ZWY64qUIOyKpO2BrOumve2KuOyeheuLiOuLpC5cbiAqIOydtCDsiqTtgazrpr3tirjripQgc29uYW11IGNsaeuhnCBkZXYg7Iuk7ZaJ7ZWgIOuVjCAtLWltcG9ydOuhnCDsi6TtlonrkKnri4jri6QuXG4gKi9cbmF3YWl0IGVuc3VyZVRzTG9hZGVyUmVnaXN0ZXJlZChmaW5kQXBpUm9vdFBhdGgoKSk7XG4iXSwibWFwcGluZ3MiOiI7OztXQUFtRDs0QkFDbUI7Ozs7O0FBTXRFLE1BQU0seUJBQXlCLGdCQUFnQixDQUFDIn0=
@@ -1,23 +1,16 @@
1
- import { __esmMin } from "../_virtual/rolldown_runtime.js";
1
+ import { __esmMin } from "../_virtual/_rolldown/runtime.js";
2
2
  import { createRequire, register } from "node:module";
3
3
  import { pathToFileURL } from "node:url";
4
-
5
4
  //#region src/bin/ts-loader-registration.ts
6
5
  function getTsLoaderRegisterState() {
7
6
  const globalState = globalThis;
8
- if (!globalState[tsLoaderRegisterStateKey]) {
9
- globalState[tsLoaderRegisterStateKey] = { registered: false };
10
- }
7
+ if (!globalState[tsLoaderRegisterStateKey]) globalState[tsLoaderRegisterStateKey] = { registered: false };
11
8
  return globalState[tsLoaderRegisterStateKey];
12
9
  }
13
10
  async function ensureTsLoaderRegistered(apiRoot) {
14
11
  const state = getTsLoaderRegisterState();
15
- if (state.registered) {
16
- return;
17
- }
18
- void apiRoot;
19
- const loaderPath = require.resolve("@sonamu-kit/ts-loader/loader");
20
- register(pathToFileURL(loaderPath).href, { parentURL: import.meta.url });
12
+ if (state.registered) return;
13
+ register(pathToFileURL(require.resolve("@sonamu-kit/ts-loader/loader")).href, { parentURL: import.meta.url });
21
14
  state.registered = true;
22
15
  }
23
16
  var tsLoaderRegisterStateKey, require;
@@ -25,8 +18,8 @@ var init_ts_loader_registration = __esmMin((() => {
25
18
  tsLoaderRegisterStateKey = Symbol.for("sonamu.ts-loader-register.state");
26
19
  require = createRequire(import.meta.url);
27
20
  }));
28
-
29
21
  //#endregion
30
22
  init_ts_loader_registration();
31
23
  export { ensureTsLoaderRegistered, init_ts_loader_registration };
32
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHMtbG9hZGVyLXJlZ2lzdHJhdGlvbi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluL3RzLWxvYWRlci1yZWdpc3RyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUmVxdWlyZSB9IGZyb20gXCJub2RlOm1vZHVsZVwiO1xuaW1wb3J0IHsgcmVnaXN0ZXIgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcbmltcG9ydCB7IHBhdGhUb0ZpbGVVUkwgfSBmcm9tIFwibm9kZTp1cmxcIjtcblxuY29uc3QgdHNMb2FkZXJSZWdpc3RlclN0YXRlS2V5ID0gU3ltYm9sLmZvcihcInNvbmFtdS50cy1sb2FkZXItcmVnaXN0ZXIuc3RhdGVcIik7XG5jb25zdCByZXF1aXJlID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpO1xuXG50eXBlIFRzTG9hZGVyUmVnaXN0ZXJTdGF0ZSA9IHtcbiAgcmVnaXN0ZXJlZDogYm9vbGVhbjtcbn07XG5cbnR5cGUgR2xvYmFsV2l0aFRzTG9hZGVyUmVnaXN0ZXJTdGF0ZSA9IHR5cGVvZiBnbG9iYWxUaGlzICYge1xuICBbdHNMb2FkZXJSZWdpc3RlclN0YXRlS2V5XT86IFRzTG9hZGVyUmVnaXN0ZXJTdGF0ZTtcbn07XG5cbmZ1bmN0aW9uIGdldFRzTG9hZGVyUmVnaXN0ZXJTdGF0ZSgpOiBUc0xvYWRlclJlZ2lzdGVyU3RhdGUge1xuICBjb25zdCBnbG9iYWxTdGF0ZSA9IGdsb2JhbFRoaXMgYXMgR2xvYmFsV2l0aFRzTG9hZGVyUmVnaXN0ZXJTdGF0ZTtcblxuICBpZiAoIWdsb2JhbFN0YXRlW3RzTG9hZGVyUmVnaXN0ZXJTdGF0ZUtleV0pIHtcbiAgICBnbG9iYWxTdGF0ZVt0c0xvYWRlclJlZ2lzdGVyU3RhdGVLZXldID0geyByZWdpc3RlcmVkOiBmYWxzZSB9O1xuICB9XG5cbiAgcmV0dXJuIGdsb2JhbFN0YXRlW3RzTG9hZGVyUmVnaXN0ZXJTdGF0ZUtleV07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVUc0xvYWRlclJlZ2lzdGVyZWQoYXBpUm9vdDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHN0YXRlID0gZ2V0VHNMb2FkZXJSZWdpc3RlclN0YXRlKCk7XG4gIGlmIChzdGF0ZS5yZWdpc3RlcmVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdm9pZCBhcGlSb290O1xuICBjb25zdCBsb2FkZXJQYXRoID0gcmVxdWlyZS5yZXNvbHZlKFwiQHNvbmFtdS1raXQvdHMtbG9hZGVyL2xvYWRlclwiKTtcblxuICByZWdpc3RlcihwYXRoVG9GaWxlVVJMKGxvYWRlclBhdGgpLmhyZWYsIHtcbiAgICBwYXJlbnRVUkw6IGltcG9ydC5tZXRhLnVybCxcbiAgfSk7XG4gIHN0YXRlLnJlZ2lzdGVyZWQgPSB0cnVlO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQWVBLFNBQVMsMkJBQWtEO0NBQ3pELE1BQU0sY0FBYztBQUVwQixLQUFJLENBQUMsWUFBWSwyQkFBMkI7QUFDMUMsY0FBWSw0QkFBNEIsRUFBRSxZQUFZLE9BQU87O0FBRy9ELFFBQU8sWUFBWTs7QUFHckIsZUFBc0IseUJBQXlCLFNBQWdDO0NBQzdFLE1BQU0sUUFBUSwwQkFBMEI7QUFDeEMsS0FBSSxNQUFNLFlBQVk7QUFDcEI7O0FBR0YsTUFBSztDQUNMLE1BQU0sYUFBYSxRQUFRLFFBQVEsK0JBQStCO0FBRWxFLFVBQVMsY0FBYyxXQUFXLENBQUMsTUFBTSxFQUN2QyxXQUFXLE9BQU8sS0FBSyxLQUN4QixDQUFDO0FBQ0YsT0FBTSxhQUFhOzs7O0NBakNmLDJCQUEyQixPQUFPLElBQUksa0NBQWtDO0NBQ3hFLFVBQVUsY0FBYyxPQUFPLEtBQUssSUFBSSJ9
24
+
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHMtbG9hZGVyLXJlZ2lzdHJhdGlvbi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluL3RzLWxvYWRlci1yZWdpc3RyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUmVxdWlyZSB9IGZyb20gXCJub2RlOm1vZHVsZVwiO1xuaW1wb3J0IHsgcmVnaXN0ZXIgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcbmltcG9ydCB7IHBhdGhUb0ZpbGVVUkwgfSBmcm9tIFwibm9kZTp1cmxcIjtcblxuY29uc3QgdHNMb2FkZXJSZWdpc3RlclN0YXRlS2V5ID0gU3ltYm9sLmZvcihcInNvbmFtdS50cy1sb2FkZXItcmVnaXN0ZXIuc3RhdGVcIik7XG5jb25zdCByZXF1aXJlID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpO1xuXG50eXBlIFRzTG9hZGVyUmVnaXN0ZXJTdGF0ZSA9IHtcbiAgcmVnaXN0ZXJlZDogYm9vbGVhbjtcbn07XG5cbnR5cGUgR2xvYmFsV2l0aFRzTG9hZGVyUmVnaXN0ZXJTdGF0ZSA9IHR5cGVvZiBnbG9iYWxUaGlzICYge1xuICBbdHNMb2FkZXJSZWdpc3RlclN0YXRlS2V5XT86IFRzTG9hZGVyUmVnaXN0ZXJTdGF0ZTtcbn07XG5cbmZ1bmN0aW9uIGdldFRzTG9hZGVyUmVnaXN0ZXJTdGF0ZSgpOiBUc0xvYWRlclJlZ2lzdGVyU3RhdGUge1xuICBjb25zdCBnbG9iYWxTdGF0ZSA9IGdsb2JhbFRoaXMgYXMgR2xvYmFsV2l0aFRzTG9hZGVyUmVnaXN0ZXJTdGF0ZTtcblxuICBpZiAoIWdsb2JhbFN0YXRlW3RzTG9hZGVyUmVnaXN0ZXJTdGF0ZUtleV0pIHtcbiAgICBnbG9iYWxTdGF0ZVt0c0xvYWRlclJlZ2lzdGVyU3RhdGVLZXldID0geyByZWdpc3RlcmVkOiBmYWxzZSB9O1xuICB9XG5cbiAgcmV0dXJuIGdsb2JhbFN0YXRlW3RzTG9hZGVyUmVnaXN0ZXJTdGF0ZUtleV07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVUc0xvYWRlclJlZ2lzdGVyZWQoYXBpUm9vdDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHN0YXRlID0gZ2V0VHNMb2FkZXJSZWdpc3RlclN0YXRlKCk7XG4gIGlmIChzdGF0ZS5yZWdpc3RlcmVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdm9pZCBhcGlSb290O1xuICBjb25zdCBsb2FkZXJQYXRoID0gcmVxdWlyZS5yZXNvbHZlKFwiQHNvbmFtdS1raXQvdHMtbG9hZGVyL2xvYWRlclwiKTtcblxuICByZWdpc3RlcihwYXRoVG9GaWxlVVJMKGxvYWRlclBhdGgpLmhyZWYsIHtcbiAgICBwYXJlbnRVUkw6IGltcG9ydC5tZXRhLnVybCxcbiAgfSk7XG4gIHN0YXRlLnJlZ2lzdGVyZWQgPSB0cnVlO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBZUEsU0FBUywyQkFBa0Q7Q0FDekQsTUFBTSxjQUFjO0NBRXBCLElBQUksQ0FBQyxZQUFZLDJCQUNmLFlBQVksNEJBQTRCLEVBQUUsWUFBWSxNQUFNO0NBRzlELE9BQU8sWUFBWTtBQUNyQjtBQUVBLGVBQXNCLHlCQUF5QixTQUFnQztDQUM3RSxNQUFNLFFBQVEseUJBQXlCO0NBQ3ZDLElBQUksTUFBTSxZQUNSO0NBTUYsU0FBUyxjQUZVLFFBQVEsUUFBUSw4QkFFWixDQUFVLENBQUMsQ0FBQyxNQUFNLEVBQ3ZDLFdBQVcsT0FBTyxLQUFLLElBQ3pCLENBQUM7Q0FDRCxNQUFNLGFBQWE7QUFDckI7OztDQWxDTSwyQkFBMkIsT0FBTyxJQUFJLGlDQUFpQztDQUN2RSxVQUFVLGNBQWMsT0FBTyxLQUFLLEdBQUcifQ==
@@ -1,7 +1,6 @@
1
- import { __esmMin } from "../_virtual/rolldown_runtime.js";
1
+ import { __esmMin } from "../_virtual/_rolldown/runtime.js";
2
2
  import { BentoCache, bentostore } from "bentocache";
3
3
  import { memoryDriver } from "bentocache/drivers/memory";
4
-
5
4
  //#region src/cache/cache-manager.ts
6
5
  /**
7
6
  * BentoCache 인스턴스를 생성합니다.
@@ -20,8 +19,8 @@ function createTestCacheManager() {
20
19
  });
21
20
  }
22
21
  var init_cache_manager = __esmMin((() => {}));
23
-
24
22
  //#endregion
25
23
  init_cache_manager();
26
24
  export { createCacheManager, createTestCacheManager, init_cache_manager };
27
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtbWFuYWdlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2FjaGUvY2FjaGUtbWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZW50b0NhY2hlLCBiZW50b3N0b3JlIH0gZnJvbSBcImJlbnRvY2FjaGVcIjtcbmltcG9ydCB7IG1lbW9yeURyaXZlciB9IGZyb20gXCJiZW50b2NhY2hlL2RyaXZlcnMvbWVtb3J5XCI7XG5cbmltcG9ydCB7IHR5cGUgQ2FjaGVDb25maWcsIHR5cGUgQ2FjaGVNYW5hZ2VyIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBCZW50b0NhY2hlIOyduOyKpO2EtOyKpOulvCDsg53shLHtlanri4jri6QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDYWNoZU1hbmFnZXIoY29uZmlnOiBDYWNoZUNvbmZpZyk6IENhY2hlTWFuYWdlciB7XG4gIHJldHVybiBuZXcgQmVudG9DYWNoZShjb25maWcpO1xufVxuXG4vKipcbiAqIO2FjOyKpO2KuCDtmZjqsr3smqkg6riw67O4IENhY2hlTWFuYWdlcuulvCDsg53shLHtlanri4jri6QuXG4gKiDrqZTrqqjrpqwg65Oc65287J2067KE66eMIOyCrOyaqe2VmOuKlCDqsITri6jtlZwg7ISk7KCVXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUZXN0Q2FjaGVNYW5hZ2VyKCk6IENhY2hlTWFuYWdlciB7XG4gIHJldHVybiBuZXcgQmVudG9DYWNoZSh7XG4gICAgZGVmYXVsdDogXCJtZW1vcnlcIixcbiAgICBzdG9yZXM6IHtcbiAgICAgIG1lbW9yeTogYmVudG9zdG9yZSgpLnVzZUwxTGF5ZXIobWVtb3J5RHJpdmVyKHsgbWF4SXRlbXM6IDEwMDAgfSkpLFxuICAgIH0sXG4gIH0pO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVFBLFNBQWdCLG1CQUFtQixRQUFtQztBQUNwRSxRQUFPLElBQUksV0FBVyxPQUFPOzs7Ozs7QUFPL0IsU0FBZ0IseUJBQXVDO0FBQ3JELFFBQU8sSUFBSSxXQUFXO0VBQ3BCLFNBQVM7RUFDVCxRQUFRLEVBQ04sUUFBUSxZQUFZLENBQUMsV0FBVyxhQUFhLEVBQUUsVUFBVSxLQUFNLENBQUMsQ0FBQyxFQUNsRTtFQUNGLENBQUMifQ==
25
+
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtbWFuYWdlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2FjaGUvY2FjaGUtbWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZW50b0NhY2hlLCBiZW50b3N0b3JlIH0gZnJvbSBcImJlbnRvY2FjaGVcIjtcbmltcG9ydCB7IG1lbW9yeURyaXZlciB9IGZyb20gXCJiZW50b2NhY2hlL2RyaXZlcnMvbWVtb3J5XCI7XG5cbmltcG9ydCB7IHR5cGUgQ2FjaGVDb25maWcsIHR5cGUgQ2FjaGVNYW5hZ2VyIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBCZW50b0NhY2hlIOyduOyKpO2EtOyKpOulvCDsg53shLHtlanri4jri6QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDYWNoZU1hbmFnZXIoY29uZmlnOiBDYWNoZUNvbmZpZyk6IENhY2hlTWFuYWdlciB7XG4gIHJldHVybiBuZXcgQmVudG9DYWNoZShjb25maWcpO1xufVxuXG4vKipcbiAqIO2FjOyKpO2KuCDtmZjqsr3smqkg6riw67O4IENhY2hlTWFuYWdlcuulvCDsg53shLHtlanri4jri6QuXG4gKiDrqZTrqqjrpqwg65Oc65287J2067KE66eMIOyCrOyaqe2VmOuKlCDqsITri6jtlZwg7ISk7KCVXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUZXN0Q2FjaGVNYW5hZ2VyKCk6IENhY2hlTWFuYWdlciB7XG4gIHJldHVybiBuZXcgQmVudG9DYWNoZSh7XG4gICAgZGVmYXVsdDogXCJtZW1vcnlcIixcbiAgICBzdG9yZXM6IHtcbiAgICAgIG1lbW9yeTogYmVudG9zdG9yZSgpLnVzZUwxTGF5ZXIobWVtb3J5RHJpdmVyKHsgbWF4SXRlbXM6IDEwMDAgfSkpLFxuICAgIH0sXG4gIH0pO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBUUEsU0FBZ0IsbUJBQW1CLFFBQW1DO0NBQ3BFLE9BQU8sSUFBSSxXQUFXLE1BQU07QUFDOUI7Ozs7O0FBTUEsU0FBZ0IseUJBQXVDO0NBQ3JELE9BQU8sSUFBSSxXQUFXO0VBQ3BCLFNBQVM7RUFDVCxRQUFRLEVBQ04sUUFBUSxXQUFXLENBQUMsQ0FBQyxXQUFXLGFBQWEsRUFBRSxVQUFVLElBQUssQ0FBQyxDQUFDLEVBQ2xFO0NBQ0YsQ0FBQztBQUNIIn0=
@@ -1,6 +1,5 @@
1
- import { __esmMin } from "../_virtual/rolldown_runtime.js";
1
+ import { __esmMin } from "../_virtual/_rolldown/runtime.js";
2
2
  import { BaseModelClass, init_base_model } from "../database/base-model.js";
3
-
4
3
  //#region src/cache/decorator.ts
5
4
  /**
6
5
  * 캐시 매니저 참조 설정 (내부 사용)
@@ -18,12 +17,10 @@ function getCacheManagerRef() {
18
17
  * 캐시 키 생성
19
18
  */
20
19
  function generateCacheKey(modelName, methodName, args, keyOption) {
21
- if (typeof keyOption === "function") {
22
- return keyOption(...args);
23
- }
20
+ if (typeof keyOption === "function") return keyOption(...args);
24
21
  if (typeof keyOption === "string") {
25
- const argsSuffix$1 = serializeArgs(args);
26
- return argsSuffix$1 ? `${keyOption}:${argsSuffix$1}` : keyOption;
22
+ const argsSuffix = serializeArgs(args);
23
+ return argsSuffix ? `${keyOption}:${argsSuffix}` : keyOption;
27
24
  }
28
25
  const baseKey = `${modelName}.${methodName}`;
29
26
  const argsSuffix = serializeArgs(args);
@@ -36,10 +33,8 @@ function serializeArgs(args) {
36
33
  if (args.length === 0) return "";
37
34
  if (args.length === 1) {
38
35
  const arg = args[0];
39
- if (arg === null || arg === undefined) return "";
40
- if (typeof arg === "string" || typeof arg === "number" || typeof arg === "boolean") {
41
- return String(arg);
42
- }
36
+ if (arg === null || arg === void 0) return "";
37
+ if (typeof arg === "string" || typeof arg === "number" || typeof arg === "boolean") return String(arg);
43
38
  }
44
39
  try {
45
40
  return JSON.stringify(args);
@@ -67,14 +62,9 @@ function cache(options = {}) {
67
62
  const originalMethod = descriptor.value;
68
63
  descriptor.value = async function(...args) {
69
64
  const manager = cacheManagerRef;
70
- if (!manager) {
71
- throw new Error("CacheManager is not initialized. Please configure 'cache' in sonamu.config.ts.");
72
- }
73
- const modelName = this instanceof BaseModelClass ? this.modelName : this.frameName;
74
- const methodName = propertyKey;
75
- const cacheKey = generateCacheKey(modelName, methodName, args, options.key);
76
- const store = options.store ? manager.use(options.store) : manager;
77
- return store.getOrSet({
65
+ if (!manager) throw new Error("CacheManager is not initialized. Please configure 'cache' in sonamu.config.ts.");
66
+ const cacheKey = generateCacheKey(this instanceof BaseModelClass ? this.modelName : this.frameName, propertyKey, args, options.key);
67
+ return (options.store ? manager.use(options.store) : manager).getOrSet({
78
68
  ...options,
79
69
  key: cacheKey,
80
70
  factory: () => originalMethod.apply(this, args)
@@ -88,8 +78,8 @@ var init_decorator = __esmMin((() => {
88
78
  init_base_model();
89
79
  cacheManagerRef = null;
90
80
  }));
91
-
92
81
  //#endregion
93
82
  init_decorator();
94
83
  export { cache, getCacheManagerRef, init_decorator, setCacheManagerRef };
95
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLmpzIiwibmFtZXMiOlsiYXJnc1N1ZmZpeCIsImNhY2hlTWFuYWdlclJlZjogQ2FjaGVNYW5hZ2VyIHwgbnVsbCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jYWNoZS9kZWNvcmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBCYXNlRnJhbWVDbGFzcyB9IGZyb20gXCIuLi9hcGkvYmFzZS1mcmFtZVwiO1xuaW1wb3J0IHsgQmFzZU1vZGVsQ2xhc3MgfSBmcm9tIFwiLi4vZGF0YWJhc2UvYmFzZS1tb2RlbFwiO1xuaW1wb3J0IHsgdHlwZSBDYWNoZURlY29yYXRvck9wdGlvbnMsIHR5cGUgQ2FjaGVNYW5hZ2VyIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxudHlwZSBEZWNvcmF0b3JUYXJnZXQgPSB7IGNvbnN0cnVjdG9yOiB7IG5hbWU6IHN0cmluZyB9IH07XG5cbi8vIOy6kOyLnCDrp6Tri4jsoIAg7LC47KGwIChTb25hbXUuaW5pdOyXkOyEnCDshKTsoJXrkKgpXG5sZXQgY2FjaGVNYW5hZ2VyUmVmOiBDYWNoZU1hbmFnZXIgfCBudWxsID0gbnVsbDtcblxuLyoqXG4gKiDsupDsi5wg66ek64uI7KCAIOywuOyhsCDshKTsoJUgKOuCtOu2gCDsgqzsmqkpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRDYWNoZU1hbmFnZXJSZWYobWFuYWdlcjogQ2FjaGVNYW5hZ2VyIHwgbnVsbCk6IHZvaWQge1xuICBjYWNoZU1hbmFnZXJSZWYgPSBtYW5hZ2VyO1xufVxuXG4vKipcbiAqIOy6kOyLnCDrp6Tri4jsoIAg7LC47KGwIOqwgOyguOyYpOq4sCAo64K067aAIOyCrOyaqSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENhY2hlTWFuYWdlclJlZigpOiBDYWNoZU1hbmFnZXIgfCBudWxsIHtcbiAgcmV0dXJuIGNhY2hlTWFuYWdlclJlZjtcbn1cblxuLyoqXG4gKiDsupDsi5wg7YKkIOyDneyEsVxuICovXG5mdW5jdGlvbiBnZW5lcmF0ZUNhY2hlS2V5KFxuICBtb2RlbE5hbWU6IHN0cmluZyxcbiAgbWV0aG9kTmFtZTogc3RyaW5nLFxuICBhcmdzOiB1bmtub3duW10sXG4gIGtleU9wdGlvbj86IENhY2hlRGVjb3JhdG9yT3B0aW9uc1tcImtleVwiXSxcbik6IHN0cmluZyB7XG4gIC8vIOy7pOyKpO2FgCDtgqQg7ZWo7IiYIOyCrOyaqVxuICBpZiAodHlwZW9mIGtleU9wdGlvbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIGtleU9wdGlvbiguLi5hcmdzKTtcbiAgfVxuXG4gIC8vIOusuOyekOyXtCDtgqQgKyBhcmdzIHN1ZmZpeFxuICBpZiAodHlwZW9mIGtleU9wdGlvbiA9PT0gXCJzdHJpbmdcIikge1xuICAgIGNvbnN0IGFyZ3NTdWZmaXggPSBzZXJpYWxpemVBcmdzKGFyZ3MpO1xuICAgIHJldHVybiBhcmdzU3VmZml4ID8gYCR7a2V5T3B0aW9ufToke2FyZ3NTdWZmaXh9YCA6IGtleU9wdGlvbjtcbiAgfVxuXG4gIC8vIOyekOuPmSDsg53shLE6IE1vZGVsTmFtZS5tZXRob2ROYW1lOnNlcmlhbGl6ZWRBcmdzXG4gIGNvbnN0IGJhc2VLZXkgPSBgJHttb2RlbE5hbWV9LiR7bWV0aG9kTmFtZX1gO1xuICBjb25zdCBhcmdzU3VmZml4ID0gc2VyaWFsaXplQXJncyhhcmdzKTtcbiAgcmV0dXJuIGFyZ3NTdWZmaXggPyBgJHtiYXNlS2V5fToke2FyZ3NTdWZmaXh9YCA6IGJhc2VLZXk7XG59XG5cbi8qKlxuICog7J247J6QIOyngeugrO2ZlFxuICovXG5mdW5jdGlvbiBzZXJpYWxpemVBcmdzKGFyZ3M6IHVua25vd25bXSk6IHN0cmluZyB7XG4gIGlmIChhcmdzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFwiXCI7XG5cbiAgLy8g64uo7J28IHByaW1pdGl2ZSDqsJJcbiAgaWYgKGFyZ3MubGVuZ3RoID09PSAxKSB7XG4gICAgY29uc3QgYXJnID0gYXJnc1swXTtcbiAgICBpZiAoYXJnID09PSBudWxsIHx8IGFyZyA9PT0gdW5kZWZpbmVkKSByZXR1cm4gXCJcIjtcbiAgICBpZiAodHlwZW9mIGFyZyA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgYXJnID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiBhcmcgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKGFyZyk7XG4gICAgfVxuICB9XG5cbiAgLy8g67O17J6h7ZWcIOqwkuydgCBKU09OIOyngeugrO2ZlFxuICB0cnkge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhcmdzKTtcbiAgfSBjYXRjaCB7XG4gICAgLy8g7KeB66Cs7ZmUIOyLpO2MqCDsi5wgdG9TdHJpbmcg7IKs7JqpXG4gICAgcmV0dXJuIGFyZ3MubWFwKChhcmcpID0+IFN0cmluZyhhcmcpKS5qb2luKFwiOlwiKTtcbiAgfVxufVxuXG4vKipcbiAqIEBjYWNoZSDrjbDsvZTroIjsnbTthLBcbiAqXG4gKiDrqZTshJzrk5zsnZgg6rKw6rO866W8IOy6kOyLse2VqeuLiOuLpC5cbiAqXG4gKiBAZXhhbXBsZVxuICogY2xhc3MgVXNlck1vZGVsQ2xhc3MgZXh0ZW5kcyBCYXNlTW9kZWxDbGFzczwuLi4+IHtcbiAqICAgQGNhY2hlKHsgdHRsOiAnMTBtJywgdGFnczogWyd1c2VyJ10gfSlcbiAqICAgQGFwaSgpXG4gKiAgIGFzeW5jIGZpbmRCeUlkKHN1YnNldDogVXNlclN1YnNldEtleSwgaWQ6IHN0cmluZykge1xuICogICAgIGNvbnN0IHsgcm93cyB9ID0gYXdhaXQgdGhpcy5maW5kTWFueShzdWJzZXQsIHsgaWQsIG51bTogMSwgcGFnZTogMSB9KTtcbiAqICAgICByZXR1cm4gcm93c1swXTtcbiAqICAgfVxuICogfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FjaGUob3B0aW9uczogQ2FjaGVEZWNvcmF0b3JPcHRpb25zID0ge30pIHtcbiAgcmV0dXJuIChfdGFyZ2V0OiBEZWNvcmF0b3JUYXJnZXQsIHByb3BlcnR5S2V5OiBzdHJpbmcsIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvcikgPT4ge1xuICAgIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gZGVzY3JpcHRvci52YWx1ZTtcblxuICAgIGRlc2NyaXB0b3IudmFsdWUgPSBhc3luYyBmdW5jdGlvbiAodGhpczogQmFzZU1vZGVsQ2xhc3MgfCBCYXNlRnJhbWVDbGFzcywgLi4uYXJnczogdW5rbm93bltdKSB7XG4gICAgICBjb25zdCBtYW5hZ2VyID0gY2FjaGVNYW5hZ2VyUmVmO1xuXG4gICAgICBpZiAoIW1hbmFnZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIFwiQ2FjaGVNYW5hZ2VyIGlzIG5vdCBpbml0aWFsaXplZC4gUGxlYXNlIGNvbmZpZ3VyZSAnY2FjaGUnIGluIHNvbmFtdS5jb25maWcudHMuXCIsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1vZGVsTmFtZSA9IHRoaXMgaW5zdGFuY2VvZiBCYXNlTW9kZWxDbGFzcyA/IHRoaXMubW9kZWxOYW1lIDogdGhpcy5mcmFtZU5hbWU7XG4gICAgICBjb25zdCBtZXRob2ROYW1lID0gcHJvcGVydHlLZXk7XG5cbiAgICAgIGNvbnN0IGNhY2hlS2V5ID0gZ2VuZXJhdGVDYWNoZUtleShtb2RlbE5hbWUsIG1ldGhvZE5hbWUsIGFyZ3MsIG9wdGlvbnMua2V5KTtcbiAgICAgIGNvbnN0IHN0b3JlID0gb3B0aW9ucy5zdG9yZSA/IG1hbmFnZXIudXNlKG9wdGlvbnMuc3RvcmUpIDogbWFuYWdlcjtcblxuICAgICAgcmV0dXJuIHN0b3JlLmdldE9yU2V0KHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAga2V5OiBjYWNoZUtleSxcbiAgICAgICAgZmFjdG9yeTogKCkgPT4gb3JpZ2luYWxNZXRob2QuYXBwbHkodGhpcywgYXJncyksXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFZQSxTQUFnQixtQkFBbUIsU0FBb0M7QUFDckUsbUJBQWtCOzs7OztBQU1wQixTQUFnQixxQkFBMEM7QUFDeEQsUUFBTzs7Ozs7QUFNVCxTQUFTLGlCQUNQLFdBQ0EsWUFDQSxNQUNBLFdBQ1E7QUFFUixLQUFJLE9BQU8sY0FBYyxZQUFZO0FBQ25DLFNBQU8sVUFBVSxHQUFHLEtBQUs7O0FBSTNCLEtBQUksT0FBTyxjQUFjLFVBQVU7RUFDakMsTUFBTUEsZUFBYSxjQUFjLEtBQUs7QUFDdEMsU0FBT0EsZUFBYSxHQUFHLFVBQVUsR0FBR0EsaUJBQWU7O0NBSXJELE1BQU0sVUFBVSxHQUFHLFVBQVUsR0FBRztDQUNoQyxNQUFNLGFBQWEsY0FBYyxLQUFLO0FBQ3RDLFFBQU8sYUFBYSxHQUFHLFFBQVEsR0FBRyxlQUFlOzs7OztBQU1uRCxTQUFTLGNBQWMsTUFBeUI7QUFDOUMsS0FBSSxLQUFLLFdBQVcsRUFBRyxRQUFPO0FBRzlCLEtBQUksS0FBSyxXQUFXLEdBQUc7RUFDckIsTUFBTSxNQUFNLEtBQUs7QUFDakIsTUFBSSxRQUFRLFFBQVEsUUFBUSxVQUFXLFFBQU87QUFDOUMsTUFBSSxPQUFPLFFBQVEsWUFBWSxPQUFPLFFBQVEsWUFBWSxPQUFPLFFBQVEsV0FBVztBQUNsRixVQUFPLE9BQU8sSUFBSTs7O0FBS3RCLEtBQUk7QUFDRixTQUFPLEtBQUssVUFBVSxLQUFLO1NBQ3JCO0FBRU4sU0FBTyxLQUFLLEtBQUssUUFBUSxPQUFPLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJuRCxTQUFnQixNQUFNLFVBQWlDLEVBQUUsRUFBRTtBQUN6RCxTQUFRLFNBQTBCLGFBQXFCLGVBQW1DO0VBQ3hGLE1BQU0saUJBQWlCLFdBQVc7QUFFbEMsYUFBVyxRQUFRLGVBQXVELEdBQUcsTUFBaUI7R0FDNUYsTUFBTSxVQUFVO0FBRWhCLE9BQUksQ0FBQyxTQUFTO0FBQ1osVUFBTSxJQUFJLE1BQ1IsaUZBQ0Q7O0dBR0gsTUFBTSxZQUFZLGdCQUFnQixpQkFBaUIsS0FBSyxZQUFZLEtBQUs7R0FDekUsTUFBTSxhQUFhO0dBRW5CLE1BQU0sV0FBVyxpQkFBaUIsV0FBVyxZQUFZLE1BQU0sUUFBUSxJQUFJO0dBQzNFLE1BQU0sUUFBUSxRQUFRLFFBQVEsUUFBUSxJQUFJLFFBQVEsTUFBTSxHQUFHO0FBRTNELFVBQU8sTUFBTSxTQUFTO0lBQ3BCLEdBQUc7SUFDSCxLQUFLO0lBQ0wsZUFBZSxlQUFlLE1BQU0sTUFBTSxLQUFLO0lBQ2hELENBQUM7O0FBR0osU0FBTzs7Ozs7a0JBakg2QztDQU1wREMsa0JBQXVDIn0=
84
+
85
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jYWNoZS9kZWNvcmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBCYXNlRnJhbWVDbGFzcyB9IGZyb20gXCIuLi9hcGkvYmFzZS1mcmFtZVwiO1xuaW1wb3J0IHsgQmFzZU1vZGVsQ2xhc3MgfSBmcm9tIFwiLi4vZGF0YWJhc2UvYmFzZS1tb2RlbFwiO1xuaW1wb3J0IHsgdHlwZSBDYWNoZURlY29yYXRvck9wdGlvbnMsIHR5cGUgQ2FjaGVNYW5hZ2VyIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxudHlwZSBEZWNvcmF0b3JUYXJnZXQgPSB7IGNvbnN0cnVjdG9yOiB7IG5hbWU6IHN0cmluZyB9IH07XG5cbi8vIOy6kOyLnCDrp6Tri4jsoIAg7LC47KGwIChTb25hbXUuaW5pdOyXkOyEnCDshKTsoJXrkKgpXG5sZXQgY2FjaGVNYW5hZ2VyUmVmOiBDYWNoZU1hbmFnZXIgfCBudWxsID0gbnVsbDtcblxuLyoqXG4gKiDsupDsi5wg66ek64uI7KCAIOywuOyhsCDshKTsoJUgKOuCtOu2gCDsgqzsmqkpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRDYWNoZU1hbmFnZXJSZWYobWFuYWdlcjogQ2FjaGVNYW5hZ2VyIHwgbnVsbCk6IHZvaWQge1xuICBjYWNoZU1hbmFnZXJSZWYgPSBtYW5hZ2VyO1xufVxuXG4vKipcbiAqIOy6kOyLnCDrp6Tri4jsoIAg7LC47KGwIOqwgOyguOyYpOq4sCAo64K067aAIOyCrOyaqSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENhY2hlTWFuYWdlclJlZigpOiBDYWNoZU1hbmFnZXIgfCBudWxsIHtcbiAgcmV0dXJuIGNhY2hlTWFuYWdlclJlZjtcbn1cblxuLyoqXG4gKiDsupDsi5wg7YKkIOyDneyEsVxuICovXG5mdW5jdGlvbiBnZW5lcmF0ZUNhY2hlS2V5KFxuICBtb2RlbE5hbWU6IHN0cmluZyxcbiAgbWV0aG9kTmFtZTogc3RyaW5nLFxuICBhcmdzOiB1bmtub3duW10sXG4gIGtleU9wdGlvbj86IENhY2hlRGVjb3JhdG9yT3B0aW9uc1tcImtleVwiXSxcbik6IHN0cmluZyB7XG4gIC8vIOy7pOyKpO2FgCDtgqQg7ZWo7IiYIOyCrOyaqVxuICBpZiAodHlwZW9mIGtleU9wdGlvbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIGtleU9wdGlvbiguLi5hcmdzKTtcbiAgfVxuXG4gIC8vIOusuOyekOyXtCDtgqQgKyBhcmdzIHN1ZmZpeFxuICBpZiAodHlwZW9mIGtleU9wdGlvbiA9PT0gXCJzdHJpbmdcIikge1xuICAgIGNvbnN0IGFyZ3NTdWZmaXggPSBzZXJpYWxpemVBcmdzKGFyZ3MpO1xuICAgIHJldHVybiBhcmdzU3VmZml4ID8gYCR7a2V5T3B0aW9ufToke2FyZ3NTdWZmaXh9YCA6IGtleU9wdGlvbjtcbiAgfVxuXG4gIC8vIOyekOuPmSDsg53shLE6IE1vZGVsTmFtZS5tZXRob2ROYW1lOnNlcmlhbGl6ZWRBcmdzXG4gIGNvbnN0IGJhc2VLZXkgPSBgJHttb2RlbE5hbWV9LiR7bWV0aG9kTmFtZX1gO1xuICBjb25zdCBhcmdzU3VmZml4ID0gc2VyaWFsaXplQXJncyhhcmdzKTtcbiAgcmV0dXJuIGFyZ3NTdWZmaXggPyBgJHtiYXNlS2V5fToke2FyZ3NTdWZmaXh9YCA6IGJhc2VLZXk7XG59XG5cbi8qKlxuICog7J247J6QIOyngeugrO2ZlFxuICovXG5mdW5jdGlvbiBzZXJpYWxpemVBcmdzKGFyZ3M6IHVua25vd25bXSk6IHN0cmluZyB7XG4gIGlmIChhcmdzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFwiXCI7XG5cbiAgLy8g64uo7J28IHByaW1pdGl2ZSDqsJJcbiAgaWYgKGFyZ3MubGVuZ3RoID09PSAxKSB7XG4gICAgY29uc3QgYXJnID0gYXJnc1swXTtcbiAgICBpZiAoYXJnID09PSBudWxsIHx8IGFyZyA9PT0gdW5kZWZpbmVkKSByZXR1cm4gXCJcIjtcbiAgICBpZiAodHlwZW9mIGFyZyA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgYXJnID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiBhcmcgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKGFyZyk7XG4gICAgfVxuICB9XG5cbiAgLy8g67O17J6h7ZWcIOqwkuydgCBKU09OIOyngeugrO2ZlFxuICB0cnkge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhcmdzKTtcbiAgfSBjYXRjaCB7XG4gICAgLy8g7KeB66Cs7ZmUIOyLpO2MqCDsi5wgdG9TdHJpbmcg7IKs7JqpXG4gICAgcmV0dXJuIGFyZ3MubWFwKChhcmcpID0+IFN0cmluZyhhcmcpKS5qb2luKFwiOlwiKTtcbiAgfVxufVxuXG4vKipcbiAqIEBjYWNoZSDrjbDsvZTroIjsnbTthLBcbiAqXG4gKiDrqZTshJzrk5zsnZgg6rKw6rO866W8IOy6kOyLse2VqeuLiOuLpC5cbiAqXG4gKiBAZXhhbXBsZVxuICogY2xhc3MgVXNlck1vZGVsQ2xhc3MgZXh0ZW5kcyBCYXNlTW9kZWxDbGFzczwuLi4+IHtcbiAqICAgQGNhY2hlKHsgdHRsOiAnMTBtJywgdGFnczogWyd1c2VyJ10gfSlcbiAqICAgQGFwaSgpXG4gKiAgIGFzeW5jIGZpbmRCeUlkKHN1YnNldDogVXNlclN1YnNldEtleSwgaWQ6IHN0cmluZykge1xuICogICAgIGNvbnN0IHsgcm93cyB9ID0gYXdhaXQgdGhpcy5maW5kTWFueShzdWJzZXQsIHsgaWQsIG51bTogMSwgcGFnZTogMSB9KTtcbiAqICAgICByZXR1cm4gcm93c1swXTtcbiAqICAgfVxuICogfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FjaGUob3B0aW9uczogQ2FjaGVEZWNvcmF0b3JPcHRpb25zID0ge30pIHtcbiAgcmV0dXJuIChfdGFyZ2V0OiBEZWNvcmF0b3JUYXJnZXQsIHByb3BlcnR5S2V5OiBzdHJpbmcsIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvcikgPT4ge1xuICAgIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gZGVzY3JpcHRvci52YWx1ZTtcblxuICAgIGRlc2NyaXB0b3IudmFsdWUgPSBhc3luYyBmdW5jdGlvbiAodGhpczogQmFzZU1vZGVsQ2xhc3MgfCBCYXNlRnJhbWVDbGFzcywgLi4uYXJnczogdW5rbm93bltdKSB7XG4gICAgICBjb25zdCBtYW5hZ2VyID0gY2FjaGVNYW5hZ2VyUmVmO1xuXG4gICAgICBpZiAoIW1hbmFnZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIFwiQ2FjaGVNYW5hZ2VyIGlzIG5vdCBpbml0aWFsaXplZC4gUGxlYXNlIGNvbmZpZ3VyZSAnY2FjaGUnIGluIHNvbmFtdS5jb25maWcudHMuXCIsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1vZGVsTmFtZSA9IHRoaXMgaW5zdGFuY2VvZiBCYXNlTW9kZWxDbGFzcyA/IHRoaXMubW9kZWxOYW1lIDogdGhpcy5mcmFtZU5hbWU7XG4gICAgICBjb25zdCBtZXRob2ROYW1lID0gcHJvcGVydHlLZXk7XG5cbiAgICAgIGNvbnN0IGNhY2hlS2V5ID0gZ2VuZXJhdGVDYWNoZUtleShtb2RlbE5hbWUsIG1ldGhvZE5hbWUsIGFyZ3MsIG9wdGlvbnMua2V5KTtcbiAgICAgIGNvbnN0IHN0b3JlID0gb3B0aW9ucy5zdG9yZSA/IG1hbmFnZXIudXNlKG9wdGlvbnMuc3RvcmUpIDogbWFuYWdlcjtcblxuICAgICAgcmV0dXJuIHN0b3JlLmdldE9yU2V0KHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAga2V5OiBjYWNoZUtleSxcbiAgICAgICAgZmFjdG9yeTogKCkgPT4gb3JpZ2luYWxNZXRob2QuYXBwbHkodGhpcywgYXJncyksXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQVlBLFNBQWdCLG1CQUFtQixTQUFvQztDQUNyRSxrQkFBa0I7QUFDcEI7Ozs7QUFLQSxTQUFnQixxQkFBMEM7Q0FDeEQsT0FBTztBQUNUOzs7O0FBS0EsU0FBUyxpQkFDUCxXQUNBLFlBQ0EsTUFDQSxXQUNRO0NBRVIsSUFBSSxPQUFPLGNBQWMsWUFDdkIsT0FBTyxVQUFVLEdBQUcsSUFBSTtDQUkxQixJQUFJLE9BQU8sY0FBYyxVQUFVO0VBQ2pDLE1BQU0sYUFBYSxjQUFjLElBQUk7RUFDckMsT0FBTyxhQUFhLEdBQUcsVUFBVSxHQUFHLGVBQWU7Q0FDckQ7Q0FHQSxNQUFNLFVBQVUsR0FBRyxVQUFVLEdBQUc7Q0FDaEMsTUFBTSxhQUFhLGNBQWMsSUFBSTtDQUNyQyxPQUFPLGFBQWEsR0FBRyxRQUFRLEdBQUcsZUFBZTtBQUNuRDs7OztBQUtBLFNBQVMsY0FBYyxNQUF5QjtDQUM5QyxJQUFJLEtBQUssV0FBVyxHQUFHLE9BQU87Q0FHOUIsSUFBSSxLQUFLLFdBQVcsR0FBRztFQUNyQixNQUFNLE1BQU0sS0FBSztFQUNqQixJQUFJLFFBQVEsUUFBUSxRQUFRLFFBQVcsT0FBTztFQUM5QyxJQUFJLE9BQU8sUUFBUSxZQUFZLE9BQU8sUUFBUSxZQUFZLE9BQU8sUUFBUSxXQUN2RSxPQUFPLE9BQU8sR0FBRztDQUVyQjtDQUdBLElBQUk7RUFDRixPQUFPLEtBQUssVUFBVSxJQUFJO0NBQzVCLFFBQVE7RUFFTixPQUFPLEtBQUssS0FBSyxRQUFRLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUc7Q0FDaEQ7QUFDRjs7Ozs7Ozs7Ozs7Ozs7OztBQWlCQSxTQUFnQixNQUFNLFVBQWlDLENBQUMsR0FBRztDQUN6RCxRQUFRLFNBQTBCLGFBQXFCLGVBQW1DO0VBQ3hGLE1BQU0saUJBQWlCLFdBQVc7RUFFbEMsV0FBVyxRQUFRLGVBQXVELEdBQUcsTUFBaUI7R0FDNUYsTUFBTSxVQUFVO0dBRWhCLElBQUksQ0FBQyxTQUNILE1BQU0sSUFBSSxNQUNSLGdGQUNGO0dBTUYsTUFBTSxXQUFXLGlCQUhDLGdCQUFnQixpQkFBaUIsS0FBSyxZQUFZLEtBQUssV0FHNUIsYUFBWSxNQUFNLFFBQVEsR0FBRztHQUcxRSxRQUZjLFFBQVEsUUFBUSxRQUFRLElBQUksUUFBUSxLQUFLLElBQUksUUFFcEQsQ0FBTSxTQUFTO0lBQ3BCLEdBQUc7SUFDSCxLQUFLO0lBQ0wsZUFBZSxlQUFlLE1BQU0sTUFBTSxJQUFJO0dBQ2hELENBQUM7RUFDSDtFQUVBLE9BQU87Q0FDVDtBQUNGOzs7aUJBbkh1RDtDQU1uRCxrQkFBdUMifQ==
@@ -3,7 +3,6 @@ import { memoryDriver as memoryDriver$1 } from "bentocache/drivers/memory";
3
3
  import { fileDriver as fileDriver$1 } from "bentocache/drivers/file";
4
4
  import { knexDriver as knexDriver$1 } from "bentocache/drivers/knex";
5
5
  import { redisBusDriver as redisBusDriver$1, redisDriver as redisDriver$1 } from "bentocache/drivers/redis";
6
-
7
6
  //#region src/cache/drivers.ts
8
7
  const memoryDriver = memoryDriver$1;
9
8
  const fileDriver = fileDriver$1;
@@ -17,7 +16,7 @@ const drivers = {
17
16
  redisBus: redisBusDriver$1,
18
17
  knex: knexDriver$1
19
18
  };
20
-
21
19
  //#endregion
22
20
  export { drivers, fileDriver, knexDriver, memoryDriver, redisBusDriver, redisDriver, store };
23
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpdmVycy5qcyIsIm5hbWVzIjpbIl9tZW1vcnlEcml2ZXIiLCJfZmlsZURyaXZlciIsIl9yZWRpc0RyaXZlciIsIl9yZWRpc0J1c0RyaXZlciIsIl9rbmV4RHJpdmVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NhY2hlL2RyaXZlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCZW50b0NhY2hlIOuTnOudvOydtOuyhCByZS1leHBvcnRcbiAqXG4gKiBAZXhhbXBsZVxuICogaW1wb3J0IHsgZHJpdmVycywgc3RvcmUgfSBmcm9tICdzb25hbXUvY2FjaGUnO1xuICpcbiAqIGNhY2hlOiB7XG4gKiAgIHN0b3Jlczoge1xuICogICAgIG1haW46IHN0b3JlKClcbiAqICAgICAgIC51c2VMMUxheWVyKGRyaXZlcnMubWVtb3J5KHsgbWF4U2l6ZTogJzEwMG1iJyB9KSlcbiAqICAgICAgIC51c2VMMkxheWVyKGRyaXZlcnMucmVkaXMoeyBjb25uZWN0aW9uIH0pKVxuICogICAgICAgLnVzZUJ1cyhkcml2ZXJzLnJlZGlzQnVzKHsgY29ubmVjdGlvbiB9KSlcbiAqICAgfVxuICogfVxuICovXG5cbi8vIFN0b3JlIGJ1aWxkZXJcbmV4cG9ydCB7IGJlbnRvc3RvcmUgYXMgc3RvcmUgfSBmcm9tIFwiYmVudG9jYWNoZVwiO1xuXG5pbXBvcnQgeyBmaWxlRHJpdmVyIGFzIF9maWxlRHJpdmVyIH0gZnJvbSBcImJlbnRvY2FjaGUvZHJpdmVycy9maWxlXCI7XG5pbXBvcnQgeyBrbmV4RHJpdmVyIGFzIF9rbmV4RHJpdmVyIH0gZnJvbSBcImJlbnRvY2FjaGUvZHJpdmVycy9rbmV4XCI7XG5pbXBvcnQgeyBtZW1vcnlEcml2ZXIgYXMgX21lbW9yeURyaXZlciB9IGZyb20gXCJiZW50b2NhY2hlL2RyaXZlcnMvbWVtb3J5XCI7XG5pbXBvcnQge1xuICByZWRpc0J1c0RyaXZlciBhcyBfcmVkaXNCdXNEcml2ZXIsXG4gIHJlZGlzRHJpdmVyIGFzIF9yZWRpc0RyaXZlcixcbn0gZnJvbSBcImJlbnRvY2FjaGUvZHJpdmVycy9yZWRpc1wiO1xuXG4vLyDqsJzrs4Qg65Oc65287J2067KEIGV4cG9ydFxuZXhwb3J0IGNvbnN0IG1lbW9yeURyaXZlciA9IF9tZW1vcnlEcml2ZXI7XG5leHBvcnQgY29uc3QgZmlsZURyaXZlciA9IF9maWxlRHJpdmVyO1xuZXhwb3J0IGNvbnN0IHJlZGlzRHJpdmVyID0gX3JlZGlzRHJpdmVyO1xuZXhwb3J0IGNvbnN0IHJlZGlzQnVzRHJpdmVyID0gX3JlZGlzQnVzRHJpdmVyO1xuZXhwb3J0IGNvbnN0IGtuZXhEcml2ZXIgPSBfa25leERyaXZlcjtcblxuLy8g7Y647J2Y66W8IOychO2VnCBkcml2ZXJzIOqwneyytFxuZXhwb3J0IGNvbnN0IGRyaXZlcnMgPSB7XG4gIG1lbW9yeTogX21lbW9yeURyaXZlcixcbiAgZmlsZTogX2ZpbGVEcml2ZXIsXG4gIHJlZGlzOiBfcmVkaXNEcml2ZXIsXG4gIHJlZGlzQnVzOiBfcmVkaXNCdXNEcml2ZXIsXG4gIGtuZXg6IF9rbmV4RHJpdmVyLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQTRCQSxNQUFhLGVBQWVBO0FBQzVCLE1BQWEsYUFBYUM7QUFDMUIsTUFBYSxjQUFjQztBQUMzQixNQUFhLGlCQUFpQkM7QUFDOUIsTUFBYSxhQUFhQztBQUcxQixNQUFhLFVBQVU7Q0FDckIsUUFBUUo7Q0FDUixNQUFNQztDQUNOLE9BQU9DO0NBQ1AsVUFBVUM7Q0FDVixNQUFNQztDQUNQIn0=
21
+
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpdmVycy5qcyIsIm5hbWVzIjpbIl9tZW1vcnlEcml2ZXIiLCJfZmlsZURyaXZlciIsIl9yZWRpc0RyaXZlciIsIl9yZWRpc0J1c0RyaXZlciIsIl9rbmV4RHJpdmVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NhY2hlL2RyaXZlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCZW50b0NhY2hlIOuTnOudvOydtOuyhCByZS1leHBvcnRcbiAqXG4gKiBAZXhhbXBsZVxuICogaW1wb3J0IHsgZHJpdmVycywgc3RvcmUgfSBmcm9tICdzb25hbXUvY2FjaGUnO1xuICpcbiAqIGNhY2hlOiB7XG4gKiAgIHN0b3Jlczoge1xuICogICAgIG1haW46IHN0b3JlKClcbiAqICAgICAgIC51c2VMMUxheWVyKGRyaXZlcnMubWVtb3J5KHsgbWF4U2l6ZTogJzEwMG1iJyB9KSlcbiAqICAgICAgIC51c2VMMkxheWVyKGRyaXZlcnMucmVkaXMoeyBjb25uZWN0aW9uIH0pKVxuICogICAgICAgLnVzZUJ1cyhkcml2ZXJzLnJlZGlzQnVzKHsgY29ubmVjdGlvbiB9KSlcbiAqICAgfVxuICogfVxuICovXG5cbi8vIFN0b3JlIGJ1aWxkZXJcbmV4cG9ydCB7IGJlbnRvc3RvcmUgYXMgc3RvcmUgfSBmcm9tIFwiYmVudG9jYWNoZVwiO1xuXG5pbXBvcnQgeyBmaWxlRHJpdmVyIGFzIF9maWxlRHJpdmVyIH0gZnJvbSBcImJlbnRvY2FjaGUvZHJpdmVycy9maWxlXCI7XG5pbXBvcnQgeyBrbmV4RHJpdmVyIGFzIF9rbmV4RHJpdmVyIH0gZnJvbSBcImJlbnRvY2FjaGUvZHJpdmVycy9rbmV4XCI7XG5pbXBvcnQgeyBtZW1vcnlEcml2ZXIgYXMgX21lbW9yeURyaXZlciB9IGZyb20gXCJiZW50b2NhY2hlL2RyaXZlcnMvbWVtb3J5XCI7XG5pbXBvcnQge1xuICByZWRpc0J1c0RyaXZlciBhcyBfcmVkaXNCdXNEcml2ZXIsXG4gIHJlZGlzRHJpdmVyIGFzIF9yZWRpc0RyaXZlcixcbn0gZnJvbSBcImJlbnRvY2FjaGUvZHJpdmVycy9yZWRpc1wiO1xuXG4vLyDqsJzrs4Qg65Oc65287J2067KEIGV4cG9ydFxuZXhwb3J0IGNvbnN0IG1lbW9yeURyaXZlciA9IF9tZW1vcnlEcml2ZXI7XG5leHBvcnQgY29uc3QgZmlsZURyaXZlciA9IF9maWxlRHJpdmVyO1xuZXhwb3J0IGNvbnN0IHJlZGlzRHJpdmVyID0gX3JlZGlzRHJpdmVyO1xuZXhwb3J0IGNvbnN0IHJlZGlzQnVzRHJpdmVyID0gX3JlZGlzQnVzRHJpdmVyO1xuZXhwb3J0IGNvbnN0IGtuZXhEcml2ZXIgPSBfa25leERyaXZlcjtcblxuLy8g7Y647J2Y66W8IOychO2VnCBkcml2ZXJzIOqwneyytFxuZXhwb3J0IGNvbnN0IGRyaXZlcnMgPSB7XG4gIG1lbW9yeTogX21lbW9yeURyaXZlcixcbiAgZmlsZTogX2ZpbGVEcml2ZXIsXG4gIHJlZGlzOiBfcmVkaXNEcml2ZXIsXG4gIHJlZGlzQnVzOiBfcmVkaXNCdXNEcml2ZXIsXG4gIGtuZXg6IF9rbmV4RHJpdmVyLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBNEJBLE1BQWEsZUFBZUE7QUFDNUIsTUFBYSxhQUFhQztBQUMxQixNQUFhLGNBQWNDO0FBQzNCLE1BQWEsaUJBQWlCQztBQUM5QixNQUFhLGFBQWFDO0FBRzFCLE1BQWEsVUFBVTtDQUNyQixRQUFRSjtDQUNSLE1BQU1DO0NBQ04sT0FBT0M7Q0FDUCxVQUFVQztDQUNWLE1BQU1DO0FBQ1IifQ==
@@ -1,11 +1,10 @@
1
1
  import { createCacheManager, createTestCacheManager, init_cache_manager } from "./cache-manager.js";
2
2
  import { cache, getCacheManagerRef, init_decorator, setCacheManagerRef } from "./decorator.js";
3
3
  import { drivers, fileDriver, knexDriver, memoryDriver, redisBusDriver, redisDriver, store } from "./drivers.js";
4
-
5
4
  //#region src/cache/index.ts
6
5
  init_cache_manager();
7
6
  init_decorator();
8
-
9
7
  //#endregion
10
8
  export { cache, createCacheManager, createTestCacheManager, drivers, fileDriver, getCacheManagerRef, knexDriver, memoryDriver, redisBusDriver, redisDriver, setCacheManagerRef, store };
11
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NhY2hlL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENhY2hlIG1hbmFnZXIgZmFjdG9yeVxuZXhwb3J0IHsgY3JlYXRlQ2FjaGVNYW5hZ2VyLCBjcmVhdGVUZXN0Q2FjaGVNYW5hZ2VyIH0gZnJvbSBcIi4vY2FjaGUtbWFuYWdlclwiO1xuXG4vLyBEZWNvcmF0b3JcbmV4cG9ydCB7IGNhY2hlLCBnZXRDYWNoZU1hbmFnZXJSZWYsIHNldENhY2hlTWFuYWdlclJlZiB9IGZyb20gXCIuL2RlY29yYXRvclwiO1xuXG4vLyBEcml2ZXJzICYgU3RvcmUgYnVpbGRlclxuZXhwb3J0IHtcbiAgZHJpdmVycyxcbiAgZmlsZURyaXZlcixcbiAga25leERyaXZlcixcbiAgbWVtb3J5RHJpdmVyLFxuICByZWRpc0J1c0RyaXZlcixcbiAgcmVkaXNEcml2ZXIsXG4gIHN0b3JlLFxufSBmcm9tIFwiLi9kcml2ZXJzXCI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7O29CQUM2RTtnQkFHRCJ9
9
+
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NhY2hlL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENhY2hlIG1hbmFnZXIgZmFjdG9yeVxuZXhwb3J0IHsgY3JlYXRlQ2FjaGVNYW5hZ2VyLCBjcmVhdGVUZXN0Q2FjaGVNYW5hZ2VyIH0gZnJvbSBcIi4vY2FjaGUtbWFuYWdlclwiO1xuXG4vLyBEZWNvcmF0b3JcbmV4cG9ydCB7IGNhY2hlLCBnZXRDYWNoZU1hbmFnZXJSZWYsIHNldENhY2hlTWFuYWdlclJlZiB9IGZyb20gXCIuL2RlY29yYXRvclwiO1xuXG4vLyBEcml2ZXJzICYgU3RvcmUgYnVpbGRlclxuZXhwb3J0IHtcbiAgZHJpdmVycyxcbiAgZmlsZURyaXZlcixcbiAga25leERyaXZlcixcbiAgbWVtb3J5RHJpdmVyLFxuICByZWRpc0J1c0RyaXZlcixcbiAgcmVkaXNEcml2ZXIsXG4gIHN0b3JlLFxufSBmcm9tIFwiLi9kcml2ZXJzXCI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7bUJBQzRFO2VBR0QifQ==
@@ -1 +1 @@
1
- export { };
1
+ export {};
@@ -1,5 +1,4 @@
1
- import { __esmMin } from "../_virtual/rolldown_runtime.js";
2
-
1
+ import { __esmMin } from "../_virtual/_rolldown/runtime.js";
3
2
  //#region src/cache-control/cache-control.ts
4
3
  /**
5
4
  * CacheControlConfig 객체를 HTTP Cache-Control 헤더 문자열로 변환합니다.
@@ -18,37 +17,19 @@ import { __esmMin } from "../_virtual/rolldown_runtime.js";
18
17
  */
19
18
  function buildCacheControl(config) {
20
19
  const parts = [];
21
- if (config.noStore) {
22
- return "no-store";
23
- }
20
+ if (config.noStore) return "no-store";
24
21
  if (config.noCache) {
25
- if (config.visibility === "private") {
26
- return "private, no-cache";
27
- }
22
+ if (config.visibility === "private") return "private, no-cache";
28
23
  return "no-cache";
29
24
  }
30
25
  parts.push(config.visibility ?? "public");
31
- if (config.maxAge !== undefined) {
32
- parts.push(`max-age=${config.maxAge}`);
33
- }
34
- if (config.sMaxAge !== undefined) {
35
- parts.push(`s-maxage=${config.sMaxAge}`);
36
- }
37
- if (config.mustRevalidate) {
38
- parts.push("must-revalidate");
39
- }
40
- if (config.proxyRevalidate) {
41
- parts.push("proxy-revalidate");
42
- }
43
- if (config.immutable) {
44
- parts.push("immutable");
45
- }
46
- if (config.staleWhileRevalidate !== undefined) {
47
- parts.push(`stale-while-revalidate=${config.staleWhileRevalidate}`);
48
- }
49
- if (config.staleIfError !== undefined) {
50
- parts.push(`stale-if-error=${config.staleIfError}`);
51
- }
26
+ if (config.maxAge !== void 0) parts.push(`max-age=${config.maxAge}`);
27
+ if (config.sMaxAge !== void 0) parts.push(`s-maxage=${config.sMaxAge}`);
28
+ if (config.mustRevalidate) parts.push("must-revalidate");
29
+ if (config.proxyRevalidate) parts.push("proxy-revalidate");
30
+ if (config.immutable) parts.push("immutable");
31
+ if (config.staleWhileRevalidate !== void 0) parts.push(`stale-while-revalidate=${config.staleWhileRevalidate}`);
32
+ if (config.staleIfError !== void 0) parts.push(`stale-if-error=${config.staleIfError}`);
52
33
  return parts.join(", ");
53
34
  }
54
35
  /**
@@ -67,45 +48,51 @@ function buildCacheControl(config) {
67
48
  */
68
49
  function applyCacheHeaders(reply, config) {
69
50
  reply.header("Cache-Control", buildCacheControl(config));
70
- if (config.vary && config.vary.length > 0) {
71
- reply.header("Vary", config.vary.join(", "));
72
- }
51
+ if (config.vary && config.vary.length > 0) reply.header("Vary", config.vary.join(", "));
73
52
  }
74
53
  var CachePresets;
75
54
  var init_cache_control = __esmMin((() => {
76
55
  CachePresets = {
56
+ /** 캐시 금지 (민감한 데이터, mutation 요청) */
77
57
  noStore: { noStore: true },
58
+ /** 캐시하되 매번 재검증 */
78
59
  noCache: { noCache: true },
60
+ /** 짧은 캐시 (1분) - CSR fallback, 자주 변경되는 데이터에 적합 */
79
61
  shortLived: {
80
62
  visibility: "public",
81
63
  maxAge: 60
82
64
  },
65
+ /** SSR 캐시 (10초 + stale-while-revalidate 30초) */
83
66
  ssr: {
84
67
  visibility: "public",
85
68
  maxAge: 10,
86
69
  staleWhileRevalidate: 30
87
70
  },
71
+ /** 중간 캐시 (5분) - 거의 변경되지 않는 데이터 (약관, 설정 등) */
88
72
  mediumLived: {
89
73
  visibility: "public",
90
74
  maxAge: 300
91
75
  },
76
+ /** 긴 캐시 (1시간) - 정적 컨텐츠 */
92
77
  longLived: {
93
78
  visibility: "public",
94
79
  maxAge: 3600
95
80
  },
81
+ /** 영구 캐시 (1년 + immutable) - 해시가 포함된 정적 파일 */
96
82
  immutable: {
97
83
  visibility: "public",
98
84
  maxAge: 31536e3,
99
85
  immutable: true
100
86
  },
87
+ /** 개인화된 데이터 (로그인 사용자별 다른 응답) */
101
88
  private: {
102
89
  visibility: "private",
103
90
  noCache: true
104
91
  }
105
92
  };
106
93
  }));
107
-
108
94
  //#endregion
109
95
  init_cache_control();
110
96
  export { CachePresets, applyCacheHeaders, buildCacheControl, init_cache_control };
111
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtY29udHJvbC5qcyIsIm5hbWVzIjpbInBhcnRzOiBzdHJpbmdbXSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jYWNoZS1jb250cm9sL2NhY2hlLWNvbnRyb2wudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBGYXN0aWZ5UmVwbHkgfSBmcm9tIFwiZmFzdGlmeVwiO1xuXG5pbXBvcnQgeyB0eXBlIENhY2hlQ29udHJvbENvbmZpZyB9IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5cbi8qKlxuICog7J6Q7KO8IOyCrOyaqe2VmOuKlCBDYWNoZS1Db250cm9sIO2UhOumrOyFi+yeheuLiOuLpC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQVBJ7JeQ7IScIOyCrOyaqVxuICogQGFwaSh7XG4gKiAgIGh0dHBNZXRob2Q6ICdHRVQnLFxuICogICBjYWNoZUNvbnRyb2w6IENhY2hlUHJlc2V0cy5zaG9ydExpdmVkLFxuICogfSlcbiAqXG4gKiAvLyBTU1Ig65287Jqw7Yq47JeQ7IScIOyCrOyaqVxuICogcmVnaXN0ZXJTU1Ioe1xuICogICBwYXRoOiAnL3Byb2R1Y3RzJyxcbiAqICAgY2FjaGVDb250cm9sOiBDYWNoZVByZXNldHMuc3NyLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IENhY2hlUHJlc2V0cyA9IHtcbiAgLyoqIOy6kOyLnCDquIjsp4AgKOuvvOqwkO2VnCDrjbDsnbTthLAsIG11dGF0aW9uIOyalOyyrSkgKi9cbiAgbm9TdG9yZToge1xuICAgIG5vU3RvcmU6IHRydWUsXG4gIH0sXG5cbiAgLyoqIOy6kOyLnO2VmOuQmCDrp6Trsogg7J6s6rKA7KadICovXG4gIG5vQ2FjaGU6IHtcbiAgICBub0NhY2hlOiB0cnVlLFxuICB9LFxuXG4gIC8qKiDsp6fsnYAg7LqQ7IucICgx67aEKSAtIENTUiBmYWxsYmFjaywg7J6Q7KO8IOuzgOqyveuQmOuKlCDrjbDsnbTthLDsl5Ag7KCB7ZWpICovXG4gIHNob3J0TGl2ZWQ6IHtcbiAgICB2aXNpYmlsaXR5OiBcInB1YmxpY1wiIGFzIGNvbnN0LFxuICAgIG1heEFnZTogNjAsXG4gIH0sXG5cbiAgLyoqIFNTUiDsupDsi5wgKDEw7LSIICsgc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSAzMOy0iCkgKi9cbiAgc3NyOiB7XG4gICAgdmlzaWJpbGl0eTogXCJwdWJsaWNcIiBhcyBjb25zdCxcbiAgICBtYXhBZ2U6IDEwLFxuICAgIHN0YWxlV2hpbGVSZXZhbGlkYXRlOiAzMCxcbiAgfSxcblxuICAvKiog7KSR6rCEIOy6kOyLnCAoNeu2hCkgLSDqsbDsnZgg67OA6rK965CY7KeAIOyViuuKlCDrjbDsnbTthLAgKOyVveq0gCwg7ISk7KCVIOuTsSkgKi9cbiAgbWVkaXVtTGl2ZWQ6IHtcbiAgICB2aXNpYmlsaXR5OiBcInB1YmxpY1wiIGFzIGNvbnN0LFxuICAgIG1heEFnZTogMzAwLFxuICB9LFxuXG4gIC8qKiDquLQg7LqQ7IucICgx7Iuc6rCEKSAtIOygleyggSDsu6jthZDsuKAgKi9cbiAgbG9uZ0xpdmVkOiB7XG4gICAgdmlzaWJpbGl0eTogXCJwdWJsaWNcIiBhcyBjb25zdCxcbiAgICBtYXhBZ2U6IDM2MDAsXG4gIH0sXG5cbiAgLyoqIOyYgeq1rCDsupDsi5wgKDHrhYQgKyBpbW11dGFibGUpIC0g7ZW07Iuc6rCAIO2PrO2VqOuQnCDsoJXsoIEg7YyM7J28ICovXG4gIGltbXV0YWJsZToge1xuICAgIHZpc2liaWxpdHk6IFwicHVibGljXCIgYXMgY29uc3QsXG4gICAgbWF4QWdlOiAzMTUzNjAwMCxcbiAgICBpbW11dGFibGU6IHRydWUsXG4gIH0sXG5cbiAgLyoqIOqwnOyduO2ZlOuQnCDrjbDsnbTthLAgKOuhnOq3uOyduCDsgqzsmqnsnpDrs4Qg64uk66W4IOydkeuLtSkgKi9cbiAgcHJpdmF0ZToge1xuICAgIHZpc2liaWxpdHk6IFwicHJpdmF0ZVwiIGFzIGNvbnN0LFxuICAgIG5vQ2FjaGU6IHRydWUsXG4gIH0sXG59IGFzIGNvbnN0IHNhdGlzZmllcyBSZWNvcmQ8c3RyaW5nLCBDYWNoZUNvbnRyb2xDb25maWc+O1xuXG4vKipcbiAqIENhY2hlQ29udHJvbENvbmZpZyDqsJ3ssrTrpbwgSFRUUCBDYWNoZS1Db250cm9sIO2XpOuNlCDrrLjsnpDsl7TroZwg67OA7ZmY7ZWp64uI64ukLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBidWlsZENhY2hlQ29udHJvbCh7IHZpc2liaWxpdHk6ICdwdWJsaWMnLCBtYXhBZ2U6IDYwIH0pO1xuICogLy8gPT4gJ3B1YmxpYywgbWF4LWFnZT02MCdcbiAqXG4gKiBidWlsZENhY2hlQ29udHJvbCh7IG5vU3RvcmU6IHRydWUgfSk7XG4gKiAvLyA9PiAnbm8tc3RvcmUnXG4gKlxuICogYnVpbGRDYWNoZUNvbnRyb2woQ2FjaGVQcmVzZXRzLmltbXV0YWJsZSk7XG4gKiAvLyA9PiAncHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUnXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQ2FjaGVDb250cm9sKGNvbmZpZzogQ2FjaGVDb250cm9sQ29uZmlnKTogc3RyaW5nIHtcbiAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gbm9TdG9yZeqwgCDshKTsoJXrkJjrqbQg64uk66W4IOuqqOuToCDqsoPsnYQg66y07Iuc7ZWp64uI64ukLlxuICBpZiAoY29uZmlnLm5vU3RvcmUpIHtcbiAgICByZXR1cm4gXCJuby1zdG9yZVwiO1xuICB9XG5cbiAgLy8gbm9DYWNoZeqwgCDshKTsoJXrkJjrqbQgdmlzaWJpbGl0eeyZgCDtlajqu5gg67CY7ZmY7ZWp64uI64ukLlxuICBpZiAoY29uZmlnLm5vQ2FjaGUpIHtcbiAgICBpZiAoY29uZmlnLnZpc2liaWxpdHkgPT09IFwicHJpdmF0ZVwiKSB7XG4gICAgICByZXR1cm4gXCJwcml2YXRlLCBuby1jYWNoZVwiO1xuICAgIH1cbiAgICByZXR1cm4gXCJuby1jYWNoZVwiO1xuICB9XG5cbiAgLy8gdmlzaWJpbGl0eSAo6riw67O46rCSOiBwdWJsaWMpXG4gIHBhcnRzLnB1c2goY29uZmlnLnZpc2liaWxpdHkgPz8gXCJwdWJsaWNcIik7XG5cbiAgLy8gVFRMIOyEpOyglVxuICBpZiAoY29uZmlnLm1heEFnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcGFydHMucHVzaChgbWF4LWFnZT0ke2NvbmZpZy5tYXhBZ2V9YCk7XG4gIH1cblxuICBpZiAoY29uZmlnLnNNYXhBZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgIHBhcnRzLnB1c2goYHMtbWF4YWdlPSR7Y29uZmlnLnNNYXhBZ2V9YCk7XG4gIH1cblxuICAvLyDsnqzqsoDspp0g7Ji17IWYXG4gIGlmIChjb25maWcubXVzdFJldmFsaWRhdGUpIHtcbiAgICBwYXJ0cy5wdXNoKFwibXVzdC1yZXZhbGlkYXRlXCIpO1xuICB9XG5cbiAgaWYgKGNvbmZpZy5wcm94eVJldmFsaWRhdGUpIHtcbiAgICBwYXJ0cy5wdXNoKFwicHJveHktcmV2YWxpZGF0ZVwiKTtcbiAgfVxuXG4gIGlmIChjb25maWcuaW1tdXRhYmxlKSB7XG4gICAgcGFydHMucHVzaChcImltbXV0YWJsZVwiKTtcbiAgfVxuXG4gIC8vIFN0YWxlIOyYteyFmFxuICBpZiAoY29uZmlnLnN0YWxlV2hpbGVSZXZhbGlkYXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICBwYXJ0cy5wdXNoKGBzdGFsZS13aGlsZS1yZXZhbGlkYXRlPSR7Y29uZmlnLnN0YWxlV2hpbGVSZXZhbGlkYXRlfWApO1xuICB9XG5cbiAgaWYgKGNvbmZpZy5zdGFsZUlmRXJyb3IgIT09IHVuZGVmaW5lZCkge1xuICAgIHBhcnRzLnB1c2goYHN0YWxlLWlmLWVycm9yPSR7Y29uZmlnLnN0YWxlSWZFcnJvcn1gKTtcbiAgfVxuXG4gIHJldHVybiBwYXJ0cy5qb2luKFwiLCBcIik7XG59XG5cbi8qKlxuICogQ2FjaGUtQ29udHJvbCDtl6TrjZTsmYAg6rSA66CoIO2XpOuNlChWYXJ5KeulvCBGYXN0aWZ5UmVwbHnsl5Ag7ISk7KCV7ZWp64uI64ukLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhcHBseUNhY2hlSGVhZGVycyhyZXBseSwge1xuICogICB2aXNpYmlsaXR5OiBcInB1YmxpY1wiLFxuICogICBtYXhBZ2U6IDMwMCxcbiAqICAgdmFyeTogW1wiQWNjZXB0LUxhbmd1YWdlXCJdLFxuICogfSk7XG4gKiAvLyA9PiBDYWNoZS1Db250cm9sOiBwdWJsaWMsIG1heC1hZ2U9MzAwXG4gKiAvLyA9PiBWYXJ5OiBBY2NlcHQtTGFuZ3VhZ2VcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlDYWNoZUhlYWRlcnMocmVwbHk6IEZhc3RpZnlSZXBseSwgY29uZmlnOiBDYWNoZUNvbnRyb2xDb25maWcpOiB2b2lkIHtcbiAgcmVwbHkuaGVhZGVyKFwiQ2FjaGUtQ29udHJvbFwiLCBidWlsZENhY2hlQ29udHJvbChjb25maWcpKTtcblxuICBpZiAoY29uZmlnLnZhcnkgJiYgY29uZmlnLnZhcnkubGVuZ3RoID4gMCkge1xuICAgIHJlcGx5LmhlYWRlcihcIlZhcnlcIiwgY29uZmlnLnZhcnkuam9pbihcIiwgXCIpKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1RkEsU0FBZ0Isa0JBQWtCLFFBQW9DO0NBQ3BFLE1BQU1BLFFBQWtCLEVBQUU7QUFHMUIsS0FBSSxPQUFPLFNBQVM7QUFDbEIsU0FBTzs7QUFJVCxLQUFJLE9BQU8sU0FBUztBQUNsQixNQUFJLE9BQU8sZUFBZSxXQUFXO0FBQ25DLFVBQU87O0FBRVQsU0FBTzs7QUFJVCxPQUFNLEtBQUssT0FBTyxjQUFjLFNBQVM7QUFHekMsS0FBSSxPQUFPLFdBQVcsV0FBVztBQUMvQixRQUFNLEtBQUssV0FBVyxPQUFPLFNBQVM7O0FBR3hDLEtBQUksT0FBTyxZQUFZLFdBQVc7QUFDaEMsUUFBTSxLQUFLLFlBQVksT0FBTyxVQUFVOztBQUkxQyxLQUFJLE9BQU8sZ0JBQWdCO0FBQ3pCLFFBQU0sS0FBSyxrQkFBa0I7O0FBRy9CLEtBQUksT0FBTyxpQkFBaUI7QUFDMUIsUUFBTSxLQUFLLG1CQUFtQjs7QUFHaEMsS0FBSSxPQUFPLFdBQVc7QUFDcEIsUUFBTSxLQUFLLFlBQVk7O0FBSXpCLEtBQUksT0FBTyx5QkFBeUIsV0FBVztBQUM3QyxRQUFNLEtBQUssMEJBQTBCLE9BQU8sdUJBQXVCOztBQUdyRSxLQUFJLE9BQU8saUJBQWlCLFdBQVc7QUFDckMsUUFBTSxLQUFLLGtCQUFrQixPQUFPLGVBQWU7O0FBR3JELFFBQU8sTUFBTSxLQUFLLEtBQUs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQnpCLFNBQWdCLGtCQUFrQixPQUFxQixRQUFrQztBQUN2RixPQUFNLE9BQU8saUJBQWlCLGtCQUFrQixPQUFPLENBQUM7QUFFeEQsS0FBSSxPQUFPLFFBQVEsT0FBTyxLQUFLLFNBQVMsR0FBRztBQUN6QyxRQUFNLE9BQU8sUUFBUSxPQUFPLEtBQUssS0FBSyxLQUFLLENBQUM7Ozs7O0NBeEluQyxlQUFlO0VBRTFCLFNBQVMsRUFDUCxTQUFTLE1BQ1Y7RUFHRCxTQUFTLEVBQ1AsU0FBUyxNQUNWO0VBR0QsWUFBWTtHQUNWLFlBQVk7R0FDWixRQUFRO0dBQ1Q7RUFHRCxLQUFLO0dBQ0gsWUFBWTtHQUNaLFFBQVE7R0FDUixzQkFBc0I7R0FDdkI7RUFHRCxhQUFhO0dBQ1gsWUFBWTtHQUNaLFFBQVE7R0FDVDtFQUdELFdBQVc7R0FDVCxZQUFZO0dBQ1osUUFBUTtHQUNUO0VBR0QsV0FBVztHQUNULFlBQVk7R0FDWixRQUFRO0dBQ1IsV0FBVztHQUNaO0VBR0QsU0FBUztHQUNQLFlBQVk7R0FDWixTQUFTO0dBQ1Y7RUFDRiJ9
97
+
98
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtY29udHJvbC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2FjaGUtY29udHJvbC9jYWNoZS1jb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRmFzdGlmeVJlcGx5IH0gZnJvbSBcImZhc3RpZnlcIjtcblxuaW1wb3J0IHsgdHlwZSBDYWNoZUNvbnRyb2xDb25maWcgfSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuXG4vKipcbiAqIOyekOyjvCDsgqzsmqntlZjripQgQ2FjaGUtQ29udHJvbCDtlITrpqzshYvsnoXri4jri6QuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEFQSeyXkOyEnCDsgqzsmqlcbiAqIEBhcGkoe1xuICogICBodHRwTWV0aG9kOiAnR0VUJyxcbiAqICAgY2FjaGVDb250cm9sOiBDYWNoZVByZXNldHMuc2hvcnRMaXZlZCxcbiAqIH0pXG4gKlxuICogLy8gU1NSIOudvOyasO2KuOyXkOyEnCDsgqzsmqlcbiAqIHJlZ2lzdGVyU1NSKHtcbiAqICAgcGF0aDogJy9wcm9kdWN0cycsXG4gKiAgIGNhY2hlQ29udHJvbDogQ2FjaGVQcmVzZXRzLnNzcixcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBDYWNoZVByZXNldHMgPSB7XG4gIC8qKiDsupDsi5wg6riI7KeAICjrr7zqsJDtlZwg642w7J207YSwLCBtdXRhdGlvbiDsmpTssq0pICovXG4gIG5vU3RvcmU6IHtcbiAgICBub1N0b3JlOiB0cnVlLFxuICB9LFxuXG4gIC8qKiDsupDsi5ztlZjrkJgg66ek67KIIOyerOqygOymnSAqL1xuICBub0NhY2hlOiB7XG4gICAgbm9DYWNoZTogdHJ1ZSxcbiAgfSxcblxuICAvKiog7Ken7J2AIOy6kOyLnCAoMeu2hCkgLSBDU1IgZmFsbGJhY2ssIOyekOyjvCDrs4Dqsr3rkJjripQg642w7J207YSw7JeQIOygge2VqSAqL1xuICBzaG9ydExpdmVkOiB7XG4gICAgdmlzaWJpbGl0eTogXCJwdWJsaWNcIiBhcyBjb25zdCxcbiAgICBtYXhBZ2U6IDYwLFxuICB9LFxuXG4gIC8qKiBTU1Ig7LqQ7IucICgxMOy0iCArIHN0YWxlLXdoaWxlLXJldmFsaWRhdGUgMzDstIgpICovXG4gIHNzcjoge1xuICAgIHZpc2liaWxpdHk6IFwicHVibGljXCIgYXMgY29uc3QsXG4gICAgbWF4QWdlOiAxMCxcbiAgICBzdGFsZVdoaWxlUmV2YWxpZGF0ZTogMzAsXG4gIH0sXG5cbiAgLyoqIOykkeqwhCDsupDsi5wgKDXrtoQpIC0g6rGw7J2YIOuzgOqyveuQmOyngCDslYrripQg642w7J207YSwICjslb3qtIAsIOyEpOyglSDrk7EpICovXG4gIG1lZGl1bUxpdmVkOiB7XG4gICAgdmlzaWJpbGl0eTogXCJwdWJsaWNcIiBhcyBjb25zdCxcbiAgICBtYXhBZ2U6IDMwMCxcbiAgfSxcblxuICAvKiog6ri0IOy6kOyLnCAoMeyLnOqwhCkgLSDsoJXsoIEg7Luo7YWQ7LigICovXG4gIGxvbmdMaXZlZDoge1xuICAgIHZpc2liaWxpdHk6IFwicHVibGljXCIgYXMgY29uc3QsXG4gICAgbWF4QWdlOiAzNjAwLFxuICB9LFxuXG4gIC8qKiDsmIHqtawg7LqQ7IucICgx64WEICsgaW1tdXRhYmxlKSAtIO2VtOyLnOqwgCDtj6ztlajrkJwg7KCV7KCBIO2MjOydvCAqL1xuICBpbW11dGFibGU6IHtcbiAgICB2aXNpYmlsaXR5OiBcInB1YmxpY1wiIGFzIGNvbnN0LFxuICAgIG1heEFnZTogMzE1MzYwMDAsXG4gICAgaW1tdXRhYmxlOiB0cnVlLFxuICB9LFxuXG4gIC8qKiDqsJzsnbjtmZTrkJwg642w7J207YSwICjroZzqt7jsnbgg7IKs7Jqp7J6Q67OEIOuLpOuluCDsnZHri7UpICovXG4gIHByaXZhdGU6IHtcbiAgICB2aXNpYmlsaXR5OiBcInByaXZhdGVcIiBhcyBjb25zdCxcbiAgICBub0NhY2hlOiB0cnVlLFxuICB9LFxufSBhcyBjb25zdCBzYXRpc2ZpZXMgUmVjb3JkPHN0cmluZywgQ2FjaGVDb250cm9sQ29uZmlnPjtcblxuLyoqXG4gKiBDYWNoZUNvbnRyb2xDb25maWcg6rCd7LK066W8IEhUVFAgQ2FjaGUtQ29udHJvbCDtl6TrjZQg66y47J6Q7Je066GcIOuzgO2ZmO2VqeuLiOuLpC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogYnVpbGRDYWNoZUNvbnRyb2woeyB2aXNpYmlsaXR5OiAncHVibGljJywgbWF4QWdlOiA2MCB9KTtcbiAqIC8vID0+ICdwdWJsaWMsIG1heC1hZ2U9NjAnXG4gKlxuICogYnVpbGRDYWNoZUNvbnRyb2woeyBub1N0b3JlOiB0cnVlIH0pO1xuICogLy8gPT4gJ25vLXN0b3JlJ1xuICpcbiAqIGJ1aWxkQ2FjaGVDb250cm9sKENhY2hlUHJlc2V0cy5pbW11dGFibGUpO1xuICogLy8gPT4gJ3B1YmxpYywgbWF4LWFnZT0zMTUzNjAwMCwgaW1tdXRhYmxlJ1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZENhY2hlQ29udHJvbChjb25maWc6IENhY2hlQ29udHJvbENvbmZpZyk6IHN0cmluZyB7XG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8vIG5vU3RvcmXqsIAg7ISk7KCV65CY66m0IOuLpOuluCDrqqjrk6Ag6rKD7J2EIOustOyLnO2VqeuLiOuLpC5cbiAgaWYgKGNvbmZpZy5ub1N0b3JlKSB7XG4gICAgcmV0dXJuIFwibm8tc3RvcmVcIjtcbiAgfVxuXG4gIC8vIG5vQ2FjaGXqsIAg7ISk7KCV65CY66m0IHZpc2liaWxpdHnsmYAg7ZWo6ruYIOuwmO2ZmO2VqeuLiOuLpC5cbiAgaWYgKGNvbmZpZy5ub0NhY2hlKSB7XG4gICAgaWYgKGNvbmZpZy52aXNpYmlsaXR5ID09PSBcInByaXZhdGVcIikge1xuICAgICAgcmV0dXJuIFwicHJpdmF0ZSwgbm8tY2FjaGVcIjtcbiAgICB9XG4gICAgcmV0dXJuIFwibm8tY2FjaGVcIjtcbiAgfVxuXG4gIC8vIHZpc2liaWxpdHkgKOq4sOuzuOqwkjogcHVibGljKVxuICBwYXJ0cy5wdXNoKGNvbmZpZy52aXNpYmlsaXR5ID8/IFwicHVibGljXCIpO1xuXG4gIC8vIFRUTCDshKTsoJVcbiAgaWYgKGNvbmZpZy5tYXhBZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgIHBhcnRzLnB1c2goYG1heC1hZ2U9JHtjb25maWcubWF4QWdlfWApO1xuICB9XG5cbiAgaWYgKGNvbmZpZy5zTWF4QWdlICE9PSB1bmRlZmluZWQpIHtcbiAgICBwYXJ0cy5wdXNoKGBzLW1heGFnZT0ke2NvbmZpZy5zTWF4QWdlfWApO1xuICB9XG5cbiAgLy8g7J6s6rKA7KadIOyYteyFmFxuICBpZiAoY29uZmlnLm11c3RSZXZhbGlkYXRlKSB7XG4gICAgcGFydHMucHVzaChcIm11c3QtcmV2YWxpZGF0ZVwiKTtcbiAgfVxuXG4gIGlmIChjb25maWcucHJveHlSZXZhbGlkYXRlKSB7XG4gICAgcGFydHMucHVzaChcInByb3h5LXJldmFsaWRhdGVcIik7XG4gIH1cblxuICBpZiAoY29uZmlnLmltbXV0YWJsZSkge1xuICAgIHBhcnRzLnB1c2goXCJpbW11dGFibGVcIik7XG4gIH1cblxuICAvLyBTdGFsZSDsmLXshZhcbiAgaWYgKGNvbmZpZy5zdGFsZVdoaWxlUmV2YWxpZGF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcGFydHMucHVzaChgc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZT0ke2NvbmZpZy5zdGFsZVdoaWxlUmV2YWxpZGF0ZX1gKTtcbiAgfVxuXG4gIGlmIChjb25maWcuc3RhbGVJZkVycm9yICE9PSB1bmRlZmluZWQpIHtcbiAgICBwYXJ0cy5wdXNoKGBzdGFsZS1pZi1lcnJvcj0ke2NvbmZpZy5zdGFsZUlmRXJyb3J9YCk7XG4gIH1cblxuICByZXR1cm4gcGFydHMuam9pbihcIiwgXCIpO1xufVxuXG4vKipcbiAqIENhY2hlLUNvbnRyb2wg7Zek642U7JmAIOq0gOugqCDtl6TrjZQoVmFyeSnrpbwgRmFzdGlmeVJlcGx57JeQIOyEpOygle2VqeuLiOuLpC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogYXBwbHlDYWNoZUhlYWRlcnMocmVwbHksIHtcbiAqICAgdmlzaWJpbGl0eTogXCJwdWJsaWNcIixcbiAqICAgbWF4QWdlOiAzMDAsXG4gKiAgIHZhcnk6IFtcIkFjY2VwdC1MYW5ndWFnZVwiXSxcbiAqIH0pO1xuICogLy8gPT4gQ2FjaGUtQ29udHJvbDogcHVibGljLCBtYXgtYWdlPTMwMFxuICogLy8gPT4gVmFyeTogQWNjZXB0LUxhbmd1YWdlXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5Q2FjaGVIZWFkZXJzKHJlcGx5OiBGYXN0aWZ5UmVwbHksIGNvbmZpZzogQ2FjaGVDb250cm9sQ29uZmlnKTogdm9pZCB7XG4gIHJlcGx5LmhlYWRlcihcIkNhY2hlLUNvbnRyb2xcIiwgYnVpbGRDYWNoZUNvbnRyb2woY29uZmlnKSk7XG5cbiAgaWYgKGNvbmZpZy52YXJ5ICYmIGNvbmZpZy52YXJ5Lmxlbmd0aCA+IDApIHtcbiAgICByZXBseS5oZWFkZXIoXCJWYXJ5XCIsIGNvbmZpZy52YXJ5LmpvaW4oXCIsIFwiKSk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1RkEsU0FBZ0Isa0JBQWtCLFFBQW9DO0NBQ3BFLE1BQU0sUUFBa0IsQ0FBQztDQUd6QixJQUFJLE9BQU8sU0FDVCxPQUFPO0NBSVQsSUFBSSxPQUFPLFNBQVM7RUFDbEIsSUFBSSxPQUFPLGVBQWUsV0FDeEIsT0FBTztFQUVULE9BQU87Q0FDVDtDQUdBLE1BQU0sS0FBSyxPQUFPLGNBQWMsUUFBUTtDQUd4QyxJQUFJLE9BQU8sV0FBVyxRQUNwQixNQUFNLEtBQUssV0FBVyxPQUFPLFFBQVE7Q0FHdkMsSUFBSSxPQUFPLFlBQVksUUFDckIsTUFBTSxLQUFLLFlBQVksT0FBTyxTQUFTO0NBSXpDLElBQUksT0FBTyxnQkFDVCxNQUFNLEtBQUssaUJBQWlCO0NBRzlCLElBQUksT0FBTyxpQkFDVCxNQUFNLEtBQUssa0JBQWtCO0NBRy9CLElBQUksT0FBTyxXQUNULE1BQU0sS0FBSyxXQUFXO0NBSXhCLElBQUksT0FBTyx5QkFBeUIsUUFDbEMsTUFBTSxLQUFLLDBCQUEwQixPQUFPLHNCQUFzQjtDQUdwRSxJQUFJLE9BQU8saUJBQWlCLFFBQzFCLE1BQU0sS0FBSyxrQkFBa0IsT0FBTyxjQUFjO0NBR3BELE9BQU8sTUFBTSxLQUFLLElBQUk7QUFDeEI7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxTQUFnQixrQkFBa0IsT0FBcUIsUUFBa0M7Q0FDdkYsTUFBTSxPQUFPLGlCQUFpQixrQkFBa0IsTUFBTSxDQUFDO0NBRXZELElBQUksT0FBTyxRQUFRLE9BQU8sS0FBSyxTQUFTLEdBQ3RDLE1BQU0sT0FBTyxRQUFRLE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQztBQUUvQzs7O0NBMUlhLGVBQWU7O0VBRTFCLFNBQVMsRUFDUCxTQUFTLEtBQ1g7O0VBR0EsU0FBUyxFQUNQLFNBQVMsS0FDWDs7RUFHQSxZQUFZO0dBQ1YsWUFBWTtHQUNaLFFBQVE7RUFDVjs7RUFHQSxLQUFLO0dBQ0gsWUFBWTtHQUNaLFFBQVE7R0FDUixzQkFBc0I7RUFDeEI7O0VBR0EsYUFBYTtHQUNYLFlBQVk7R0FDWixRQUFRO0VBQ1Y7O0VBR0EsV0FBVztHQUNULFlBQVk7R0FDWixRQUFRO0VBQ1Y7O0VBR0EsV0FBVztHQUNULFlBQVk7R0FDWixRQUFRO0dBQ1IsV0FBVztFQUNiOztFQUdBLFNBQVM7R0FDUCxZQUFZO0dBQ1osU0FBUztFQUNYO0NBQ0YifQ==
@@ -1 +1 @@
1
- export { };
1
+ export {};