@nodaro/shared 2.19.0 → 2.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -2525,6 +2525,25 @@ function modelIdsByKindMode(kind, modes, opts = {}) {
2525
2525
  // src/model-constants.ts
2526
2526
  var CREDIT_BASE_USD = 2e-3;
2527
2527
  var IMAGE_PROMPT_MAX = 5e3;
2528
+ var IMAGE_ASPECT_RATIO_VALUES = [
2529
+ "auto",
2530
+ "1:1",
2531
+ "16:9",
2532
+ "9:16",
2533
+ "4:3",
2534
+ "3:4",
2535
+ "3:2",
2536
+ "2:3",
2537
+ "5:4",
2538
+ "4:5",
2539
+ "21:9",
2540
+ // Ultra-wide / ultra-tall banner ratios: Wan 2.7 + Wan 2.7 Pro (8:1, 1:8)
2541
+ // and Nano Banana 2 Lite (4:1, 1:4, 8:1, 1:8).
2542
+ "4:1",
2543
+ "1:4",
2544
+ "8:1",
2545
+ "1:8"
2546
+ ];
2528
2547
  var MAX_IMAGE_PROMPT_CHARS_BY_PROVIDER = {
2529
2548
  // ── higher than the 5000 default ──
2530
2549
  "nano-banana-2": 2e4,
@@ -2562,6 +2581,7 @@ function getMaxImagePromptChars(provider) {
2562
2581
  }
2563
2582
  var VIDEO_PROMPT_MAX = 8e3;
2564
2583
  var SUNO_TEXT_MAX = 5e3;
2584
+ var SUNO_HARD_CEILING = 3e4;
2565
2585
  var PROMPT_HARD_CEILING = 3e4;
2566
2586
  var LLM_TEXT_INPUT_MAX = 1e5;
2567
2587
  var MAX_VIDEO_PROMPT_CHARS_BY_PROVIDER = {
@@ -4426,17 +4446,33 @@ function buildCreditModelIdentifier(provider, quality, resolution, renderingSpee
4426
4446
  }
4427
4447
  return provider;
4428
4448
  }
4449
+ function resolveNormalizedImageGen(opts) {
4450
+ const str = (v) => typeof v === "string" && v.length > 0 ? v : void 0;
4451
+ const provider = str(opts.provider) ?? "nano-banana";
4452
+ const modelId = opts.swapToI2i && opts.refCount > 0 ? T2I_TO_I2I_VARIANT[provider] ?? provider : provider;
4453
+ const n = normalizeModelInput(modelId, {
4454
+ aspectRatio: str(opts.aspectRatio),
4455
+ resolution: str(opts.resolution),
4456
+ quality: str(opts.quality)
4457
+ });
4458
+ return {
4459
+ identifier: buildCreditModelIdentifier(
4460
+ modelId,
4461
+ n.quality,
4462
+ n.resolution,
4463
+ str(opts.renderingSpeed),
4464
+ void 0,
4465
+ opts.refCount
4466
+ ),
4467
+ modelId,
4468
+ aspectRatio: n.aspectRatio,
4469
+ resolution: n.resolution,
4470
+ quality: n.quality,
4471
+ adjustments: n.adjustments
4472
+ };
4473
+ }
4429
4474
  function resolveImageGenCreditIdentifier(opts) {
4430
- const provider = opts.provider || "nano-banana";
4431
- const effectiveProvider = opts.swapToI2i && opts.refCount > 0 ? T2I_TO_I2I_VARIANT[provider] ?? provider : provider;
4432
- return buildCreditModelIdentifier(
4433
- effectiveProvider,
4434
- opts.quality,
4435
- opts.resolution,
4436
- opts.renderingSpeed,
4437
- void 0,
4438
- opts.refCount
4439
- );
4475
+ return resolveNormalizedImageGen(opts).identifier;
4440
4476
  }
4441
4477
  var T2V_CREDIT_OVERRIDES = {
4442
4478
  "grok": "grok-i2v",
@@ -4537,6 +4573,28 @@ function buildMotionCreditModelIdentifier(provider, resolution, videoDuration) {
4537
4573
  const resSuffix = resolution === "1080p" ? ":1080p" : "";
4538
4574
  return `${base}${resSuffix}:${tier.suffix}`;
4539
4575
  }
4576
+ var SUNO_VERSION_PRICED_OPERATIONS = [
4577
+ "suno-generate",
4578
+ "suno-cover",
4579
+ "suno-extend"
4580
+ ];
4581
+ var SUNO_SELECT_OPERATIONS = [
4582
+ "suno-generate",
4583
+ "suno-cover",
4584
+ "suno-extend",
4585
+ "suno-mashup",
4586
+ "suno-add-instrumental",
4587
+ "suno-add-vocals",
4588
+ "suno-upload-extend"
4589
+ ];
4590
+ function sunoCreditType(model, operation) {
4591
+ if (!SUNO_VERSION_PRICED_OPERATIONS.includes(operation)) {
4592
+ return operation;
4593
+ }
4594
+ if (model === "V5_5") return "suno-v5_5";
4595
+ if (model === "V5") return "suno-v5";
4596
+ return operation;
4597
+ }
4540
4598
 
4541
4599
  // src/credit-estimators/video-utils.ts
4542
4600
  var VIDEO_UTIL_PRICING = {
@@ -12525,7 +12583,9 @@ var DEFAULT_VOICE_CHANGER_MODEL = "eleven_multilingual_sts_v2";
12525
12583
  // src/normalize-node-params.ts
12526
12584
  var MODEL_PARAM_NODE_TYPES = /* @__PURE__ */ new Set([
12527
12585
  "generate-image",
12528
- "image-to-image"
12586
+ "image-to-image",
12587
+ "modify-image",
12588
+ "edit-image"
12529
12589
  ]);
12530
12590
  function normalizeNodeModelParams(nodes) {
12531
12591
  const adjustments = [];
@@ -13771,6 +13831,23 @@ function inferMusicVideo(analysis) {
13771
13831
  })
13772
13832
  );
13773
13833
  }
13834
+ var DERIVED_ANALYSIS_TOP_KEYS = /* @__PURE__ */ new Set(["warnings", "variationFolds"]);
13835
+ var DERIVED_ANALYSIS_SCENE_KEYS = /* @__PURE__ */ new Set(["visualResolved", "slotRefs", "oversized"]);
13836
+ var asRecord = (v) => typeof v === "object" && v !== null && !Array.isArray(v) ? v : null;
13837
+ function stripDerivedAnalysisFields(json) {
13838
+ const doc = asRecord(json);
13839
+ if (!doc) return json;
13840
+ const out = {};
13841
+ for (const [key, value] of Object.entries(doc)) {
13842
+ if (DERIVED_ANALYSIS_TOP_KEYS.has(key)) continue;
13843
+ out[key] = key === "scenes" && Array.isArray(value) ? value.map((scene) => {
13844
+ const s = asRecord(scene);
13845
+ if (!s) return scene;
13846
+ return Object.fromEntries(Object.entries(s).filter(([k]) => !DERIVED_ANALYSIS_SCENE_KEYS.has(k)));
13847
+ }) : value;
13848
+ }
13849
+ return out;
13850
+ }
13774
13851
 
13775
13852
  // src/video-analysis-pricing.ts
13776
13853
  var VIDEO_ANALYSIS_DURATION_BUCKETS = [60, 180, 360, 600];
@@ -13895,6 +13972,7 @@ var WORKFLOW_VISIBILITIES = ["private", "workspace"];
13895
13972
  var ACCESS_LEVELS = ["own", "edit", "view", "none"];
13896
13973
  var GRANTED_ACCESS = ["view", "edit"];
13897
13974
  var SUBMISSION_STATUSES = ["submitted", "in_review", "returned", "approved"];
13975
+ var USAGE_GROUP_BYS = ["workspace", "member", "model", "day", "none"];
13898
13976
  var ORG_ERROR_CODES = [
13899
13977
  "not_a_member",
13900
13978
  "insufficient_role",
@@ -13914,6 +13992,8 @@ var ORG_ERROR_CODES = [
13914
13992
  "domain_not_allowed",
13915
13993
  "already_started",
13916
13994
  "collab_unavailable",
13995
+ // A CSV usage export whose write-ahead audit row could not be written (503).
13996
+ "audit_unavailable",
13917
13997
  // Organization, workspace and membership endpoints.
13918
13998
  "terms_required",
13919
13999
  "not_org_member",
@@ -14216,6 +14296,7 @@ exports.HINT_EXEMPT_PARAMETER_TYPES = HINT_EXEMPT_PARAMETER_TYPES;
14216
14296
  exports.I2I_MASK_SUPPORT = I2I_MASK_SUPPORT;
14217
14297
  exports.I2I_STRENGTH_SUPPORT = I2I_STRENGTH_SUPPORT;
14218
14298
  exports.IDEOGRAM_PROVIDERS = IDEOGRAM_PROVIDERS;
14299
+ exports.IMAGE_ASPECT_RATIO_VALUES = IMAGE_ASPECT_RATIO_VALUES;
14219
14300
  exports.IMAGE_CRITIC_LEAF_MODES = IMAGE_CRITIC_LEAF_MODES;
14220
14301
  exports.IMAGE_CRITIC_MAX_RETRIES = IMAGE_CRITIC_MAX_RETRIES;
14221
14302
  exports.IMAGE_CRITIC_METADATA_KEYS = IMAGE_CRITIC_METADATA_KEYS;
@@ -14416,10 +14497,13 @@ exports.STRUCTURED_VISION_MODELS = STRUCTURED_VISION_MODELS;
14416
14497
  exports.SUBMISSION_STATUSES = SUBMISSION_STATUSES;
14417
14498
  exports.SUNO_ADD_TRACK_MODELS = SUNO_ADD_TRACK_MODELS;
14418
14499
  exports.SUNO_FIELD_HANDLE_FIELDS = SUNO_FIELD_HANDLE_FIELDS;
14500
+ exports.SUNO_HARD_CEILING = SUNO_HARD_CEILING;
14419
14501
  exports.SUNO_MODELS = SUNO_MODELS;
14502
+ exports.SUNO_SELECT_OPERATIONS = SUNO_SELECT_OPERATIONS;
14420
14503
  exports.SUNO_TEXT_MAX = SUNO_TEXT_MAX;
14421
14504
  exports.SUNO_TITLE_MAX = SUNO_TITLE_MAX;
14422
14505
  exports.SUNO_TRACK_SOURCE_TYPES = SUNO_TRACK_SOURCE_TYPES;
14506
+ exports.SUNO_VERSION_PRICED_OPERATIONS = SUNO_VERSION_PRICED_OPERATIONS;
14423
14507
  exports.SUPPORTED_FONT_NAMES = SUPPORTED_FONT_NAMES;
14424
14508
  exports.SURROUND_DIRECTIONS = SURROUND_DIRECTIONS;
14425
14509
  exports.SWITCHX_BLOCK_FRAMES = SWITCHX_BLOCK_FRAMES;
@@ -14450,6 +14534,7 @@ exports.TTS_TEXT_MAX = TTS_TEXT_MAX;
14450
14534
  exports.TWO_K_RESOLUTION_PROVIDERS = TWO_K_RESOLUTION_PROVIDERS;
14451
14535
  exports.TransitionTypeSchema = TransitionTypeSchema;
14452
14536
  exports.UPSCALE_IMAGE_PROVIDERS = UPSCALE_IMAGE_PROVIDERS;
14537
+ exports.USAGE_GROUP_BYS = USAGE_GROUP_BYS;
14453
14538
  exports.USAGE_MODES = USAGE_MODES;
14454
14539
  exports.VARIABLES_HANDLE_ID = VARIABLES_HANDLE_ID;
14455
14540
  exports.VARIABLE_PRICING_MODELS = VARIABLE_PRICING_MODELS;
@@ -14802,6 +14887,7 @@ exports.resolveLocationFields = resolveLocationFields;
14802
14887
  exports.resolveLocationPresetCatalog = resolveLocationPresetCatalog;
14803
14888
  exports.resolveLottieOverlaySrc = resolveLottieOverlaySrc;
14804
14889
  exports.resolveNodeRefs = resolveNodeRefs;
14890
+ exports.resolveNormalizedImageGen = resolveNormalizedImageGen;
14805
14891
  exports.resolveObjectAspectRatio = resolveObjectAspectRatio;
14806
14892
  exports.resolvePipelineModel = resolvePipelineModel;
14807
14893
  exports.resolveRelativeWindowToken = resolveRelativeWindowToken;
@@ -14844,8 +14930,10 @@ exports.splitByLoopDelimiter = splitByLoopDelimiter;
14844
14930
  exports.splitGeneratedItems = splitGeneratedItems;
14845
14931
  exports.spreadJsonArrayIfSingleton = spreadJsonArrayIfSingleton;
14846
14932
  exports.stringifyPathResults = stringifyPathResults;
14933
+ exports.stripDerivedAnalysisFields = stripDerivedAnalysisFields;
14847
14934
  exports.stripExportContent = stripExportContent;
14848
14935
  exports.stripTransientRuntimeData = stripTransientRuntimeData;
14936
+ exports.sunoCreditType = sunoCreditType;
14849
14937
  exports.supportedDefaultDimensions = supportedDefaultDimensions;
14850
14938
  exports.supportsAdvancedMode = supportsAdvancedMode;
14851
14939
  exports.supportsEndAnchor = supportsEndAnchor;