@base44-preview/cli 0.1.3-pr.563.e8db973 → 0.1.3-pr.567.b7c491a
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/dist/cli/index.js +765 -475
- package/dist/cli/index.js.map +16 -9
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -119560,11 +119560,11 @@ function chooseDescription(descriptions, printWidth) {
|
|
|
119560
119560
|
return firstWidth > printWidth && firstWidth > secondWidth ? secondDescription : firstDescription;
|
|
119561
119561
|
}
|
|
119562
119562
|
function createSchema(SchemaConstructor, parameters) {
|
|
119563
|
-
const
|
|
119564
|
-
const subSchema = Object.create(
|
|
119563
|
+
const schema11 = new SchemaConstructor(parameters);
|
|
119564
|
+
const subSchema = Object.create(schema11);
|
|
119565
119565
|
for (const handlerKey of HANDLER_KEYS) {
|
|
119566
119566
|
if (handlerKey in parameters) {
|
|
119567
|
-
subSchema[handlerKey] = normalizeHandler(parameters[handlerKey],
|
|
119567
|
+
subSchema[handlerKey] = normalizeHandler(parameters[handlerKey], schema11, Schema2.prototype[handlerKey].length);
|
|
119568
119568
|
}
|
|
119569
119569
|
}
|
|
119570
119570
|
return subSchema;
|
|
@@ -122904,9 +122904,9 @@ function optionInfoToSchema(optionInfo, {
|
|
|
122904
122904
|
throw new Error(`Unexpected type ${optionInfo.type}`);
|
|
122905
122905
|
}
|
|
122906
122906
|
if (optionInfo.exception) {
|
|
122907
|
-
parameters.validate = (value,
|
|
122907
|
+
parameters.validate = (value, schema11, utils3) => optionInfo.exception(value) || schema11.validate(value, utils3);
|
|
122908
122908
|
} else {
|
|
122909
|
-
parameters.validate = (value,
|
|
122909
|
+
parameters.validate = (value, schema11, utils3) => value === undefined || schema11.validate(value, utils3);
|
|
122910
122910
|
}
|
|
122911
122911
|
if (optionInfo.redirect) {
|
|
122912
122912
|
handlers.redirect = (value) => !value ? undefined : {
|
|
@@ -122921,7 +122921,7 @@ function optionInfoToSchema(optionInfo, {
|
|
|
122921
122921
|
}
|
|
122922
122922
|
if (isCLI && !optionInfo.array) {
|
|
122923
122923
|
const originalPreprocess = parameters.preprocess || ((x10) => x10);
|
|
122924
|
-
parameters.preprocess = (value,
|
|
122924
|
+
parameters.preprocess = (value, schema11, utils3) => schema11.preprocess(originalPreprocess(Array.isArray(value) ? method_at_default2(0, value, -1) : value), utils3);
|
|
122925
122925
|
}
|
|
122926
122926
|
return optionInfo.array ? ArraySchema.create({
|
|
122927
122927
|
...isCLI ? {
|
|
@@ -124498,9 +124498,9 @@ var require2, __filename2, __dirname3, __create2, __defProp3, __getOwnPropDesc,
|
|
|
124498
124498
|
};
|
|
124499
124499
|
applyNormalization();
|
|
124500
124500
|
for (const key2 of Object.keys(this._utils.schemas)) {
|
|
124501
|
-
const
|
|
124501
|
+
const schema11 = this._utils.schemas[key2];
|
|
124502
124502
|
if (!(key2 in newOptions)) {
|
|
124503
|
-
const defaultResult = normalizeDefaultResult(
|
|
124503
|
+
const defaultResult = normalizeDefaultResult(schema11.default(this._utils));
|
|
124504
124504
|
if ("value" in defaultResult) {
|
|
124505
124505
|
restOptionsArray.push({ [key2]: defaultResult.value });
|
|
124506
124506
|
}
|
|
@@ -124511,13 +124511,13 @@ var require2, __filename2, __dirname3, __create2, __defProp3, __getOwnPropDesc,
|
|
|
124511
124511
|
if (!(key2 in newOptions)) {
|
|
124512
124512
|
continue;
|
|
124513
124513
|
}
|
|
124514
|
-
const
|
|
124514
|
+
const schema11 = this._utils.schemas[key2];
|
|
124515
124515
|
const value = newOptions[key2];
|
|
124516
|
-
const newValue =
|
|
124516
|
+
const newValue = schema11.postprocess(value, this._utils);
|
|
124517
124517
|
if (newValue === VALUE_UNCHANGED) {
|
|
124518
124518
|
continue;
|
|
124519
124519
|
}
|
|
124520
|
-
this._applyValidation(newValue, key2,
|
|
124520
|
+
this._applyValidation(newValue, key2, schema11);
|
|
124521
124521
|
newOptions[key2] = newValue;
|
|
124522
124522
|
}
|
|
124523
124523
|
this._applyPostprocess(newOptions);
|
|
@@ -124528,14 +124528,14 @@ var require2, __filename2, __dirname3, __create2, __defProp3, __getOwnPropDesc,
|
|
|
124528
124528
|
const transferredOptionsArray = [];
|
|
124529
124529
|
const { knownKeys, unknownKeys } = this._partitionOptionKeys(options8);
|
|
124530
124530
|
for (const key2 of knownKeys) {
|
|
124531
|
-
const
|
|
124532
|
-
const value =
|
|
124533
|
-
this._applyValidation(value, key2,
|
|
124531
|
+
const schema11 = this._utils.schemas[key2];
|
|
124532
|
+
const value = schema11.preprocess(options8[key2], this._utils);
|
|
124533
|
+
this._applyValidation(value, key2, schema11);
|
|
124534
124534
|
const appendTransferredOptions = ({ from, to: to5 }) => {
|
|
124535
124535
|
transferredOptionsArray.push(typeof to5 === "string" ? { [to5]: from } : { [to5.key]: to5.value });
|
|
124536
124536
|
};
|
|
124537
124537
|
const warnDeprecated = ({ value: currentValue, redirectTo }) => {
|
|
124538
|
-
const deprecatedResult = normalizeDeprecatedResult(
|
|
124538
|
+
const deprecatedResult = normalizeDeprecatedResult(schema11.deprecated(currentValue, this._utils), value, true);
|
|
124539
124539
|
if (deprecatedResult === false) {
|
|
124540
124540
|
return;
|
|
124541
124541
|
}
|
|
@@ -124553,13 +124553,13 @@ var require2, __filename2, __dirname3, __create2, __defProp3, __getOwnPropDesc,
|
|
|
124553
124553
|
}
|
|
124554
124554
|
}
|
|
124555
124555
|
};
|
|
124556
|
-
const forwardResult = normalizeForwardResult(
|
|
124556
|
+
const forwardResult = normalizeForwardResult(schema11.forward(value, this._utils), value);
|
|
124557
124557
|
forwardResult.forEach(appendTransferredOptions);
|
|
124558
|
-
const redirectResult = normalizeRedirectResult(
|
|
124558
|
+
const redirectResult = normalizeRedirectResult(schema11.redirect(value, this._utils), value);
|
|
124559
124559
|
redirectResult.redirect.forEach(appendTransferredOptions);
|
|
124560
124560
|
if ("remain" in redirectResult) {
|
|
124561
124561
|
const remainingValue = redirectResult.remain;
|
|
124562
|
-
newOptions[key2] = key2 in newOptions ?
|
|
124562
|
+
newOptions[key2] = key2 in newOptions ? schema11.overlap(newOptions[key2], remainingValue, this._utils) : remainingValue;
|
|
124563
124563
|
warnDeprecated({ value: remainingValue });
|
|
124564
124564
|
}
|
|
124565
124565
|
for (const { from, to: to5 } of redirectResult.redirect) {
|
|
@@ -124587,8 +124587,8 @@ var require2, __filename2, __dirname3, __create2, __defProp3, __getOwnPropDesc,
|
|
|
124587
124587
|
const [knownKeys, unknownKeys] = partition(Object.keys(options8).filter((key2) => !this._identifyMissing(key2, options8)), (key2) => (key2 in this._utils.schemas));
|
|
124588
124588
|
return { knownKeys, unknownKeys };
|
|
124589
124589
|
}
|
|
124590
|
-
_applyValidation(value, key2,
|
|
124591
|
-
const validateResult = normalizeValidateResult(
|
|
124590
|
+
_applyValidation(value, key2, schema11) {
|
|
124591
|
+
const validateResult = normalizeValidateResult(schema11.validate(value, this._utils), value);
|
|
124592
124592
|
if (validateResult !== true) {
|
|
124593
124593
|
throw this._invalidHandler(key2, validateResult.value, this._utils);
|
|
124594
124594
|
}
|
|
@@ -124630,8 +124630,8 @@ var require2, __filename2, __dirname3, __create2, __defProp3, __getOwnPropDesc,
|
|
|
124630
124630
|
for (const key2 of unknownKeys) {
|
|
124631
124631
|
const value = postprocessed.override[key2];
|
|
124632
124632
|
this._applyUnknownHandler(key2, value, options8, (knownResultKey, knownResultValue) => {
|
|
124633
|
-
const
|
|
124634
|
-
this._applyValidation(knownResultValue, knownResultKey,
|
|
124633
|
+
const schema11 = this._utils.schemas[knownResultKey];
|
|
124634
|
+
this._applyValidation(knownResultValue, knownResultKey, schema11);
|
|
124635
124635
|
options8[knownResultKey] = knownResultValue;
|
|
124636
124636
|
});
|
|
124637
124637
|
}
|
|
@@ -138344,23 +138344,23 @@ var require_JSONSchema = __commonJS((exports) => {
|
|
|
138344
138344
|
exports.Parent = Symbol("Parent");
|
|
138345
138345
|
exports.Types = Symbol("Types");
|
|
138346
138346
|
exports.Intersection = Symbol("Intersection");
|
|
138347
|
-
exports.getRootSchema = (0, lodash_1.memoize)((
|
|
138348
|
-
const parent =
|
|
138347
|
+
exports.getRootSchema = (0, lodash_1.memoize)((schema11) => {
|
|
138348
|
+
const parent = schema11[exports.Parent];
|
|
138349
138349
|
if (!parent) {
|
|
138350
|
-
return
|
|
138350
|
+
return schema11;
|
|
138351
138351
|
}
|
|
138352
138352
|
return (0, exports.getRootSchema)(parent);
|
|
138353
138353
|
});
|
|
138354
|
-
function isBoolean(
|
|
138355
|
-
return
|
|
138354
|
+
function isBoolean(schema11) {
|
|
138355
|
+
return schema11 === true || schema11 === false;
|
|
138356
138356
|
}
|
|
138357
138357
|
exports.isBoolean = isBoolean;
|
|
138358
|
-
function isPrimitive(
|
|
138359
|
-
return !(0, lodash_1.isPlainObject)(
|
|
138358
|
+
function isPrimitive(schema11) {
|
|
138359
|
+
return !(0, lodash_1.isPlainObject)(schema11);
|
|
138360
138360
|
}
|
|
138361
138361
|
exports.isPrimitive = isPrimitive;
|
|
138362
|
-
function isCompound(
|
|
138363
|
-
return Array.isArray(
|
|
138362
|
+
function isCompound(schema11) {
|
|
138363
|
+
return Array.isArray(schema11.type) || "anyOf" in schema11 || "oneOf" in schema11;
|
|
138364
138364
|
}
|
|
138365
138365
|
exports.isCompound = isCompound;
|
|
138366
138366
|
});
|
|
@@ -138587,9 +138587,9 @@ var require_type2 = __commonJS((exports, module) => {
|
|
|
138587
138587
|
var require_schema5 = __commonJS((exports, module) => {
|
|
138588
138588
|
var YAMLException = require_exception2();
|
|
138589
138589
|
var Type = require_type2();
|
|
138590
|
-
function compileList(
|
|
138590
|
+
function compileList(schema11, name2) {
|
|
138591
138591
|
var result = [];
|
|
138592
|
-
|
|
138592
|
+
schema11[name2].forEach(function(currentType) {
|
|
138593
138593
|
var newIndex = result.length;
|
|
138594
138594
|
result.forEach(function(previousType, previousIndex) {
|
|
138595
138595
|
if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) {
|
|
@@ -140534,7 +140534,7 @@ var require_dumper2 = __commonJS((exports, module) => {
|
|
|
140534
140534
|
"OFF"
|
|
140535
140535
|
];
|
|
140536
140536
|
var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;
|
|
140537
|
-
function compileStyleMap(
|
|
140537
|
+
function compileStyleMap(schema11, map2) {
|
|
140538
140538
|
var result, keys, index, length, tag, style, type;
|
|
140539
140539
|
if (map2 === null)
|
|
140540
140540
|
return {};
|
|
@@ -140546,7 +140546,7 @@ var require_dumper2 = __commonJS((exports, module) => {
|
|
|
140546
140546
|
if (tag.slice(0, 2) === "!!") {
|
|
140547
140547
|
tag = "tag:yaml.org,2002:" + tag.slice(2);
|
|
140548
140548
|
}
|
|
140549
|
-
type =
|
|
140549
|
+
type = schema11.compiledTypeMap["fallback"][tag];
|
|
140550
140550
|
if (type && _hasOwnProperty.call(type.styleAliases, style)) {
|
|
140551
140551
|
style = type.styleAliases[style];
|
|
140552
140552
|
}
|
|
@@ -141205,11 +141205,11 @@ var require_utils7 = __commonJS((exports) => {
|
|
|
141205
141205
|
function traverseArray(arr, callback, processed) {
|
|
141206
141206
|
arr.forEach((s5, k9) => traverse(s5, callback, processed, k9.toString()));
|
|
141207
141207
|
}
|
|
141208
|
-
function traverseIntersection(
|
|
141209
|
-
if (typeof
|
|
141208
|
+
function traverseIntersection(schema11, callback, processed) {
|
|
141209
|
+
if (typeof schema11 !== "object" || !schema11) {
|
|
141210
141210
|
return;
|
|
141211
141211
|
}
|
|
141212
|
-
const r5 =
|
|
141212
|
+
const r5 = schema11;
|
|
141213
141213
|
const intersection2 = r5[JSONSchema_1.Intersection];
|
|
141214
141214
|
if (!intersection2) {
|
|
141215
141215
|
return;
|
|
@@ -141218,60 +141218,60 @@ var require_utils7 = __commonJS((exports) => {
|
|
|
141218
141218
|
traverseArray(intersection2.allOf, callback, processed);
|
|
141219
141219
|
}
|
|
141220
141220
|
}
|
|
141221
|
-
function traverse(
|
|
141222
|
-
if (processed.has(
|
|
141221
|
+
function traverse(schema11, callback, processed = new Set, key2) {
|
|
141222
|
+
if (processed.has(schema11)) {
|
|
141223
141223
|
return;
|
|
141224
141224
|
}
|
|
141225
|
-
processed.add(
|
|
141226
|
-
callback(
|
|
141227
|
-
if (
|
|
141228
|
-
traverseArray(
|
|
141225
|
+
processed.add(schema11);
|
|
141226
|
+
callback(schema11, key2 !== null && key2 !== undefined ? key2 : null);
|
|
141227
|
+
if (schema11.anyOf) {
|
|
141228
|
+
traverseArray(schema11.anyOf, callback, processed);
|
|
141229
141229
|
}
|
|
141230
|
-
if (
|
|
141231
|
-
traverseArray(
|
|
141230
|
+
if (schema11.allOf) {
|
|
141231
|
+
traverseArray(schema11.allOf, callback, processed);
|
|
141232
141232
|
}
|
|
141233
|
-
if (
|
|
141234
|
-
traverseArray(
|
|
141233
|
+
if (schema11.oneOf) {
|
|
141234
|
+
traverseArray(schema11.oneOf, callback, processed);
|
|
141235
141235
|
}
|
|
141236
|
-
if (
|
|
141237
|
-
traverseObjectKeys(
|
|
141236
|
+
if (schema11.properties) {
|
|
141237
|
+
traverseObjectKeys(schema11.properties, callback, processed);
|
|
141238
141238
|
}
|
|
141239
|
-
if (
|
|
141240
|
-
traverseObjectKeys(
|
|
141239
|
+
if (schema11.patternProperties) {
|
|
141240
|
+
traverseObjectKeys(schema11.patternProperties, callback, processed);
|
|
141241
141241
|
}
|
|
141242
|
-
if (
|
|
141243
|
-
traverse(
|
|
141242
|
+
if (schema11.additionalProperties && typeof schema11.additionalProperties === "object") {
|
|
141243
|
+
traverse(schema11.additionalProperties, callback, processed);
|
|
141244
141244
|
}
|
|
141245
|
-
if (
|
|
141246
|
-
const { items } =
|
|
141245
|
+
if (schema11.items) {
|
|
141246
|
+
const { items } = schema11;
|
|
141247
141247
|
if (Array.isArray(items)) {
|
|
141248
141248
|
traverseArray(items, callback, processed);
|
|
141249
141249
|
} else {
|
|
141250
141250
|
traverse(items, callback, processed);
|
|
141251
141251
|
}
|
|
141252
141252
|
}
|
|
141253
|
-
if (
|
|
141254
|
-
traverse(
|
|
141253
|
+
if (schema11.additionalItems && typeof schema11.additionalItems === "object") {
|
|
141254
|
+
traverse(schema11.additionalItems, callback, processed);
|
|
141255
141255
|
}
|
|
141256
|
-
if (
|
|
141257
|
-
if (Array.isArray(
|
|
141258
|
-
traverseArray(
|
|
141256
|
+
if (schema11.dependencies) {
|
|
141257
|
+
if (Array.isArray(schema11.dependencies)) {
|
|
141258
|
+
traverseArray(schema11.dependencies, callback, processed);
|
|
141259
141259
|
} else {
|
|
141260
|
-
traverseObjectKeys(
|
|
141260
|
+
traverseObjectKeys(schema11.dependencies, callback, processed);
|
|
141261
141261
|
}
|
|
141262
141262
|
}
|
|
141263
|
-
if (
|
|
141264
|
-
traverseObjectKeys(
|
|
141263
|
+
if (schema11.definitions) {
|
|
141264
|
+
traverseObjectKeys(schema11.definitions, callback, processed);
|
|
141265
141265
|
}
|
|
141266
|
-
if (
|
|
141267
|
-
traverseObjectKeys(
|
|
141266
|
+
if (schema11.$defs) {
|
|
141267
|
+
traverseObjectKeys(schema11.$defs, callback, processed);
|
|
141268
141268
|
}
|
|
141269
|
-
if (
|
|
141270
|
-
traverse(
|
|
141269
|
+
if (schema11.not) {
|
|
141270
|
+
traverse(schema11.not, callback, processed);
|
|
141271
141271
|
}
|
|
141272
|
-
traverseIntersection(
|
|
141273
|
-
Object.keys(
|
|
141274
|
-
const child =
|
|
141272
|
+
traverseIntersection(schema11, callback, processed);
|
|
141273
|
+
Object.keys(schema11).filter((key3) => !BLACKLISTED_KEYS.has(key3)).forEach((key3) => {
|
|
141274
|
+
const child = schema11[key3];
|
|
141275
141275
|
if (child && typeof child === "object") {
|
|
141276
141276
|
traverseObjectKeys(child, callback, processed);
|
|
141277
141277
|
}
|
|
@@ -141353,14 +141353,14 @@ var require_utils7 = __commonJS((exports) => {
|
|
|
141353
141353
|
return (_g2 = color()) === null || _g2 === undefined ? undefined : _g2.whiteBright.bgYellow;
|
|
141354
141354
|
}
|
|
141355
141355
|
}
|
|
141356
|
-
function escapeBlockComment(
|
|
141356
|
+
function escapeBlockComment(schema11) {
|
|
141357
141357
|
const replacer = "* /";
|
|
141358
|
-
if (
|
|
141358
|
+
if (schema11 === null || typeof schema11 !== "object") {
|
|
141359
141359
|
return;
|
|
141360
141360
|
}
|
|
141361
|
-
for (const key2 of Object.keys(
|
|
141362
|
-
if (key2 === "description" && typeof
|
|
141363
|
-
|
|
141361
|
+
for (const key2 of Object.keys(schema11)) {
|
|
141362
|
+
if (key2 === "description" && typeof schema11[key2] === "string") {
|
|
141363
|
+
schema11[key2] = schema11[key2].replace(/\*\//g, replacer);
|
|
141364
141364
|
}
|
|
141365
141365
|
}
|
|
141366
141366
|
}
|
|
@@ -141372,45 +141372,45 @@ var require_utils7 = __commonJS((exports) => {
|
|
|
141372
141372
|
return path_1.posix.join(path_1.posix.normalize(outputPath), ...filePathRel);
|
|
141373
141373
|
}
|
|
141374
141374
|
exports.pathTransform = pathTransform;
|
|
141375
|
-
function maybeStripDefault(
|
|
141376
|
-
if (!("default" in
|
|
141377
|
-
return
|
|
141375
|
+
function maybeStripDefault(schema11) {
|
|
141376
|
+
if (!("default" in schema11)) {
|
|
141377
|
+
return schema11;
|
|
141378
141378
|
}
|
|
141379
|
-
switch (
|
|
141379
|
+
switch (schema11.type) {
|
|
141380
141380
|
case "array":
|
|
141381
|
-
if (Array.isArray(
|
|
141382
|
-
return
|
|
141381
|
+
if (Array.isArray(schema11.default)) {
|
|
141382
|
+
return schema11;
|
|
141383
141383
|
}
|
|
141384
141384
|
break;
|
|
141385
141385
|
case "boolean":
|
|
141386
|
-
if (typeof
|
|
141387
|
-
return
|
|
141386
|
+
if (typeof schema11.default === "boolean") {
|
|
141387
|
+
return schema11;
|
|
141388
141388
|
}
|
|
141389
141389
|
break;
|
|
141390
141390
|
case "integer":
|
|
141391
141391
|
case "number":
|
|
141392
|
-
if (typeof
|
|
141393
|
-
return
|
|
141392
|
+
if (typeof schema11.default === "number") {
|
|
141393
|
+
return schema11;
|
|
141394
141394
|
}
|
|
141395
141395
|
break;
|
|
141396
141396
|
case "string":
|
|
141397
|
-
if (typeof
|
|
141398
|
-
return
|
|
141397
|
+
if (typeof schema11.default === "string") {
|
|
141398
|
+
return schema11;
|
|
141399
141399
|
}
|
|
141400
141400
|
break;
|
|
141401
141401
|
case "null":
|
|
141402
|
-
if (
|
|
141403
|
-
return
|
|
141402
|
+
if (schema11.default === null) {
|
|
141403
|
+
return schema11;
|
|
141404
141404
|
}
|
|
141405
141405
|
break;
|
|
141406
141406
|
case "object":
|
|
141407
|
-
if ((0, lodash_1.isPlainObject)(
|
|
141408
|
-
return
|
|
141407
|
+
if ((0, lodash_1.isPlainObject)(schema11.default)) {
|
|
141408
|
+
return schema11;
|
|
141409
141409
|
}
|
|
141410
141410
|
break;
|
|
141411
141411
|
}
|
|
141412
|
-
delete
|
|
141413
|
-
return
|
|
141412
|
+
delete schema11.default;
|
|
141413
|
+
return schema11;
|
|
141414
141414
|
}
|
|
141415
141415
|
exports.maybeStripDefault = maybeStripDefault;
|
|
141416
141416
|
function appendToDescription(existingDescription, ...values) {
|
|
@@ -141424,11 +141424,11 @@ ${values.join(`
|
|
|
141424
141424
|
`);
|
|
141425
141425
|
}
|
|
141426
141426
|
exports.appendToDescription = appendToDescription;
|
|
141427
|
-
function isSchemaLike(
|
|
141428
|
-
if (!(0, lodash_1.isPlainObject)(
|
|
141427
|
+
function isSchemaLike(schema11) {
|
|
141428
|
+
if (!(0, lodash_1.isPlainObject)(schema11)) {
|
|
141429
141429
|
return false;
|
|
141430
141430
|
}
|
|
141431
|
-
const parent =
|
|
141431
|
+
const parent = schema11[JSONSchema_1.Parent];
|
|
141432
141432
|
if (parent === null) {
|
|
141433
141433
|
return true;
|
|
141434
141434
|
}
|
|
@@ -141445,7 +141445,7 @@ ${values.join(`
|
|
|
141445
141445
|
"properties",
|
|
141446
141446
|
"required"
|
|
141447
141447
|
];
|
|
141448
|
-
if (JSON_SCHEMA_KEYWORDS.some((_10) => parent[_10] ===
|
|
141448
|
+
if (JSON_SCHEMA_KEYWORDS.some((_10) => parent[_10] === schema11)) {
|
|
141449
141449
|
return false;
|
|
141450
141450
|
}
|
|
141451
141451
|
return true;
|
|
@@ -141743,13 +141743,13 @@ var require_typesOfSchema = __commonJS((exports) => {
|
|
|
141743
141743
|
exports.typesOfSchema = undefined;
|
|
141744
141744
|
var lodash_1 = require_lodash8();
|
|
141745
141745
|
var JSONSchema_1 = require_JSONSchema();
|
|
141746
|
-
function typesOfSchema(
|
|
141747
|
-
if (
|
|
141746
|
+
function typesOfSchema(schema11) {
|
|
141747
|
+
if (schema11.tsType) {
|
|
141748
141748
|
return new Set(["CUSTOM_TYPE"]);
|
|
141749
141749
|
}
|
|
141750
141750
|
const matchedTypes = new Set;
|
|
141751
141751
|
for (const [schemaType, f7] of Object.entries(matchers)) {
|
|
141752
|
-
if (f7(
|
|
141752
|
+
if (f7(schema11)) {
|
|
141753
141753
|
matchedTypes.add(schemaType);
|
|
141754
141754
|
}
|
|
141755
141755
|
}
|
|
@@ -141760,26 +141760,26 @@ var require_typesOfSchema = __commonJS((exports) => {
|
|
|
141760
141760
|
}
|
|
141761
141761
|
exports.typesOfSchema = typesOfSchema;
|
|
141762
141762
|
var matchers = {
|
|
141763
|
-
ALL_OF(
|
|
141764
|
-
return "allOf" in
|
|
141763
|
+
ALL_OF(schema11) {
|
|
141764
|
+
return "allOf" in schema11;
|
|
141765
141765
|
},
|
|
141766
|
-
ANY(
|
|
141767
|
-
if (Object.keys(
|
|
141766
|
+
ANY(schema11) {
|
|
141767
|
+
if (Object.keys(schema11).length === 0) {
|
|
141768
141768
|
return true;
|
|
141769
141769
|
}
|
|
141770
|
-
return
|
|
141770
|
+
return schema11.type === "any";
|
|
141771
141771
|
},
|
|
141772
|
-
ANY_OF(
|
|
141773
|
-
return "anyOf" in
|
|
141772
|
+
ANY_OF(schema11) {
|
|
141773
|
+
return "anyOf" in schema11;
|
|
141774
141774
|
},
|
|
141775
|
-
BOOLEAN(
|
|
141776
|
-
if ("enum" in
|
|
141775
|
+
BOOLEAN(schema11) {
|
|
141776
|
+
if ("enum" in schema11) {
|
|
141777
141777
|
return false;
|
|
141778
141778
|
}
|
|
141779
|
-
if (
|
|
141779
|
+
if (schema11.type === "boolean") {
|
|
141780
141780
|
return true;
|
|
141781
141781
|
}
|
|
141782
|
-
if (!(0, JSONSchema_1.isCompound)(
|
|
141782
|
+
if (!(0, JSONSchema_1.isCompound)(schema11) && typeof schema11.default === "boolean") {
|
|
141783
141783
|
return true;
|
|
141784
141784
|
}
|
|
141785
141785
|
return false;
|
|
@@ -141787,74 +141787,74 @@ var require_typesOfSchema = __commonJS((exports) => {
|
|
|
141787
141787
|
CUSTOM_TYPE() {
|
|
141788
141788
|
return false;
|
|
141789
141789
|
},
|
|
141790
|
-
NAMED_ENUM(
|
|
141791
|
-
return "enum" in
|
|
141790
|
+
NAMED_ENUM(schema11) {
|
|
141791
|
+
return "enum" in schema11 && "tsEnumNames" in schema11;
|
|
141792
141792
|
},
|
|
141793
|
-
NAMED_SCHEMA(
|
|
141794
|
-
return "$id" in
|
|
141793
|
+
NAMED_SCHEMA(schema11) {
|
|
141794
|
+
return "$id" in schema11 && (("patternProperties" in schema11) || ("properties" in schema11));
|
|
141795
141795
|
},
|
|
141796
|
-
NEVER(
|
|
141797
|
-
return
|
|
141796
|
+
NEVER(schema11) {
|
|
141797
|
+
return schema11 === false;
|
|
141798
141798
|
},
|
|
141799
|
-
NULL(
|
|
141800
|
-
return
|
|
141799
|
+
NULL(schema11) {
|
|
141800
|
+
return schema11.type === "null";
|
|
141801
141801
|
},
|
|
141802
|
-
NUMBER(
|
|
141803
|
-
if ("enum" in
|
|
141802
|
+
NUMBER(schema11) {
|
|
141803
|
+
if ("enum" in schema11) {
|
|
141804
141804
|
return false;
|
|
141805
141805
|
}
|
|
141806
|
-
if (
|
|
141806
|
+
if (schema11.type === "integer" || schema11.type === "number") {
|
|
141807
141807
|
return true;
|
|
141808
141808
|
}
|
|
141809
|
-
if (!(0, JSONSchema_1.isCompound)(
|
|
141809
|
+
if (!(0, JSONSchema_1.isCompound)(schema11) && typeof schema11.default === "number") {
|
|
141810
141810
|
return true;
|
|
141811
141811
|
}
|
|
141812
141812
|
return false;
|
|
141813
141813
|
},
|
|
141814
|
-
OBJECT(
|
|
141815
|
-
return
|
|
141814
|
+
OBJECT(schema11) {
|
|
141815
|
+
return schema11.type === "object" && !(0, lodash_1.isPlainObject)(schema11.additionalProperties) && !schema11.allOf && !schema11.anyOf && !schema11.oneOf && !schema11.patternProperties && !schema11.properties && !schema11.required;
|
|
141816
141816
|
},
|
|
141817
|
-
ONE_OF(
|
|
141818
|
-
return "oneOf" in
|
|
141817
|
+
ONE_OF(schema11) {
|
|
141818
|
+
return "oneOf" in schema11;
|
|
141819
141819
|
},
|
|
141820
|
-
REFERENCE(
|
|
141821
|
-
return "$ref" in
|
|
141820
|
+
REFERENCE(schema11) {
|
|
141821
|
+
return "$ref" in schema11;
|
|
141822
141822
|
},
|
|
141823
|
-
STRING(
|
|
141824
|
-
if ("enum" in
|
|
141823
|
+
STRING(schema11) {
|
|
141824
|
+
if ("enum" in schema11) {
|
|
141825
141825
|
return false;
|
|
141826
141826
|
}
|
|
141827
|
-
if (
|
|
141827
|
+
if (schema11.type === "string") {
|
|
141828
141828
|
return true;
|
|
141829
141829
|
}
|
|
141830
|
-
if (!(0, JSONSchema_1.isCompound)(
|
|
141830
|
+
if (!(0, JSONSchema_1.isCompound)(schema11) && typeof schema11.default === "string") {
|
|
141831
141831
|
return true;
|
|
141832
141832
|
}
|
|
141833
141833
|
return false;
|
|
141834
141834
|
},
|
|
141835
|
-
TYPED_ARRAY(
|
|
141836
|
-
if (
|
|
141835
|
+
TYPED_ARRAY(schema11) {
|
|
141836
|
+
if (schema11.type && schema11.type !== "array") {
|
|
141837
141837
|
return false;
|
|
141838
141838
|
}
|
|
141839
|
-
return "items" in
|
|
141839
|
+
return "items" in schema11;
|
|
141840
141840
|
},
|
|
141841
|
-
UNION(
|
|
141842
|
-
return Array.isArray(
|
|
141841
|
+
UNION(schema11) {
|
|
141842
|
+
return Array.isArray(schema11.type);
|
|
141843
141843
|
},
|
|
141844
|
-
UNNAMED_ENUM(
|
|
141845
|
-
if ("tsEnumNames" in
|
|
141844
|
+
UNNAMED_ENUM(schema11) {
|
|
141845
|
+
if ("tsEnumNames" in schema11) {
|
|
141846
141846
|
return false;
|
|
141847
141847
|
}
|
|
141848
|
-
if (
|
|
141848
|
+
if (schema11.type && schema11.type !== "boolean" && schema11.type !== "integer" && schema11.type !== "number" && schema11.type !== "string") {
|
|
141849
141849
|
return false;
|
|
141850
141850
|
}
|
|
141851
|
-
return "enum" in
|
|
141851
|
+
return "enum" in schema11;
|
|
141852
141852
|
},
|
|
141853
141853
|
UNNAMED_SCHEMA() {
|
|
141854
141854
|
return false;
|
|
141855
141855
|
},
|
|
141856
|
-
UNTYPED_ARRAY(
|
|
141857
|
-
return
|
|
141856
|
+
UNTYPED_ARRAY(schema11) {
|
|
141857
|
+
return schema11.type === "array" && !("items" in schema11);
|
|
141858
141858
|
}
|
|
141859
141859
|
};
|
|
141860
141860
|
});
|
|
@@ -141865,10 +141865,10 @@ var require_applySchemaTyping = __commonJS((exports) => {
|
|
|
141865
141865
|
exports.applySchemaTyping = undefined;
|
|
141866
141866
|
var JSONSchema_1 = require_JSONSchema();
|
|
141867
141867
|
var typesOfSchema_1 = require_typesOfSchema();
|
|
141868
|
-
function applySchemaTyping(
|
|
141868
|
+
function applySchemaTyping(schema11) {
|
|
141869
141869
|
var _a7;
|
|
141870
|
-
const types = (0, typesOfSchema_1.typesOfSchema)(
|
|
141871
|
-
Object.defineProperty(
|
|
141870
|
+
const types = (0, typesOfSchema_1.typesOfSchema)(schema11);
|
|
141871
|
+
Object.defineProperty(schema11, JSONSchema_1.Types, {
|
|
141872
141872
|
enumerable: false,
|
|
141873
141873
|
value: types,
|
|
141874
141874
|
writable: false
|
|
@@ -141877,23 +141877,23 @@ var require_applySchemaTyping = __commonJS((exports) => {
|
|
|
141877
141877
|
return;
|
|
141878
141878
|
}
|
|
141879
141879
|
const intersection2 = {
|
|
141880
|
-
[JSONSchema_1.Parent]:
|
|
141880
|
+
[JSONSchema_1.Parent]: schema11,
|
|
141881
141881
|
[JSONSchema_1.Types]: new Set(["ALL_OF"]),
|
|
141882
|
-
$id:
|
|
141883
|
-
description:
|
|
141884
|
-
name:
|
|
141885
|
-
title:
|
|
141886
|
-
allOf: (_a7 =
|
|
141882
|
+
$id: schema11.$id,
|
|
141883
|
+
description: schema11.description,
|
|
141884
|
+
name: schema11.name,
|
|
141885
|
+
title: schema11.title,
|
|
141886
|
+
allOf: (_a7 = schema11.allOf) !== null && _a7 !== undefined ? _a7 : [],
|
|
141887
141887
|
required: [],
|
|
141888
141888
|
additionalProperties: false
|
|
141889
141889
|
};
|
|
141890
141890
|
types.delete("ALL_OF");
|
|
141891
|
-
delete
|
|
141892
|
-
delete
|
|
141893
|
-
delete
|
|
141894
|
-
delete
|
|
141895
|
-
delete
|
|
141896
|
-
Object.defineProperty(
|
|
141891
|
+
delete schema11.allOf;
|
|
141892
|
+
delete schema11.$id;
|
|
141893
|
+
delete schema11.description;
|
|
141894
|
+
delete schema11.name;
|
|
141895
|
+
delete schema11.title;
|
|
141896
|
+
Object.defineProperty(schema11, JSONSchema_1.Intersection, {
|
|
141897
141897
|
enumerable: false,
|
|
141898
141898
|
value: intersection2,
|
|
141899
141899
|
writable: false
|
|
@@ -141911,186 +141911,186 @@ var require_normalizer = __commonJS((exports) => {
|
|
|
141911
141911
|
var applySchemaTyping_1 = require_applySchemaTyping();
|
|
141912
141912
|
var util_1 = __require("util");
|
|
141913
141913
|
var rules = new Map;
|
|
141914
|
-
function hasType(
|
|
141915
|
-
return
|
|
141914
|
+
function hasType(schema11, type) {
|
|
141915
|
+
return schema11.type === type || Array.isArray(schema11.type) && schema11.type.includes(type);
|
|
141916
141916
|
}
|
|
141917
|
-
function isObjectType(
|
|
141918
|
-
return
|
|
141917
|
+
function isObjectType(schema11) {
|
|
141918
|
+
return schema11.properties !== undefined || hasType(schema11, "object") || hasType(schema11, "any");
|
|
141919
141919
|
}
|
|
141920
|
-
function isArrayType(
|
|
141921
|
-
return
|
|
141920
|
+
function isArrayType(schema11) {
|
|
141921
|
+
return schema11.items !== undefined || hasType(schema11, "array") || hasType(schema11, "any");
|
|
141922
141922
|
}
|
|
141923
|
-
function isEnumTypeWithoutTsEnumNames(
|
|
141924
|
-
return
|
|
141923
|
+
function isEnumTypeWithoutTsEnumNames(schema11) {
|
|
141924
|
+
return schema11.type === "string" && schema11.enum !== undefined && schema11.tsEnumNames === undefined;
|
|
141925
141925
|
}
|
|
141926
|
-
rules.set('Remove `type=["null"]` if `enum=[null]`', (
|
|
141927
|
-
if (Array.isArray(
|
|
141928
|
-
|
|
141926
|
+
rules.set('Remove `type=["null"]` if `enum=[null]`', (schema11) => {
|
|
141927
|
+
if (Array.isArray(schema11.enum) && schema11.enum.some((e8) => e8 === null) && Array.isArray(schema11.type) && schema11.type.includes("null")) {
|
|
141928
|
+
schema11.type = schema11.type.filter((type) => type !== "null");
|
|
141929
141929
|
}
|
|
141930
141930
|
});
|
|
141931
|
-
rules.set("Destructure unary types", (
|
|
141932
|
-
if (
|
|
141933
|
-
|
|
141931
|
+
rules.set("Destructure unary types", (schema11) => {
|
|
141932
|
+
if (schema11.type && Array.isArray(schema11.type) && schema11.type.length === 1) {
|
|
141933
|
+
schema11.type = schema11.type[0];
|
|
141934
141934
|
}
|
|
141935
141935
|
});
|
|
141936
|
-
rules.set("Add empty `required` property if none is defined", (
|
|
141937
|
-
if (isObjectType(
|
|
141938
|
-
|
|
141936
|
+
rules.set("Add empty `required` property if none is defined", (schema11) => {
|
|
141937
|
+
if (isObjectType(schema11) && !("required" in schema11)) {
|
|
141938
|
+
schema11.required = [];
|
|
141939
141939
|
}
|
|
141940
141940
|
});
|
|
141941
|
-
rules.set("Transform `required`=false to `required`=[]", (
|
|
141942
|
-
if (
|
|
141943
|
-
|
|
141941
|
+
rules.set("Transform `required`=false to `required`=[]", (schema11) => {
|
|
141942
|
+
if (schema11.required === false) {
|
|
141943
|
+
schema11.required = [];
|
|
141944
141944
|
}
|
|
141945
141945
|
});
|
|
141946
|
-
rules.set("Default additionalProperties", (
|
|
141947
|
-
if (isObjectType(
|
|
141948
|
-
|
|
141946
|
+
rules.set("Default additionalProperties", (schema11, _10, options8) => {
|
|
141947
|
+
if (isObjectType(schema11) && !("additionalProperties" in schema11) && schema11.patternProperties === undefined) {
|
|
141948
|
+
schema11.additionalProperties = options8.additionalProperties;
|
|
141949
141949
|
}
|
|
141950
141950
|
});
|
|
141951
|
-
rules.set("Transform id to $id", (
|
|
141952
|
-
if (!(0, utils_1.isSchemaLike)(
|
|
141951
|
+
rules.set("Transform id to $id", (schema11, fileName) => {
|
|
141952
|
+
if (!(0, utils_1.isSchemaLike)(schema11)) {
|
|
141953
141953
|
return;
|
|
141954
141954
|
}
|
|
141955
|
-
if (
|
|
141956
|
-
throw ReferenceError(`Schema must define either id or $id, not both. Given id=${
|
|
141955
|
+
if (schema11.id && schema11.$id && schema11.id !== schema11.$id) {
|
|
141956
|
+
throw ReferenceError(`Schema must define either id or $id, not both. Given id=${schema11.id}, $id=${schema11.$id} in ${fileName}`);
|
|
141957
141957
|
}
|
|
141958
|
-
if (
|
|
141959
|
-
|
|
141960
|
-
delete
|
|
141958
|
+
if (schema11.id) {
|
|
141959
|
+
schema11.$id = schema11.id;
|
|
141960
|
+
delete schema11.id;
|
|
141961
141961
|
}
|
|
141962
141962
|
});
|
|
141963
|
-
rules.set("Add an $id to anything that needs it", (
|
|
141964
|
-
if (!(0, utils_1.isSchemaLike)(
|
|
141963
|
+
rules.set("Add an $id to anything that needs it", (schema11, fileName, _options, _key, dereferencedPaths) => {
|
|
141964
|
+
if (!(0, utils_1.isSchemaLike)(schema11)) {
|
|
141965
141965
|
return;
|
|
141966
141966
|
}
|
|
141967
|
-
if (!
|
|
141968
|
-
|
|
141967
|
+
if (!schema11.$id && !schema11[JSONSchema_1.Parent]) {
|
|
141968
|
+
schema11.$id = (0, utils_1.toSafeString)((0, utils_1.justName)(fileName));
|
|
141969
141969
|
return;
|
|
141970
141970
|
}
|
|
141971
|
-
if (!isArrayType(
|
|
141971
|
+
if (!isArrayType(schema11) && !isObjectType(schema11)) {
|
|
141972
141972
|
return;
|
|
141973
141973
|
}
|
|
141974
|
-
const dereferencedName = dereferencedPaths.get(
|
|
141975
|
-
if (!
|
|
141976
|
-
|
|
141974
|
+
const dereferencedName = dereferencedPaths.get(schema11);
|
|
141975
|
+
if (!schema11.$id && !schema11.title && dereferencedName) {
|
|
141976
|
+
schema11.$id = (0, utils_1.toSafeString)((0, utils_1.justName)(dereferencedName));
|
|
141977
141977
|
}
|
|
141978
141978
|
if (dereferencedName) {
|
|
141979
|
-
dereferencedPaths.delete(
|
|
141979
|
+
dereferencedPaths.delete(schema11);
|
|
141980
141980
|
}
|
|
141981
141981
|
});
|
|
141982
|
-
rules.set("Escape closing JSDoc comment", (
|
|
141983
|
-
(0, utils_1.escapeBlockComment)(
|
|
141982
|
+
rules.set("Escape closing JSDoc comment", (schema11) => {
|
|
141983
|
+
(0, utils_1.escapeBlockComment)(schema11);
|
|
141984
141984
|
});
|
|
141985
|
-
rules.set("Add JSDoc comments for minItems and maxItems", (
|
|
141986
|
-
if (!isArrayType(
|
|
141985
|
+
rules.set("Add JSDoc comments for minItems and maxItems", (schema11) => {
|
|
141986
|
+
if (!isArrayType(schema11)) {
|
|
141987
141987
|
return;
|
|
141988
141988
|
}
|
|
141989
141989
|
const commentsToAppend = [
|
|
141990
|
-
"minItems" in
|
|
141991
|
-
"maxItems" in
|
|
141990
|
+
"minItems" in schema11 ? `@minItems ${schema11.minItems}` : "",
|
|
141991
|
+
"maxItems" in schema11 ? `@maxItems ${schema11.maxItems}` : ""
|
|
141992
141992
|
].filter(Boolean);
|
|
141993
141993
|
if (commentsToAppend.length) {
|
|
141994
|
-
|
|
141994
|
+
schema11.description = (0, utils_1.appendToDescription)(schema11.description, ...commentsToAppend);
|
|
141995
141995
|
}
|
|
141996
141996
|
});
|
|
141997
|
-
rules.set("Optionally remove maxItems and minItems", (
|
|
141998
|
-
if (!isArrayType(
|
|
141997
|
+
rules.set("Optionally remove maxItems and minItems", (schema11, _fileName, options8) => {
|
|
141998
|
+
if (!isArrayType(schema11)) {
|
|
141999
141999
|
return;
|
|
142000
142000
|
}
|
|
142001
|
-
if ("minItems" in
|
|
142002
|
-
delete
|
|
142001
|
+
if ("minItems" in schema11 && options8.ignoreMinAndMaxItems) {
|
|
142002
|
+
delete schema11.minItems;
|
|
142003
142003
|
}
|
|
142004
|
-
if ("maxItems" in
|
|
142005
|
-
delete
|
|
142004
|
+
if ("maxItems" in schema11 && (options8.ignoreMinAndMaxItems || options8.maxItems === -1)) {
|
|
142005
|
+
delete schema11.maxItems;
|
|
142006
142006
|
}
|
|
142007
142007
|
});
|
|
142008
|
-
rules.set("Normalize schema.minItems", (
|
|
142008
|
+
rules.set("Normalize schema.minItems", (schema11, _fileName, options8) => {
|
|
142009
142009
|
if (options8.ignoreMinAndMaxItems) {
|
|
142010
142010
|
return;
|
|
142011
142011
|
}
|
|
142012
|
-
if (!isArrayType(
|
|
142012
|
+
if (!isArrayType(schema11)) {
|
|
142013
142013
|
return;
|
|
142014
142014
|
}
|
|
142015
|
-
const { minItems } =
|
|
142016
|
-
|
|
142015
|
+
const { minItems } = schema11;
|
|
142016
|
+
schema11.minItems = typeof minItems === "number" ? minItems : 0;
|
|
142017
142017
|
});
|
|
142018
|
-
rules.set("Remove maxItems if it is big enough to likely cause OOMs", (
|
|
142018
|
+
rules.set("Remove maxItems if it is big enough to likely cause OOMs", (schema11, _fileName, options8) => {
|
|
142019
142019
|
if (options8.ignoreMinAndMaxItems || options8.maxItems === -1) {
|
|
142020
142020
|
return;
|
|
142021
142021
|
}
|
|
142022
|
-
if (!isArrayType(
|
|
142022
|
+
if (!isArrayType(schema11)) {
|
|
142023
142023
|
return;
|
|
142024
142024
|
}
|
|
142025
|
-
const { maxItems, minItems } =
|
|
142025
|
+
const { maxItems, minItems } = schema11;
|
|
142026
142026
|
if (maxItems !== undefined && maxItems - minItems > options8.maxItems) {
|
|
142027
|
-
delete
|
|
142027
|
+
delete schema11.maxItems;
|
|
142028
142028
|
}
|
|
142029
142029
|
});
|
|
142030
|
-
rules.set("Normalize schema.items", (
|
|
142030
|
+
rules.set("Normalize schema.items", (schema11, _fileName, options8) => {
|
|
142031
142031
|
if (options8.ignoreMinAndMaxItems) {
|
|
142032
142032
|
return;
|
|
142033
142033
|
}
|
|
142034
|
-
const { maxItems, minItems } =
|
|
142034
|
+
const { maxItems, minItems } = schema11;
|
|
142035
142035
|
const hasMaxItems = typeof maxItems === "number" && maxItems >= 0;
|
|
142036
142036
|
const hasMinItems = typeof minItems === "number" && minItems > 0;
|
|
142037
|
-
if (
|
|
142038
|
-
const items =
|
|
142037
|
+
if (schema11.items && !Array.isArray(schema11.items) && (hasMaxItems || hasMinItems)) {
|
|
142038
|
+
const items = schema11.items;
|
|
142039
142039
|
const newItems = Array(maxItems || minItems || 0).fill(items);
|
|
142040
142040
|
if (!hasMaxItems) {
|
|
142041
|
-
|
|
142041
|
+
schema11.additionalItems = items;
|
|
142042
142042
|
}
|
|
142043
|
-
|
|
142043
|
+
schema11.items = newItems;
|
|
142044
142044
|
}
|
|
142045
|
-
if (Array.isArray(
|
|
142046
|
-
|
|
142045
|
+
if (Array.isArray(schema11.items) && hasMaxItems && maxItems < schema11.items.length) {
|
|
142046
|
+
schema11.items = schema11.items.slice(0, maxItems);
|
|
142047
142047
|
}
|
|
142048
|
-
return
|
|
142048
|
+
return schema11;
|
|
142049
142049
|
});
|
|
142050
|
-
rules.set("Remove extends, if it is empty", (
|
|
142051
|
-
if (!
|
|
142050
|
+
rules.set("Remove extends, if it is empty", (schema11) => {
|
|
142051
|
+
if (!schema11.hasOwnProperty("extends")) {
|
|
142052
142052
|
return;
|
|
142053
142053
|
}
|
|
142054
|
-
if (
|
|
142055
|
-
delete
|
|
142054
|
+
if (schema11.extends == null || Array.isArray(schema11.extends) && schema11.extends.length === 0) {
|
|
142055
|
+
delete schema11.extends;
|
|
142056
142056
|
}
|
|
142057
142057
|
});
|
|
142058
|
-
rules.set("Make extends always an array, if it is defined", (
|
|
142059
|
-
if (
|
|
142058
|
+
rules.set("Make extends always an array, if it is defined", (schema11) => {
|
|
142059
|
+
if (schema11.extends == null) {
|
|
142060
142060
|
return;
|
|
142061
142061
|
}
|
|
142062
|
-
if (!Array.isArray(
|
|
142063
|
-
|
|
142062
|
+
if (!Array.isArray(schema11.extends)) {
|
|
142063
|
+
schema11.extends = [schema11.extends];
|
|
142064
142064
|
}
|
|
142065
142065
|
});
|
|
142066
|
-
rules.set("Transform definitions to $defs", (
|
|
142067
|
-
if (
|
|
142068
|
-
throw ReferenceError(`Schema must define either definitions or $defs, not both. Given id=${
|
|
142066
|
+
rules.set("Transform definitions to $defs", (schema11, fileName) => {
|
|
142067
|
+
if (schema11.definitions && schema11.$defs && !(0, util_1.isDeepStrictEqual)(schema11.definitions, schema11.$defs)) {
|
|
142068
|
+
throw ReferenceError(`Schema must define either definitions or $defs, not both. Given id=${schema11.id} in ${fileName}`);
|
|
142069
142069
|
}
|
|
142070
|
-
if (
|
|
142071
|
-
|
|
142072
|
-
delete
|
|
142070
|
+
if (schema11.definitions) {
|
|
142071
|
+
schema11.$defs = schema11.definitions;
|
|
142072
|
+
delete schema11.definitions;
|
|
142073
142073
|
}
|
|
142074
142074
|
});
|
|
142075
|
-
rules.set("Transform const to singleton enum", (
|
|
142076
|
-
if (
|
|
142077
|
-
|
|
142078
|
-
delete
|
|
142075
|
+
rules.set("Transform const to singleton enum", (schema11) => {
|
|
142076
|
+
if (schema11.const !== undefined) {
|
|
142077
|
+
schema11.enum = [schema11.const];
|
|
142078
|
+
delete schema11.const;
|
|
142079
142079
|
}
|
|
142080
142080
|
});
|
|
142081
|
-
rules.set("Add tsEnumNames to enum types", (
|
|
142081
|
+
rules.set("Add tsEnumNames to enum types", (schema11, _10, options8) => {
|
|
142082
142082
|
var _a7;
|
|
142083
|
-
if (isEnumTypeWithoutTsEnumNames(
|
|
142084
|
-
|
|
142083
|
+
if (isEnumTypeWithoutTsEnumNames(schema11) && options8.inferStringEnumKeysFromValues) {
|
|
142084
|
+
schema11.tsEnumNames = (_a7 = schema11.enum) === null || _a7 === undefined ? undefined : _a7.map(String);
|
|
142085
142085
|
}
|
|
142086
142086
|
});
|
|
142087
|
-
rules.set("Pre-calculate schema types and intersections", (
|
|
142088
|
-
if (
|
|
142089
|
-
(0, applySchemaTyping_1.applySchemaTyping)(
|
|
142087
|
+
rules.set("Pre-calculate schema types and intersections", (schema11) => {
|
|
142088
|
+
if (schema11 !== null && typeof schema11 === "object") {
|
|
142089
|
+
(0, applySchemaTyping_1.applySchemaTyping)(schema11);
|
|
142090
142090
|
}
|
|
142091
142091
|
});
|
|
142092
142092
|
function normalize2(rootSchema, dereferencedPaths, filename, options8) {
|
|
142093
|
-
rules.forEach((rule) => (0, utils_1.traverse)(rootSchema, (
|
|
142093
|
+
rules.forEach((rule) => (0, utils_1.traverse)(rootSchema, (schema11, key2) => rule(schema11, filename, options8, key2, dereferencedPaths)));
|
|
142094
142094
|
return rootSchema;
|
|
142095
142095
|
}
|
|
142096
142096
|
exports.normalize = normalize2;
|
|
@@ -142172,37 +142172,37 @@ var require_parser2 = __commonJS((exports) => {
|
|
|
142172
142172
|
var AST_1 = require_AST();
|
|
142173
142173
|
var JSONSchema_1 = require_JSONSchema();
|
|
142174
142174
|
var utils_1 = require_utils7();
|
|
142175
|
-
function parse11(
|
|
142176
|
-
if ((0, JSONSchema_1.isPrimitive)(
|
|
142177
|
-
if ((0, JSONSchema_1.isBoolean)(
|
|
142178
|
-
return parseBooleanSchema(
|
|
142175
|
+
function parse11(schema11, options8, keyName, processed = new Map, usedNames = new Set) {
|
|
142176
|
+
if ((0, JSONSchema_1.isPrimitive)(schema11)) {
|
|
142177
|
+
if ((0, JSONSchema_1.isBoolean)(schema11)) {
|
|
142178
|
+
return parseBooleanSchema(schema11, keyName, options8);
|
|
142179
142179
|
}
|
|
142180
|
-
return parseLiteral(
|
|
142180
|
+
return parseLiteral(schema11, keyName);
|
|
142181
142181
|
}
|
|
142182
|
-
const intersection2 =
|
|
142183
|
-
const types =
|
|
142182
|
+
const intersection2 = schema11[JSONSchema_1.Intersection];
|
|
142183
|
+
const types = schema11[JSONSchema_1.Types];
|
|
142184
142184
|
if (intersection2) {
|
|
142185
142185
|
const ast = parseAsTypeWithCache(intersection2, "ALL_OF", options8, keyName, processed, usedNames);
|
|
142186
142186
|
types.forEach((type) => {
|
|
142187
|
-
ast.params.push(parseAsTypeWithCache(
|
|
142187
|
+
ast.params.push(parseAsTypeWithCache(schema11, type, options8, keyName, processed, usedNames));
|
|
142188
142188
|
});
|
|
142189
|
-
(0, utils_1.log)("blue", "parser", "Types:", [...types], "Input:",
|
|
142189
|
+
(0, utils_1.log)("blue", "parser", "Types:", [...types], "Input:", schema11, "Output:", ast);
|
|
142190
142190
|
return ast;
|
|
142191
142191
|
}
|
|
142192
142192
|
if (types.size === 1) {
|
|
142193
142193
|
const type = [...types][0];
|
|
142194
|
-
const ast = parseAsTypeWithCache(
|
|
142195
|
-
(0, utils_1.log)("blue", "parser", "Type:", type, "Input:",
|
|
142194
|
+
const ast = parseAsTypeWithCache(schema11, type, options8, keyName, processed, usedNames);
|
|
142195
|
+
(0, utils_1.log)("blue", "parser", "Type:", type, "Input:", schema11, "Output:", ast);
|
|
142196
142196
|
return ast;
|
|
142197
142197
|
}
|
|
142198
142198
|
throw new ReferenceError("Expected intersection schema. Please file an issue on GitHub.");
|
|
142199
142199
|
}
|
|
142200
142200
|
exports.parse = parse11;
|
|
142201
|
-
function parseAsTypeWithCache(
|
|
142202
|
-
let cachedTypeMap = processed.get(
|
|
142201
|
+
function parseAsTypeWithCache(schema11, type, options8, keyName, processed = new Map, usedNames = new Set) {
|
|
142202
|
+
let cachedTypeMap = processed.get(schema11);
|
|
142203
142203
|
if (!cachedTypeMap) {
|
|
142204
142204
|
cachedTypeMap = new Map;
|
|
142205
|
-
processed.set(
|
|
142205
|
+
processed.set(schema11, cachedTypeMap);
|
|
142206
142206
|
}
|
|
142207
142207
|
const cachedAST = cachedTypeMap.get(type);
|
|
142208
142208
|
if (cachedAST) {
|
|
@@ -142210,10 +142210,10 @@ var require_parser2 = __commonJS((exports) => {
|
|
|
142210
142210
|
}
|
|
142211
142211
|
const ast = {};
|
|
142212
142212
|
cachedTypeMap.set(type, ast);
|
|
142213
|
-
return Object.assign(ast, parseNonLiteral(
|
|
142213
|
+
return Object.assign(ast, parseNonLiteral(schema11, type, options8, keyName, processed, usedNames));
|
|
142214
142214
|
}
|
|
142215
|
-
function parseBooleanSchema(
|
|
142216
|
-
if (
|
|
142215
|
+
function parseBooleanSchema(schema11, keyName, options8) {
|
|
142216
|
+
if (schema11) {
|
|
142217
142217
|
return {
|
|
142218
142218
|
keyName,
|
|
142219
142219
|
type: options8.unknownAny ? "UNKNOWN" : "ANY"
|
|
@@ -142224,157 +142224,157 @@ var require_parser2 = __commonJS((exports) => {
|
|
|
142224
142224
|
type: "NEVER"
|
|
142225
142225
|
};
|
|
142226
142226
|
}
|
|
142227
|
-
function parseLiteral(
|
|
142227
|
+
function parseLiteral(schema11, keyName) {
|
|
142228
142228
|
return {
|
|
142229
142229
|
keyName,
|
|
142230
|
-
params:
|
|
142230
|
+
params: schema11,
|
|
142231
142231
|
type: "LITERAL"
|
|
142232
142232
|
};
|
|
142233
142233
|
}
|
|
142234
|
-
function parseNonLiteral(
|
|
142235
|
-
const definitions = getDefinitionsMemoized((0, JSONSchema_1.getRootSchema)(
|
|
142236
|
-
const keyNameFromDefinition = (0, lodash_1.findKey)(definitions, (_10) => _10 ===
|
|
142234
|
+
function parseNonLiteral(schema11, type, options8, keyName, processed, usedNames) {
|
|
142235
|
+
const definitions = getDefinitionsMemoized((0, JSONSchema_1.getRootSchema)(schema11));
|
|
142236
|
+
const keyNameFromDefinition = (0, lodash_1.findKey)(definitions, (_10) => _10 === schema11);
|
|
142237
142237
|
switch (type) {
|
|
142238
142238
|
case "ALL_OF":
|
|
142239
142239
|
return {
|
|
142240
|
-
comment:
|
|
142241
|
-
deprecated:
|
|
142240
|
+
comment: schema11.description,
|
|
142241
|
+
deprecated: schema11.deprecated,
|
|
142242
142242
|
keyName,
|
|
142243
|
-
standaloneName: standaloneName(
|
|
142244
|
-
params:
|
|
142243
|
+
standaloneName: standaloneName(schema11, keyNameFromDefinition, usedNames, options8),
|
|
142244
|
+
params: schema11.allOf.map((_10) => parse11(_10, options8, undefined, processed, usedNames)),
|
|
142245
142245
|
type: "INTERSECTION"
|
|
142246
142246
|
};
|
|
142247
142247
|
case "ANY":
|
|
142248
|
-
return Object.assign(Object.assign({}, options8.unknownAny ? AST_1.T_UNKNOWN : AST_1.T_ANY), { comment:
|
|
142248
|
+
return Object.assign(Object.assign({}, options8.unknownAny ? AST_1.T_UNKNOWN : AST_1.T_ANY), { comment: schema11.description, deprecated: schema11.deprecated, keyName, standaloneName: standaloneName(schema11, keyNameFromDefinition, usedNames, options8) });
|
|
142249
142249
|
case "ANY_OF":
|
|
142250
142250
|
return {
|
|
142251
|
-
comment:
|
|
142252
|
-
deprecated:
|
|
142251
|
+
comment: schema11.description,
|
|
142252
|
+
deprecated: schema11.deprecated,
|
|
142253
142253
|
keyName,
|
|
142254
|
-
standaloneName: standaloneName(
|
|
142255
|
-
params:
|
|
142254
|
+
standaloneName: standaloneName(schema11, keyNameFromDefinition, usedNames, options8),
|
|
142255
|
+
params: schema11.anyOf.map((_10) => parse11(_10, options8, undefined, processed, usedNames)),
|
|
142256
142256
|
type: "UNION"
|
|
142257
142257
|
};
|
|
142258
142258
|
case "BOOLEAN":
|
|
142259
142259
|
return {
|
|
142260
|
-
comment:
|
|
142261
|
-
deprecated:
|
|
142260
|
+
comment: schema11.description,
|
|
142261
|
+
deprecated: schema11.deprecated,
|
|
142262
142262
|
keyName,
|
|
142263
|
-
standaloneName: standaloneName(
|
|
142263
|
+
standaloneName: standaloneName(schema11, keyNameFromDefinition, usedNames, options8),
|
|
142264
142264
|
type: "BOOLEAN"
|
|
142265
142265
|
};
|
|
142266
142266
|
case "CUSTOM_TYPE":
|
|
142267
142267
|
return {
|
|
142268
|
-
comment:
|
|
142269
|
-
deprecated:
|
|
142268
|
+
comment: schema11.description,
|
|
142269
|
+
deprecated: schema11.deprecated,
|
|
142270
142270
|
keyName,
|
|
142271
|
-
params:
|
|
142272
|
-
standaloneName: standaloneName(
|
|
142271
|
+
params: schema11.tsType,
|
|
142272
|
+
standaloneName: standaloneName(schema11, keyNameFromDefinition, usedNames, options8),
|
|
142273
142273
|
type: "CUSTOM_TYPE"
|
|
142274
142274
|
};
|
|
142275
142275
|
case "NAMED_ENUM":
|
|
142276
142276
|
return {
|
|
142277
|
-
comment:
|
|
142278
|
-
deprecated:
|
|
142277
|
+
comment: schema11.description,
|
|
142278
|
+
deprecated: schema11.deprecated,
|
|
142279
142279
|
keyName,
|
|
142280
|
-
standaloneName: standaloneName(
|
|
142281
|
-
params:
|
|
142280
|
+
standaloneName: standaloneName(schema11, keyNameFromDefinition !== null && keyNameFromDefinition !== undefined ? keyNameFromDefinition : keyName, usedNames, options8),
|
|
142281
|
+
params: schema11.enum.map((_10, n5) => ({
|
|
142282
142282
|
ast: parseLiteral(_10, undefined),
|
|
142283
|
-
keyName:
|
|
142283
|
+
keyName: schema11.tsEnumNames[n5]
|
|
142284
142284
|
})),
|
|
142285
142285
|
type: "ENUM"
|
|
142286
142286
|
};
|
|
142287
142287
|
case "NAMED_SCHEMA":
|
|
142288
|
-
return newInterface(
|
|
142288
|
+
return newInterface(schema11, options8, processed, usedNames, keyName);
|
|
142289
142289
|
case "NEVER":
|
|
142290
142290
|
return {
|
|
142291
|
-
comment:
|
|
142292
|
-
deprecated:
|
|
142291
|
+
comment: schema11.description,
|
|
142292
|
+
deprecated: schema11.deprecated,
|
|
142293
142293
|
keyName,
|
|
142294
|
-
standaloneName: standaloneName(
|
|
142294
|
+
standaloneName: standaloneName(schema11, keyNameFromDefinition, usedNames, options8),
|
|
142295
142295
|
type: "NEVER"
|
|
142296
142296
|
};
|
|
142297
142297
|
case "NULL":
|
|
142298
142298
|
return {
|
|
142299
|
-
comment:
|
|
142300
|
-
deprecated:
|
|
142299
|
+
comment: schema11.description,
|
|
142300
|
+
deprecated: schema11.deprecated,
|
|
142301
142301
|
keyName,
|
|
142302
|
-
standaloneName: standaloneName(
|
|
142302
|
+
standaloneName: standaloneName(schema11, keyNameFromDefinition, usedNames, options8),
|
|
142303
142303
|
type: "NULL"
|
|
142304
142304
|
};
|
|
142305
142305
|
case "NUMBER":
|
|
142306
142306
|
return {
|
|
142307
|
-
comment:
|
|
142308
|
-
deprecated:
|
|
142307
|
+
comment: schema11.description,
|
|
142308
|
+
deprecated: schema11.deprecated,
|
|
142309
142309
|
keyName,
|
|
142310
|
-
standaloneName: standaloneName(
|
|
142310
|
+
standaloneName: standaloneName(schema11, keyNameFromDefinition, usedNames, options8),
|
|
142311
142311
|
type: "NUMBER"
|
|
142312
142312
|
};
|
|
142313
142313
|
case "OBJECT":
|
|
142314
142314
|
return {
|
|
142315
|
-
comment:
|
|
142315
|
+
comment: schema11.description,
|
|
142316
142316
|
keyName,
|
|
142317
|
-
standaloneName: standaloneName(
|
|
142317
|
+
standaloneName: standaloneName(schema11, keyNameFromDefinition, usedNames, options8),
|
|
142318
142318
|
type: "OBJECT",
|
|
142319
|
-
deprecated:
|
|
142319
|
+
deprecated: schema11.deprecated
|
|
142320
142320
|
};
|
|
142321
142321
|
case "ONE_OF":
|
|
142322
142322
|
return {
|
|
142323
|
-
comment:
|
|
142324
|
-
deprecated:
|
|
142323
|
+
comment: schema11.description,
|
|
142324
|
+
deprecated: schema11.deprecated,
|
|
142325
142325
|
keyName,
|
|
142326
|
-
standaloneName: standaloneName(
|
|
142327
|
-
params:
|
|
142326
|
+
standaloneName: standaloneName(schema11, keyNameFromDefinition, usedNames, options8),
|
|
142327
|
+
params: schema11.oneOf.map((_10) => parse11(_10, options8, undefined, processed, usedNames)),
|
|
142328
142328
|
type: "UNION"
|
|
142329
142329
|
};
|
|
142330
142330
|
case "REFERENCE":
|
|
142331
|
-
throw Error((0, util_1.format)("Refs should have been resolved by the resolver!",
|
|
142331
|
+
throw Error((0, util_1.format)("Refs should have been resolved by the resolver!", schema11));
|
|
142332
142332
|
case "STRING":
|
|
142333
142333
|
return {
|
|
142334
|
-
comment:
|
|
142335
|
-
deprecated:
|
|
142334
|
+
comment: schema11.description,
|
|
142335
|
+
deprecated: schema11.deprecated,
|
|
142336
142336
|
keyName,
|
|
142337
|
-
standaloneName: standaloneName(
|
|
142337
|
+
standaloneName: standaloneName(schema11, keyNameFromDefinition, usedNames, options8),
|
|
142338
142338
|
type: "STRING"
|
|
142339
142339
|
};
|
|
142340
142340
|
case "TYPED_ARRAY":
|
|
142341
|
-
if (Array.isArray(
|
|
142342
|
-
const minItems2 =
|
|
142343
|
-
const maxItems2 =
|
|
142341
|
+
if (Array.isArray(schema11.items)) {
|
|
142342
|
+
const minItems2 = schema11.minItems;
|
|
142343
|
+
const maxItems2 = schema11.maxItems;
|
|
142344
142344
|
const arrayType = {
|
|
142345
|
-
comment:
|
|
142346
|
-
deprecated:
|
|
142345
|
+
comment: schema11.description,
|
|
142346
|
+
deprecated: schema11.deprecated,
|
|
142347
142347
|
keyName,
|
|
142348
142348
|
maxItems: maxItems2,
|
|
142349
142349
|
minItems: minItems2,
|
|
142350
|
-
standaloneName: standaloneName(
|
|
142351
|
-
params:
|
|
142350
|
+
standaloneName: standaloneName(schema11, keyNameFromDefinition, usedNames, options8),
|
|
142351
|
+
params: schema11.items.map((_10) => parse11(_10, options8, undefined, processed, usedNames)),
|
|
142352
142352
|
type: "TUPLE"
|
|
142353
142353
|
};
|
|
142354
|
-
if (
|
|
142354
|
+
if (schema11.additionalItems === true) {
|
|
142355
142355
|
arrayType.spreadParam = options8.unknownAny ? AST_1.T_UNKNOWN : AST_1.T_ANY;
|
|
142356
|
-
} else if (
|
|
142357
|
-
arrayType.spreadParam = parse11(
|
|
142356
|
+
} else if (schema11.additionalItems) {
|
|
142357
|
+
arrayType.spreadParam = parse11(schema11.additionalItems, options8, undefined, processed, usedNames);
|
|
142358
142358
|
}
|
|
142359
142359
|
return arrayType;
|
|
142360
142360
|
} else {
|
|
142361
142361
|
return {
|
|
142362
|
-
comment:
|
|
142363
|
-
deprecated:
|
|
142362
|
+
comment: schema11.description,
|
|
142363
|
+
deprecated: schema11.deprecated,
|
|
142364
142364
|
keyName,
|
|
142365
|
-
standaloneName: standaloneName(
|
|
142366
|
-
params: parse11(
|
|
142365
|
+
standaloneName: standaloneName(schema11, keyNameFromDefinition, usedNames, options8),
|
|
142366
|
+
params: parse11(schema11.items, options8, `{keyNameFromDefinition}Items`, processed, usedNames),
|
|
142367
142367
|
type: "ARRAY"
|
|
142368
142368
|
};
|
|
142369
142369
|
}
|
|
142370
142370
|
case "UNION":
|
|
142371
142371
|
return {
|
|
142372
|
-
comment:
|
|
142373
|
-
deprecated:
|
|
142372
|
+
comment: schema11.description,
|
|
142373
|
+
deprecated: schema11.deprecated,
|
|
142374
142374
|
keyName,
|
|
142375
|
-
standaloneName: standaloneName(
|
|
142376
|
-
params:
|
|
142377
|
-
const member = Object.assign(Object.assign({}, (0, lodash_1.omit)(
|
|
142375
|
+
standaloneName: standaloneName(schema11, keyNameFromDefinition, usedNames, options8),
|
|
142376
|
+
params: schema11.type.map((type2) => {
|
|
142377
|
+
const member = Object.assign(Object.assign({}, (0, lodash_1.omit)(schema11, "$id", "description", "title")), { type: type2 });
|
|
142378
142378
|
(0, utils_1.maybeStripDefault)(member);
|
|
142379
142379
|
(0, applySchemaTyping_1.applySchemaTyping)(member);
|
|
142380
142380
|
return parse11(member, options8, undefined, processed, usedNames);
|
|
@@ -142383,80 +142383,80 @@ var require_parser2 = __commonJS((exports) => {
|
|
|
142383
142383
|
};
|
|
142384
142384
|
case "UNNAMED_ENUM":
|
|
142385
142385
|
return {
|
|
142386
|
-
comment:
|
|
142387
|
-
deprecated:
|
|
142386
|
+
comment: schema11.description,
|
|
142387
|
+
deprecated: schema11.deprecated,
|
|
142388
142388
|
keyName,
|
|
142389
|
-
standaloneName: standaloneName(
|
|
142390
|
-
params:
|
|
142389
|
+
standaloneName: standaloneName(schema11, keyNameFromDefinition, usedNames, options8),
|
|
142390
|
+
params: schema11.enum.map((_10) => parseLiteral(_10, undefined)),
|
|
142391
142391
|
type: "UNION"
|
|
142392
142392
|
};
|
|
142393
142393
|
case "UNNAMED_SCHEMA":
|
|
142394
|
-
return newInterface(
|
|
142394
|
+
return newInterface(schema11, options8, processed, usedNames, keyName, keyNameFromDefinition);
|
|
142395
142395
|
case "UNTYPED_ARRAY":
|
|
142396
|
-
const minItems =
|
|
142397
|
-
const maxItems = typeof
|
|
142396
|
+
const minItems = schema11.minItems;
|
|
142397
|
+
const maxItems = typeof schema11.maxItems === "number" ? schema11.maxItems : -1;
|
|
142398
142398
|
const params = options8.unknownAny ? AST_1.T_UNKNOWN : AST_1.T_ANY;
|
|
142399
142399
|
if (minItems > 0 || maxItems >= 0) {
|
|
142400
142400
|
return {
|
|
142401
|
-
comment:
|
|
142402
|
-
deprecated:
|
|
142401
|
+
comment: schema11.description,
|
|
142402
|
+
deprecated: schema11.deprecated,
|
|
142403
142403
|
keyName,
|
|
142404
|
-
maxItems:
|
|
142404
|
+
maxItems: schema11.maxItems,
|
|
142405
142405
|
minItems,
|
|
142406
142406
|
params: Array(Math.max(maxItems, minItems) || 0).fill(params),
|
|
142407
142407
|
spreadParam: maxItems >= 0 ? undefined : params,
|
|
142408
|
-
standaloneName: standaloneName(
|
|
142408
|
+
standaloneName: standaloneName(schema11, keyNameFromDefinition, usedNames, options8),
|
|
142409
142409
|
type: "TUPLE"
|
|
142410
142410
|
};
|
|
142411
142411
|
}
|
|
142412
142412
|
return {
|
|
142413
|
-
comment:
|
|
142414
|
-
deprecated:
|
|
142413
|
+
comment: schema11.description,
|
|
142414
|
+
deprecated: schema11.deprecated,
|
|
142415
142415
|
keyName,
|
|
142416
142416
|
params,
|
|
142417
|
-
standaloneName: standaloneName(
|
|
142417
|
+
standaloneName: standaloneName(schema11, keyNameFromDefinition, usedNames, options8),
|
|
142418
142418
|
type: "ARRAY"
|
|
142419
142419
|
};
|
|
142420
142420
|
}
|
|
142421
142421
|
}
|
|
142422
|
-
function standaloneName(
|
|
142422
|
+
function standaloneName(schema11, keyNameFromDefinition, usedNames, options8) {
|
|
142423
142423
|
var _a7;
|
|
142424
|
-
const name2 = ((_a7 = options8.customName) === null || _a7 === undefined ? undefined : _a7.call(options8,
|
|
142424
|
+
const name2 = ((_a7 = options8.customName) === null || _a7 === undefined ? undefined : _a7.call(options8, schema11, keyNameFromDefinition)) || schema11.title || schema11.$id || keyNameFromDefinition;
|
|
142425
142425
|
if (name2) {
|
|
142426
142426
|
return (0, utils_1.generateName)(name2, usedNames);
|
|
142427
142427
|
}
|
|
142428
142428
|
}
|
|
142429
|
-
function newInterface(
|
|
142430
|
-
const name2 = standaloneName(
|
|
142429
|
+
function newInterface(schema11, options8, processed, usedNames, keyName, keyNameFromDefinition) {
|
|
142430
|
+
const name2 = standaloneName(schema11, keyNameFromDefinition, usedNames, options8);
|
|
142431
142431
|
return {
|
|
142432
|
-
comment:
|
|
142433
|
-
deprecated:
|
|
142432
|
+
comment: schema11.description,
|
|
142433
|
+
deprecated: schema11.deprecated,
|
|
142434
142434
|
keyName,
|
|
142435
|
-
params: parseSchema(
|
|
142435
|
+
params: parseSchema(schema11, options8, processed, usedNames, name2),
|
|
142436
142436
|
standaloneName: name2,
|
|
142437
|
-
superTypes: parseSuperTypes(
|
|
142437
|
+
superTypes: parseSuperTypes(schema11, options8, processed, usedNames),
|
|
142438
142438
|
type: "INTERFACE"
|
|
142439
142439
|
};
|
|
142440
142440
|
}
|
|
142441
|
-
function parseSuperTypes(
|
|
142442
|
-
const superTypes =
|
|
142441
|
+
function parseSuperTypes(schema11, options8, processed, usedNames) {
|
|
142442
|
+
const superTypes = schema11.extends;
|
|
142443
142443
|
if (!superTypes) {
|
|
142444
142444
|
return [];
|
|
142445
142445
|
}
|
|
142446
142446
|
return superTypes.map((_10) => parse11(_10, options8, undefined, processed, usedNames));
|
|
142447
142447
|
}
|
|
142448
|
-
function parseSchema(
|
|
142449
|
-
let asts = (0, lodash_1.map)(
|
|
142448
|
+
function parseSchema(schema11, options8, processed, usedNames, parentSchemaName) {
|
|
142449
|
+
let asts = (0, lodash_1.map)(schema11.properties, (value, key2) => ({
|
|
142450
142450
|
ast: parse11(value, options8, key2, processed, usedNames),
|
|
142451
142451
|
isPatternProperty: false,
|
|
142452
|
-
isRequired: (0, lodash_1.includes)(
|
|
142452
|
+
isRequired: (0, lodash_1.includes)(schema11.required || [], key2),
|
|
142453
142453
|
isUnreachableDefinition: false,
|
|
142454
142454
|
keyName: key2
|
|
142455
142455
|
}));
|
|
142456
142456
|
let singlePatternProperty = false;
|
|
142457
|
-
if (
|
|
142458
|
-
singlePatternProperty = !
|
|
142459
|
-
asts = asts.concat((0, lodash_1.map)(
|
|
142457
|
+
if (schema11.patternProperties) {
|
|
142458
|
+
singlePatternProperty = !schema11.additionalProperties && Object.keys(schema11.patternProperties).length === 1;
|
|
142459
|
+
asts = asts.concat((0, lodash_1.map)(schema11.patternProperties, (value, key2) => {
|
|
142460
142460
|
const ast = parse11(value, options8, key2, processed, usedNames);
|
|
142461
142461
|
const comment = `This interface was referenced by \`${parentSchemaName}\`'s JSON-Schema definition
|
|
142462
142462
|
via the \`patternProperty\` "${key2.replace("*/", "*\\/")}".`;
|
|
@@ -142466,14 +142466,14 @@ ${comment}` : comment;
|
|
|
142466
142466
|
return {
|
|
142467
142467
|
ast,
|
|
142468
142468
|
isPatternProperty: !singlePatternProperty,
|
|
142469
|
-
isRequired: singlePatternProperty || (0, lodash_1.includes)(
|
|
142469
|
+
isRequired: singlePatternProperty || (0, lodash_1.includes)(schema11.required || [], key2),
|
|
142470
142470
|
isUnreachableDefinition: false,
|
|
142471
142471
|
keyName: singlePatternProperty ? "[k: string]" : key2
|
|
142472
142472
|
};
|
|
142473
142473
|
}));
|
|
142474
142474
|
}
|
|
142475
142475
|
if (options8.unreachableDefinitions) {
|
|
142476
|
-
asts = asts.concat((0, lodash_1.map)(
|
|
142476
|
+
asts = asts.concat((0, lodash_1.map)(schema11.$defs, (value, key2) => {
|
|
142477
142477
|
const ast = parse11(value, options8, key2, processed, usedNames);
|
|
142478
142478
|
const comment = `This interface was referenced by \`${parentSchemaName}\`'s JSON-Schema
|
|
142479
142479
|
via the \`definition\` "${key2}".`;
|
|
@@ -142483,13 +142483,13 @@ ${comment}` : comment;
|
|
|
142483
142483
|
return {
|
|
142484
142484
|
ast,
|
|
142485
142485
|
isPatternProperty: false,
|
|
142486
|
-
isRequired: (0, lodash_1.includes)(
|
|
142486
|
+
isRequired: (0, lodash_1.includes)(schema11.required || [], key2),
|
|
142487
142487
|
isUnreachableDefinition: true,
|
|
142488
142488
|
keyName: key2
|
|
142489
142489
|
};
|
|
142490
142490
|
}));
|
|
142491
142491
|
}
|
|
142492
|
-
switch (
|
|
142492
|
+
switch (schema11.additionalProperties) {
|
|
142493
142493
|
case undefined:
|
|
142494
142494
|
case true:
|
|
142495
142495
|
if (singlePatternProperty) {
|
|
@@ -142506,7 +142506,7 @@ ${comment}` : comment;
|
|
|
142506
142506
|
return asts;
|
|
142507
142507
|
default:
|
|
142508
142508
|
return asts.concat({
|
|
142509
|
-
ast: parse11(
|
|
142509
|
+
ast: parse11(schema11.additionalProperties, options8, "[k: string]", processed, usedNames),
|
|
142510
142510
|
isPatternProperty: false,
|
|
142511
142511
|
isRequired: true,
|
|
142512
142512
|
isUnreachableDefinition: false,
|
|
@@ -142514,22 +142514,22 @@ ${comment}` : comment;
|
|
|
142514
142514
|
});
|
|
142515
142515
|
}
|
|
142516
142516
|
}
|
|
142517
|
-
function getDefinitions(
|
|
142518
|
-
if (processed.has(
|
|
142517
|
+
function getDefinitions(schema11, isSchema = true, processed = new Set) {
|
|
142518
|
+
if (processed.has(schema11)) {
|
|
142519
142519
|
return {};
|
|
142520
142520
|
}
|
|
142521
|
-
processed.add(
|
|
142522
|
-
if (Array.isArray(
|
|
142523
|
-
return
|
|
142521
|
+
processed.add(schema11);
|
|
142522
|
+
if (Array.isArray(schema11)) {
|
|
142523
|
+
return schema11.reduce((prev, cur) => Object.assign(Object.assign({}, prev), getDefinitions(cur, false, processed)), {});
|
|
142524
142524
|
}
|
|
142525
|
-
if ((0, lodash_1.isPlainObject)(
|
|
142526
|
-
return Object.assign(Object.assign({}, isSchema && hasDefinitions(
|
|
142525
|
+
if ((0, lodash_1.isPlainObject)(schema11)) {
|
|
142526
|
+
return Object.assign(Object.assign({}, isSchema && hasDefinitions(schema11) ? schema11.$defs : {}), Object.keys(schema11).reduce((prev, cur) => Object.assign(Object.assign({}, prev), getDefinitions(schema11[cur], false, processed)), {}));
|
|
142527
142527
|
}
|
|
142528
142528
|
return {};
|
|
142529
142529
|
}
|
|
142530
142530
|
var getDefinitionsMemoized = (0, lodash_1.memoize)(getDefinitions);
|
|
142531
|
-
function hasDefinitions(
|
|
142532
|
-
return "$defs" in
|
|
142531
|
+
function hasDefinitions(schema11) {
|
|
142532
|
+
return "$defs" in schema11;
|
|
142533
142533
|
}
|
|
142534
142534
|
});
|
|
142535
142535
|
|
|
@@ -144353,7 +144353,7 @@ var require_normalize_args = __commonJS((exports) => {
|
|
|
144353
144353
|
var options_js_1 = require_options();
|
|
144354
144354
|
function normalizeArgs(_args) {
|
|
144355
144355
|
let path18;
|
|
144356
|
-
let
|
|
144356
|
+
let schema11;
|
|
144357
144357
|
let options8;
|
|
144358
144358
|
let callback;
|
|
144359
144359
|
const args = Array.prototype.slice.call(_args);
|
|
@@ -144363,15 +144363,15 @@ var require_normalize_args = __commonJS((exports) => {
|
|
|
144363
144363
|
if (typeof args[0] === "string") {
|
|
144364
144364
|
path18 = args[0];
|
|
144365
144365
|
if (typeof args[2] === "object") {
|
|
144366
|
-
|
|
144366
|
+
schema11 = args[1];
|
|
144367
144367
|
options8 = args[2];
|
|
144368
144368
|
} else {
|
|
144369
|
-
|
|
144369
|
+
schema11 = undefined;
|
|
144370
144370
|
options8 = args[1];
|
|
144371
144371
|
}
|
|
144372
144372
|
} else {
|
|
144373
144373
|
path18 = "";
|
|
144374
|
-
|
|
144374
|
+
schema11 = args[0];
|
|
144375
144375
|
options8 = args[1];
|
|
144376
144376
|
}
|
|
144377
144377
|
try {
|
|
@@ -144379,12 +144379,12 @@ var require_normalize_args = __commonJS((exports) => {
|
|
|
144379
144379
|
} catch (e8) {
|
|
144380
144380
|
console.error(`JSON Schema Ref Parser: Error normalizing options: ${e8}`);
|
|
144381
144381
|
}
|
|
144382
|
-
if (!options8.mutateInputSchema && typeof
|
|
144383
|
-
|
|
144382
|
+
if (!options8.mutateInputSchema && typeof schema11 === "object") {
|
|
144383
|
+
schema11 = JSON.parse(JSON.stringify(schema11));
|
|
144384
144384
|
}
|
|
144385
144385
|
return {
|
|
144386
144386
|
path: path18,
|
|
144387
|
-
schema:
|
|
144387
|
+
schema: schema11,
|
|
144388
144388
|
options: options8,
|
|
144389
144389
|
callback
|
|
144390
144390
|
};
|
|
@@ -145173,12 +145173,12 @@ var require_resolver = __commonJS((exports) => {
|
|
|
145173
145173
|
var json_schema_ref_parser_1 = require_lib3();
|
|
145174
145174
|
var utils_1 = require_utils7();
|
|
145175
145175
|
function dereference(schema_1, _a7) {
|
|
145176
|
-
return __awaiter(this, arguments, undefined, function* (
|
|
145177
|
-
(0, utils_1.log)("green", "dereferencer", "Dereferencing input schema:", cwd,
|
|
145176
|
+
return __awaiter(this, arguments, undefined, function* (schema11, { cwd, $refOptions }) {
|
|
145177
|
+
(0, utils_1.log)("green", "dereferencer", "Dereferencing input schema:", cwd, schema11);
|
|
145178
145178
|
const parser2 = new json_schema_ref_parser_1.$RefParser;
|
|
145179
145179
|
const dereferencedPaths = new WeakMap;
|
|
145180
|
-
const dereferencedSchema = yield parser2.dereference(cwd,
|
|
145181
|
-
dereferencedPaths.set(
|
|
145180
|
+
const dereferencedSchema = yield parser2.dereference(cwd, schema11, Object.assign(Object.assign({}, $refOptions), { dereference: Object.assign(Object.assign({}, $refOptions.dereference), { onDereference($ref, schema12) {
|
|
145181
|
+
dereferencedPaths.set(schema12, $ref);
|
|
145182
145182
|
} }) }));
|
|
145183
145183
|
return { dereferencedPaths, dereferencedSchema };
|
|
145184
145184
|
});
|
|
@@ -145192,46 +145192,46 @@ var require_validator = __commonJS((exports) => {
|
|
|
145192
145192
|
exports.validate = undefined;
|
|
145193
145193
|
var utils_1 = require_utils7();
|
|
145194
145194
|
var rules = new Map;
|
|
145195
|
-
rules.set("Enum members and tsEnumNames must be of the same length", (
|
|
145196
|
-
if (
|
|
145195
|
+
rules.set("Enum members and tsEnumNames must be of the same length", (schema11) => {
|
|
145196
|
+
if (schema11.enum && schema11.tsEnumNames && schema11.enum.length !== schema11.tsEnumNames.length) {
|
|
145197
145197
|
return false;
|
|
145198
145198
|
}
|
|
145199
145199
|
});
|
|
145200
|
-
rules.set("tsEnumNames must be an array of strings", (
|
|
145201
|
-
if (
|
|
145200
|
+
rules.set("tsEnumNames must be an array of strings", (schema11) => {
|
|
145201
|
+
if (schema11.tsEnumNames && schema11.tsEnumNames.some((_10) => typeof _10 !== "string")) {
|
|
145202
145202
|
return false;
|
|
145203
145203
|
}
|
|
145204
145204
|
});
|
|
145205
|
-
rules.set("When both maxItems and minItems are present, maxItems >= minItems", (
|
|
145206
|
-
const { maxItems, minItems } =
|
|
145205
|
+
rules.set("When both maxItems and minItems are present, maxItems >= minItems", (schema11) => {
|
|
145206
|
+
const { maxItems, minItems } = schema11;
|
|
145207
145207
|
if (typeof maxItems === "number" && typeof minItems === "number") {
|
|
145208
145208
|
return maxItems >= minItems;
|
|
145209
145209
|
}
|
|
145210
145210
|
});
|
|
145211
|
-
rules.set("When maxItems exists, maxItems >= 0", (
|
|
145212
|
-
const { maxItems } =
|
|
145211
|
+
rules.set("When maxItems exists, maxItems >= 0", (schema11) => {
|
|
145212
|
+
const { maxItems } = schema11;
|
|
145213
145213
|
if (typeof maxItems === "number") {
|
|
145214
145214
|
return maxItems >= 0;
|
|
145215
145215
|
}
|
|
145216
145216
|
});
|
|
145217
|
-
rules.set("When minItems exists, minItems >= 0", (
|
|
145218
|
-
const { minItems } =
|
|
145217
|
+
rules.set("When minItems exists, minItems >= 0", (schema11) => {
|
|
145218
|
+
const { minItems } = schema11;
|
|
145219
145219
|
if (typeof minItems === "number") {
|
|
145220
145220
|
return minItems >= 0;
|
|
145221
145221
|
}
|
|
145222
145222
|
});
|
|
145223
|
-
rules.set("deprecated must be a boolean", (
|
|
145224
|
-
const typeOfDeprecated = typeof
|
|
145223
|
+
rules.set("deprecated must be a boolean", (schema11) => {
|
|
145224
|
+
const typeOfDeprecated = typeof schema11.deprecated;
|
|
145225
145225
|
return typeOfDeprecated === "boolean" || typeOfDeprecated === "undefined";
|
|
145226
145226
|
});
|
|
145227
|
-
function validate2(
|
|
145227
|
+
function validate2(schema11, filename) {
|
|
145228
145228
|
const errors5 = [];
|
|
145229
145229
|
rules.forEach((rule, ruleName) => {
|
|
145230
|
-
(0, utils_1.traverse)(
|
|
145231
|
-
if (rule(
|
|
145230
|
+
(0, utils_1.traverse)(schema11, (schema12, key2) => {
|
|
145231
|
+
if (rule(schema12) === false) {
|
|
145232
145232
|
errors5.push(`Error at key "${key2}" in file "${filename}": ${ruleName}`);
|
|
145233
145233
|
}
|
|
145234
|
-
return
|
|
145234
|
+
return schema12;
|
|
145235
145235
|
});
|
|
145236
145236
|
});
|
|
145237
145237
|
return errors5;
|
|
@@ -145245,25 +145245,25 @@ var require_linker = __commonJS((exports) => {
|
|
|
145245
145245
|
exports.link = undefined;
|
|
145246
145246
|
var JSONSchema_1 = require_JSONSchema();
|
|
145247
145247
|
var lodash_1 = require_lodash8();
|
|
145248
|
-
function link2(
|
|
145249
|
-
if (!Array.isArray(
|
|
145250
|
-
return
|
|
145248
|
+
function link2(schema11, parent = null) {
|
|
145249
|
+
if (!Array.isArray(schema11) && !(0, lodash_1.isPlainObject)(schema11)) {
|
|
145250
|
+
return schema11;
|
|
145251
145251
|
}
|
|
145252
|
-
if (
|
|
145253
|
-
return
|
|
145252
|
+
if (schema11.hasOwnProperty(JSONSchema_1.Parent)) {
|
|
145253
|
+
return schema11;
|
|
145254
145254
|
}
|
|
145255
|
-
Object.defineProperty(
|
|
145255
|
+
Object.defineProperty(schema11, JSONSchema_1.Parent, {
|
|
145256
145256
|
enumerable: false,
|
|
145257
145257
|
value: parent,
|
|
145258
145258
|
writable: false
|
|
145259
145259
|
});
|
|
145260
|
-
if (Array.isArray(
|
|
145261
|
-
|
|
145260
|
+
if (Array.isArray(schema11)) {
|
|
145261
|
+
schema11.forEach((child) => link2(child, schema11));
|
|
145262
145262
|
}
|
|
145263
|
-
for (const key2 in
|
|
145264
|
-
link2(
|
|
145263
|
+
for (const key2 in schema11) {
|
|
145264
|
+
link2(schema11[key2], schema11);
|
|
145265
145265
|
}
|
|
145266
|
-
return
|
|
145266
|
+
return schema11;
|
|
145267
145267
|
}
|
|
145268
145268
|
exports.link = link2;
|
|
145269
145269
|
});
|
|
@@ -145355,8 +145355,8 @@ var require_src3 = __commonJS((exports) => {
|
|
|
145355
145355
|
unknownAny: true
|
|
145356
145356
|
};
|
|
145357
145357
|
function compileFromFile(filename, options8 = exports.DEFAULT_OPTIONS) {
|
|
145358
|
-
const
|
|
145359
|
-
return compile(
|
|
145358
|
+
const schema11 = parseAsJSONSchema(filename);
|
|
145359
|
+
return compile(schema11, (0, utils_1.stripExtension)(filename), Object.assign({ cwd: (0, path_1.dirname)(filename) }, options8));
|
|
145360
145360
|
}
|
|
145361
145361
|
exports.compileFromFile = compileFromFile;
|
|
145362
145362
|
function parseAsJSONSchema(filename) {
|
|
@@ -145366,7 +145366,7 @@ var require_src3 = __commonJS((exports) => {
|
|
|
145366
145366
|
return (0, utils_1.parseFileAsJSONSchema)(filename, contents.toString());
|
|
145367
145367
|
}
|
|
145368
145368
|
function compile(schema_1, name_1) {
|
|
145369
|
-
return __awaiter(this, arguments, undefined, function* (
|
|
145369
|
+
return __awaiter(this, arguments, undefined, function* (schema11, name2, options8 = {}) {
|
|
145370
145370
|
(0, optionValidator_1.validateOptions)(options8);
|
|
145371
145371
|
const _options = (0, lodash_1.merge)({}, exports.DEFAULT_OPTIONS, options8);
|
|
145372
145372
|
const start = Date.now();
|
|
@@ -145376,7 +145376,7 @@ var require_src3 = __commonJS((exports) => {
|
|
|
145376
145376
|
if (!(0, lodash_1.endsWith)(_options.cwd, "/")) {
|
|
145377
145377
|
_options.cwd += "/";
|
|
145378
145378
|
}
|
|
145379
|
-
const _schema = (0, lodash_1.cloneDeep)(
|
|
145379
|
+
const _schema = (0, lodash_1.cloneDeep)(schema11);
|
|
145380
145380
|
const { dereferencedPaths, dereferencedSchema } = yield (0, resolver_1.dereference)(_schema, _options);
|
|
145381
145381
|
if (process.env.VERBOSE) {
|
|
145382
145382
|
if ((0, util_1.isDeepStrictEqual)(_schema, dereferencedSchema)) {
|
|
@@ -236066,6 +236066,15 @@ var AppConfigSchema = exports_external.object({
|
|
|
236066
236066
|
var CreateProjectResponseSchema = exports_external.looseObject({
|
|
236067
236067
|
id: exports_external.string()
|
|
236068
236068
|
});
|
|
236069
|
+
var AppDetailSchema = exports_external.looseObject({
|
|
236070
|
+
id: exports_external.string(),
|
|
236071
|
+
name: exports_external.string().optional(),
|
|
236072
|
+
organization_id: exports_external.string().nullish()
|
|
236073
|
+
}).transform((data) => ({
|
|
236074
|
+
id: data.id,
|
|
236075
|
+
name: data.name,
|
|
236076
|
+
organizationId: data.organization_id ?? undefined
|
|
236077
|
+
}));
|
|
236069
236078
|
var ProjectSchema = exports_external.object({
|
|
236070
236079
|
id: exports_external.string(),
|
|
236071
236080
|
name: exports_external.string(),
|
|
@@ -241850,7 +241859,7 @@ var PUBLIC_SETTINGS = {
|
|
|
241850
241859
|
private: "private_with_login",
|
|
241851
241860
|
workspace: "workspace_with_login"
|
|
241852
241861
|
};
|
|
241853
|
-
async function createProject(projectName, description) {
|
|
241862
|
+
async function createProject(projectName, description, organizationId) {
|
|
241854
241863
|
let response;
|
|
241855
241864
|
try {
|
|
241856
241865
|
response = await base44Client.post("api/apps", {
|
|
@@ -241858,7 +241867,8 @@ async function createProject(projectName, description) {
|
|
|
241858
241867
|
name: projectName,
|
|
241859
241868
|
user_description: description ?? `Backend for '${projectName}'`,
|
|
241860
241869
|
is_managed_source_code: false,
|
|
241861
|
-
public_settings: PUBLIC_SETTINGS.public
|
|
241870
|
+
public_settings: PUBLIC_SETTINGS.public,
|
|
241871
|
+
...organizationId ? { organization_id: organizationId } : {}
|
|
241862
241872
|
}
|
|
241863
241873
|
});
|
|
241864
241874
|
} catch (error48) {
|
|
@@ -241903,6 +241913,21 @@ async function listProjects() {
|
|
|
241903
241913
|
}
|
|
241904
241914
|
return result.data;
|
|
241905
241915
|
}
|
|
241916
|
+
async function getApp(appId) {
|
|
241917
|
+
let response;
|
|
241918
|
+
try {
|
|
241919
|
+
response = await base44Client.get(`api/apps/${appId}`, {
|
|
241920
|
+
searchParams: { fields: "id,name,organization_id" }
|
|
241921
|
+
});
|
|
241922
|
+
} catch (error48) {
|
|
241923
|
+
throw await ApiError.fromHttpError(error48, "fetching app");
|
|
241924
|
+
}
|
|
241925
|
+
const result = AppDetailSchema.safeParse(await response.json());
|
|
241926
|
+
if (!result.success) {
|
|
241927
|
+
throw new SchemaValidationError("Invalid response from server", result.error);
|
|
241928
|
+
}
|
|
241929
|
+
return result.data;
|
|
241930
|
+
}
|
|
241906
241931
|
async function downloadProject(projectId, projectPath) {
|
|
241907
241932
|
let response;
|
|
241908
241933
|
try {
|
|
@@ -244152,9 +244177,15 @@ async function assertProjectNotExists(dirPath) {
|
|
|
244152
244177
|
}
|
|
244153
244178
|
}
|
|
244154
244179
|
async function createProjectFiles(options) {
|
|
244155
|
-
const {
|
|
244180
|
+
const {
|
|
244181
|
+
name: name2,
|
|
244182
|
+
description,
|
|
244183
|
+
path: basePath,
|
|
244184
|
+
template,
|
|
244185
|
+
organizationId
|
|
244186
|
+
} = options;
|
|
244156
244187
|
await assertProjectNotExists(basePath);
|
|
244157
|
-
const { projectId } = await createProject(name2, description);
|
|
244188
|
+
const { projectId } = await createProject(name2, description, organizationId);
|
|
244158
244189
|
await renderTemplate(template, basePath, { name: name2, description, projectId });
|
|
244159
244190
|
return {
|
|
244160
244191
|
projectId,
|
|
@@ -251480,6 +251511,74 @@ function verifyDenoInstalled(context) {
|
|
|
251480
251511
|
});
|
|
251481
251512
|
}
|
|
251482
251513
|
}
|
|
251514
|
+
// src/core/workspace/schema.ts
|
|
251515
|
+
var WorkspaceSchema = exports_external.object({
|
|
251516
|
+
id: exports_external.string(),
|
|
251517
|
+
name: exports_external.string(),
|
|
251518
|
+
user_role: exports_external.string().nullish(),
|
|
251519
|
+
subscription_tier: exports_external.string().nullish(),
|
|
251520
|
+
is_enterprise: exports_external.boolean().nullish()
|
|
251521
|
+
}).transform((data) => ({
|
|
251522
|
+
id: data.id,
|
|
251523
|
+
name: data.name,
|
|
251524
|
+
userRole: data.user_role ?? undefined,
|
|
251525
|
+
subscriptionTier: data.subscription_tier ?? undefined,
|
|
251526
|
+
isEnterprise: data.is_enterprise ?? undefined
|
|
251527
|
+
}));
|
|
251528
|
+
var WorkspaceListResponseSchema = exports_external.object({
|
|
251529
|
+
workspaces: exports_external.array(WorkspaceSchema)
|
|
251530
|
+
});
|
|
251531
|
+
var MoveAppResponseSchema = exports_external.looseObject({
|
|
251532
|
+
success: exports_external.boolean().optional(),
|
|
251533
|
+
message: exports_external.string().optional(),
|
|
251534
|
+
app_id: exports_external.string().optional(),
|
|
251535
|
+
new_workspace_id: exports_external.string().optional()
|
|
251536
|
+
}).transform((data) => ({
|
|
251537
|
+
success: data.success ?? true,
|
|
251538
|
+
message: data.message,
|
|
251539
|
+
appId: data.app_id,
|
|
251540
|
+
newWorkspaceId: data.new_workspace_id
|
|
251541
|
+
}));
|
|
251542
|
+
var APP_EDITOR_ROLES = ["owner", "admin", "editor"];
|
|
251543
|
+
function canCreateAppsInWorkspace(role) {
|
|
251544
|
+
return role !== undefined && APP_EDITOR_ROLES.includes(role.toLowerCase());
|
|
251545
|
+
}
|
|
251546
|
+
|
|
251547
|
+
// src/core/workspace/api.ts
|
|
251548
|
+
async function listWorkspaces() {
|
|
251549
|
+
let response;
|
|
251550
|
+
try {
|
|
251551
|
+
response = await base44Client.get("api/workspace/workspaces");
|
|
251552
|
+
} catch (error48) {
|
|
251553
|
+
throw await ApiError.fromHttpError(error48, "listing workspaces");
|
|
251554
|
+
}
|
|
251555
|
+
const result = WorkspaceListResponseSchema.safeParse(await response.json());
|
|
251556
|
+
if (!result.success) {
|
|
251557
|
+
throw new SchemaValidationError("Invalid response from server", result.error);
|
|
251558
|
+
}
|
|
251559
|
+
return result.data.workspaces.map((workspace, index) => ({
|
|
251560
|
+
...workspace,
|
|
251561
|
+
isPersonal: index === 0
|
|
251562
|
+
}));
|
|
251563
|
+
}
|
|
251564
|
+
async function moveAppToWorkspace(appId, targetWorkspaceId, options = {}) {
|
|
251565
|
+
let response;
|
|
251566
|
+
try {
|
|
251567
|
+
response = await base44Client.post(`api/apps/${appId}/metadata/move-to-workspace`, {
|
|
251568
|
+
json: {
|
|
251569
|
+
target_workspace_id: targetWorkspaceId,
|
|
251570
|
+
disconnect_integrations: options.disconnectIntegrations ?? false
|
|
251571
|
+
}
|
|
251572
|
+
});
|
|
251573
|
+
} catch (error48) {
|
|
251574
|
+
throw await ApiError.fromHttpError(error48, "moving app to workspace");
|
|
251575
|
+
}
|
|
251576
|
+
const result = MoveAppResponseSchema.safeParse(await response.json());
|
|
251577
|
+
if (!result.success) {
|
|
251578
|
+
throw new SchemaValidationError("Invalid response from server", result.error);
|
|
251579
|
+
}
|
|
251580
|
+
return result.data;
|
|
251581
|
+
}
|
|
251483
251582
|
// src/cli/commands/agents/pull.ts
|
|
251484
251583
|
async function pullAgentsAction({
|
|
251485
251584
|
log,
|
|
@@ -253340,6 +253439,58 @@ function printProjectSummary({ name: name2, dashboardUrl, appUrl }, log) {
|
|
|
253340
253439
|
}
|
|
253341
253440
|
}
|
|
253342
253441
|
|
|
253442
|
+
// src/cli/commands/project/workspace-select.ts
|
|
253443
|
+
function fetchWorkspaces(ctx) {
|
|
253444
|
+
return ctx.runTask("Fetching workspaces...", () => listWorkspaces(), {
|
|
253445
|
+
successMessage: "Workspaces fetched",
|
|
253446
|
+
errorMessage: "Failed to fetch workspaces"
|
|
253447
|
+
});
|
|
253448
|
+
}
|
|
253449
|
+
function workspaceHints(workspaces) {
|
|
253450
|
+
return [
|
|
253451
|
+
{ message: "Run 'base44 workspace list' to see available workspaces" },
|
|
253452
|
+
...workspaces.filter((w) => canCreateAppsInWorkspace(w.userRole)).map((w) => ({ message: `${w.name} — ${w.id}` }))
|
|
253453
|
+
];
|
|
253454
|
+
}
|
|
253455
|
+
function workspaceLabel(workspace2) {
|
|
253456
|
+
const suffix = workspace2.isPersonal ? "personal" : workspace2.userRole ?? "member";
|
|
253457
|
+
return `${workspace2.name} (${suffix})`;
|
|
253458
|
+
}
|
|
253459
|
+
async function resolveWorkspaceId(ctx, flagWorkspaceId, isInteractive) {
|
|
253460
|
+
if (flagWorkspaceId) {
|
|
253461
|
+
const workspaces2 = await fetchWorkspaces(ctx);
|
|
253462
|
+
const match = workspaces2.find((w) => w.id === flagWorkspaceId);
|
|
253463
|
+
if (!match) {
|
|
253464
|
+
throw new InvalidInputError(`Workspace "${flagWorkspaceId}" not found, or you are not a member of it.`, { hints: workspaceHints(workspaces2) });
|
|
253465
|
+
}
|
|
253466
|
+
if (!canCreateAppsInWorkspace(match.userRole)) {
|
|
253467
|
+
throw new InvalidInputError(`You don't have permission to create apps in workspace "${match.name}" (your role: ${match.userRole ?? "unknown"}).`);
|
|
253468
|
+
}
|
|
253469
|
+
return match.id;
|
|
253470
|
+
}
|
|
253471
|
+
if (!isInteractive) {
|
|
253472
|
+
return;
|
|
253473
|
+
}
|
|
253474
|
+
const workspaces = await fetchWorkspaces(ctx);
|
|
253475
|
+
const eligible = workspaces.filter((w) => canCreateAppsInWorkspace(w.userRole));
|
|
253476
|
+
if (eligible.length <= 1) {
|
|
253477
|
+
return;
|
|
253478
|
+
}
|
|
253479
|
+
const options = eligible.map((w) => ({
|
|
253480
|
+
value: w.id,
|
|
253481
|
+
label: workspaceLabel(w)
|
|
253482
|
+
}));
|
|
253483
|
+
const selected = await Je({
|
|
253484
|
+
message: "Which workspace should this app belong to?",
|
|
253485
|
+
options,
|
|
253486
|
+
initialValue: eligible[0].id
|
|
253487
|
+
});
|
|
253488
|
+
if (Ct(selected)) {
|
|
253489
|
+
onPromptCancel();
|
|
253490
|
+
}
|
|
253491
|
+
return selected;
|
|
253492
|
+
}
|
|
253493
|
+
|
|
253343
253494
|
// src/cli/commands/project/create.ts
|
|
253344
253495
|
function validateCreateOptions(command2) {
|
|
253345
253496
|
const { appId } = command2.optsWithGlobals();
|
|
@@ -253392,6 +253543,7 @@ async function createInteractive(options, ctx) {
|
|
|
253392
253543
|
projectPath: result.projectPath,
|
|
253393
253544
|
deploy: options.deploy,
|
|
253394
253545
|
skills: options.skills,
|
|
253546
|
+
workspaceId: options.workspace ?? options.org,
|
|
253395
253547
|
isInteractive: true
|
|
253396
253548
|
}, ctx);
|
|
253397
253549
|
}
|
|
@@ -253404,6 +253556,7 @@ async function createNonInteractive(options, ctx) {
|
|
|
253404
253556
|
projectPath: options.path,
|
|
253405
253557
|
deploy: options.deploy,
|
|
253406
253558
|
skills: options.skills,
|
|
253559
|
+
workspaceId: options.workspace ?? options.org,
|
|
253407
253560
|
isInteractive: false
|
|
253408
253561
|
}, ctx);
|
|
253409
253562
|
}
|
|
@@ -253414,17 +253567,20 @@ async function executeCreate({
|
|
|
253414
253567
|
projectPath,
|
|
253415
253568
|
deploy: deploy5,
|
|
253416
253569
|
skills,
|
|
253570
|
+
workspaceId: flagWorkspaceId,
|
|
253417
253571
|
isInteractive
|
|
253418
253572
|
}, ctx) {
|
|
253419
253573
|
const { log, runTask: runTask2 } = ctx;
|
|
253420
253574
|
const name2 = rawName.trim();
|
|
253421
253575
|
const resolvedPath = resolve8(projectPath);
|
|
253576
|
+
const organizationId = await resolveWorkspaceId(ctx, flagWorkspaceId, isInteractive);
|
|
253422
253577
|
const { projectId } = await runTask2("Setting up your project...", async () => {
|
|
253423
253578
|
return await createProjectFiles({
|
|
253424
253579
|
name: name2,
|
|
253425
253580
|
description: description?.trim(),
|
|
253426
253581
|
path: resolvedPath,
|
|
253427
|
-
template: template2
|
|
253582
|
+
template: template2,
|
|
253583
|
+
organizationId
|
|
253428
253584
|
});
|
|
253429
253585
|
}, {
|
|
253430
253586
|
successMessage: theme.colors.base44Orange("Project created successfully"),
|
|
@@ -253458,11 +253614,12 @@ function getCreateCommand() {
|
|
|
253458
253614
|
return new Base44Command("create", {
|
|
253459
253615
|
requireAppContext: false,
|
|
253460
253616
|
fullBanner: true
|
|
253461
|
-
}).description("Create a new Base44 project").addArgument(new Argument("name", "Project name").argOptional()).option("-p, --path <path>", "Path where to create the project").option("-t, --template <id>", "Template ID (e.g., backend-only, backend-and-client)").option("--deploy", "Build and deploy the site").option("--no-skills", "Skip AI agent skills installation").addHelpText("after", `
|
|
253617
|
+
}).description("Create a new Base44 project").addArgument(new Argument("name", "Project name").argOptional()).option("-p, --path <path>", "Path where to create the project").option("-t, --template <id>", "Template ID (e.g., backend-only, backend-and-client)").option("--deploy", "Build and deploy the site").option("--no-skills", "Skip AI agent skills installation").option("-w, --workspace <id>", "Workspace (organization) ID to create the app in (defaults to your personal workspace)").addOption(new Option("--org <id>", "Alias for --workspace").hideHelp()).addHelpText("after", `
|
|
253462
253618
|
Examples:
|
|
253463
253619
|
$ base44 create my-app Creates a base44 project at ./my-app
|
|
253464
253620
|
$ base44 create my-todo-app --template backend-and-client Creates a base44 backend-and-client project at ./my-todo-app
|
|
253465
|
-
$ base44 create my-app --path ./projects/my-app --deploy Creates a base44 project at ./project/my-app and deploys it
|
|
253621
|
+
$ base44 create my-app --path ./projects/my-app --deploy Creates a base44 project at ./project/my-app and deploys it
|
|
253622
|
+
$ base44 create my-app --workspace 507f1f77bcf86cd799439011 Creates a base44 project in the given workspace`).hook("preAction", validateCreateOptions).action(createAction);
|
|
253466
253623
|
}
|
|
253467
253624
|
|
|
253468
253625
|
// src/cli/commands/project/deploy.ts
|
|
@@ -253718,8 +253875,9 @@ async function link(ctx, options, command2) {
|
|
|
253718
253875
|
}
|
|
253719
253876
|
if (action === "create") {
|
|
253720
253877
|
const { name: name2, description } = options.create ? { name: options.name.trim(), description: options.description?.trim() } : await promptForNewProjectDetails();
|
|
253878
|
+
const organizationId = await resolveWorkspaceId(ctx, options.workspace ?? options.org, !isNonInteractive);
|
|
253721
253879
|
const { projectId } = await runTask2("Creating project on Base44...", async () => {
|
|
253722
|
-
return await createProject(name2, description);
|
|
253880
|
+
return await createProject(name2, description, organizationId);
|
|
253723
253881
|
}, {
|
|
253724
253882
|
successMessage: "Project created successfully",
|
|
253725
253883
|
errorMessage: "Failed to create project"
|
|
@@ -253734,7 +253892,7 @@ async function link(ctx, options, command2) {
|
|
|
253734
253892
|
function getLinkCommand() {
|
|
253735
253893
|
return new Base44Command("link", {
|
|
253736
253894
|
requireAppContext: false
|
|
253737
|
-
}).description("Link a local project to a Base44 project (create new or link existing)").configureHelp({ showGlobalOptions: true }).option("-c, --create", "Create a new project (skip selection prompt)").option("-n, --name <name>", "Project name (required when --create is used)").option("-d, --description <description>", "Project description").addOption(new Option("-p, --project-id <id>", "Project ID to link to an existing project").hideHelp()).addOption(new Option("--projectId <id>", "Project ID to link to an existing project").hideHelp()).hook("preAction", validateNonInteractiveFlags).action(link);
|
|
253895
|
+
}).description("Link a local project to a Base44 project (create new or link existing)").configureHelp({ showGlobalOptions: true }).option("-c, --create", "Create a new project (skip selection prompt)").option("-n, --name <name>", "Project name (required when --create is used)").option("-d, --description <description>", "Project description").option("-w, --workspace <id>", "Workspace (organization) ID to create the app in when using --create (defaults to your personal workspace)").addOption(new Option("--org <id>", "Alias for --workspace").hideHelp()).addOption(new Option("-p, --project-id <id>", "Project ID to link to an existing project").hideHelp()).addOption(new Option("--projectId <id>", "Project ID to link to an existing project").hideHelp()).hook("preAction", validateNonInteractiveFlags).action(link);
|
|
253738
253896
|
}
|
|
253739
253897
|
|
|
253740
253898
|
// src/cli/commands/project/logs.ts
|
|
@@ -254116,7 +254274,7 @@ function withSandboxAuthHint(error48) {
|
|
|
254116
254274
|
cause: error48
|
|
254117
254275
|
});
|
|
254118
254276
|
}
|
|
254119
|
-
async function callTool(appId, tool, payload,
|
|
254277
|
+
async function callTool(appId, tool, payload, schema11, context, timeout2 = 60000) {
|
|
254120
254278
|
const client = getSandboxClient(appId);
|
|
254121
254279
|
let response;
|
|
254122
254280
|
try {
|
|
@@ -254124,7 +254282,7 @@ async function callTool(appId, tool, payload, schema10, context, timeout2 = 6000
|
|
|
254124
254282
|
} catch (error48) {
|
|
254125
254283
|
throw withSandboxAuthHint(await ApiError.fromHttpError(error48, context));
|
|
254126
254284
|
}
|
|
254127
|
-
const result =
|
|
254285
|
+
const result = schema11.safeParse(await response.json());
|
|
254128
254286
|
if (!result.success) {
|
|
254129
254287
|
throw new SchemaValidationError("Invalid response from server", result.error);
|
|
254130
254288
|
}
|
|
@@ -254522,9 +254680,9 @@ async function generateContent(input) {
|
|
|
254522
254680
|
`);
|
|
254523
254681
|
}
|
|
254524
254682
|
async function compileEntity(entity2) {
|
|
254525
|
-
const { name: name2, source: _source, ...
|
|
254683
|
+
const { name: name2, source: _source, ...schema11 } = entity2;
|
|
254526
254684
|
const jsonSchema = {
|
|
254527
|
-
...
|
|
254685
|
+
...schema11,
|
|
254528
254686
|
title: name2,
|
|
254529
254687
|
additionalProperties: false
|
|
254530
254688
|
};
|
|
@@ -254602,6 +254760,137 @@ function getTypesCommand() {
|
|
|
254602
254760
|
return new Command("types").description("Manage TypeScript type generation").addCommand(getTypesGenerateCommand());
|
|
254603
254761
|
}
|
|
254604
254762
|
|
|
254763
|
+
// src/cli/commands/workspace/shared.ts
|
|
254764
|
+
function toJsonStdout2(result) {
|
|
254765
|
+
return `${JSON.stringify(result, null, 2)}
|
|
254766
|
+
`;
|
|
254767
|
+
}
|
|
254768
|
+
function workspaceTag(workspace2) {
|
|
254769
|
+
const role = workspace2.userRole ?? "member";
|
|
254770
|
+
return workspace2.isPersonal ? `personal, ${role}` : role;
|
|
254771
|
+
}
|
|
254772
|
+
|
|
254773
|
+
// src/cli/commands/workspace/list.ts
|
|
254774
|
+
async function listWorkspacesAction({
|
|
254775
|
+
log,
|
|
254776
|
+
runTask: runTask2,
|
|
254777
|
+
jsonMode
|
|
254778
|
+
}) {
|
|
254779
|
+
const workspaces = await runTask2("Fetching workspaces...", () => listWorkspaces(), { errorMessage: "Failed to fetch workspaces" });
|
|
254780
|
+
if (jsonMode) {
|
|
254781
|
+
return {
|
|
254782
|
+
outroMessage: `${workspaces.length} workspace${workspaces.length !== 1 ? "s" : ""}`,
|
|
254783
|
+
stdout: toJsonStdout2(workspaces)
|
|
254784
|
+
};
|
|
254785
|
+
}
|
|
254786
|
+
for (const workspace2 of workspaces) {
|
|
254787
|
+
log.message(` ${theme.styles.bold(workspace2.name)} ${theme.styles.dim(`[${workspaceTag(workspace2)}]`)}
|
|
254788
|
+
${theme.styles.dim(workspace2.id)}`);
|
|
254789
|
+
}
|
|
254790
|
+
return {
|
|
254791
|
+
outroMessage: `${workspaces.length} workspace${workspaces.length !== 1 ? "s" : ""}`
|
|
254792
|
+
};
|
|
254793
|
+
}
|
|
254794
|
+
function getWorkspaceListCommand() {
|
|
254795
|
+
return new Base44Command("list", { requireAppContext: false }).description("List the workspaces you belong to").action(listWorkspacesAction);
|
|
254796
|
+
}
|
|
254797
|
+
|
|
254798
|
+
// src/cli/commands/workspace/move.ts
|
|
254799
|
+
function workspaceName(workspaces, id2) {
|
|
254800
|
+
if (!id2)
|
|
254801
|
+
return "unknown workspace";
|
|
254802
|
+
return workspaces.find((w8) => w8.id === id2)?.name ?? id2;
|
|
254803
|
+
}
|
|
254804
|
+
async function resolveTargetWorkspace(target, workspaces, currentWorkspaceId, isInteractive) {
|
|
254805
|
+
const eligible = workspaces.filter((w8) => canCreateAppsInWorkspace(w8.userRole) && w8.id !== currentWorkspaceId);
|
|
254806
|
+
if (target) {
|
|
254807
|
+
const match = workspaces.find((w8) => w8.id === target);
|
|
254808
|
+
if (!match) {
|
|
254809
|
+
throw new InvalidInputError(`Workspace "${target}" not found, or you are not a member of it.`, {
|
|
254810
|
+
hints: [
|
|
254811
|
+
{ message: "Run 'base44 workspace list' to see your workspaces" }
|
|
254812
|
+
]
|
|
254813
|
+
});
|
|
254814
|
+
}
|
|
254815
|
+
if (target === currentWorkspaceId) {
|
|
254816
|
+
throw new InvalidInputError("The app is already in that workspace.");
|
|
254817
|
+
}
|
|
254818
|
+
if (!canCreateAppsInWorkspace(match.userRole)) {
|
|
254819
|
+
throw new InvalidInputError(`You don't have permission to move apps into workspace "${match.name}" (your role: ${match.userRole ?? "unknown"}).`);
|
|
254820
|
+
}
|
|
254821
|
+
return match.id;
|
|
254822
|
+
}
|
|
254823
|
+
if (!isInteractive) {
|
|
254824
|
+
throw new InvalidInputError("A target workspace ID is required in non-interactive mode.", {
|
|
254825
|
+
hints: [
|
|
254826
|
+
{ message: "Usage: base44 workspace move <workspace-id>" },
|
|
254827
|
+
{ message: "Run 'base44 workspace list' to see your workspaces" }
|
|
254828
|
+
]
|
|
254829
|
+
});
|
|
254830
|
+
}
|
|
254831
|
+
if (eligible.length === 0) {
|
|
254832
|
+
throw new InvalidInputError("No other workspaces available to move this app into.");
|
|
254833
|
+
}
|
|
254834
|
+
const options8 = eligible.map((w8) => ({
|
|
254835
|
+
value: w8.id,
|
|
254836
|
+
label: `${w8.name} (${w8.userRole ?? "member"})`
|
|
254837
|
+
}));
|
|
254838
|
+
const selected = await Je({
|
|
254839
|
+
message: "Move the app to which workspace?",
|
|
254840
|
+
options: options8
|
|
254841
|
+
});
|
|
254842
|
+
if (Ct(selected)) {
|
|
254843
|
+
onPromptCancel();
|
|
254844
|
+
}
|
|
254845
|
+
return selected;
|
|
254846
|
+
}
|
|
254847
|
+
async function moveAction(ctx, target, options8) {
|
|
254848
|
+
const { runTask: runTask2, isNonInteractive, jsonMode } = ctx;
|
|
254849
|
+
const isInteractive = !isNonInteractive && !jsonMode;
|
|
254850
|
+
const { id: appId } = getAppContext();
|
|
254851
|
+
const { workspaces, currentWorkspaceId } = await runTask2("Fetching workspaces...", async () => {
|
|
254852
|
+
const [workspaces2, app] = await Promise.all([
|
|
254853
|
+
listWorkspaces(),
|
|
254854
|
+
getApp(appId)
|
|
254855
|
+
]);
|
|
254856
|
+
return { workspaces: workspaces2, currentWorkspaceId: app.organizationId };
|
|
254857
|
+
}, { errorMessage: "Failed to fetch workspaces" });
|
|
254858
|
+
const targetWorkspaceId = await resolveTargetWorkspace(target, workspaces, currentWorkspaceId, isInteractive);
|
|
254859
|
+
if (isInteractive && !options8.yes) {
|
|
254860
|
+
const proceed = await Re({
|
|
254861
|
+
message: `Move this app from ${theme.styles.bold(workspaceName(workspaces, currentWorkspaceId))} to ${theme.styles.bold(workspaceName(workspaces, targetWorkspaceId))}?`
|
|
254862
|
+
});
|
|
254863
|
+
if (Ct(proceed)) {
|
|
254864
|
+
onPromptCancel();
|
|
254865
|
+
}
|
|
254866
|
+
if (!proceed) {
|
|
254867
|
+
return { outroMessage: "Move cancelled" };
|
|
254868
|
+
}
|
|
254869
|
+
}
|
|
254870
|
+
const result = await runTask2("Moving app to workspace...", () => moveAppToWorkspace(appId, targetWorkspaceId, {
|
|
254871
|
+
disconnectIntegrations: options8.disconnectIntegrations
|
|
254872
|
+
}), { errorMessage: "Failed to move app" });
|
|
254873
|
+
const targetName = workspaceName(workspaces, targetWorkspaceId);
|
|
254874
|
+
if (jsonMode) {
|
|
254875
|
+
return {
|
|
254876
|
+
outroMessage: `App moved to ${targetName}`,
|
|
254877
|
+
stdout: toJsonStdout2(result)
|
|
254878
|
+
};
|
|
254879
|
+
}
|
|
254880
|
+
return { outroMessage: `App moved to ${theme.styles.bold(targetName)}` };
|
|
254881
|
+
}
|
|
254882
|
+
function getWorkspaceMoveCommand() {
|
|
254883
|
+
return new Base44Command("move").description("Move the current app to another workspace").argument("[workspace-id]", "Target workspace (organization) ID").option("--disconnect-integrations", "Disconnect the app's OAuth integrations as part of the move").option("-y, --yes", "Skip the confirmation prompt").addHelpText("after", `
|
|
254884
|
+
Examples:
|
|
254885
|
+
$ base44 workspace move 507f1f77bcf86cd799439011 Move the linked app to the given workspace
|
|
254886
|
+
$ base44 workspace move --app-id <id> <workspace-id> Move a specific app`).action(moveAction);
|
|
254887
|
+
}
|
|
254888
|
+
|
|
254889
|
+
// src/cli/commands/workspace/index.ts
|
|
254890
|
+
function getWorkspaceCommand() {
|
|
254891
|
+
return new Command("workspace").description("List workspaces and move apps between them").addCommand(getWorkspaceListCommand()).addCommand(getWorkspaceMoveCommand());
|
|
254892
|
+
}
|
|
254893
|
+
|
|
254605
254894
|
// src/cli/dev/dev-server/main.ts
|
|
254606
254895
|
var import_cors = __toESM(require_lib4(), 1);
|
|
254607
254896
|
var import_express6 = __toESM(require_express(), 1);
|
|
@@ -255267,22 +255556,22 @@ class Database {
|
|
|
255267
255556
|
this.schemas.clear();
|
|
255268
255557
|
}
|
|
255269
255558
|
validate(entityName, record2, partial2 = false) {
|
|
255270
|
-
const
|
|
255271
|
-
if (!
|
|
255559
|
+
const schema11 = this.schemas.get(this.normalizeName(entityName));
|
|
255560
|
+
if (!schema11) {
|
|
255272
255561
|
throw new Error(`Entity "${entityName}" not found`);
|
|
255273
255562
|
}
|
|
255274
|
-
return this.validator.validate(record2,
|
|
255563
|
+
return this.validator.validate(record2, schema11, partial2);
|
|
255275
255564
|
}
|
|
255276
255565
|
prepareRecord(entityName, record2, partial2 = false) {
|
|
255277
|
-
const
|
|
255278
|
-
if (!
|
|
255566
|
+
const schema11 = this.schemas.get(this.normalizeName(entityName));
|
|
255567
|
+
if (!schema11) {
|
|
255279
255568
|
throw new Error(`Entity "${entityName}" not found`);
|
|
255280
255569
|
}
|
|
255281
|
-
const filteredRecord = this.validator.filterFields(record2,
|
|
255570
|
+
const filteredRecord = this.validator.filterFields(record2, schema11);
|
|
255282
255571
|
if (partial2) {
|
|
255283
255572
|
return filteredRecord;
|
|
255284
255573
|
}
|
|
255285
|
-
return this.validator.applyDefaults(filteredRecord,
|
|
255574
|
+
return this.validator.applyDefaults(filteredRecord, schema11);
|
|
255286
255575
|
}
|
|
255287
255576
|
normalizeName(entityName) {
|
|
255288
255577
|
return entityName.toLowerCase();
|
|
@@ -255576,13 +255865,13 @@ function checkRLS(rule, record2, user) {
|
|
|
255576
255865
|
return false;
|
|
255577
255866
|
return evaluateCondition(rule, record2, user);
|
|
255578
255867
|
}
|
|
255579
|
-
function applyFLS(record2,
|
|
255868
|
+
function applyFLS(record2, schema11, user, operation) {
|
|
255580
255869
|
if (Array.isArray(record2)) {
|
|
255581
|
-
return record2.map((r5) => applyFLS(r5,
|
|
255870
|
+
return record2.map((r5) => applyFLS(r5, schema11, user, operation));
|
|
255582
255871
|
}
|
|
255583
255872
|
const result = {};
|
|
255584
255873
|
for (const [key2, value] of Object.entries(record2)) {
|
|
255585
|
-
const rule =
|
|
255874
|
+
const rule = schema11.properties[key2]?.rls?.[operation];
|
|
255586
255875
|
if (rule === undefined || checkRLS(rule, record2, user)) {
|
|
255587
255876
|
result[key2] = value;
|
|
255588
255877
|
}
|
|
@@ -255810,14 +256099,14 @@ async function createEntityRoutes(db2, logger2, broadcast) {
|
|
|
255810
256099
|
res.status(404).json({ error: `Entity "${entityName}" not found` });
|
|
255811
256100
|
return;
|
|
255812
256101
|
}
|
|
255813
|
-
const
|
|
255814
|
-
if (!
|
|
256102
|
+
const schema11 = db2.getSchema(entityName);
|
|
256103
|
+
if (!schema11) {
|
|
255815
256104
|
res.status(404).json({ error: `Schema for "${entityName}" not found` });
|
|
255816
256105
|
return;
|
|
255817
256106
|
}
|
|
255818
256107
|
const currentUserResult = await resolveCurrentUser(db2, req);
|
|
255819
256108
|
const currentUser = currentUserResult.ok ? currentUserResult.user : undefined;
|
|
255820
|
-
await handler(req, res, collection,
|
|
256109
|
+
await handler(req, res, collection, schema11, currentUser);
|
|
255821
256110
|
};
|
|
255822
256111
|
}
|
|
255823
256112
|
function emit(appId, entityName, type, data) {
|
|
@@ -255835,19 +256124,19 @@ async function createEntityRoutes(db2, logger2, broadcast) {
|
|
|
255835
256124
|
}
|
|
255836
256125
|
broadcast(appId, entityName, createData(data));
|
|
255837
256126
|
}
|
|
255838
|
-
function prepareCreateRecord(entityName, body,
|
|
256127
|
+
function prepareCreateRecord(entityName, body, schema11, currentUser, now) {
|
|
255839
256128
|
const { _id, ...recordBody } = body;
|
|
255840
256129
|
const ownerFields = {
|
|
255841
256130
|
created_by: currentUser?.email,
|
|
255842
256131
|
created_by_id: currentUser?.id
|
|
255843
256132
|
};
|
|
255844
|
-
if (!checkRLS(
|
|
256133
|
+
if (!checkRLS(schema11.rls?.create, {
|
|
255845
256134
|
...recordBody,
|
|
255846
256135
|
...ownerFields
|
|
255847
256136
|
}, currentUser)) {
|
|
255848
256137
|
return;
|
|
255849
256138
|
}
|
|
255850
|
-
const filteredBody = applyFLS(db2.prepareRecord(entityName, recordBody),
|
|
256139
|
+
const filteredBody = applyFLS(db2.prepareRecord(entityName, recordBody), schema11, currentUser, "write");
|
|
255851
256140
|
db2.validate(entityName, filteredBody);
|
|
255852
256141
|
return {
|
|
255853
256142
|
...filteredBody,
|
|
@@ -255859,7 +256148,7 @@ async function createEntityRoutes(db2, logger2, broadcast) {
|
|
|
255859
256148
|
}
|
|
255860
256149
|
const userRouter = createUserRouter(db2, logger2);
|
|
255861
256150
|
router.use("/User", userRouter);
|
|
255862
|
-
router.get("/:entityName/:id", withCollection(async (req, res, collection,
|
|
256151
|
+
router.get("/:entityName/:id", withCollection(async (req, res, collection, schema11, currentUser) => {
|
|
255863
256152
|
const { entityName, id: id2 } = req.params;
|
|
255864
256153
|
try {
|
|
255865
256154
|
const doc2 = await collection.findOneAsync({ id: id2 });
|
|
@@ -255867,27 +256156,27 @@ async function createEntityRoutes(db2, logger2, broadcast) {
|
|
|
255867
256156
|
res.status(404).json({ error: `Record with id "${id2}" not found` });
|
|
255868
256157
|
return;
|
|
255869
256158
|
}
|
|
255870
|
-
if (!checkRLS(
|
|
256159
|
+
if (!checkRLS(schema11.rls?.read, doc2, currentUser)) {
|
|
255871
256160
|
res.status(404).json({
|
|
255872
256161
|
message: `Entity ${entityName} with ID ${id2} not found`
|
|
255873
256162
|
});
|
|
255874
256163
|
return;
|
|
255875
256164
|
}
|
|
255876
|
-
const result = applyFLS(stripInternalFields(doc2),
|
|
256165
|
+
const result = applyFLS(stripInternalFields(doc2), schema11, currentUser, "read");
|
|
255877
256166
|
res.json(result);
|
|
255878
256167
|
} catch (error48) {
|
|
255879
256168
|
logger2.error(`Error in GET /${entityName}/${id2}:`, error48);
|
|
255880
256169
|
res.status(500).json({ error: "Internal server error" });
|
|
255881
256170
|
}
|
|
255882
256171
|
}));
|
|
255883
|
-
router.get("/:entityName", withCollection(async (req, res, collection,
|
|
256172
|
+
router.get("/:entityName", withCollection(async (req, res, collection, schema11, currentUser) => {
|
|
255884
256173
|
const { entityName } = req.params;
|
|
255885
256174
|
try {
|
|
255886
256175
|
let results = stripInternalFields(await queryEntity(collection, req.query));
|
|
255887
|
-
if (
|
|
255888
|
-
results = results.filter((doc2) => checkRLS(
|
|
256176
|
+
if (schema11.rls?.read !== undefined && schema11.rls.read !== true) {
|
|
256177
|
+
results = results.filter((doc2) => checkRLS(schema11.rls.read, doc2, currentUser));
|
|
255889
256178
|
}
|
|
255890
|
-
results = results.map((doc2) => applyFLS(doc2,
|
|
256179
|
+
results = results.map((doc2) => applyFLS(doc2, schema11, currentUser, "read"));
|
|
255891
256180
|
res.json(results);
|
|
255892
256181
|
} catch (error48) {
|
|
255893
256182
|
if (error48 instanceof InvalidInputError) {
|
|
@@ -255898,16 +256187,16 @@ async function createEntityRoutes(db2, logger2, broadcast) {
|
|
|
255898
256187
|
}
|
|
255899
256188
|
}
|
|
255900
256189
|
}));
|
|
255901
|
-
router.post("/:entityName", parseBody, withCollection(async (req, res, collection,
|
|
256190
|
+
router.post("/:entityName", parseBody, withCollection(async (req, res, collection, schema11, currentUser) => {
|
|
255902
256191
|
const { appId, entityName } = req.params;
|
|
255903
256192
|
try {
|
|
255904
256193
|
const now = new Date().toISOString();
|
|
255905
|
-
const record2 = prepareCreateRecord(entityName, req.body,
|
|
256194
|
+
const record2 = prepareCreateRecord(entityName, req.body, schema11, currentUser, now);
|
|
255906
256195
|
if (!record2) {
|
|
255907
256196
|
res.status(403).json({ error: "Permission denied" });
|
|
255908
256197
|
return;
|
|
255909
256198
|
}
|
|
255910
|
-
const inserted = applyFLS(stripInternalFields(await collection.insertAsync(record2)),
|
|
256199
|
+
const inserted = applyFLS(stripInternalFields(await collection.insertAsync(record2)), schema11, currentUser, "read");
|
|
255911
256200
|
emit(appId, entityName, "create", inserted);
|
|
255912
256201
|
res.status(201).json(inserted);
|
|
255913
256202
|
} catch (error48) {
|
|
@@ -255919,7 +256208,7 @@ async function createEntityRoutes(db2, logger2, broadcast) {
|
|
|
255919
256208
|
res.status(500).json({ error: "Internal server error" });
|
|
255920
256209
|
}
|
|
255921
256210
|
}));
|
|
255922
|
-
router.post("/:entityName/bulk", parseBody, withCollection(async (req, res, collection,
|
|
256211
|
+
router.post("/:entityName/bulk", parseBody, withCollection(async (req, res, collection, schema11, currentUser) => {
|
|
255923
256212
|
const { appId, entityName } = req.params;
|
|
255924
256213
|
if (!Array.isArray(req.body)) {
|
|
255925
256214
|
res.status(400).json({ error: "Request body must be an array" });
|
|
@@ -255929,14 +256218,14 @@ async function createEntityRoutes(db2, logger2, broadcast) {
|
|
|
255929
256218
|
const now = new Date().toISOString();
|
|
255930
256219
|
const records = [];
|
|
255931
256220
|
for (const body of req.body) {
|
|
255932
|
-
const record2 = prepareCreateRecord(entityName, body,
|
|
256221
|
+
const record2 = prepareCreateRecord(entityName, body, schema11, currentUser, now);
|
|
255933
256222
|
if (!record2) {
|
|
255934
256223
|
res.status(403).json({ error: "Permission denied" });
|
|
255935
256224
|
return;
|
|
255936
256225
|
}
|
|
255937
256226
|
records.push(record2);
|
|
255938
256227
|
}
|
|
255939
|
-
const inserted = applyFLS(stripInternalFields(await collection.insertAsync(records)),
|
|
256228
|
+
const inserted = applyFLS(stripInternalFields(await collection.insertAsync(records)), schema11, currentUser, "read");
|
|
255940
256229
|
emit(appId, entityName, "create", inserted);
|
|
255941
256230
|
res.status(201).json(inserted);
|
|
255942
256231
|
} catch (error48) {
|
|
@@ -255948,24 +256237,24 @@ async function createEntityRoutes(db2, logger2, broadcast) {
|
|
|
255948
256237
|
res.status(500).json({ error: "Internal server error" });
|
|
255949
256238
|
}
|
|
255950
256239
|
}));
|
|
255951
|
-
router.put("/:entityName/:id", parseBody, withCollection(async (req, res, collection,
|
|
256240
|
+
router.put("/:entityName/:id", parseBody, withCollection(async (req, res, collection, schema11, currentUser) => {
|
|
255952
256241
|
const { appId, entityName, id: id2 } = req.params;
|
|
255953
256242
|
const { id: _id, created_date: _created_date, ...body } = req.body;
|
|
255954
256243
|
try {
|
|
255955
|
-
if (
|
|
256244
|
+
if (schema11.rls?.update !== undefined) {
|
|
255956
256245
|
const existing = await collection.findOneAsync({ id: id2 });
|
|
255957
256246
|
if (!existing) {
|
|
255958
256247
|
res.status(404).json({ error: `Record with id "${id2}" not found` });
|
|
255959
256248
|
return;
|
|
255960
256249
|
}
|
|
255961
|
-
if (!checkRLS(
|
|
256250
|
+
if (!checkRLS(schema11.rls.update, existing, currentUser)) {
|
|
255962
256251
|
res.status(404).json({
|
|
255963
256252
|
message: `Entity ${entityName} with ID ${id2} not found`
|
|
255964
256253
|
});
|
|
255965
256254
|
return;
|
|
255966
256255
|
}
|
|
255967
256256
|
}
|
|
255968
|
-
const filteredBody = applyFLS(db2.prepareRecord(entityName, body, true),
|
|
256257
|
+
const filteredBody = applyFLS(db2.prepareRecord(entityName, body, true), schema11, currentUser, "write");
|
|
255969
256258
|
db2.validate(entityName, filteredBody, true);
|
|
255970
256259
|
const updateData = {
|
|
255971
256260
|
...filteredBody,
|
|
@@ -255976,7 +256265,7 @@ async function createEntityRoutes(db2, logger2, broadcast) {
|
|
|
255976
256265
|
res.status(404).json({ error: `Record with id "${id2}" not found` });
|
|
255977
256266
|
return;
|
|
255978
256267
|
}
|
|
255979
|
-
const updated = applyFLS(stripInternalFields(result.affectedDocuments),
|
|
256268
|
+
const updated = applyFLS(stripInternalFields(result.affectedDocuments), schema11, currentUser, "read");
|
|
255980
256269
|
emit(appId, entityName, "update", updated);
|
|
255981
256270
|
res.json(updated);
|
|
255982
256271
|
} catch (error48) {
|
|
@@ -255988,7 +256277,7 @@ async function createEntityRoutes(db2, logger2, broadcast) {
|
|
|
255988
256277
|
res.status(500).json({ error: "Internal server error" });
|
|
255989
256278
|
}
|
|
255990
256279
|
}));
|
|
255991
|
-
router.delete("/:entityName/:id", withCollection(async (req, res, collection,
|
|
256280
|
+
router.delete("/:entityName/:id", withCollection(async (req, res, collection, schema11, currentUser) => {
|
|
255992
256281
|
const { appId, entityName, id: id2 } = req.params;
|
|
255993
256282
|
try {
|
|
255994
256283
|
const doc2 = await collection.findOneAsync({ id: id2 });
|
|
@@ -255996,7 +256285,7 @@ async function createEntityRoutes(db2, logger2, broadcast) {
|
|
|
255996
256285
|
res.status(404).json({ error: `Record with id "${id2}" not found` });
|
|
255997
256286
|
return;
|
|
255998
256287
|
}
|
|
255999
|
-
if (!checkRLS(
|
|
256288
|
+
if (!checkRLS(schema11.rls?.delete, doc2, currentUser)) {
|
|
256000
256289
|
res.status(404).json({
|
|
256001
256290
|
message: `Entity ${entityName} with ID ${id2} not found`
|
|
256002
256291
|
});
|
|
@@ -256010,11 +256299,11 @@ async function createEntityRoutes(db2, logger2, broadcast) {
|
|
|
256010
256299
|
res.status(500).json({ error: "Internal server error" });
|
|
256011
256300
|
}
|
|
256012
256301
|
}));
|
|
256013
|
-
router.delete("/:entityName", parseBody, withCollection(async (req, res, collection,
|
|
256302
|
+
router.delete("/:entityName", parseBody, withCollection(async (req, res, collection, schema11, currentUser) => {
|
|
256014
256303
|
const { entityName } = req.params;
|
|
256015
256304
|
try {
|
|
256016
256305
|
const query = req.body || {};
|
|
256017
|
-
const rlsDelete =
|
|
256306
|
+
const rlsDelete = schema11?.rls?.delete;
|
|
256018
256307
|
if (rlsDelete !== undefined && rlsDelete !== true) {
|
|
256019
256308
|
if (rlsDelete === false && currentUser?.is_service !== true) {
|
|
256020
256309
|
res.status(403).json({ error: "Permission denied" });
|
|
@@ -258372,6 +258661,7 @@ function createProgram(context) {
|
|
|
258372
258661
|
program2.addCommand(getVisibilityCommand());
|
|
258373
258662
|
program2.addCommand(getLinkCommand());
|
|
258374
258663
|
program2.addCommand(getEjectCommand());
|
|
258664
|
+
program2.addCommand(getWorkspaceCommand());
|
|
258375
258665
|
program2.addCommand(getEntitiesPushCommand());
|
|
258376
258666
|
program2.addCommand(getAgentsCommand());
|
|
258377
258667
|
program2.addCommand(getConnectorsCommand());
|
|
@@ -262631,4 +262921,4 @@ export {
|
|
|
262631
262921
|
CLIExitError
|
|
262632
262922
|
};
|
|
262633
262923
|
|
|
262634
|
-
//# debugId=
|
|
262924
|
+
//# debugId=FBAB9A49478F781B64756E2164756E21
|