@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,16 @@
1
+ import {
2
+ generateZodSchemas,
3
+ parseConfig,
4
+ parseConfigKey
5
+ } from "../chunk-VPKO6D4W.mjs";
6
+ import "../chunk-YQWYYS7P.mjs";
7
+ import "../chunk-MJ52ZIWV.mjs";
8
+ import "../chunk-CASNDTCH.mjs";
9
+ import "../chunk-3SU3SMKN.mjs";
10
+ import "../chunk-J5LGTIGS.mjs";
11
+ export {
12
+ generateZodSchemas,
13
+ parseConfig,
14
+ parseConfigKey
15
+ };
16
+ //# sourceMappingURL=parseConfigSchema.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,6 @@
1
+ import { StandardSchemaV1 } from '@standard-schema/spec';
2
+ import { Schema } from 'effect';
3
+
4
+ declare function standardSchemaToJson<I, O>(schema: StandardSchemaV1<I, O> | Schema.Schema<O, I>): any;
5
+
6
+ export { standardSchemaToJson };
@@ -0,0 +1,6 @@
1
+ import { StandardSchemaV1 } from '@standard-schema/spec';
2
+ import { Schema } from 'effect';
3
+
4
+ declare function standardSchemaToJson<I, O>(schema: StandardSchemaV1<I, O> | Schema.Schema<O, I>): any;
5
+
6
+ export { standardSchemaToJson };
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/config/standardSchemaToJson.ts
31
+ var standardSchemaToJson_exports = {};
32
+ __export(standardSchemaToJson_exports, {
33
+ standardSchemaToJson: () => standardSchemaToJson
34
+ });
35
+ module.exports = __toCommonJS(standardSchemaToJson_exports);
36
+
37
+ // src/utils/index.ts
38
+ var import_esm_utils = __toESM(require("esm-utils"));
39
+ var SmooaiConfigError = class extends Error {
40
+ constructor(message, options) {
41
+ super(`[Smooai Config] ${message}`, options);
42
+ }
43
+ };
44
+
45
+ // src/config/standardSchemaToJson.ts
46
+ var import_to_json_schema = require("@valibot/to-json-schema");
47
+ var import_effect = require("effect");
48
+ var EffectJSONSchema = __toESM(require("effect/JSONSchema"));
49
+ var import_zod_to_json_schema = __toESM(require("zod-to-json-schema"));
50
+ var UNSUPPORTED_ZOD_TYPES = {
51
+ ZodFunction: "z.function() cannot be serialized to JSON Schema for config. Use a plain value type instead.",
52
+ ZodPromise: "z.promise() cannot be serialized to JSON Schema for config. Use a plain value type instead.",
53
+ ZodVoid: "z.void() cannot be serialized to JSON Schema for config. Use a plain value type instead.",
54
+ ZodNever: "z.never() cannot be serialized to JSON Schema for config. Use a plain value type instead.",
55
+ ZodSymbol: "z.symbol() cannot be serialized to JSON Schema for config. Use a plain value type instead.",
56
+ ZodUndefined: "z.undefined() cannot be serialized to JSON Schema for config. Use a plain value type instead.",
57
+ ZodLazy: "Recursive schemas (z.lazy()) are not supported in config. Flatten your schema structure.",
58
+ ZodMap: "z.map() is not representable in JSON Schema across all SDK languages. Use a Record or object type instead.",
59
+ ZodSet: "z.set() is not representable in JSON Schema across all SDK languages. Use an array type instead.",
60
+ ZodBigInt: "z.bigint() is not representable in JSON Schema across all SDK languages. Use a number or string type instead.",
61
+ ZodDate: 'z.date() is not representable in JSON Schema across all SDK languages. Use a string with format "date-time" instead.'
62
+ };
63
+ var UNSUPPORTED_ZOD_TRANSFORMS = {
64
+ ZodEffects: "z.transform()/z.refine()/z.preprocess() performs runtime transformations lost in JSON Schema. Define config as plain types.",
65
+ ZodPipeline: "z.pipe() performs runtime transformations lost in JSON Schema. Define config as plain types."
66
+ };
67
+ function checkZodSchema(schema, path = "") {
68
+ const def = schema?._def;
69
+ if (!def) return;
70
+ const typeName = def.typeName;
71
+ if (typeName) {
72
+ if (typeName in UNSUPPORTED_ZOD_TYPES) {
73
+ throw new SmooaiConfigError(`${path ? `At ${path}: ` : ""}${UNSUPPORTED_ZOD_TYPES[typeName]}`);
74
+ }
75
+ if (typeName in UNSUPPORTED_ZOD_TRANSFORMS) {
76
+ throw new SmooaiConfigError(`${path ? `At ${path}: ` : ""}${UNSUPPORTED_ZOD_TRANSFORMS[typeName]}`);
77
+ }
78
+ }
79
+ if (def.innerType) checkZodSchema(def.innerType, path);
80
+ if (def.schema) checkZodSchema(def.schema, path);
81
+ if (def.left) checkZodSchema(def.left, path);
82
+ if (def.right) checkZodSchema(def.right, path);
83
+ if (def.options) {
84
+ for (const opt of def.options) {
85
+ if (opt && typeof opt === "object" && "_def" in opt) {
86
+ checkZodSchema(opt, path);
87
+ }
88
+ }
89
+ }
90
+ if (def.items) {
91
+ for (const item of def.items) {
92
+ if (item && typeof item === "object" && "_def" in item) {
93
+ checkZodSchema(item, path);
94
+ }
95
+ }
96
+ }
97
+ if (def.type) {
98
+ if (typeof def.type === "object" && "_def" in def.type) {
99
+ checkZodSchema(def.type, path);
100
+ }
101
+ }
102
+ if (def.shape) {
103
+ const shape = typeof def.shape === "function" ? def.shape() : def.shape;
104
+ if (shape && typeof shape === "object") {
105
+ for (const [key, value] of Object.entries(shape)) {
106
+ if (value && typeof value === "object" && "_def" in value) {
107
+ checkZodSchema(value, `${path ? path + "." : ""}${key}`);
108
+ }
109
+ }
110
+ }
111
+ }
112
+ }
113
+ function standardSchemaToJson(schema) {
114
+ if ("~standard" in schema) {
115
+ const { vendor } = schema["~standard"];
116
+ switch (vendor) {
117
+ case "zod":
118
+ checkZodSchema(schema);
119
+ return (0, import_zod_to_json_schema.default)(schema);
120
+ case "valibot":
121
+ return (0, import_to_json_schema.toJsonSchema)(schema);
122
+ case "arktype":
123
+ return schema.toJsonSchema();
124
+ default:
125
+ throw new SmooaiConfigError(`Cannot serialize validation schema for vendor: ${vendor}`);
126
+ }
127
+ } else {
128
+ if (import_effect.Schema.isSchema(schema)) {
129
+ return EffectJSONSchema.make(schema);
130
+ }
131
+ throw new SmooaiConfigError(`Cannot serialize validation schema of unknown type: ${schema}`);
132
+ }
133
+ }
134
+ // Annotate the CommonJS export names for ESM import in node:
135
+ 0 && (module.exports = {
136
+ standardSchemaToJson
137
+ });
138
+ //# sourceMappingURL=standardSchemaToJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/config/standardSchemaToJson.ts","../../src/utils/index.ts"],"sourcesContent":["import { SmooaiConfigError } from '@/utils';\nimport { StandardSchemaV1 } from '@standard-schema/spec';\nimport { toJsonSchema as valibotToJsonSchema } from '@valibot/to-json-schema';\nimport type { Type as ArkType } from 'arktype';\nimport { Schema as EffectSchema } from 'effect';\nimport * as EffectJSONSchema from 'effect/JSONSchema';\nimport type { BaseIssue, BaseSchema } from 'valibot';\nimport type { ZodType } from 'zod';\nimport zodToJsonSchema from 'zod-to-json-schema';\n\n/**\n * Zod type names that cannot be serialized to JSON Schema for config.\n * Maps typeName to an actionable error message.\n */\nconst UNSUPPORTED_ZOD_TYPES: Record<string, string> = {\n ZodFunction: 'z.function() cannot be serialized to JSON Schema for config. Use a plain value type instead.',\n ZodPromise: 'z.promise() cannot be serialized to JSON Schema for config. Use a plain value type instead.',\n ZodVoid: 'z.void() cannot be serialized to JSON Schema for config. Use a plain value type instead.',\n ZodNever: 'z.never() cannot be serialized to JSON Schema for config. Use a plain value type instead.',\n ZodSymbol: 'z.symbol() cannot be serialized to JSON Schema for config. Use a plain value type instead.',\n ZodUndefined: 'z.undefined() cannot be serialized to JSON Schema for config. Use a plain value type instead.',\n ZodLazy: 'Recursive schemas (z.lazy()) are not supported in config. Flatten your schema structure.',\n ZodMap: 'z.map() is not representable in JSON Schema across all SDK languages. Use a Record or object type instead.',\n ZodSet: 'z.set() is not representable in JSON Schema across all SDK languages. Use an array type instead.',\n ZodBigInt: 'z.bigint() is not representable in JSON Schema across all SDK languages. Use a number or string type instead.',\n ZodDate: 'z.date() is not representable in JSON Schema across all SDK languages. Use a string with format \"date-time\" instead.',\n};\n\nconst UNSUPPORTED_ZOD_TRANSFORMS: Record<string, string> = {\n ZodEffects: 'z.transform()/z.refine()/z.preprocess() performs runtime transformations lost in JSON Schema. Define config as plain types.',\n ZodPipeline: 'z.pipe() performs runtime transformations lost in JSON Schema. Define config as plain types.',\n};\n\n/**\n * Check a Zod schema for unsupported type names before conversion.\n * Recursively walks the schema tree to catch issues in nested schemas.\n */\nfunction checkZodSchema(schema: ZodType, path: string = ''): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- accessing internal Zod structure\n const def = (schema as any)?._def;\n if (!def) return;\n\n const typeName = def.typeName as string | undefined;\n if (typeName) {\n if (typeName in UNSUPPORTED_ZOD_TYPES) {\n throw new SmooaiConfigError(`${path ? `At ${path}: ` : ''}${UNSUPPORTED_ZOD_TYPES[typeName]}`);\n }\n if (typeName in UNSUPPORTED_ZOD_TRANSFORMS) {\n throw new SmooaiConfigError(`${path ? `At ${path}: ` : ''}${UNSUPPORTED_ZOD_TRANSFORMS[typeName]}`);\n }\n }\n\n // Recurse into common Zod internal structures\n if (def.innerType) checkZodSchema(def.innerType, path);\n if (def.schema) checkZodSchema(def.schema, path);\n if (def.left) checkZodSchema(def.left, path);\n if (def.right) checkZodSchema(def.right, path);\n if (def.options) {\n for (const opt of def.options) {\n if (opt && typeof opt === 'object' && '_def' in opt) {\n checkZodSchema(opt, path);\n }\n }\n }\n if (def.items) {\n for (const item of def.items) {\n if (item && typeof item === 'object' && '_def' in item) {\n checkZodSchema(item, path);\n }\n }\n }\n if (def.type) {\n if (typeof def.type === 'object' && '_def' in def.type) {\n checkZodSchema(def.type, path);\n }\n }\n // ZodObject shape\n if (def.shape) {\n const shape = typeof def.shape === 'function' ? def.shape() : def.shape;\n if (shape && typeof shape === 'object') {\n for (const [key, value] of Object.entries(shape)) {\n if (value && typeof value === 'object' && '_def' in (value as object)) {\n checkZodSchema(value as ZodType, `${path ? path + '.' : ''}${key}`);\n }\n }\n }\n }\n}\n\nexport function standardSchemaToJson<I, O>(schema: StandardSchemaV1<I, O> | EffectSchema.Schema<O, I>) {\n if ('~standard' in schema) {\n const { vendor } = schema['~standard'];\n switch (vendor) {\n case 'zod':\n checkZodSchema(schema as ZodType);\n return zodToJsonSchema(schema as ZodType);\n case 'valibot':\n return valibotToJsonSchema(schema as BaseSchema<unknown, unknown, BaseIssue<unknown>>);\n case 'arktype':\n return (schema as ArkType).toJsonSchema();\n default:\n throw new SmooaiConfigError(`Cannot serialize validation schema for vendor: ${vendor}`);\n }\n } else {\n if (EffectSchema.isSchema(schema)) {\n return EffectJSONSchema.make(schema);\n }\n throw new SmooaiConfigError(`Cannot serialize validation schema of unknown type: ${schema}`);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any -- ok */\nimport createEsmUtils from 'esm-utils';\n\n/**\n * Initialize global __dirname and __filename if not already set.\n */\nexport function initEsmUtils() {\n if (!global.__dirname || !global.__filename) {\n const { __dirname, __filename } = import.meta.url\n ? createEsmUtils({ url: import.meta.url, resolve: import.meta.resolve } as any)\n : { __dirname: '', __filename: '' };\n global.__dirname = global.__dirname ? global.__dirname : __dirname;\n global.__filename = global.__filename ? global.__filename : __filename;\n }\n}\n\n/**\n * Check if an object is empty.\n */\nfunction isEmpty(obj: any): boolean {\n for (const prop in obj) {\n if (Object.hasOwn(obj, prop)) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Get the environment variables. Works in Node and Various React Runtimes.\n */\nexport const envToUse = (): NodeJS.ProcessEnv => (!isEmpty(process?.env) ? process.env : (import.meta as unknown as { env: NodeJS.ProcessEnv }).env);\n\n/**\n * Minimal utility to detect an object (excludes arrays).\n */\nexport function isPlainObject(obj: unknown): obj is Record<string, unknown> {\n return !!obj && typeof obj === 'object' && !Array.isArray(obj);\n}\n\nexport class SmooaiConfigError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(`[Smooai Config] ${message}`, options);\n }\n}\n\n// ——— helper: single-char step, always recursing into SnakeCase<> ———\ntype _SnakeCaseChar<S extends string> = S extends `${infer First}${infer Rest}`\n ? First extends '_' | ' '\n ? SnakeCase<Rest> // drop \"_\" or \" \"\n : Rest extends Uncapitalize<Rest>\n ? `${Lowercase<First>}${SnakeCase<Rest>}` // next is lower/non-letter → no underscore\n : First extends Lowercase<First>\n ? `${Lowercase<First>}_${SnakeCase<Rest>}` // lower→upper → underscore\n : `${Lowercase<First>}${SnakeCase<Rest>}` // upper→upper → no underscore\n : S; // empty or single character\n\n// ——— your public SnakeCase<> with 3-char look-ahead for acronyms ———\nexport type SnakeCase<S extends string> =\n // 1⃣ Acronym boundary: Upper + Upper + lower (e.g. \"IKey\" → \"i_key\")\n S extends `${infer A}${infer B}${infer C}${infer Rest}`\n ? A extends Uppercase<A>\n ? B extends Uppercase<B>\n ? C extends Lowercase<C>\n ? `${Lowercase<A>}_${SnakeCase<`${B}${C}${Rest}`>}`\n : _SnakeCaseChar<S>\n : _SnakeCaseChar<S>\n : _SnakeCaseChar<S>\n : // 2⃣ If we don’t even have 3 chars to peek, fall back to the single-char step\n _SnakeCaseChar<S>;\n\nexport type UpperSnakeCase<S extends string> =\n S extends Uppercase<S>\n ? S extends `${string} ${string}`\n ? // if it had a space, rerun SnakeCase to turn that into \" \"\n Uppercase<SnakeCase<S>>\n : S\n : Uppercase<SnakeCase<S>>;\n\nexport type UnionToUpperSnake<U> = U extends string ? UpperSnakeCase<U> : never;\n\n/**\n * One-pass, no-regex UPPER_SNAKE_CASE converter.\n * - Early exit if already UPPER_SNAKE_CASE.\n * - Drops spaces/underscores.\n * - Splits on lower→Upper and Acronym→Word\n */\nexport function snakecase(input: string): string {\n // Early return if it’s already UPPER_SNAKE_CASE\n if (/^[A-Z0-9]+(?:_[A-Z0-9]+)*$/.test(input)) {\n return input;\n }\n\n let out = '';\n const len = input.length;\n\n for (let i = 0; i < len; i++) {\n const ch = input[i];\n if (ch === '_' || ch === ' ') continue; // drop underscores/spaces\n\n const code = input.charCodeAt(i);\n const isUpper = code >= 65 && code <= 90; // A–Z\n const isLower = code >= 97 && code <= 122; // a–z\n const isDigit = code >= 48 && code <= 57; // 0–9\n\n if (isUpper) {\n // split on lower→upper or acronym→word\n if (i > 0) {\n const prev = input.charCodeAt(i - 1);\n const prevIsLower = prev >= 97 && prev <= 122;\n const next = i + 1 < len ? input.charCodeAt(i + 1) : NaN;\n const nextIsLower = next >= 97 && next <= 122;\n if (prevIsLower || nextIsLower) {\n out += '_';\n }\n }\n out += ch; // keep uppercase\n } else if (isLower) {\n // lowercase → uppercase\n out += String.fromCharCode(code - 32);\n } else if (isDigit) {\n // digit → append as-is\n out += ch;\n } else {\n // any other character: append or drop as you see fit\n out += ch;\n }\n }\n\n return out;\n}\n\nexport function convertKeyToUpperSnakeCase(key: string): string {\n return snakecase(key).toUpperCase();\n}\n"],"mappings":"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","names":["zodToJsonSchema","valibotToJsonSchema","EffectSchema"]}
@@ -0,0 +1,9 @@
1
+ import {
2
+ standardSchemaToJson
3
+ } from "../chunk-MJ52ZIWV.mjs";
4
+ import "../chunk-3SU3SMKN.mjs";
5
+ import "../chunk-J5LGTIGS.mjs";
6
+ export {
7
+ standardSchemaToJson
8
+ };
9
+ //# sourceMappingURL=standardSchemaToJson.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,2 @@
1
+
2
+ export { }
@@ -0,0 +1,2 @@
1
+
2
+ export { }
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
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 __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // src/index.ts
17
+ var index_exports = {};
18
+ module.exports = __toCommonJS(index_exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export {};\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
package/dist/index.mjs ADDED
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}