@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.
- package/LICENSE +21 -0
- package/README.md +430 -0
- package/dist/chunk-3SU3SMKN.mjs +73 -0
- package/dist/chunk-3SU3SMKN.mjs.map +1 -0
- package/dist/chunk-CASNDTCH.mjs +12 -0
- package/dist/chunk-CASNDTCH.mjs.map +1 -0
- package/dist/chunk-GLLYQ6FK.mjs +173 -0
- package/dist/chunk-GLLYQ6FK.mjs.map +1 -0
- package/dist/chunk-HPSOF46N.mjs +71 -0
- package/dist/chunk-HPSOF46N.mjs.map +1 -0
- package/dist/chunk-HPXCKD6M.mjs +118 -0
- package/dist/chunk-HPXCKD6M.mjs.map +1 -0
- package/dist/chunk-J5LGTIGS.mjs +10 -0
- package/dist/chunk-J5LGTIGS.mjs.map +1 -0
- package/dist/chunk-LKV73SD2.mjs +25 -0
- package/dist/chunk-LKV73SD2.mjs.map +1 -0
- package/dist/chunk-MJ52ZIWV.mjs +98 -0
- package/dist/chunk-MJ52ZIWV.mjs.map +1 -0
- package/dist/chunk-O7BSFCCY.mjs +89 -0
- package/dist/chunk-O7BSFCCY.mjs.map +1 -0
- package/dist/chunk-QBM74JB5.mjs +47 -0
- package/dist/chunk-QBM74JB5.mjs.map +1 -0
- package/dist/chunk-QGMLTMB5.mjs +37 -0
- package/dist/chunk-QGMLTMB5.mjs.map +1 -0
- package/dist/chunk-SKX7CPGS.mjs +73 -0
- package/dist/chunk-SKX7CPGS.mjs.map +1 -0
- package/dist/chunk-VPKO6D4W.mjs +33 -0
- package/dist/chunk-VPKO6D4W.mjs.map +1 -0
- package/dist/chunk-YQWYYS7P.mjs +12194 -0
- package/dist/chunk-YQWYYS7P.mjs.map +1 -0
- package/dist/chunk-Z3CZGNU5.mjs +99 -0
- package/dist/chunk-Z3CZGNU5.mjs.map +1 -0
- package/dist/chunk-ZOKHXR5I.mjs +33 -0
- package/dist/chunk-ZOKHXR5I.mjs.map +1 -0
- package/dist/cli.mjs +1562 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/config/FeatureFlagKey.d.mts +24 -0
- package/dist/config/FeatureFlagKey.d.ts +24 -0
- package/dist/config/FeatureFlagKey.js +31 -0
- package/dist/config/FeatureFlagKey.js.map +1 -0
- package/dist/config/FeatureFlagKey.mjs +8 -0
- package/dist/config/FeatureFlagKey.mjs.map +1 -0
- package/dist/config/PublicConfigKey.d.mts +22 -0
- package/dist/config/PublicConfigKey.d.ts +22 -0
- package/dist/config/PublicConfigKey.js +36 -0
- package/dist/config/PublicConfigKey.js.map +1 -0
- package/dist/config/PublicConfigKey.mjs +8 -0
- package/dist/config/PublicConfigKey.mjs.map +1 -0
- package/dist/config/SecretConfigKey.d.mts +22 -0
- package/dist/config/SecretConfigKey.d.ts +22 -0
- package/dist/config/SecretConfigKey.js +31 -0
- package/dist/config/SecretConfigKey.js.map +1 -0
- package/dist/config/SecretConfigKey.mjs +8 -0
- package/dist/config/SecretConfigKey.mjs.map +1 -0
- package/dist/config/config.d.mts +178 -0
- package/dist/config/config.d.ts +178 -0
- package/dist/config/config.js +12364 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/config.mjs +23 -0
- package/dist/config/config.mjs.map +1 -0
- package/dist/config/findAndProcessEnvConfig.d.mts +17 -0
- package/dist/config/findAndProcessEnvConfig.d.ts +17 -0
- package/dist/config/findAndProcessEnvConfig.js +12290 -0
- package/dist/config/findAndProcessEnvConfig.js.map +1 -0
- package/dist/config/findAndProcessEnvConfig.mjs +14 -0
- package/dist/config/findAndProcessEnvConfig.mjs.map +1 -0
- package/dist/config/findAndProcessFileConfig.d.mts +38 -0
- package/dist/config/findAndProcessFileConfig.d.ts +38 -0
- package/dist/config/findAndProcessFileConfig.js +12431 -0
- package/dist/config/findAndProcessFileConfig.js.map +1 -0
- package/dist/config/findAndProcessFileConfig.mjs +18 -0
- package/dist/config/findAndProcessFileConfig.mjs.map +1 -0
- package/dist/config/getCloudRegion.d.mts +8 -0
- package/dist/config/getCloudRegion.d.ts +8 -0
- package/dist/config/getCloudRegion.js +92 -0
- package/dist/config/getCloudRegion.js.map +1 -0
- package/dist/config/getCloudRegion.mjs +9 -0
- package/dist/config/getCloudRegion.mjs.map +1 -0
- package/dist/config/index.d.mts +5 -0
- package/dist/config/index.d.ts +5 -0
- package/dist/config/index.js +12638 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/index.mjs +33 -0
- package/dist/config/index.mjs.map +1 -0
- package/dist/config/parseConfigSchema.d.mts +13 -0
- package/dist/config/parseConfigSchema.d.ts +13 -0
- package/dist/config/parseConfigSchema.js +12177 -0
- package/dist/config/parseConfigSchema.js.map +1 -0
- package/dist/config/parseConfigSchema.mjs +16 -0
- package/dist/config/parseConfigSchema.mjs.map +1 -0
- package/dist/config/standardSchemaToJson.d.mts +6 -0
- package/dist/config/standardSchemaToJson.d.ts +6 -0
- package/dist/config/standardSchemaToJson.js +138 -0
- package/dist/config/standardSchemaToJson.js.map +1 -0
- package/dist/config/standardSchemaToJson.mjs +9 -0
- package/dist/config/standardSchemaToJson.mjs.map +1 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1 -0
- package/dist/index.mjs.map +1 -0
- package/dist/integration-tests/1/smooai-config/config.d.mts +4108 -0
- package/dist/integration-tests/1/smooai-config/config.d.ts +4108 -0
- package/dist/integration-tests/1/smooai-config/config.js +12353 -0
- package/dist/integration-tests/1/smooai-config/config.js.map +1 -0
- package/dist/integration-tests/1/smooai-config/config.mjs +12 -0
- package/dist/integration-tests/1/smooai-config/config.mjs.map +1 -0
- package/dist/integration-tests/1/smooai-config/default.d.mts +55 -0
- package/dist/integration-tests/1/smooai-config/default.d.ts +55 -0
- package/dist/integration-tests/1/smooai-config/default.js +12419 -0
- package/dist/integration-tests/1/smooai-config/default.js.map +1 -0
- package/dist/integration-tests/1/smooai-config/default.mjs +78 -0
- package/dist/integration-tests/1/smooai-config/default.mjs.map +1 -0
- package/dist/integration-tests/1/smooai-config/development.d.mts +41 -0
- package/dist/integration-tests/1/smooai-config/development.d.ts +41 -0
- package/dist/integration-tests/1/smooai-config/development.js +12403 -0
- package/dist/integration-tests/1/smooai-config/development.js.map +1 -0
- package/dist/integration-tests/1/smooai-config/development.mjs +62 -0
- package/dist/integration-tests/1/smooai-config/development.mjs.map +1 -0
- package/dist/integration-tests/1/smooai-config/production.aws.d.mts +128 -0
- package/dist/integration-tests/1/smooai-config/production.aws.d.ts +128 -0
- package/dist/integration-tests/1/smooai-config/production.aws.js +12371 -0
- package/dist/integration-tests/1/smooai-config/production.aws.js.map +1 -0
- package/dist/integration-tests/1/smooai-config/production.aws.mjs +30 -0
- package/dist/integration-tests/1/smooai-config/production.aws.mjs.map +1 -0
- package/dist/integration-tests/1/smooai-config/production.aws.us-east-1.d.mts +64 -0
- package/dist/integration-tests/1/smooai-config/production.aws.us-east-1.d.ts +64 -0
- package/dist/integration-tests/1/smooai-config/production.aws.us-east-1.js +12364 -0
- package/dist/integration-tests/1/smooai-config/production.aws.us-east-1.js.map +1 -0
- package/dist/integration-tests/1/smooai-config/production.aws.us-east-1.mjs +23 -0
- package/dist/integration-tests/1/smooai-config/production.aws.us-east-1.mjs.map +1 -0
- package/dist/integration-tests/1/smooai-config/production.aws.us-east-2.d.mts +64 -0
- package/dist/integration-tests/1/smooai-config/production.aws.us-east-2.d.ts +64 -0
- package/dist/integration-tests/1/smooai-config/production.aws.us-east-2.js +12364 -0
- package/dist/integration-tests/1/smooai-config/production.aws.us-east-2.js.map +1 -0
- package/dist/integration-tests/1/smooai-config/production.aws.us-east-2.mjs +23 -0
- package/dist/integration-tests/1/smooai-config/production.aws.us-east-2.mjs.map +1 -0
- package/dist/integration-tests/1/smooai-config/production.d.mts +42 -0
- package/dist/integration-tests/1/smooai-config/production.d.ts +42 -0
- package/dist/integration-tests/1/smooai-config/production.js +12399 -0
- package/dist/integration-tests/1/smooai-config/production.js.map +1 -0
- package/dist/integration-tests/1/smooai-config/production.mjs +58 -0
- package/dist/integration-tests/1/smooai-config/production.mjs.map +1 -0
- package/dist/integration-tests/1/smooai-config/staging.d.mts +129 -0
- package/dist/integration-tests/1/smooai-config/staging.d.ts +129 -0
- package/dist/integration-tests/1/smooai-config/staging.js +12377 -0
- package/dist/integration-tests/1/smooai-config/staging.js.map +1 -0
- package/dist/integration-tests/1/smooai-config/staging.mjs +36 -0
- package/dist/integration-tests/1/smooai-config/staging.mjs.map +1 -0
- package/dist/integration-tests/2/smooai-config/config.d.mts +1262 -0
- package/dist/integration-tests/2/smooai-config/config.d.ts +1262 -0
- package/dist/integration-tests/2/smooai-config/config.js +12301 -0
- package/dist/integration-tests/2/smooai-config/config.js.map +1 -0
- package/dist/integration-tests/2/smooai-config/config.mjs +12 -0
- package/dist/integration-tests/2/smooai-config/config.mjs.map +1 -0
- package/dist/integration-tests/2/smooai-config/default.d.mts +19 -0
- package/dist/integration-tests/2/smooai-config/default.d.ts +19 -0
- package/dist/integration-tests/2/smooai-config/default.js +12321 -0
- package/dist/integration-tests/2/smooai-config/default.js.map +1 -0
- package/dist/integration-tests/2/smooai-config/default.mjs +32 -0
- package/dist/integration-tests/2/smooai-config/default.mjs.map +1 -0
- package/dist/integration-tests/2/smooai-config/development.d.mts +9 -0
- package/dist/integration-tests/2/smooai-config/development.d.ts +9 -0
- package/dist/integration-tests/2/smooai-config/development.js +12311 -0
- package/dist/integration-tests/2/smooai-config/development.js.map +1 -0
- package/dist/integration-tests/2/smooai-config/development.mjs +22 -0
- package/dist/integration-tests/2/smooai-config/development.mjs.map +1 -0
- package/dist/integration-tests/2/smooai-config/production.aws.d.mts +26 -0
- package/dist/integration-tests/2/smooai-config/production.aws.d.ts +26 -0
- package/dist/integration-tests/2/smooai-config/production.aws.js +12311 -0
- package/dist/integration-tests/2/smooai-config/production.aws.js.map +1 -0
- package/dist/integration-tests/2/smooai-config/production.aws.mjs +22 -0
- package/dist/integration-tests/2/smooai-config/production.aws.mjs.map +1 -0
- package/dist/integration-tests/2/smooai-config/production.aws.us-east-1.d.mts +25 -0
- package/dist/integration-tests/2/smooai-config/production.aws.us-east-1.d.ts +25 -0
- package/dist/integration-tests/2/smooai-config/production.aws.us-east-1.js +12310 -0
- package/dist/integration-tests/2/smooai-config/production.aws.us-east-1.js.map +1 -0
- package/dist/integration-tests/2/smooai-config/production.aws.us-east-1.mjs +21 -0
- package/dist/integration-tests/2/smooai-config/production.aws.us-east-1.mjs.map +1 -0
- package/dist/integration-tests/2/smooai-config/production.d.mts +19 -0
- package/dist/integration-tests/2/smooai-config/production.d.ts +19 -0
- package/dist/integration-tests/2/smooai-config/production.js +12321 -0
- package/dist/integration-tests/2/smooai-config/production.js.map +1 -0
- package/dist/integration-tests/2/smooai-config/production.mjs +32 -0
- package/dist/integration-tests/2/smooai-config/production.mjs.map +1 -0
- package/dist/platform/client.d.mts +49 -0
- package/dist/platform/client.d.ts +49 -0
- package/dist/platform/client.js +123 -0
- package/dist/platform/client.js.map +1 -0
- package/dist/platform/client.mjs +8 -0
- package/dist/platform/client.mjs.map +1 -0
- package/dist/platform/server/server.async.d.mts +12 -0
- package/dist/platform/server/server.async.d.ts +12 -0
- package/dist/platform/server/server.async.js +12586 -0
- package/dist/platform/server/server.async.js.map +1 -0
- package/dist/platform/server/server.async.mjs +18 -0
- package/dist/platform/server/server.async.mjs.map +1 -0
- package/dist/platform/server/server.featureFlag.sync.d.mts +2 -0
- package/dist/platform/server/server.featureFlag.sync.d.ts +2 -0
- package/dist/platform/server/server.featureFlag.sync.js +12589 -0
- package/dist/platform/server/server.featureFlag.sync.js.map +1 -0
- package/dist/platform/server/server.featureFlag.sync.mjs +24 -0
- package/dist/platform/server/server.featureFlag.sync.mjs.map +1 -0
- package/dist/platform/server/server.publicConfig.sync.d.mts +2 -0
- package/dist/platform/server/server.publicConfig.sync.d.ts +2 -0
- package/dist/platform/server/server.publicConfig.sync.js +12589 -0
- package/dist/platform/server/server.publicConfig.sync.js.map +1 -0
- package/dist/platform/server/server.publicConfig.sync.mjs +24 -0
- package/dist/platform/server/server.publicConfig.sync.mjs.map +1 -0
- package/dist/platform/server/server.secretConfig.sync.d.mts +2 -0
- package/dist/platform/server/server.secretConfig.sync.d.ts +2 -0
- package/dist/platform/server/server.secretConfig.sync.js +12589 -0
- package/dist/platform/server/server.secretConfig.sync.js.map +1 -0
- package/dist/platform/server/server.secretConfig.sync.mjs +24 -0
- package/dist/platform/server/server.secretConfig.sync.mjs.map +1 -0
- package/dist/platform/server.d.mts +21 -0
- package/dist/platform/server.d.ts +21 -0
- package/dist/platform/server.js +12626 -0
- package/dist/platform/server.js.map +1 -0
- package/dist/platform/server.mjs +58 -0
- package/dist/platform/server.mjs.map +1 -0
- package/dist/react/hooks.d.mts +36 -0
- package/dist/react/hooks.d.ts +36 -0
- package/dist/react/hooks.js +90 -0
- package/dist/react/hooks.js.map +1 -0
- package/dist/react/hooks.mjs +14 -0
- package/dist/react/hooks.mjs.map +1 -0
- package/dist/react/index.d.mts +28 -0
- package/dist/react/index.d.ts +28 -0
- package/dist/react/index.js +194 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/index.mjs +17 -0
- package/dist/react/index.mjs.map +1 -0
- package/dist/schema-spec/smooai-config-schema-spec.d.mts +25 -0
- package/dist/schema-spec/smooai-config-schema-spec.d.ts +25 -0
- package/dist/schema-spec/smooai-config-schema-spec.js +177 -0
- package/dist/schema-spec/smooai-config-schema-spec.js.map +1 -0
- package/dist/schema-spec/smooai-config-schema-spec.mjs +154 -0
- package/dist/schema-spec/smooai-config-schema-spec.mjs.map +1 -0
- package/dist/utils/fs.d.mts +10 -0
- package/dist/utils/fs.d.ts +10 -0
- package/dist/utils/fs.js +74 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/fs.mjs +11 -0
- package/dist/utils/fs.mjs.map +1 -0
- package/dist/utils/index.d.mts +29 -0
- package/dist/utils/index.d.ts +29 -0
- package/dist/utils/index.js +113 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.mjs +18 -0
- package/dist/utils/index.mjs.map +1 -0
- package/dist/utils/mergeReplaceArrays.d.mts +9 -0
- package/dist/utils/mergeReplaceArrays.d.ts +9 -0
- package/dist/utils/mergeReplaceArrays.js +63 -0
- package/dist/utils/mergeReplaceArrays.js.map +1 -0
- package/dist/utils/mergeReplaceArrays.mjs +9 -0
- package/dist/utils/mergeReplaceArrays.mjs.map +1 -0
- package/package.json +133 -0
|
@@ -0,0 +1,113 @@
|
|
|
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/utils/index.ts
|
|
31
|
+
var utils_exports = {};
|
|
32
|
+
__export(utils_exports, {
|
|
33
|
+
SmooaiConfigError: () => SmooaiConfigError,
|
|
34
|
+
convertKeyToUpperSnakeCase: () => convertKeyToUpperSnakeCase,
|
|
35
|
+
envToUse: () => envToUse,
|
|
36
|
+
initEsmUtils: () => initEsmUtils,
|
|
37
|
+
isPlainObject: () => isPlainObject,
|
|
38
|
+
snakecase: () => snakecase
|
|
39
|
+
});
|
|
40
|
+
module.exports = __toCommonJS(utils_exports);
|
|
41
|
+
var import_esm_utils = __toESM(require("esm-utils"));
|
|
42
|
+
var import_meta = {};
|
|
43
|
+
function initEsmUtils() {
|
|
44
|
+
if (!global.__dirname || !global.__filename) {
|
|
45
|
+
const { __dirname, __filename } = import_meta.url ? (0, import_esm_utils.default)({ url: import_meta.url, resolve: import_meta.resolve }) : { __dirname: "", __filename: "" };
|
|
46
|
+
global.__dirname = global.__dirname ? global.__dirname : __dirname;
|
|
47
|
+
global.__filename = global.__filename ? global.__filename : __filename;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function isEmpty(obj) {
|
|
51
|
+
for (const prop in obj) {
|
|
52
|
+
if (Object.hasOwn(obj, prop)) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
var envToUse = () => !isEmpty(process?.env) ? process.env : import_meta.env;
|
|
59
|
+
function isPlainObject(obj) {
|
|
60
|
+
return !!obj && typeof obj === "object" && !Array.isArray(obj);
|
|
61
|
+
}
|
|
62
|
+
var SmooaiConfigError = class extends Error {
|
|
63
|
+
constructor(message, options) {
|
|
64
|
+
super(`[Smooai Config] ${message}`, options);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
function snakecase(input) {
|
|
68
|
+
if (/^[A-Z0-9]+(?:_[A-Z0-9]+)*$/.test(input)) {
|
|
69
|
+
return input;
|
|
70
|
+
}
|
|
71
|
+
let out = "";
|
|
72
|
+
const len = input.length;
|
|
73
|
+
for (let i = 0; i < len; i++) {
|
|
74
|
+
const ch = input[i];
|
|
75
|
+
if (ch === "_" || ch === " ") continue;
|
|
76
|
+
const code = input.charCodeAt(i);
|
|
77
|
+
const isUpper = code >= 65 && code <= 90;
|
|
78
|
+
const isLower = code >= 97 && code <= 122;
|
|
79
|
+
const isDigit = code >= 48 && code <= 57;
|
|
80
|
+
if (isUpper) {
|
|
81
|
+
if (i > 0) {
|
|
82
|
+
const prev = input.charCodeAt(i - 1);
|
|
83
|
+
const prevIsLower = prev >= 97 && prev <= 122;
|
|
84
|
+
const next = i + 1 < len ? input.charCodeAt(i + 1) : NaN;
|
|
85
|
+
const nextIsLower = next >= 97 && next <= 122;
|
|
86
|
+
if (prevIsLower || nextIsLower) {
|
|
87
|
+
out += "_";
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
out += ch;
|
|
91
|
+
} else if (isLower) {
|
|
92
|
+
out += String.fromCharCode(code - 32);
|
|
93
|
+
} else if (isDigit) {
|
|
94
|
+
out += ch;
|
|
95
|
+
} else {
|
|
96
|
+
out += ch;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return out;
|
|
100
|
+
}
|
|
101
|
+
function convertKeyToUpperSnakeCase(key) {
|
|
102
|
+
return snakecase(key).toUpperCase();
|
|
103
|
+
}
|
|
104
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
105
|
+
0 && (module.exports = {
|
|
106
|
+
SmooaiConfigError,
|
|
107
|
+
convertKeyToUpperSnakeCase,
|
|
108
|
+
envToUse,
|
|
109
|
+
initEsmUtils,
|
|
110
|
+
isPlainObject,
|
|
111
|
+
snakecase
|
|
112
|
+
});
|
|
113
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/index.ts"],"sourcesContent":["/* 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uBAA2B;AAD3B;AAMO,SAAS,eAAe;AAC3B,MAAI,CAAC,OAAO,aAAa,CAAC,OAAO,YAAY;AACzC,UAAM,EAAE,WAAW,WAAW,IAAI,YAAY,UACxC,iBAAAA,SAAe,EAAE,KAAK,YAAY,KAAK,SAAS,YAAY,QAAQ,CAAQ,IAC5E,EAAE,WAAW,IAAI,YAAY,GAAG;AACtC,WAAO,YAAY,OAAO,YAAY,OAAO,YAAY;AACzD,WAAO,aAAa,OAAO,aAAa,OAAO,aAAa;AAAA,EAChE;AACJ;AAKA,SAAS,QAAQ,KAAmB;AAChC,aAAW,QAAQ,KAAK;AACpB,QAAI,OAAO,OAAO,KAAK,IAAI,GAAG;AAC1B,aAAO;AAAA,IACX;AAAA,EACJ;AACA,SAAO;AACX;AAKO,IAAM,WAAW,MAA0B,CAAC,QAAQ,SAAS,GAAG,IAAI,QAAQ,MAAO,YAAsD;AAKzI,SAAS,cAAc,KAA8C;AACxE,SAAO,CAAC,CAAC,OAAO,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,GAAG;AACjE;AAEO,IAAM,oBAAN,cAAgC,MAAM;AAAA,EACzC,YAAY,SAAiB,SAAwB;AACjD,UAAM,mBAAmB,OAAO,IAAI,OAAO;AAAA,EAC/C;AACJ;AA2CO,SAAS,UAAU,OAAuB;AAE7C,MAAI,6BAA6B,KAAK,KAAK,GAAG;AAC1C,WAAO;AAAA,EACX;AAEA,MAAI,MAAM;AACV,QAAM,MAAM,MAAM;AAElB,WAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC1B,UAAM,KAAK,MAAM,CAAC;AAClB,QAAI,OAAO,OAAO,OAAO,IAAK;AAE9B,UAAM,OAAO,MAAM,WAAW,CAAC;AAC/B,UAAM,UAAU,QAAQ,MAAM,QAAQ;AACtC,UAAM,UAAU,QAAQ,MAAM,QAAQ;AACtC,UAAM,UAAU,QAAQ,MAAM,QAAQ;AAEtC,QAAI,SAAS;AAET,UAAI,IAAI,GAAG;AACP,cAAM,OAAO,MAAM,WAAW,IAAI,CAAC;AACnC,cAAM,cAAc,QAAQ,MAAM,QAAQ;AAC1C,cAAM,OAAO,IAAI,IAAI,MAAM,MAAM,WAAW,IAAI,CAAC,IAAI;AACrD,cAAM,cAAc,QAAQ,MAAM,QAAQ;AAC1C,YAAI,eAAe,aAAa;AAC5B,iBAAO;AAAA,QACX;AAAA,MACJ;AACA,aAAO;AAAA,IACX,WAAW,SAAS;AAEhB,aAAO,OAAO,aAAa,OAAO,EAAE;AAAA,IACxC,WAAW,SAAS;AAEhB,aAAO;AAAA,IACX,OAAO;AAEH,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,SAAO;AACX;AAEO,SAAS,2BAA2B,KAAqB;AAC5D,SAAO,UAAU,GAAG,EAAE,YAAY;AACtC;","names":["createEsmUtils"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SmooaiConfigError,
|
|
3
|
+
convertKeyToUpperSnakeCase,
|
|
4
|
+
envToUse,
|
|
5
|
+
initEsmUtils,
|
|
6
|
+
isPlainObject,
|
|
7
|
+
snakecase
|
|
8
|
+
} from "../chunk-3SU3SMKN.mjs";
|
|
9
|
+
import "../chunk-J5LGTIGS.mjs";
|
|
10
|
+
export {
|
|
11
|
+
SmooaiConfigError,
|
|
12
|
+
convertKeyToUpperSnakeCase,
|
|
13
|
+
envToUse,
|
|
14
|
+
initEsmUtils,
|
|
15
|
+
isPlainObject,
|
|
16
|
+
snakecase
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A custom merge that:
|
|
3
|
+
* - Recursively merges child objects.
|
|
4
|
+
* - **Replaces** arrays instead of concatenating.
|
|
5
|
+
* - Overwrites scalars directly.
|
|
6
|
+
*/
|
|
7
|
+
declare function mergeReplaceArrays(target: any, source: any): any;
|
|
8
|
+
|
|
9
|
+
export { mergeReplaceArrays };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A custom merge that:
|
|
3
|
+
* - Recursively merges child objects.
|
|
4
|
+
* - **Replaces** arrays instead of concatenating.
|
|
5
|
+
* - Overwrites scalars directly.
|
|
6
|
+
*/
|
|
7
|
+
declare function mergeReplaceArrays(target: any, source: any): any;
|
|
8
|
+
|
|
9
|
+
export { mergeReplaceArrays };
|
|
@@ -0,0 +1,63 @@
|
|
|
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/utils/mergeReplaceArrays.ts
|
|
31
|
+
var mergeReplaceArrays_exports = {};
|
|
32
|
+
__export(mergeReplaceArrays_exports, {
|
|
33
|
+
mergeReplaceArrays: () => mergeReplaceArrays
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(mergeReplaceArrays_exports);
|
|
36
|
+
|
|
37
|
+
// src/utils/index.ts
|
|
38
|
+
var import_esm_utils = __toESM(require("esm-utils"));
|
|
39
|
+
function isPlainObject(obj) {
|
|
40
|
+
return !!obj && typeof obj === "object" && !Array.isArray(obj);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// src/utils/mergeReplaceArrays.ts
|
|
44
|
+
function mergeReplaceArrays(target, source) {
|
|
45
|
+
if (Array.isArray(source)) {
|
|
46
|
+
return source.slice();
|
|
47
|
+
}
|
|
48
|
+
if (isPlainObject(source)) {
|
|
49
|
+
if (!isPlainObject(target)) {
|
|
50
|
+
target = {};
|
|
51
|
+
}
|
|
52
|
+
for (const key of Object.keys(source)) {
|
|
53
|
+
target[key] = mergeReplaceArrays(target[key], source[key]);
|
|
54
|
+
}
|
|
55
|
+
return target;
|
|
56
|
+
}
|
|
57
|
+
return source;
|
|
58
|
+
}
|
|
59
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
60
|
+
0 && (module.exports = {
|
|
61
|
+
mergeReplaceArrays
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=mergeReplaceArrays.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/mergeReplaceArrays.ts","../../src/utils/index.ts"],"sourcesContent":["import { isPlainObject } from './index';\n\n/**\n * A custom merge that:\n * - Recursively merges child objects.\n * - **Replaces** arrays instead of concatenating.\n * - Overwrites scalars directly.\n */\nexport function mergeReplaceArrays(target: any, source: any): any {\n // If source is an array, replace entirely.\n if (Array.isArray(source)) {\n return source.slice(); // new copy\n }\n\n // If source is an object, merge deeply.\n if (isPlainObject(source)) {\n // If target isn't an object, overwrite with a new object.\n if (!isPlainObject(target)) {\n target = {};\n }\n for (const key of Object.keys(source)) {\n target[key] = mergeReplaceArrays(target[key], source[key]);\n }\n return target;\n }\n\n // For primitives (string, number, etc.) or other data, overwrite.\n return source;\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,uBAA2B;AAmCpB,SAAS,cAAc,KAA8C;AACxE,SAAO,CAAC,CAAC,OAAO,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,GAAG;AACjE;;;AD9BO,SAAS,mBAAmB,QAAa,QAAkB;AAE9D,MAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,WAAO,OAAO,MAAM;AAAA,EACxB;AAGA,MAAI,cAAc,MAAM,GAAG;AAEvB,QAAI,CAAC,cAAc,MAAM,GAAG;AACxB,eAAS,CAAC;AAAA,IACd;AACA,eAAW,OAAO,OAAO,KAAK,MAAM,GAAG;AACnC,aAAO,GAAG,IAAI,mBAAmB,OAAO,GAAG,GAAG,OAAO,GAAG,CAAC;AAAA,IAC7D;AACA,WAAO;AAAA,EACX;AAGA,SAAO;AACX;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@smooai/config",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "Type-safe multi-language configuration management with schema validation, three-tier config (public, secret, feature flags), and runtime client support for TypeScript, Python, Rust, and Go.",
|
|
5
|
+
"homepage": "https://github.com/SmooAI/config#readme",
|
|
6
|
+
"bugs": {
|
|
7
|
+
"url": "https://github.com/SmooAI/config/issues"
|
|
8
|
+
},
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"author": {
|
|
11
|
+
"name": "SmooAI",
|
|
12
|
+
"email": "brent@smooai.com",
|
|
13
|
+
"url": "https://smooai.com"
|
|
14
|
+
},
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/SmooAI/config.git"
|
|
18
|
+
},
|
|
19
|
+
"bin": {
|
|
20
|
+
"smooai-config": "./dist/cli.mjs"
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"dist/**"
|
|
24
|
+
],
|
|
25
|
+
"main": "./dist/index.js",
|
|
26
|
+
"module": "./dist/index.mjs",
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
28
|
+
"exports": {
|
|
29
|
+
".": {
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
31
|
+
"import": "./dist/index.mjs",
|
|
32
|
+
"require": "./dist/index.js",
|
|
33
|
+
"default": "./dist/index.js"
|
|
34
|
+
},
|
|
35
|
+
"./*": {
|
|
36
|
+
"types": "./dist/*.d.ts",
|
|
37
|
+
"import": "./dist/*.mjs",
|
|
38
|
+
"require": "./dist/*.js"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@isaacs/ttlcache": "^1.4.1",
|
|
43
|
+
"@smooai/fetch": "^2.1.0",
|
|
44
|
+
"@smooai/logger": "^3.1.1",
|
|
45
|
+
"@smooai/utils": "^1.3.1",
|
|
46
|
+
"@standard-schema/spec": "^1.0.0",
|
|
47
|
+
"@valibot/to-json-schema": "^1.2.0",
|
|
48
|
+
"ajv": "^8.17.0",
|
|
49
|
+
"arktype": "^2.1.20",
|
|
50
|
+
"commander": "^13.0.0",
|
|
51
|
+
"effect": "^3.15.4",
|
|
52
|
+
"empathic": "^1.1.0",
|
|
53
|
+
"esm-utils": "^4.3.0",
|
|
54
|
+
"ink": "^6.8.0",
|
|
55
|
+
"ink-big-text": "^2.0.0",
|
|
56
|
+
"ink-gradient": "^3.0.0",
|
|
57
|
+
"ink-spinner": "^5.0.0",
|
|
58
|
+
"json-schema-to-zod": "^2.6.1",
|
|
59
|
+
"lru-cache": "^11.1.0",
|
|
60
|
+
"synckit": "^0.11.6",
|
|
61
|
+
"tinyglobby": "^0.2.14",
|
|
62
|
+
"tsx": "^4.19.4",
|
|
63
|
+
"valibot": "^1.1.0",
|
|
64
|
+
"zod-to-json-schema": "^3.24.5"
|
|
65
|
+
},
|
|
66
|
+
"devDependencies": {
|
|
67
|
+
"@changesets/cli": "^2.28.1",
|
|
68
|
+
"@smooai/config-typescript": "^1.0.16",
|
|
69
|
+
"@testing-library/react": "^16.3.2",
|
|
70
|
+
"@types/lodash.snakecase": "^4.1.9",
|
|
71
|
+
"@types/node": "^22.13.10",
|
|
72
|
+
"@types/react": "^19.2.14",
|
|
73
|
+
"@types/react-dom": "^19.2.3",
|
|
74
|
+
"husky": "^9.1.7",
|
|
75
|
+
"jsdom": "^28.1.0",
|
|
76
|
+
"lint-staged": "^15.4.3",
|
|
77
|
+
"lodash.snakecase": "^4.1.1",
|
|
78
|
+
"msw": "^2.12.10",
|
|
79
|
+
"oxfmt": "^0.28.0",
|
|
80
|
+
"oxlint": "^0.16.0",
|
|
81
|
+
"react-dom": "^19.2.4",
|
|
82
|
+
"tsup": "^8.4.0",
|
|
83
|
+
"vite": "^6.2.4",
|
|
84
|
+
"vite-node": "^3.1.1",
|
|
85
|
+
"vite-tsconfig-paths": "^5.1.4",
|
|
86
|
+
"vitest": "^3.1.1",
|
|
87
|
+
"zod": "^4.0.0"
|
|
88
|
+
},
|
|
89
|
+
"peerDependencies": {
|
|
90
|
+
"react": "^18.0.0 || ^19.0.0"
|
|
91
|
+
},
|
|
92
|
+
"peerDependenciesMeta": {
|
|
93
|
+
"react": {
|
|
94
|
+
"optional": true
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"scripts": {
|
|
98
|
+
"build": "pnpm build:lib && pnpm build:cli && pnpm run python:build && pnpm run rust:build && pnpm run go:build",
|
|
99
|
+
"build:lib": "pnpm create-entry-points -i \"src/**/*.ts\" -x \"src/cli/**\" && pnpm tsup",
|
|
100
|
+
"build:cli": "tsup --config tsup.cli.config.ts",
|
|
101
|
+
"check-all": "pnpm run typecheck && pnpm run lint && pnpm run format:check && pnpm run test && pnpm run python:typecheck && pnpm run python:lint && pnpm run python:format:check && pnpm run rust:fmt:check && pnpm run rust:lint && pnpm run rust:test && pnpm run go:fmt:check && pnpm run go:lint && pnpm run go:test && pnpm run build",
|
|
102
|
+
"ci:publish": "pnpm build && pnpm changeset publish && pnpm run version:sync",
|
|
103
|
+
"format": "oxfmt --write . && pnpm run python:format && pnpm run rust:fmt && pnpm run go:fmt",
|
|
104
|
+
"lint": "oxlint . && pnpm run python:lint && pnpm run rust:lint && pnpm run go:lint",
|
|
105
|
+
"lint:fix": "oxlint --fix .",
|
|
106
|
+
"pre-commit-check": "(zsh .husky/pre-commit)",
|
|
107
|
+
"test": "vitest run --passWithNoTests && pnpm run python:test && pnpm run rust:test && pnpm run go:test",
|
|
108
|
+
"test:integration": "vitest run --passWithNoTests --config vitest.integration.config.mts",
|
|
109
|
+
"typecheck": "tsc --noEmit --skipLibCheck && pnpm run python:typecheck && pnpm run rust:check",
|
|
110
|
+
"rust:check": "(cd rust/config && cargo check --all-targets)",
|
|
111
|
+
"watch": "tsup --watch",
|
|
112
|
+
"python:build": "(cd python && uv run poe build)",
|
|
113
|
+
"python:format": "(cd python && uv run poe format)",
|
|
114
|
+
"python:format:check": "(cd python && uv run poe format:check)",
|
|
115
|
+
"python:install-dev": "(cd python && uv run poe install-dev)",
|
|
116
|
+
"python:lint": "(cd python && uv run poe lint)",
|
|
117
|
+
"python:lint:fix": "(cd python && uv run poe lint:fix)",
|
|
118
|
+
"python:test": "(cd python && uv run poe test)",
|
|
119
|
+
"python:typecheck": "(cd python && uv run poe typecheck)",
|
|
120
|
+
"rust:build": "(cd rust/config && cargo build --release)",
|
|
121
|
+
"rust:fmt": "(cd rust/config && cargo fmt)",
|
|
122
|
+
"rust:fmt:check": "(cd rust/config && cargo fmt --all -- --check)",
|
|
123
|
+
"rust:lint": "(cd rust/config && cargo clippy --all-targets -- -D warnings)",
|
|
124
|
+
"rust:test": "(cd rust/config && cargo test)",
|
|
125
|
+
"go:build": "(cd go/config && go build ./...)",
|
|
126
|
+
"go:fmt": "(cd go/config && gofmt -w .)",
|
|
127
|
+
"go:fmt:check": "(cd go/config && test -z \"$(gofmt -l .)\")",
|
|
128
|
+
"go:lint": "(cd go/config && go vet ./...)",
|
|
129
|
+
"go:test": "(cd go/config && go test -v ./...)",
|
|
130
|
+
"version:sync": "node scripts/sync-versions.mjs",
|
|
131
|
+
"format:check": "oxfmt --check ."
|
|
132
|
+
}
|
|
133
|
+
}
|