UNPKG

@imgly/plugin-ai-image-generation-web

Version:

AI image generation plugin for the CE.SDK editor

4 lines 1.25 MB
{ "version": 3, "sources": ["../../../../node_modules/.pnpm/@fal-ai+client@1.6.2/libs/client/src/middleware.ts", "../../../../node_modules/.pnpm/@fal-ai+client@1.6.2/libs/client/src/response.ts", "../../../../node_modules/.pnpm/@fal-ai+client@1.6.2/libs/client/src/utils.ts", "../../../../node_modules/.pnpm/@fal-ai+client@1.6.2/libs/client/src/retry.ts", "../../../../node_modules/.pnpm/@fal-ai+client@1.6.2/node_modules/@fal-ai/client/package.json", "../../../../node_modules/.pnpm/@fal-ai+client@1.6.2/libs/client/src/runtime.ts", "../../../../node_modules/.pnpm/@fal-ai+client@1.6.2/libs/client/src/config.ts", "../../../../node_modules/.pnpm/@fal-ai+client@1.6.2/libs/client/src/request.ts", "../../../../node_modules/.pnpm/eventsource-parser@1.1.2/node_modules/eventsource-parser/src/parse.ts", "../../../../node_modules/.pnpm/@fal-ai+client@1.6.2/libs/client/src/auth.ts", "../../../../node_modules/.pnpm/@fal-ai+client@1.6.2/libs/client/src/streaming.ts", "../../../../node_modules/.pnpm/@fal-ai+client@1.6.2/libs/client/src/queue.ts", "../../../../node_modules/.pnpm/@msgpack+msgpack@3.1.2/node_modules/@msgpack/msgpack/src/utils/utf8.ts", "../../../../node_modules/.pnpm/@msgpack+msgpack@3.1.2/node_modules/@msgpack/msgpack/src/ExtData.ts", "../../../../node_modules/.pnpm/@msgpack+msgpack@3.1.2/node_modules/@msgpack/msgpack/src/DecodeError.ts", "../../../../node_modules/.pnpm/@msgpack+msgpack@3.1.2/node_modules/@msgpack/msgpack/src/utils/int.ts", "../../../../node_modules/.pnpm/@msgpack+msgpack@3.1.2/node_modules/@msgpack/msgpack/src/timestamp.ts", "../../../../node_modules/.pnpm/@msgpack+msgpack@3.1.2/node_modules/@msgpack/msgpack/src/ExtensionCodec.ts", "../../../../node_modules/.pnpm/@msgpack+msgpack@3.1.2/node_modules/@msgpack/msgpack/src/utils/typedArrays.ts", "../../../../node_modules/.pnpm/@msgpack+msgpack@3.1.2/node_modules/@msgpack/msgpack/src/Encoder.ts", "../../../../node_modules/.pnpm/@msgpack+msgpack@3.1.2/node_modules/@msgpack/msgpack/src/encode.ts", "../../../../node_modules/.pnpm/@msgpack+msgpack@3.1.2/node_modules/@msgpack/msgpack/src/utils/prettyByte.ts", "../../../../node_modules/.pnpm/@msgpack+msgpack@3.1.2/node_modules/@msgpack/msgpack/src/CachedKeyDecoder.ts", "../../../../node_modules/.pnpm/@msgpack+msgpack@3.1.2/node_modules/@msgpack/msgpack/src/Decoder.ts", "../../../../node_modules/.pnpm/@msgpack+msgpack@3.1.2/node_modules/@msgpack/msgpack/src/decode.ts", "../../../../node_modules/.pnpm/@msgpack+msgpack@3.1.2/node_modules/@msgpack/msgpack/src/utils/stream.ts", "../../../../node_modules/.pnpm/@msgpack+msgpack@3.1.2/node_modules/@msgpack/msgpack/src/decodeAsync.ts", "../../../../node_modules/.pnpm/@msgpack+msgpack@3.1.2/node_modules/@msgpack/msgpack/src/index.ts", "../../../../node_modules/.pnpm/robot3@0.4.1/node_modules/robot3/dist/machine.js", "../../../../node_modules/.pnpm/@fal-ai+client@1.6.2/libs/client/src/realtime.ts", "../../../../node_modules/.pnpm/@fal-ai+client@1.6.2/libs/client/src/storage.ts", "../../../../node_modules/.pnpm/@fal-ai+client@1.6.2/libs/client/src/client.ts", "../../../../node_modules/.pnpm/@fal-ai+client@1.6.2/libs/client/src/types/common.ts", "../../../../node_modules/.pnpm/@fal-ai+client@1.6.2/libs/client/src/index.ts", "../../../plugin-utils/src/icons/formats.ts", "../../../plugin-utils/src/assetSources/CustomAssetSource.ts", "../../../plugin-utils/src/assetSources/IndexedDBAssetSource.ts", "../../../plugin-utils/src/assetSources/AggregatedAssetSource.ts", "../../../plugin-utils/src/metadata/Metadata.ts", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBuffer.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnary.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nodeUtil.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isTypedArray.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overArg.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Stack.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubArray.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheAdd.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheHas.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_SetCache.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arraySome.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cacheHas.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalArrays.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapToArray.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToArray.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalByTag.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalObjects.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqualDeep.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqual.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEqual.js", "../../../plugin-utils/src/metadata/FillProcessingMetadata.ts", "../../../plugin-utils/src/processing/fillProcessing.ts", "../../../plugin-utils/src/processing/constants.ts", "../../../plugin-utils/src/processing/initializeFillProcessing.ts", "../../../plugin-utils/src/processing/registerFillProcessingComponents.ts", "../../../plugin-utils/src/utils/colors.ts", "../../../plugin-utils/src/utils/upload.ts", "../../../plugin-utils/src/utils/uuid.ts", "../../../plugin-utils/src/utils/images.ts", "../../../plugin-utils/src/utils/isDefined.ts", "../../../plugin-utils/src/utils/toArray.ts", "../../../plugin-utils/src/translationHelpers.ts", "../../../plugin-utils/src/index.ts", "../../../plugin-ai-generation-web/src/ui/common/renderImageUrlProperty.ts", "../../../plugin-utils/src/icons/formats.ts", "../../../plugin-utils/src/assetSources/CustomAssetSource.ts", "../../../plugin-utils/src/assetSources/IndexedDBAssetSource.ts", "../../../plugin-utils/src/assetSources/AggregatedAssetSource.ts", "../../../plugin-utils/src/metadata/Metadata.ts", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBuffer.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnary.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nodeUtil.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isTypedArray.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overArg.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Stack.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubArray.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheAdd.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheHas.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_SetCache.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arraySome.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cacheHas.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalArrays.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapToArray.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToArray.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalByTag.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalObjects.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqualDeep.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqual.js", "../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEqual.js", "../../../plugin-utils/src/metadata/FillProcessingMetadata.ts", "../../../plugin-utils/src/processing/fillProcessing.ts", "../../../plugin-utils/src/processing/constants.ts", "../../../plugin-utils/src/processing/initializeFillProcessing.ts", "../../../plugin-utils/src/processing/registerFillProcessingComponents.ts", "../../../plugin-utils/src/utils/colors.ts", "../../../plugin-utils/src/utils/upload.ts", "../../../plugin-utils/src/utils/uuid.ts", "../../../plugin-utils/src/utils/images.ts", "../../../plugin-utils/src/utils/isDefined.ts", "../../../plugin-utils/src/utils/toArray.ts", "../../../plugin-utils/src/translationHelpers.ts", "../../../plugin-utils/src/index.ts", "../../../plugin-ai-generation-web/src/ui/common/renderStyleTransferProperty.ts", "../../../plugin-ai-generation-web/src/utils/propertyContext.ts", "../../../plugin-ai-generation-web/src/utils/propertyResolver.ts", "../../../plugin-ai-generation-web/src/assets/integrateIntoDefaultAssetLibraryEntry.ts", "../../../plugin-ai-generation-web/src/core/ActionRegistry.ts", "../../../plugin-ai-generation-web/src/core/ProviderRegistry.ts", "../../../plugin-ai-generation-web/src/middleware/middleware.ts", "../../../plugin-ai-generation-web/src/middleware/loggingMiddleware.ts", "../../../plugin-ai-generation-web/src/utils/utils.ts", "../../../plugin-ai-generation-web/src/middleware/uploadMiddleware.ts", "../../../plugin-ai-generation-web/src/utils/mergeQuickActionsConfig.ts", "../../../plugin-ai-generation-web/src/middleware/rateLimitMiddleware.ts", "../../../plugin-ai-generation-web/src/utils/checkAiPluginVersion.ts", "../../../plugin-ai-generation-web/src/ui/components/registerDockComponent.ts", "../../../plugin-ai-generation-web/src/ui/quickActions/enableImageFill.ts", "../../../plugin-ai-generation-web/src/generation/handleGenerationError.ts", "../../../plugin-ai-generation-web/src/assets/previewUri.ts", "../../../plugin-ai-generation-web/src/assets/getAssetResultForPlaceholder.ts", "../../../plugin-ai-generation-web/src/assets/getAssetResultForGenerated.ts", "../../../plugin-ai-generation-web/src/generation/handleGenerateFromPanel.ts", "../../../plugin-ai-generation-web/src/ui/components/renderGenerationComponents.ts", "../../../plugin-ai-generation-web/src/ui/panels/createPanelRenderFunctionFromCustom.ts", "../../../plugin-ai-generation-web/src/openapi/dereferenceDocument.ts", "../../../plugin-ai-generation-web/src/openapi/isOpenAPISchema.ts", "../../../plugin-ai-generation-web/src/openapi/getProperties.ts", "../../../plugin-ai-generation-web/src/openapi/renderProperty.ts", "../../../plugin-ai-generation-web/src/openapi/defaultTranslations.ts", "../../../plugin-ai-generation-web/src/openapi/extractSchemaTranslations.ts", "../../../plugin-ai-generation-web/src/ui/panels/createPanelRenderFunctionFromSchema.ts", "../../../plugin-ai-generation-web/src/ui/panels/createPanelRenderFunction.ts", "../../../plugin-ai-generation-web/src/assets/initializeHistoryAssetSource.ts", "../../../plugin-ai-generation-web/src/assets/initializeHistoryAssetLibraryEntry.ts", "../../../plugin-ai-generation-web/src/ui/icons.ts", "../../../plugin-ai-generation-web/src/middleware/dryRunMiddleware.ts", "../../../plugin-ai-generation-web/src/core/constants.ts", "../../../plugin-ai-generation-web/src/generation/createGenerateFunction.ts", "../../../plugin-ai-generation-web/src/providers/initializeProvider.ts", "../../../plugin-ai-generation-web/src/assets/initializeHistoryCompositeAssetSource.ts", "../../../plugin-ai-generation-web/src/providers/initializeProviders.ts", "../../../plugin-ai-generation-web/src/ui/quickActions/utils.ts", "../../../plugin-ai-generation-web/src/ui/panels/createConfirmationRenderFunction.ts", "../../../plugin-ai-generation-web/src/utils/compactSeparators.ts", "../../../plugin-ai-generation-web/src/providers/getCanvasMenuComponentId.ts", "../../../plugin-ai-generation-web/src/ui/quickActions/getQuickActionOrder.ts", "../../../plugin-ai-generation-web/src/providers/getApplyCallbacks.ts", "../../../plugin-ai-generation-web/src/utils/lockSelectionToEditMode.ts", "../../../plugin-ai-generation-web/src/generation/CallbacksRegistry.ts", "../../../plugin-ai-generation-web/src/generation/handleGenerateFromQuickAction.ts", "../../../plugin-ai-generation-web/src/ui/quickActions/createQuickActionMenuRenderFunction.ts", "../../../plugin-ai-generation-web/src/ui/quickActions/initializeQuickActionComponents.ts", "../../../plugin-ai-generation-web/src/utils/translationHelpers.ts", "../../../plugin-ai-generation-web/src/index.ts", "../../src/fal-ai/RecraftV3.json", "../../src/fal-ai/RecraftV3.constants.ts", "../../src/fal-ai/createFalClient.ts", "../../src/fal-ai/utils.ts", "../../src/fal-ai/createImageProvider.ts", "../../src/fal-ai/Recraft20b.constants.ts", "../../src/fal-ai/recraftUtils.ts", "../../src/fal-ai/RecraftV3.ts", "../../src/fal-ai/Recraft20b.json", "../../src/fal-ai/Recraft20b.ts", "../../src/fal-ai/GeminiFlash25.json", "../../src/fal-ai/GeminiFlash25.ts", "../../src/fal-ai/Gemini25FlashImageEdit.json", "../../src/fal-ai/Gemini25FlashImageEdit.ts", "../../src/fal-ai/GeminiFlashEdit.json", "../../src/fal-ai/GeminiFlashEdit.ts", "../../src/fal-ai/FluxProKontextEdit.json", "../../src/fal-ai/FluxProKontextEdit.ts", "../../src/fal-ai/FluxProKontextMaxEdit.json", "../../src/fal-ai/FluxProKontextMaxEdit.ts", "../../src/fal-ai/IdeogramV3.json", "../../src/fal-ai/IdeogramV3.constants.ts", "../../src/fal-ai/IdeogramV3.ts", "../../src/fal-ai/IdeogramV3Remix.json", "../../src/fal-ai/IdeogramV3Remix.constants.ts", "../../src/fal-ai/IdeogramV3Remix.ts", "../../src/fal-ai/QwenImageEdit.json", "../../src/fal-ai/QwenImageEdit.ts", "../../src/fal-ai/NanoBanana.json", "../../src/fal-ai/NanoBanana.ts", "../../src/fal-ai/NanoBananaEdit.json", "../../src/fal-ai/NanoBananaEdit.ts", "../../src/fal-ai/NanoBananaPro.json", "../../src/fal-ai/NanoBananaPro.ts", "../../src/fal-ai/NanoBananaProEdit.json", "../../src/fal-ai/NanoBananaProEdit.ts", "../../src/fal-ai/SeedreamV4.json", "../../src/fal-ai/SeedreamV4.constants.ts", "../../src/fal-ai/SeedreamV4.ts", "../../src/fal-ai/SeedreamV4Edit.json", "../../src/fal-ai/SeedreamV4Edit.ts", "../../src/fal-ai/index.ts"], "sourcesContent": ["/**\n * A request configuration object.\n *\n * **Note:** This is a simplified version of the `RequestConfig` type from the\n * `fetch` API. It contains only the properties that are relevant for the\n * fal client. It also works around the fact that the `fetch` API `Request`\n * does not support mutability, its clone method has critical limitations\n * to our use case.\n */\nexport type RequestConfig = {\n url: string;\n method: string;\n headers?: Record<string, string | string[]>;\n};\n\nexport type RequestMiddleware = (\n request: RequestConfig,\n) => Promise<RequestConfig>;\n\n/**\n * Setup a execution chain of middleware functions.\n *\n * @param middlewares one or more middleware functions.\n * @returns a middleware function that executes the given middlewares in order.\n */\nexport function withMiddleware(\n ...middlewares: RequestMiddleware[]\n): RequestMiddleware {\n const isDefined = (middleware: RequestMiddleware): boolean =>\n typeof middleware === \"function\";\n\n return async (config: RequestConfig) => {\n let currentConfig = { ...config };\n for (const middleware of middlewares.filter(isDefined)) {\n currentConfig = await middleware(currentConfig);\n }\n return currentConfig;\n };\n}\n\nexport type RequestProxyConfig = {\n targetUrl: string;\n};\n\nexport const TARGET_URL_HEADER = \"x-fal-target-url\";\n\nexport function withProxy(config: RequestProxyConfig): RequestMiddleware {\n const passthrough = (requestConfig: RequestConfig) =>\n Promise.resolve(requestConfig);\n // when running on the server, we don't need to proxy the request\n if (typeof window === \"undefined\") {\n return passthrough;\n }\n // if x-fal-target-url is already set, we skip it\n return (requestConfig) =>\n requestConfig.headers && TARGET_URL_HEADER in requestConfig\n ? passthrough(requestConfig)\n : Promise.resolve({\n ...requestConfig,\n url: config.targetUrl,\n headers: {\n ...(requestConfig.headers || {}),\n [TARGET_URL_HEADER]: requestConfig.url,\n },\n });\n}\n", "import { RequiredConfig } from \"./config\";\nimport { Result, ValidationErrorInfo } from \"./types/common\";\n\nexport type ResponseHandler<Output> = (response: Response) => Promise<Output>;\n\nconst REQUEST_ID_HEADER = \"x-fal-request-id\";\n\nexport type ResponseHandlerCreator<Output> = (\n config: RequiredConfig,\n) => ResponseHandler<Output>;\n\ntype ApiErrorArgs = {\n message: string;\n status: number;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n body?: any;\n};\n\nexport class ApiError<Body> extends Error {\n public readonly status: number;\n public readonly body: Body;\n constructor({ message, status, body }: ApiErrorArgs) {\n super(message);\n this.name = \"ApiError\";\n this.status = status;\n this.body = body;\n }\n}\n\ntype ValidationErrorBody = {\n detail: ValidationErrorInfo[];\n};\n\nexport class ValidationError extends ApiError<ValidationErrorBody> {\n constructor(args: ApiErrorArgs) {\n super(args);\n this.name = \"ValidationError\";\n }\n\n get fieldErrors(): ValidationErrorInfo[] {\n // NOTE: this is a hack to support both FastAPI/Pydantic errors\n // and some custom 422 errors that might not be in the Pydantic format.\n if (typeof this.body.detail === \"string\") {\n return [\n {\n loc: [\"body\"],\n msg: this.body.detail,\n type: \"value_error\",\n },\n ];\n }\n return this.body.detail || [];\n }\n\n getFieldErrors(field: string): ValidationErrorInfo[] {\n return this.fieldErrors.filter(\n (error) => error.loc[error.loc.length - 1] === field,\n );\n }\n}\n\nexport async function defaultResponseHandler<Output>(\n response: Response,\n): Promise<Output> {\n const { status, statusText } = response;\n const contentType = response.headers.get(\"Content-Type\") ?? \"\";\n if (!response.ok) {\n if (contentType.includes(\"application/json\")) {\n const body = await response.json();\n const ErrorType = status === 422 ? ValidationError : ApiError;\n throw new ErrorType({\n message: body.message || statusText,\n status,\n body,\n });\n }\n throw new ApiError({ message: `HTTP ${status}: ${statusText}`, status });\n }\n if (contentType.includes(\"application/json\")) {\n return response.json() as Promise<Output>;\n }\n if (contentType.includes(\"text/html\")) {\n return response.text() as Promise<Output>;\n }\n if (contentType.includes(\"application/octet-stream\")) {\n return response.arrayBuffer() as Promise<Output>;\n }\n // TODO convert to either number or bool automatically\n return response.text() as Promise<Output>;\n}\n\nexport async function resultResponseHandler<Output>(\n response: Response,\n): Promise<Result<Output>> {\n const data = await defaultResponseHandler<Output>(response);\n return {\n data,\n requestId: response.headers.get(REQUEST_ID_HEADER) || \"\",\n } satisfies Result<Output>;\n}\n", "export function ensureEndpointIdFormat(id: string): string {\n const parts = id.split(\"/\");\n if (parts.length > 1) {\n return id;\n }\n const [, appOwner, appId] = /^([0-9]+)-([a-zA-Z0-9-]+)$/.exec(id) || [];\n if (appOwner && appId) {\n return `${appOwner}/${appId}`;\n }\n throw new Error(\n `Invalid app id: ${id}. Must be in the format <appOwner>/<appId>`,\n );\n}\n\nconst ENDPOINT_NAMESPACES = [\"workflows\", \"comfy\"] as const;\n\ntype EndpointNamespace = (typeof ENDPOINT_NAMESPACES)[number];\n\nexport type EndpointId = {\n readonly owner: string;\n readonly alias: string;\n readonly path?: string;\n readonly namespace?: EndpointNamespace;\n};\n\nexport function parseEndpointId(id: string): EndpointId {\n const normalizedId = ensureEndpointIdFormat(id);\n const parts = normalizedId.split(\"/\");\n if (ENDPOINT_NAMESPACES.includes(parts[0] as any)) {\n return {\n owner: parts[1],\n alias: parts[2],\n path: parts.slice(3).join(\"/\") || undefined,\n namespace: parts[0] as EndpointNamespace,\n };\n }\n return {\n owner: parts[0],\n alias: parts[1],\n path: parts.slice(2).join(\"/\") || undefined,\n };\n}\n\nexport function isValidUrl(url: string) {\n try {\n const { host } = new URL(url);\n return /(fal\\.(ai|run))$/.test(host);\n } catch (_) {\n return false;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function throttle<T extends (...args: any[]) => any>(\n func: T,\n limit: number,\n leading = false,\n): (...funcArgs: Parameters<T>) => ReturnType<T> | void {\n let lastFunc: NodeJS.Timeout | null;\n let lastRan: number;\n\n return (...args: Parameters<T>): ReturnType<T> | void => {\n if (!lastRan && leading) {\n func(...args);\n lastRan = Date.now();\n } else {\n if (lastFunc) {\n clearTimeout(lastFunc);\n }\n\n lastFunc = setTimeout(\n () => {\n if (Date.now() - lastRan >= limit) {\n func(...args);\n lastRan = Date.now();\n }\n },\n limit - (Date.now() - lastRan),\n );\n }\n };\n}\n\nlet isRunningInReact: boolean | undefined;\n\n/**\n * Not really the most optimal way to detect if we're running in React,\n * but the idea here is that we can support multiple rendering engines\n * (starting with React), with all their peculiarities, without having\n * to add a dependency or creating custom integrations (e.g. custom hooks).\n *\n * Yes, a bit of magic to make things works out-of-the-box.\n * @returns `true` if running in React, `false` otherwise.\n */\nexport function isReact() {\n if (isRunningInReact === undefined) {\n const stack = new Error().stack;\n isRunningInReact =\n !!stack &&\n (stack.includes(\"node_modules/react-dom/\") ||\n stack.includes(\"node_modules/next/\"));\n }\n return isRunningInReact;\n}\n\n/**\n * Check if a value is a plain object.\n * @param value - The value to check.\n * @returns `true` if the value is a plain object, `false` otherwise.\n */\nexport function isPlainObject(value: any): boolean {\n return !!value && Object.getPrototypeOf(value) === Object.prototype;\n}\n\n/**\n * Utility function to sleep for a given number of milliseconds\n */\nexport async function sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n", "import { ApiError } from \"./response\";\nimport { sleep } from \"./utils\";\n\nexport type RetryOptions = {\n maxRetries: number;\n baseDelay: number;\n maxDelay: number;\n backoffMultiplier: number;\n retryableStatusCodes: number[];\n enableJitter: boolean;\n};\n\n/**\n * Base retryable status codes for most requests\n */\nexport const DEFAULT_RETRYABLE_STATUS_CODES = [429, 502, 503, 504];\n\nexport const DEFAULT_RETRY_OPTIONS: RetryOptions = {\n maxRetries: 3,\n baseDelay: 1000,\n maxDelay: 30000,\n backoffMultiplier: 2,\n retryableStatusCodes: DEFAULT_RETRYABLE_STATUS_CODES,\n enableJitter: true,\n};\n\n/**\n * Determines if an error is retryable based on the status code\n */\nexport function isRetryableError(\n error: any,\n retryableStatusCodes: number[],\n): boolean {\n return (\n error instanceof ApiError && retryableStatusCodes.includes(error.status)\n );\n}\n\n/**\n * Calculates the backoff delay for a given attempt using exponential backoff\n */\nexport function calculateBackoffDelay(\n attempt: number,\n baseDelay: number,\n maxDelay: number,\n backoffMultiplier: number,\n enableJitter: boolean,\n): number {\n const exponentialDelay = Math.min(\n baseDelay * Math.pow(backoffMultiplier, attempt),\n maxDelay,\n );\n\n if (enableJitter) {\n // Add ±25% jitter to prevent thundering herd\n const jitter = 0.25 * exponentialDelay * (Math.random() * 2 - 1);\n return Math.max(0, exponentialDelay + jitter);\n }\n\n return exponentialDelay;\n}\n\n/**\n * Retry metrics for tracking retry attempts\n */\nexport interface RetryMetrics {\n totalAttempts: number;\n totalDelay: number;\n lastError?: any;\n}\n\n/**\n * Executes an operation with retry logic and returns both result and metrics\n */\nexport async function executeWithRetry<T>(\n operation: () => Promise<T>,\n options: RetryOptions,\n onRetry?: (attempt: number, error: any, delay: number) => void,\n): Promise<{ result: T; metrics: RetryMetrics }> {\n const metrics: RetryMetrics = {\n totalAttempts: 0,\n totalDelay: 0,\n };\n\n let lastError: any;\n\n for (let attempt = 0; attempt <= options.maxRetries; attempt++) {\n metrics.totalAttempts++;\n\n try {\n const result = await operation();\n return { result, metrics };\n } catch (error) {\n lastError = error;\n metrics.lastError = error;\n\n if (\n attempt === options.maxRetries ||\n !isRetryableError(error, options.retryableStatusCodes)\n ) {\n throw error;\n }\n\n const delay = calculateBackoffDelay(\n attempt,\n options.baseDelay,\n options.maxDelay,\n options.backoffMultiplier,\n options.enableJitter,\n );\n\n metrics.totalDelay += delay;\n\n if (onRetry) {\n onRetry(attempt + 1, error, delay);\n }\n\n await sleep(delay);\n }\n }\n\n throw lastError;\n}\n", "{\n \"name\": \"@fal-ai/client\",\n \"description\": \"The fal.ai client for JavaScript and TypeScript\",\n \"version\": \"1.6.2\",\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/fal-ai/fal-js.git\",\n \"directory\": \"libs/client\"\n },\n \"keywords\": [\n \"fal\",\n \"client\",\n \"ai\",\n \"ml\",\n \"typescript\"\n ],\n \"exports\": {\n \".\": \"./src/index.js\",\n \"./endpoints\": \"./src/types/endpoints.js\"\n },\n \"typesVersions\": {\n \"*\": {\n \"endpoints\": [\n \"src/types/endpoints.d.ts\"\n ]\n }\n },\n \"main\": \"./src/index.js\",\n \"types\": \"./src/index.d.ts\",\n \"dependencies\": {\n \"@msgpack/msgpack\": \"^3.0.0-beta2\",\n \"eventsource-parser\": \"^1.1.2\",\n \"robot3\": \"^0.4.1\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\"\n },\n \"type\": \"commonjs\"\n}\n", "/* eslint-disable @typescript-eslint/no-var-requires */\n\nexport function isBrowser(): boolean {\n return (\n typeof window !== \"undefined\" && typeof window.document !== \"undefined\"\n );\n}\n\nlet memoizedUserAgent: string | null = null;\n\nexport function getUserAgent(): string {\n if (memoizedUserAgent !== null) {\n return memoizedUserAgent;\n }\n const packageInfo = require(\"../package.json\");\n memoizedUserAgent = `${packageInfo.name}/${packageInfo.version}`;\n return memoizedUserAgent;\n}\n", "import {\n withMiddleware,\n withProxy,\n type RequestMiddleware,\n} from \"./middleware\";\nimport type { ResponseHandler } from \"./response\";\nimport { defaultResponseHandler } from \"./response\";\nimport { DEFAULT_RETRY_OPTIONS, type RetryOptions } from \"./retry\";\nimport { isBrowser } from \"./runtime\";\n\nexport type CredentialsResolver = () => string | undefined;\n\ntype FetchType = typeof fetch;\n\nexport function resolveDefaultFetch(): FetchType {\n if (typeof fetch === \"undefined\") {\n throw new Error(\n \"Your environment does not support fetch. Please provide your own fetch implementation.\",\n );\n }\n return fetch;\n}\n\nexport type Config = {\n /**\n * The credentials to use for the fal client. When using the\n * client in the browser, it's recommended to use a proxy server to avoid\n * exposing the credentials in the client's environment.\n *\n * By default it tries to use the `FAL_KEY` environment variable, when\n * `process.env` is defined.\n *\n * @see https://fal.ai/docs/model-endpoints/server-side\n * @see #suppressLocalCredentialsWarning\n */\n credentials?: undefined | string | CredentialsResolver;\n /**\n * Suppresses the warning when the fal credentials are exposed in the\n * browser's environment. Make sure you understand the security implications\n * before enabling this option.\n */\n suppressLocalCredentialsWarning?: boolean;\n /**\n * The URL of the proxy server to use for the client requests. The proxy\n * server should forward the requests to the fal api.\n */\n proxyUrl?: string;\n /**\n * The request middleware to use for the client requests. By default it\n * doesn't apply any middleware.\n */\n requestMiddleware?: RequestMiddleware;\n /**\n * The response handler to use for the client requests. By default it uses\n * a built-in response handler that returns the JSON response.\n */\n responseHandler?: ResponseHandler<any>;\n /**\n * The fetch implementation to use for the client requests. By default it uses\n * the global `fetch` function.\n */\n fetch?: FetchType;\n /**\n * Retry configuration for handling transient errors like rate limiting and server errors.\n * When not specified, a default retry configuration is used.\n */\n retry?: Partial<RetryOptions>;\n};\n\nexport type RequiredConfig = Required<Config>;\n\n/**\n * Checks if the required FAL environment variables are set.\n *\n * @returns `true` if the required environment variables are set,\n * `false` otherwise.\n */\nfunction hasEnvVariables(): boolean {\n return (\n typeof process !== \"undefined\" &&\n process.env &&\n (typeof process.env.FAL_KEY !== \"undefined\" ||\n (typeof process.env.FAL_KEY_ID !== \"undefined\" &&\n typeof process.env.FAL_KEY_SECRET !== \"undefined\"))\n );\n}\n\nexport const credentialsFromEnv: CredentialsResolver = () => {\n if (!hasEnvVariables()) {\n return undefined;\n }\n\n if (typeof process.env.FAL_KEY !== \"undefined\") {\n return process.env.FAL_KEY;\n }\n\n return process.env.FAL_KEY_ID\n ? `${process.env.FAL_KEY_ID}:${process.env.FAL_KEY_SECRET}`\n : undefined;\n};\n\nconst DEFAULT_CONFIG: Partial<Config> = {\n credentials: credentialsFromEnv,\n suppressLocalCredentialsWarning: false,\n requestMiddleware: (request) => Promise.resolve(request),\n responseHandler: defaultResponseHandler,\n retry: DEFAULT_RETRY_OPTIONS,\n};\n\n/**\n * Configures the fal client.\n *\n * @param config the new configuration.\n */\nexport function createConfig(config: Config): RequiredConfig {\n let configuration = {\n ...DEFAULT_CONFIG,\n ...config,\n fetch: config.fetch ?? resolveDefaultFetch(),\n // Merge retry configuration with defaults\n retry: {\n ...DEFAULT_RETRY_OPTIONS,\n ...(config.retry || {}),\n },\n } as RequiredConfig;\n if (config.proxyUrl) {\n configuration = {\n ...configuration,\n requestMiddleware: withMiddleware(\n configuration.requestMiddleware,\n withProxy({ targetUrl: config.proxyUrl }),\n ),\n };\n }\n const { credentials: resolveCredentials, suppressLocalCredentialsWarning } =\n configuration;\n const credentials =\n typeof resolveCredentials === \"function\"\n ? resolveCredentials()\n : resolveCredentials;\n if (isBrowser() && credentials && !suppressLocalCredentialsWarning) {\n console.warn(\n \"The fal credentials are exposed in the browser's environment. \" +\n \"That's not recommended for production use cases.\",\n );\n }\n return configuration;\n}\n\n/**\n * @returns the URL of the fal REST api endpoint.\n */\nexport function getRestApiUrl(): string {\n return \"https://rest.alpha.fal.ai\";\n}\n", "import { RequiredConfig } from \"./config\";\nimport { ResponseHandler } from \"./response\";\nimport {\n calculateBackoffDelay,\n isRetryableError,\n type RetryOptions,\n} from \"./retry\";\nimport { getUserAgent, isBrowser } from \"./runtime\";\nimport { RunOptions, UrlOptions } from \"./types/common\";\nimport { ensureEndpointIdFormat, isValidUrl, sleep } from \"./utils\";\n\nconst isCloudflareWorkers =\n typeof navigator !== \"undefined\" &&\n navigator?.userAgent === \"Cloudflare-Workers\";\n\ntype RequestOptions = {\n responseHandler?: ResponseHandler<any>;\n /**\n * Retry configuration for this specific request.\n * If not specified, uses the default retry configuration from the client config.\n */\n retry?: Partial<RetryOptions>;\n};\n\ntype RequestParams<Input = any> = {\n method?: string;\n targetUrl: string;\n input?: Input;\n config: RequiredConfig;\n options?: RequestOptions & RequestInit;\n headers?: Record<string, string>;\n};\n\nexport async function dispatchRequest<Input, Output>(\n params: RequestParams<Input>,\n): Promise<Output> {\n const { targetUrl, input, config, options = {} } = params;\n const {\n credentials: credentialsValue,\n requestMiddleware,\n responseHandler,\n fetch,\n } = config;\n\n const retryOptions: RetryOptions = {\n ...config.retry,\n ...(options.retry || {}),\n } as RetryOptions;\n\n const executeRequest = async (): Promise<Output> => {\n const userAgent = isBrowser() ? {} : { \"User-Agent\": getUserAgent() };\n const credentials =\n typeof credentialsValue === \"function\"\n ? credentialsValue()\n : credentialsValue;\n\n const { method, url, headers } = await requestMiddleware({\n method: (params.method ?? options.method ?? \"post\").toUpperCase(),\n url: targetUrl,\n headers: params.headers,\n });\n const authHeader = credentials\n ? { Authorization: `Key ${credentials}` }\n : {};\n const requestHeaders = {\n ...authHeader,\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n ...userAgent,\n ...(headers ?? {}),\n } as HeadersInit;\n\n const {\n responseHandler: customResponseHandler,\n retry: _,\n ...requestInit\n } = options;\n const response = await fetch(url, {\n ...requestInit,\n method,\n headers: {\n ...requestHeaders,\n ...(requestInit.headers ?? {}),\n },\n ...(!isCloudflareWorkers && { mode: \"cors\" }),\n signal: options.signal,\n body:\n method.toLowerCase() !== \"get\" && input\n ? JSON.stringify(input)\n : undefined,\n });\n const handleResponse = customResponseHandler ?? responseHandler;\n return await handleResponse(response);\n };\n\n let lastError: any;\n for (let attempt = 0; attempt <= retryOptions.maxRetries; attempt++) {\n try {\n return await executeRequest();\n } catch (error) {\n lastError = error;\n\n const shouldNotRetry =\n attempt === retryOptions.maxRetries ||\n !isRetryableError(error, retryOptions.retryableStatusCodes) ||\n options.signal?.aborted;\n if (shouldNotRetry) {\n throw error;\n }\n\n const delay = calculateBackoffDelay(\n attempt,\n retryOptions.baseDelay,\n retryOptions.maxDelay,\n retryOptions.backoffMultiplier,\n retryOptions.enableJitter,\n );\n\n await sleep(delay);\n }\n }\n\n throw lastError;\n}\n\n/**\n * Builds the final url to run the function based on its `id` or alias and\n * a the options from `RunOptions<Input>`.\n *\n * @private\n * @param id the function id or alias\n * @param options the run options\n * @returns the final url to run the function\n */\nexport function buildUrl<Input>(\n id: string,\n options: RunOptions<Input> & UrlOptions = {},\n): string {\n const method = (options.method ?? \"post\").toLowerCase();\n const path = (options.path ?? \"\").replace(/^\\//, \"\").replace(/\\/{2,}/, \"/\");\n const input = options.input;\n const params = {\n ...(options.query || {}),\n ...(method === \"get\" ? input : {}),\n };\n\n const queryParams =\n Object.keys(params).length > 0\n ? `?${new URLSearchParams(params).toString()}`\n : \"\";\n\n // if a fal url is passed, just use it\n if (isValidUrl(id)) {\n const url = id.endsWith(\"/\") ? id : `${id}/`;\n return `${url}${path}${queryParams}`;\n }\n\n const appId = ensureEndpointIdFormat(id);\n const subdomain = options.subdomain ? `${options.subdomain}.` : \"\";\n const url = `https://${subdomain}fal.run/${appId}/${path}`;\n return `${url.replace(/\\/$/, \"\")}${queryParams}`;\n}\n", "/**\n * EventSource/Server-Sent Events parser\n * @see https://html.spec.whatwg.org/multipage/server-sent-events.html\n *\n * Based on code from the {@link https://github.com/EventSource/eventsource | EventSource module},\n * which is licensed under the MIT license. And copyrighted the EventSource GitHub organisation.\n */\nimport type {EventSourceParseCallback, EventSourceParser} from './types.js'\n\n/**\n * Creates a new EventSource parser.\n *\n * @param onParse - Callback to invoke when a new event is parsed, or a new reconnection interval\n * has been sent from the server\n *\n * @returns A new EventSource parser, with `parse` and `reset` methods.\n * @public\n */\nexport function createParser(onParse: EventSourceParseCallback): EventSourceParser {\n // Processing state\n let isFirstChunk: boolean\n let buffer: string\n let startingPosition: number\n let startingFieldLength: number\n\n