@smooai/config 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +430 -0
  3. package/dist/chunk-3SU3SMKN.mjs +73 -0
  4. package/dist/chunk-3SU3SMKN.mjs.map +1 -0
  5. package/dist/chunk-CASNDTCH.mjs +12 -0
  6. package/dist/chunk-CASNDTCH.mjs.map +1 -0
  7. package/dist/chunk-GLLYQ6FK.mjs +173 -0
  8. package/dist/chunk-GLLYQ6FK.mjs.map +1 -0
  9. package/dist/chunk-HPSOF46N.mjs +71 -0
  10. package/dist/chunk-HPSOF46N.mjs.map +1 -0
  11. package/dist/chunk-HPXCKD6M.mjs +118 -0
  12. package/dist/chunk-HPXCKD6M.mjs.map +1 -0
  13. package/dist/chunk-J5LGTIGS.mjs +10 -0
  14. package/dist/chunk-J5LGTIGS.mjs.map +1 -0
  15. package/dist/chunk-LKV73SD2.mjs +25 -0
  16. package/dist/chunk-LKV73SD2.mjs.map +1 -0
  17. package/dist/chunk-MJ52ZIWV.mjs +98 -0
  18. package/dist/chunk-MJ52ZIWV.mjs.map +1 -0
  19. package/dist/chunk-O7BSFCCY.mjs +89 -0
  20. package/dist/chunk-O7BSFCCY.mjs.map +1 -0
  21. package/dist/chunk-QBM74JB5.mjs +47 -0
  22. package/dist/chunk-QBM74JB5.mjs.map +1 -0
  23. package/dist/chunk-QGMLTMB5.mjs +37 -0
  24. package/dist/chunk-QGMLTMB5.mjs.map +1 -0
  25. package/dist/chunk-SKX7CPGS.mjs +73 -0
  26. package/dist/chunk-SKX7CPGS.mjs.map +1 -0
  27. package/dist/chunk-VPKO6D4W.mjs +33 -0
  28. package/dist/chunk-VPKO6D4W.mjs.map +1 -0
  29. package/dist/chunk-YQWYYS7P.mjs +12194 -0
  30. package/dist/chunk-YQWYYS7P.mjs.map +1 -0
  31. package/dist/chunk-Z3CZGNU5.mjs +99 -0
  32. package/dist/chunk-Z3CZGNU5.mjs.map +1 -0
  33. package/dist/chunk-ZOKHXR5I.mjs +33 -0
  34. package/dist/chunk-ZOKHXR5I.mjs.map +1 -0
  35. package/dist/cli.mjs +1562 -0
  36. package/dist/cli.mjs.map +1 -0
  37. package/dist/config/FeatureFlagKey.d.mts +24 -0
  38. package/dist/config/FeatureFlagKey.d.ts +24 -0
  39. package/dist/config/FeatureFlagKey.js +31 -0
  40. package/dist/config/FeatureFlagKey.js.map +1 -0
  41. package/dist/config/FeatureFlagKey.mjs +8 -0
  42. package/dist/config/FeatureFlagKey.mjs.map +1 -0
  43. package/dist/config/PublicConfigKey.d.mts +22 -0
  44. package/dist/config/PublicConfigKey.d.ts +22 -0
  45. package/dist/config/PublicConfigKey.js +36 -0
  46. package/dist/config/PublicConfigKey.js.map +1 -0
  47. package/dist/config/PublicConfigKey.mjs +8 -0
  48. package/dist/config/PublicConfigKey.mjs.map +1 -0
  49. package/dist/config/SecretConfigKey.d.mts +22 -0
  50. package/dist/config/SecretConfigKey.d.ts +22 -0
  51. package/dist/config/SecretConfigKey.js +31 -0
  52. package/dist/config/SecretConfigKey.js.map +1 -0
  53. package/dist/config/SecretConfigKey.mjs +8 -0
  54. package/dist/config/SecretConfigKey.mjs.map +1 -0
  55. package/dist/config/config.d.mts +178 -0
  56. package/dist/config/config.d.ts +178 -0
  57. package/dist/config/config.js +12364 -0
  58. package/dist/config/config.js.map +1 -0
  59. package/dist/config/config.mjs +23 -0
  60. package/dist/config/config.mjs.map +1 -0
  61. package/dist/config/findAndProcessEnvConfig.d.mts +17 -0
  62. package/dist/config/findAndProcessEnvConfig.d.ts +17 -0
  63. package/dist/config/findAndProcessEnvConfig.js +12290 -0
  64. package/dist/config/findAndProcessEnvConfig.js.map +1 -0
  65. package/dist/config/findAndProcessEnvConfig.mjs +14 -0
  66. package/dist/config/findAndProcessEnvConfig.mjs.map +1 -0
  67. package/dist/config/findAndProcessFileConfig.d.mts +38 -0
  68. package/dist/config/findAndProcessFileConfig.d.ts +38 -0
  69. package/dist/config/findAndProcessFileConfig.js +12431 -0
  70. package/dist/config/findAndProcessFileConfig.js.map +1 -0
  71. package/dist/config/findAndProcessFileConfig.mjs +18 -0
  72. package/dist/config/findAndProcessFileConfig.mjs.map +1 -0
  73. package/dist/config/getCloudRegion.d.mts +8 -0
  74. package/dist/config/getCloudRegion.d.ts +8 -0
  75. package/dist/config/getCloudRegion.js +92 -0
  76. package/dist/config/getCloudRegion.js.map +1 -0
  77. package/dist/config/getCloudRegion.mjs +9 -0
  78. package/dist/config/getCloudRegion.mjs.map +1 -0
  79. package/dist/config/index.d.mts +5 -0
  80. package/dist/config/index.d.ts +5 -0
  81. package/dist/config/index.js +12638 -0
  82. package/dist/config/index.js.map +1 -0
  83. package/dist/config/index.mjs +33 -0
  84. package/dist/config/index.mjs.map +1 -0
  85. package/dist/config/parseConfigSchema.d.mts +13 -0
  86. package/dist/config/parseConfigSchema.d.ts +13 -0
  87. package/dist/config/parseConfigSchema.js +12177 -0
  88. package/dist/config/parseConfigSchema.js.map +1 -0
  89. package/dist/config/parseConfigSchema.mjs +16 -0
  90. package/dist/config/parseConfigSchema.mjs.map +1 -0
  91. package/dist/config/standardSchemaToJson.d.mts +6 -0
  92. package/dist/config/standardSchemaToJson.d.ts +6 -0
  93. package/dist/config/standardSchemaToJson.js +138 -0
  94. package/dist/config/standardSchemaToJson.js.map +1 -0
  95. package/dist/config/standardSchemaToJson.mjs +9 -0
  96. package/dist/config/standardSchemaToJson.mjs.map +1 -0
  97. package/dist/index.d.mts +2 -0
  98. package/dist/index.d.ts +2 -0
  99. package/dist/index.js +19 -0
  100. package/dist/index.js.map +1 -0
  101. package/dist/index.mjs +1 -0
  102. package/dist/index.mjs.map +1 -0
  103. package/dist/integration-tests/1/smooai-config/config.d.mts +4108 -0
  104. package/dist/integration-tests/1/smooai-config/config.d.ts +4108 -0
  105. package/dist/integration-tests/1/smooai-config/config.js +12353 -0
  106. package/dist/integration-tests/1/smooai-config/config.js.map +1 -0
  107. package/dist/integration-tests/1/smooai-config/config.mjs +12 -0
  108. package/dist/integration-tests/1/smooai-config/config.mjs.map +1 -0
  109. package/dist/integration-tests/1/smooai-config/default.d.mts +55 -0
  110. package/dist/integration-tests/1/smooai-config/default.d.ts +55 -0
  111. package/dist/integration-tests/1/smooai-config/default.js +12419 -0
  112. package/dist/integration-tests/1/smooai-config/default.js.map +1 -0
  113. package/dist/integration-tests/1/smooai-config/default.mjs +78 -0
  114. package/dist/integration-tests/1/smooai-config/default.mjs.map +1 -0
  115. package/dist/integration-tests/1/smooai-config/development.d.mts +41 -0
  116. package/dist/integration-tests/1/smooai-config/development.d.ts +41 -0
  117. package/dist/integration-tests/1/smooai-config/development.js +12403 -0
  118. package/dist/integration-tests/1/smooai-config/development.js.map +1 -0
  119. package/dist/integration-tests/1/smooai-config/development.mjs +62 -0
  120. package/dist/integration-tests/1/smooai-config/development.mjs.map +1 -0
  121. package/dist/integration-tests/1/smooai-config/production.aws.d.mts +128 -0
  122. package/dist/integration-tests/1/smooai-config/production.aws.d.ts +128 -0
  123. package/dist/integration-tests/1/smooai-config/production.aws.js +12371 -0
  124. package/dist/integration-tests/1/smooai-config/production.aws.js.map +1 -0
  125. package/dist/integration-tests/1/smooai-config/production.aws.mjs +30 -0
  126. package/dist/integration-tests/1/smooai-config/production.aws.mjs.map +1 -0
  127. package/dist/integration-tests/1/smooai-config/production.aws.us-east-1.d.mts +64 -0
  128. package/dist/integration-tests/1/smooai-config/production.aws.us-east-1.d.ts +64 -0
  129. package/dist/integration-tests/1/smooai-config/production.aws.us-east-1.js +12364 -0
  130. package/dist/integration-tests/1/smooai-config/production.aws.us-east-1.js.map +1 -0
  131. package/dist/integration-tests/1/smooai-config/production.aws.us-east-1.mjs +23 -0
  132. package/dist/integration-tests/1/smooai-config/production.aws.us-east-1.mjs.map +1 -0
  133. package/dist/integration-tests/1/smooai-config/production.aws.us-east-2.d.mts +64 -0
  134. package/dist/integration-tests/1/smooai-config/production.aws.us-east-2.d.ts +64 -0
  135. package/dist/integration-tests/1/smooai-config/production.aws.us-east-2.js +12364 -0
  136. package/dist/integration-tests/1/smooai-config/production.aws.us-east-2.js.map +1 -0
  137. package/dist/integration-tests/1/smooai-config/production.aws.us-east-2.mjs +23 -0
  138. package/dist/integration-tests/1/smooai-config/production.aws.us-east-2.mjs.map +1 -0
  139. package/dist/integration-tests/1/smooai-config/production.d.mts +42 -0
  140. package/dist/integration-tests/1/smooai-config/production.d.ts +42 -0
  141. package/dist/integration-tests/1/smooai-config/production.js +12399 -0
  142. package/dist/integration-tests/1/smooai-config/production.js.map +1 -0
  143. package/dist/integration-tests/1/smooai-config/production.mjs +58 -0
  144. package/dist/integration-tests/1/smooai-config/production.mjs.map +1 -0
  145. package/dist/integration-tests/1/smooai-config/staging.d.mts +129 -0
  146. package/dist/integration-tests/1/smooai-config/staging.d.ts +129 -0
  147. package/dist/integration-tests/1/smooai-config/staging.js +12377 -0
  148. package/dist/integration-tests/1/smooai-config/staging.js.map +1 -0
  149. package/dist/integration-tests/1/smooai-config/staging.mjs +36 -0
  150. package/dist/integration-tests/1/smooai-config/staging.mjs.map +1 -0
  151. package/dist/integration-tests/2/smooai-config/config.d.mts +1262 -0
  152. package/dist/integration-tests/2/smooai-config/config.d.ts +1262 -0
  153. package/dist/integration-tests/2/smooai-config/config.js +12301 -0
  154. package/dist/integration-tests/2/smooai-config/config.js.map +1 -0
  155. package/dist/integration-tests/2/smooai-config/config.mjs +12 -0
  156. package/dist/integration-tests/2/smooai-config/config.mjs.map +1 -0
  157. package/dist/integration-tests/2/smooai-config/default.d.mts +19 -0
  158. package/dist/integration-tests/2/smooai-config/default.d.ts +19 -0
  159. package/dist/integration-tests/2/smooai-config/default.js +12321 -0
  160. package/dist/integration-tests/2/smooai-config/default.js.map +1 -0
  161. package/dist/integration-tests/2/smooai-config/default.mjs +32 -0
  162. package/dist/integration-tests/2/smooai-config/default.mjs.map +1 -0
  163. package/dist/integration-tests/2/smooai-config/development.d.mts +9 -0
  164. package/dist/integration-tests/2/smooai-config/development.d.ts +9 -0
  165. package/dist/integration-tests/2/smooai-config/development.js +12311 -0
  166. package/dist/integration-tests/2/smooai-config/development.js.map +1 -0
  167. package/dist/integration-tests/2/smooai-config/development.mjs +22 -0
  168. package/dist/integration-tests/2/smooai-config/development.mjs.map +1 -0
  169. package/dist/integration-tests/2/smooai-config/production.aws.d.mts +26 -0
  170. package/dist/integration-tests/2/smooai-config/production.aws.d.ts +26 -0
  171. package/dist/integration-tests/2/smooai-config/production.aws.js +12311 -0
  172. package/dist/integration-tests/2/smooai-config/production.aws.js.map +1 -0
  173. package/dist/integration-tests/2/smooai-config/production.aws.mjs +22 -0
  174. package/dist/integration-tests/2/smooai-config/production.aws.mjs.map +1 -0
  175. package/dist/integration-tests/2/smooai-config/production.aws.us-east-1.d.mts +25 -0
  176. package/dist/integration-tests/2/smooai-config/production.aws.us-east-1.d.ts +25 -0
  177. package/dist/integration-tests/2/smooai-config/production.aws.us-east-1.js +12310 -0
  178. package/dist/integration-tests/2/smooai-config/production.aws.us-east-1.js.map +1 -0
  179. package/dist/integration-tests/2/smooai-config/production.aws.us-east-1.mjs +21 -0
  180. package/dist/integration-tests/2/smooai-config/production.aws.us-east-1.mjs.map +1 -0
  181. package/dist/integration-tests/2/smooai-config/production.d.mts +19 -0
  182. package/dist/integration-tests/2/smooai-config/production.d.ts +19 -0
  183. package/dist/integration-tests/2/smooai-config/production.js +12321 -0
  184. package/dist/integration-tests/2/smooai-config/production.js.map +1 -0
  185. package/dist/integration-tests/2/smooai-config/production.mjs +32 -0
  186. package/dist/integration-tests/2/smooai-config/production.mjs.map +1 -0
  187. package/dist/platform/client.d.mts +49 -0
  188. package/dist/platform/client.d.ts +49 -0
  189. package/dist/platform/client.js +123 -0
  190. package/dist/platform/client.js.map +1 -0
  191. package/dist/platform/client.mjs +8 -0
  192. package/dist/platform/client.mjs.map +1 -0
  193. package/dist/platform/server/server.async.d.mts +12 -0
  194. package/dist/platform/server/server.async.d.ts +12 -0
  195. package/dist/platform/server/server.async.js +12586 -0
  196. package/dist/platform/server/server.async.js.map +1 -0
  197. package/dist/platform/server/server.async.mjs +18 -0
  198. package/dist/platform/server/server.async.mjs.map +1 -0
  199. package/dist/platform/server/server.featureFlag.sync.d.mts +2 -0
  200. package/dist/platform/server/server.featureFlag.sync.d.ts +2 -0
  201. package/dist/platform/server/server.featureFlag.sync.js +12589 -0
  202. package/dist/platform/server/server.featureFlag.sync.js.map +1 -0
  203. package/dist/platform/server/server.featureFlag.sync.mjs +24 -0
  204. package/dist/platform/server/server.featureFlag.sync.mjs.map +1 -0
  205. package/dist/platform/server/server.publicConfig.sync.d.mts +2 -0
  206. package/dist/platform/server/server.publicConfig.sync.d.ts +2 -0
  207. package/dist/platform/server/server.publicConfig.sync.js +12589 -0
  208. package/dist/platform/server/server.publicConfig.sync.js.map +1 -0
  209. package/dist/platform/server/server.publicConfig.sync.mjs +24 -0
  210. package/dist/platform/server/server.publicConfig.sync.mjs.map +1 -0
  211. package/dist/platform/server/server.secretConfig.sync.d.mts +2 -0
  212. package/dist/platform/server/server.secretConfig.sync.d.ts +2 -0
  213. package/dist/platform/server/server.secretConfig.sync.js +12589 -0
  214. package/dist/platform/server/server.secretConfig.sync.js.map +1 -0
  215. package/dist/platform/server/server.secretConfig.sync.mjs +24 -0
  216. package/dist/platform/server/server.secretConfig.sync.mjs.map +1 -0
  217. package/dist/platform/server.d.mts +21 -0
  218. package/dist/platform/server.d.ts +21 -0
  219. package/dist/platform/server.js +12626 -0
  220. package/dist/platform/server.js.map +1 -0
  221. package/dist/platform/server.mjs +58 -0
  222. package/dist/platform/server.mjs.map +1 -0
  223. package/dist/react/hooks.d.mts +36 -0
  224. package/dist/react/hooks.d.ts +36 -0
  225. package/dist/react/hooks.js +90 -0
  226. package/dist/react/hooks.js.map +1 -0
  227. package/dist/react/hooks.mjs +14 -0
  228. package/dist/react/hooks.mjs.map +1 -0
  229. package/dist/react/index.d.mts +28 -0
  230. package/dist/react/index.d.ts +28 -0
  231. package/dist/react/index.js +194 -0
  232. package/dist/react/index.js.map +1 -0
  233. package/dist/react/index.mjs +17 -0
  234. package/dist/react/index.mjs.map +1 -0
  235. package/dist/schema-spec/smooai-config-schema-spec.d.mts +25 -0
  236. package/dist/schema-spec/smooai-config-schema-spec.d.ts +25 -0
  237. package/dist/schema-spec/smooai-config-schema-spec.js +177 -0
  238. package/dist/schema-spec/smooai-config-schema-spec.js.map +1 -0
  239. package/dist/schema-spec/smooai-config-schema-spec.mjs +154 -0
  240. package/dist/schema-spec/smooai-config-schema-spec.mjs.map +1 -0
  241. package/dist/utils/fs.d.mts +10 -0
  242. package/dist/utils/fs.d.ts +10 -0
  243. package/dist/utils/fs.js +74 -0
  244. package/dist/utils/fs.js.map +1 -0
  245. package/dist/utils/fs.mjs +11 -0
  246. package/dist/utils/fs.mjs.map +1 -0
  247. package/dist/utils/index.d.mts +29 -0
  248. package/dist/utils/index.d.ts +29 -0
  249. package/dist/utils/index.js +113 -0
  250. package/dist/utils/index.js.map +1 -0
  251. package/dist/utils/index.mjs +18 -0
  252. package/dist/utils/index.mjs.map +1 -0
  253. package/dist/utils/mergeReplaceArrays.d.mts +9 -0
  254. package/dist/utils/mergeReplaceArrays.d.ts +9 -0
  255. package/dist/utils/mergeReplaceArrays.js +63 -0
  256. package/dist/utils/mergeReplaceArrays.js.map +1 -0
  257. package/dist/utils/mergeReplaceArrays.mjs +9 -0
  258. package/dist/utils/mergeReplaceArrays.mjs.map +1 -0
  259. package/package.json +133 -0
@@ -0,0 +1,32 @@
1
+ import {
2
+ config_default
3
+ } from "../../../chunk-QGMLTMB5.mjs";
4
+ import "../../../chunk-YQWYYS7P.mjs";
5
+ import "../../../chunk-MJ52ZIWV.mjs";
6
+ import "../../../chunk-CASNDTCH.mjs";
7
+ import "../../../chunk-3SU3SMKN.mjs";
8
+ import "../../../chunk-J5LGTIGS.mjs";
9
+
10
+ // src/integration-tests/2/smooai-config/production.ts
11
+ var { PublicConfigKeys, SecretConfigKeys, FeatureFlagKeys } = config_default;
12
+ var production_default = {
13
+ [PublicConfigKeys.API_URL]: "https://api.example.com",
14
+ [PublicConfigKeys.MAX_RETRIES]: 5,
15
+ [PublicConfigKeys.ENABLE_DEBUG]: false,
16
+ [PublicConfigKeys.APP_NAME]: "prod-app",
17
+ [PublicConfigKeys.DATABASE]: {
18
+ host: "prod-db.example.com",
19
+ port: 5432,
20
+ ssl: true
21
+ },
22
+ [SecretConfigKeys.API_KEY]: "prod-api-key-secret",
23
+ [SecretConfigKeys.DB_PASSWORD]: "prod-db-pass-secret",
24
+ [SecretConfigKeys.JWT_SECRET]: "prod-jwt-secret",
25
+ [FeatureFlagKeys.ENABLE_NEW_UI]: false,
26
+ [FeatureFlagKeys.ENABLE_BETA]: false,
27
+ [FeatureFlagKeys.MAINTENANCE_MODE]: false
28
+ };
29
+ export {
30
+ production_default as default
31
+ };
32
+ //# sourceMappingURL=production.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/integration-tests/2/smooai-config/production.ts"],"sourcesContent":["import type { InferConfigTypes } from '@/config/config';\nimport config from './config';\n\ntype configTypes = InferConfigTypes<typeof config>;\ntype ConfigTypeInput = configTypes['ConfigTypeInput'];\n\nconst { PublicConfigKeys, SecretConfigKeys, FeatureFlagKeys } = config;\n\nexport default {\n [PublicConfigKeys.API_URL]: 'https://api.example.com',\n [PublicConfigKeys.MAX_RETRIES]: 5,\n [PublicConfigKeys.ENABLE_DEBUG]: false,\n [PublicConfigKeys.APP_NAME]: 'prod-app',\n [PublicConfigKeys.DATABASE]: {\n host: 'prod-db.example.com',\n port: 5432,\n ssl: true,\n },\n\n [SecretConfigKeys.API_KEY]: 'prod-api-key-secret',\n [SecretConfigKeys.DB_PASSWORD]: 'prod-db-pass-secret',\n [SecretConfigKeys.JWT_SECRET]: 'prod-jwt-secret',\n\n [FeatureFlagKeys.ENABLE_NEW_UI]: false,\n [FeatureFlagKeys.ENABLE_BETA]: false,\n [FeatureFlagKeys.MAINTENANCE_MODE]: false,\n} satisfies ConfigTypeInput;\n"],"mappings":";;;;;;;;;;AAMA,IAAM,EAAE,kBAAkB,kBAAkB,gBAAgB,IAAI;AAEhE,IAAO,qBAAQ;AAAA,EACX,CAAC,iBAAiB,OAAO,GAAG;AAAA,EAC5B,CAAC,iBAAiB,WAAW,GAAG;AAAA,EAChC,CAAC,iBAAiB,YAAY,GAAG;AAAA,EACjC,CAAC,iBAAiB,QAAQ,GAAG;AAAA,EAC7B,CAAC,iBAAiB,QAAQ,GAAG;AAAA,IACzB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,KAAK;AAAA,EACT;AAAA,EAEA,CAAC,iBAAiB,OAAO,GAAG;AAAA,EAC5B,CAAC,iBAAiB,WAAW,GAAG;AAAA,EAChC,CAAC,iBAAiB,UAAU,GAAG;AAAA,EAE/B,CAAC,gBAAgB,aAAa,GAAG;AAAA,EACjC,CAAC,gBAAgB,WAAW,GAAG;AAAA,EAC/B,CAAC,gBAAgB,gBAAgB,GAAG;AACxC;","names":[]}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Browser/universal HTTP client for fetching config values from the Smoo AI config server.
3
+ *
4
+ * Environment variables (optional — used as defaults when constructor args are omitted):
5
+ * SMOOAI_CONFIG_API_URL — Base URL of the config API
6
+ * SMOOAI_CONFIG_API_KEY — Bearer token for authentication
7
+ * SMOOAI_CONFIG_ORG_ID — Organization ID
8
+ * SMOOAI_CONFIG_ENV — Default environment name (e.g. "production")
9
+ */
10
+ interface ConfigClientOptions {
11
+ /** Base URL of the config API server. Falls back to SMOOAI_CONFIG_API_URL env var. */
12
+ baseUrl?: string;
13
+ /** API key (M2M / client credentials token). Falls back to SMOOAI_CONFIG_API_KEY env var. */
14
+ apiKey?: string;
15
+ /** Organization ID. Falls back to SMOOAI_CONFIG_ORG_ID env var. */
16
+ orgId?: string;
17
+ /** Default environment name. Falls back to SMOOAI_CONFIG_ENV env var, then "development". */
18
+ environment?: string;
19
+ /** Cache TTL in milliseconds. 0 or undefined means cache never expires (manual invalidation only). */
20
+ cacheTtlMs?: number;
21
+ }
22
+ declare class ConfigClient {
23
+ private baseUrl;
24
+ private orgId;
25
+ private apiKey;
26
+ private defaultEnvironment;
27
+ private cacheTtlMs;
28
+ private cache;
29
+ constructor(options?: ConfigClientOptions);
30
+ private computeExpiresAt;
31
+ private getCached;
32
+ private fetchJson;
33
+ /**
34
+ * Get a single config value by key.
35
+ * Results are cached locally after the first fetch.
36
+ */
37
+ getValue(key: string, environment?: string): Promise<unknown>;
38
+ /**
39
+ * Get all config values for an environment.
40
+ * All returned values are cached locally.
41
+ */
42
+ getAllValues(environment?: string): Promise<Record<string, unknown>>;
43
+ /** Clear the entire local cache. */
44
+ invalidateCache(): void;
45
+ /** Clear cached values for a specific environment. */
46
+ invalidateCacheForEnvironment(environment: string): void;
47
+ }
48
+
49
+ export { ConfigClient, type ConfigClientOptions };
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Browser/universal HTTP client for fetching config values from the Smoo AI config server.
3
+ *
4
+ * Environment variables (optional — used as defaults when constructor args are omitted):
5
+ * SMOOAI_CONFIG_API_URL — Base URL of the config API
6
+ * SMOOAI_CONFIG_API_KEY — Bearer token for authentication
7
+ * SMOOAI_CONFIG_ORG_ID — Organization ID
8
+ * SMOOAI_CONFIG_ENV — Default environment name (e.g. "production")
9
+ */
10
+ interface ConfigClientOptions {
11
+ /** Base URL of the config API server. Falls back to SMOOAI_CONFIG_API_URL env var. */
12
+ baseUrl?: string;
13
+ /** API key (M2M / client credentials token). Falls back to SMOOAI_CONFIG_API_KEY env var. */
14
+ apiKey?: string;
15
+ /** Organization ID. Falls back to SMOOAI_CONFIG_ORG_ID env var. */
16
+ orgId?: string;
17
+ /** Default environment name. Falls back to SMOOAI_CONFIG_ENV env var, then "development". */
18
+ environment?: string;
19
+ /** Cache TTL in milliseconds. 0 or undefined means cache never expires (manual invalidation only). */
20
+ cacheTtlMs?: number;
21
+ }
22
+ declare class ConfigClient {
23
+ private baseUrl;
24
+ private orgId;
25
+ private apiKey;
26
+ private defaultEnvironment;
27
+ private cacheTtlMs;
28
+ private cache;
29
+ constructor(options?: ConfigClientOptions);
30
+ private computeExpiresAt;
31
+ private getCached;
32
+ private fetchJson;
33
+ /**
34
+ * Get a single config value by key.
35
+ * Results are cached locally after the first fetch.
36
+ */
37
+ getValue(key: string, environment?: string): Promise<unknown>;
38
+ /**
39
+ * Get all config values for an environment.
40
+ * All returned values are cached locally.
41
+ */
42
+ getAllValues(environment?: string): Promise<Record<string, unknown>>;
43
+ /** Clear the entire local cache. */
44
+ invalidateCache(): void;
45
+ /** Clear cached values for a specific environment. */
46
+ invalidateCacheForEnvironment(environment: string): void;
47
+ }
48
+
49
+ export { ConfigClient, type ConfigClientOptions };
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/platform/client.ts
21
+ var client_exports = {};
22
+ __export(client_exports, {
23
+ ConfigClient: () => ConfigClient
24
+ });
25
+ module.exports = __toCommonJS(client_exports);
26
+ function getEnv(key) {
27
+ if (typeof process !== "undefined" && process.env) {
28
+ return process.env[key];
29
+ }
30
+ return void 0;
31
+ }
32
+ var ConfigClient = class {
33
+ baseUrl;
34
+ orgId;
35
+ apiKey;
36
+ defaultEnvironment;
37
+ cacheTtlMs;
38
+ cache = /* @__PURE__ */ new Map();
39
+ constructor(options = {}) {
40
+ const baseUrl = options.baseUrl ?? getEnv("SMOOAI_CONFIG_API_URL");
41
+ const apiKey = options.apiKey ?? getEnv("SMOOAI_CONFIG_API_KEY");
42
+ const orgId = options.orgId ?? getEnv("SMOOAI_CONFIG_ORG_ID");
43
+ if (!baseUrl) throw new Error("@smooai/config: baseUrl is required (or set SMOOAI_CONFIG_API_URL)");
44
+ if (!apiKey) throw new Error("@smooai/config: apiKey is required (or set SMOOAI_CONFIG_API_KEY)");
45
+ if (!orgId) throw new Error("@smooai/config: orgId is required (or set SMOOAI_CONFIG_ORG_ID)");
46
+ this.baseUrl = baseUrl.replace(/\/+$/, "");
47
+ this.apiKey = apiKey;
48
+ this.orgId = orgId;
49
+ this.defaultEnvironment = options.environment ?? getEnv("SMOOAI_CONFIG_ENV") ?? "development";
50
+ this.cacheTtlMs = options.cacheTtlMs ?? 0;
51
+ }
52
+ computeExpiresAt() {
53
+ return this.cacheTtlMs > 0 ? Date.now() + this.cacheTtlMs : 0;
54
+ }
55
+ getCached(cacheKey) {
56
+ const entry = this.cache.get(cacheKey);
57
+ if (!entry) return void 0;
58
+ if (entry.expiresAt > 0 && Date.now() > entry.expiresAt) {
59
+ this.cache.delete(cacheKey);
60
+ return void 0;
61
+ }
62
+ return entry.value;
63
+ }
64
+ async fetchJson(path) {
65
+ const response = await fetch(`${this.baseUrl}${path}`, {
66
+ headers: { Authorization: `Bearer ${this.apiKey}` }
67
+ });
68
+ if (!response.ok) {
69
+ throw new Error(`Config API error: HTTP ${response.status} ${response.statusText}`);
70
+ }
71
+ return response.json();
72
+ }
73
+ /**
74
+ * Get a single config value by key.
75
+ * Results are cached locally after the first fetch.
76
+ */
77
+ async getValue(key, environment) {
78
+ const env = environment ?? this.defaultEnvironment;
79
+ const cacheKey = `${env}:${key}`;
80
+ const cached = this.getCached(cacheKey);
81
+ if (cached !== void 0) {
82
+ return cached;
83
+ }
84
+ const result = await this.fetchJson(
85
+ `/organizations/${this.orgId}/config/values/${encodeURIComponent(key)}?environment=${encodeURIComponent(env)}`
86
+ );
87
+ this.cache.set(cacheKey, { value: result.value, expiresAt: this.computeExpiresAt() });
88
+ return result.value;
89
+ }
90
+ /**
91
+ * Get all config values for an environment.
92
+ * All returned values are cached locally.
93
+ */
94
+ async getAllValues(environment) {
95
+ const env = environment ?? this.defaultEnvironment;
96
+ const result = await this.fetchJson(
97
+ `/organizations/${this.orgId}/config/values?environment=${encodeURIComponent(env)}`
98
+ );
99
+ const expiresAt = this.computeExpiresAt();
100
+ for (const [key, value] of Object.entries(result.values)) {
101
+ this.cache.set(`${env}:${key}`, { value, expiresAt });
102
+ }
103
+ return result.values;
104
+ }
105
+ /** Clear the entire local cache. */
106
+ invalidateCache() {
107
+ this.cache.clear();
108
+ }
109
+ /** Clear cached values for a specific environment. */
110
+ invalidateCacheForEnvironment(environment) {
111
+ const prefix = `${environment}:`;
112
+ for (const key of this.cache.keys()) {
113
+ if (key.startsWith(prefix)) {
114
+ this.cache.delete(key);
115
+ }
116
+ }
117
+ }
118
+ };
119
+ // Annotate the CommonJS export names for ESM import in node:
120
+ 0 && (module.exports = {
121
+ ConfigClient
122
+ });
123
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/platform/client.ts"],"sourcesContent":["/**\n * Browser/universal HTTP client for fetching config values from the Smoo AI config server.\n *\n * Environment variables (optional — used as defaults when constructor args are omitted):\n * SMOOAI_CONFIG_API_URL — Base URL of the config API\n * SMOOAI_CONFIG_API_KEY — Bearer token for authentication\n * SMOOAI_CONFIG_ORG_ID — Organization ID\n * SMOOAI_CONFIG_ENV — Default environment name (e.g. \"production\")\n */\n\nexport interface ConfigClientOptions {\n /** Base URL of the config API server. Falls back to SMOOAI_CONFIG_API_URL env var. */\n baseUrl?: string;\n /** API key (M2M / client credentials token). Falls back to SMOOAI_CONFIG_API_KEY env var. */\n apiKey?: string;\n /** Organization ID. Falls back to SMOOAI_CONFIG_ORG_ID env var. */\n orgId?: string;\n /** Default environment name. Falls back to SMOOAI_CONFIG_ENV env var, then \"development\". */\n environment?: string;\n /** Cache TTL in milliseconds. 0 or undefined means cache never expires (manual invalidation only). */\n cacheTtlMs?: number;\n}\n\ninterface CacheEntry {\n value: unknown;\n expiresAt: number; // 0 = never expires\n}\n\nfunction getEnv(key: string): string | undefined {\n if (typeof process !== 'undefined' && process.env) {\n return process.env[key];\n }\n return undefined;\n}\n\nexport class ConfigClient {\n private baseUrl: string;\n private orgId: string;\n private apiKey: string;\n private defaultEnvironment: string;\n private cacheTtlMs: number;\n private cache: Map<string, CacheEntry> = new Map();\n\n constructor(options: ConfigClientOptions = {}) {\n const baseUrl = options.baseUrl ?? getEnv('SMOOAI_CONFIG_API_URL');\n const apiKey = options.apiKey ?? getEnv('SMOOAI_CONFIG_API_KEY');\n const orgId = options.orgId ?? getEnv('SMOOAI_CONFIG_ORG_ID');\n\n if (!baseUrl) throw new Error('@smooai/config: baseUrl is required (or set SMOOAI_CONFIG_API_URL)');\n if (!apiKey) throw new Error('@smooai/config: apiKey is required (or set SMOOAI_CONFIG_API_KEY)');\n if (!orgId) throw new Error('@smooai/config: orgId is required (or set SMOOAI_CONFIG_ORG_ID)');\n\n this.baseUrl = baseUrl.replace(/\\/+$/, '');\n this.apiKey = apiKey;\n this.orgId = orgId;\n this.defaultEnvironment = options.environment ?? getEnv('SMOOAI_CONFIG_ENV') ?? 'development';\n this.cacheTtlMs = options.cacheTtlMs ?? 0;\n }\n\n private computeExpiresAt(): number {\n return this.cacheTtlMs > 0 ? Date.now() + this.cacheTtlMs : 0;\n }\n\n private getCached(cacheKey: string): unknown | undefined {\n const entry = this.cache.get(cacheKey);\n if (!entry) return undefined;\n if (entry.expiresAt > 0 && Date.now() > entry.expiresAt) {\n this.cache.delete(cacheKey);\n return undefined;\n }\n return entry.value;\n }\n\n private async fetchJson<T>(path: string): Promise<T> {\n const response = await fetch(`${this.baseUrl}${path}`, {\n headers: { Authorization: `Bearer ${this.apiKey}` },\n });\n if (!response.ok) {\n throw new Error(`Config API error: HTTP ${response.status} ${response.statusText}`);\n }\n return response.json() as Promise<T>;\n }\n\n /**\n * Get a single config value by key.\n * Results are cached locally after the first fetch.\n */\n async getValue(key: string, environment?: string): Promise<unknown> {\n const env = environment ?? this.defaultEnvironment;\n const cacheKey = `${env}:${key}`;\n\n const cached = this.getCached(cacheKey);\n if (cached !== undefined) {\n return cached;\n }\n\n const result = await this.fetchJson<{ value: unknown }>(\n `/organizations/${this.orgId}/config/values/${encodeURIComponent(key)}?environment=${encodeURIComponent(env)}`,\n );\n this.cache.set(cacheKey, { value: result.value, expiresAt: this.computeExpiresAt() });\n return result.value;\n }\n\n /**\n * Get all config values for an environment.\n * All returned values are cached locally.\n */\n async getAllValues(environment?: string): Promise<Record<string, unknown>> {\n const env = environment ?? this.defaultEnvironment;\n\n const result = await this.fetchJson<{ values: Record<string, unknown> }>(\n `/organizations/${this.orgId}/config/values?environment=${encodeURIComponent(env)}`,\n );\n\n const expiresAt = this.computeExpiresAt();\n for (const [key, value] of Object.entries(result.values)) {\n this.cache.set(`${env}:${key}`, { value, expiresAt });\n }\n\n return result.values;\n }\n\n /** Clear the entire local cache. */\n invalidateCache(): void {\n this.cache.clear();\n }\n\n /** Clear cached values for a specific environment. */\n invalidateCacheForEnvironment(environment: string): void {\n const prefix = `${environment}:`;\n for (const key of this.cache.keys()) {\n if (key.startsWith(prefix)) {\n this.cache.delete(key);\n }\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA4BA,SAAS,OAAO,KAAiC;AAC7C,MAAI,OAAO,YAAY,eAAe,QAAQ,KAAK;AAC/C,WAAO,QAAQ,IAAI,GAAG;AAAA,EAC1B;AACA,SAAO;AACX;AAEO,IAAM,eAAN,MAAmB;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAiC,oBAAI,IAAI;AAAA,EAEjD,YAAY,UAA+B,CAAC,GAAG;AAC3C,UAAM,UAAU,QAAQ,WAAW,OAAO,uBAAuB;AACjE,UAAM,SAAS,QAAQ,UAAU,OAAO,uBAAuB;AAC/D,UAAM,QAAQ,QAAQ,SAAS,OAAO,sBAAsB;AAE5D,QAAI,CAAC,QAAS,OAAM,IAAI,MAAM,oEAAoE;AAClG,QAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,mEAAmE;AAChG,QAAI,CAAC,MAAO,OAAM,IAAI,MAAM,iEAAiE;AAE7F,SAAK,UAAU,QAAQ,QAAQ,QAAQ,EAAE;AACzC,SAAK,SAAS;AACd,SAAK,QAAQ;AACb,SAAK,qBAAqB,QAAQ,eAAe,OAAO,mBAAmB,KAAK;AAChF,SAAK,aAAa,QAAQ,cAAc;AAAA,EAC5C;AAAA,EAEQ,mBAA2B;AAC/B,WAAO,KAAK,aAAa,IAAI,KAAK,IAAI,IAAI,KAAK,aAAa;AAAA,EAChE;AAAA,EAEQ,UAAU,UAAuC;AACrD,UAAM,QAAQ,KAAK,MAAM,IAAI,QAAQ;AACrC,QAAI,CAAC,MAAO,QAAO;AACnB,QAAI,MAAM,YAAY,KAAK,KAAK,IAAI,IAAI,MAAM,WAAW;AACrD,WAAK,MAAM,OAAO,QAAQ;AAC1B,aAAO;AAAA,IACX;AACA,WAAO,MAAM;AAAA,EACjB;AAAA,EAEA,MAAc,UAAa,MAA0B;AACjD,UAAM,WAAW,MAAM,MAAM,GAAG,KAAK,OAAO,GAAG,IAAI,IAAI;AAAA,MACnD,SAAS,EAAE,eAAe,UAAU,KAAK,MAAM,GAAG;AAAA,IACtD,CAAC;AACD,QAAI,CAAC,SAAS,IAAI;AACd,YAAM,IAAI,MAAM,0BAA0B,SAAS,MAAM,IAAI,SAAS,UAAU,EAAE;AAAA,IACtF;AACA,WAAO,SAAS,KAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,SAAS,KAAa,aAAwC;AAChE,UAAM,MAAM,eAAe,KAAK;AAChC,UAAM,WAAW,GAAG,GAAG,IAAI,GAAG;AAE9B,UAAM,SAAS,KAAK,UAAU,QAAQ;AACtC,QAAI,WAAW,QAAW;AACtB,aAAO;AAAA,IACX;AAEA,UAAM,SAAS,MAAM,KAAK;AAAA,MACtB,kBAAkB,KAAK,KAAK,kBAAkB,mBAAmB,GAAG,CAAC,gBAAgB,mBAAmB,GAAG,CAAC;AAAA,IAChH;AACA,SAAK,MAAM,IAAI,UAAU,EAAE,OAAO,OAAO,OAAO,WAAW,KAAK,iBAAiB,EAAE,CAAC;AACpF,WAAO,OAAO;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,aAAa,aAAwD;AACvE,UAAM,MAAM,eAAe,KAAK;AAEhC,UAAM,SAAS,MAAM,KAAK;AAAA,MACtB,kBAAkB,KAAK,KAAK,8BAA8B,mBAAmB,GAAG,CAAC;AAAA,IACrF;AAEA,UAAM,YAAY,KAAK,iBAAiB;AACxC,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,MAAM,GAAG;AACtD,WAAK,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO,UAAU,CAAC;AAAA,IACxD;AAEA,WAAO,OAAO;AAAA,EAClB;AAAA;AAAA,EAGA,kBAAwB;AACpB,SAAK,MAAM,MAAM;AAAA,EACrB;AAAA;AAAA,EAGA,8BAA8B,aAA2B;AACrD,UAAM,SAAS,GAAG,WAAW;AAC7B,eAAW,OAAO,KAAK,MAAM,KAAK,GAAG;AACjC,UAAI,IAAI,WAAW,MAAM,GAAG;AACxB,aAAK,MAAM,OAAO,GAAG;AAAA,MACzB;AAAA,IACJ;AAAA,EACJ;AACJ;","names":[]}
@@ -0,0 +1,8 @@
1
+ import {
2
+ ConfigClient
3
+ } from "../chunk-Z3CZGNU5.mjs";
4
+ import "../chunk-J5LGTIGS.mjs";
5
+ export {
6
+ ConfigClient
7
+ };
8
+ //# sourceMappingURL=client.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,12 @@
1
+ import { defineConfig, InferConfigTypes } from '../../config/config.mjs';
2
+ import '../../utils/index.mjs';
3
+ import '@standard-schema/spec';
4
+ import 'zod';
5
+
6
+ declare function buildConfigObject<Schema extends ReturnType<typeof defineConfig>>(configSchema: Schema): {
7
+ getPublicConfig: <K extends Extract<InferConfigTypes<Schema>["PublicConfigKeys"][keyof InferConfigTypes<Schema>["PublicConfigKeys"]], keyof InferConfigTypes<Schema>["ConfigType"]>>(key: K) => Promise<InferConfigTypes<Schema>["ConfigType"][K] | undefined>;
8
+ getSecretConfig: <K extends Extract<InferConfigTypes<Schema>["SecretConfigKeys"][keyof InferConfigTypes<Schema>["SecretConfigKeys"]], keyof InferConfigTypes<Schema>["ConfigType"]>>(key: K) => Promise<InferConfigTypes<Schema>["ConfigType"][K] | undefined>;
9
+ getFeatureFlag: <K extends Extract<InferConfigTypes<Schema>["FeatureFlagKeys"][keyof InferConfigTypes<Schema>["FeatureFlagKeys"]], keyof InferConfigTypes<Schema>["ConfigType"]>>(key: K) => Promise<InferConfigTypes<Schema>["ConfigType"][K] | undefined>;
10
+ };
11
+
12
+ export { buildConfigObject as default };
@@ -0,0 +1,12 @@
1
+ import { defineConfig, InferConfigTypes } from '../../config/config.js';
2
+ import '../../utils/index.js';
3
+ import '@standard-schema/spec';
4
+ import 'zod';
5
+
6
+ declare function buildConfigObject<Schema extends ReturnType<typeof defineConfig>>(configSchema: Schema): {
7
+ getPublicConfig: <K extends Extract<InferConfigTypes<Schema>["PublicConfigKeys"][keyof InferConfigTypes<Schema>["PublicConfigKeys"]], keyof InferConfigTypes<Schema>["ConfigType"]>>(key: K) => Promise<InferConfigTypes<Schema>["ConfigType"][K] | undefined>;
8
+ getSecretConfig: <K extends Extract<InferConfigTypes<Schema>["SecretConfigKeys"][keyof InferConfigTypes<Schema>["SecretConfigKeys"]], keyof InferConfigTypes<Schema>["ConfigType"]>>(key: K) => Promise<InferConfigTypes<Schema>["ConfigType"][K] | undefined>;
9
+ getFeatureFlag: <K extends Extract<InferConfigTypes<Schema>["FeatureFlagKeys"][keyof InferConfigTypes<Schema>["FeatureFlagKeys"]], keyof InferConfigTypes<Schema>["ConfigType"]>>(key: K) => Promise<InferConfigTypes<Schema>["ConfigType"][K] | undefined>;
10
+ };
11
+
12
+ export { buildConfigObject as default };