monorise 1.0.0 → 1.1.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/dist/base/index.d.ts +110 -3
  2. package/dist/base/index.js +3 -1
  3. package/dist/base/index.js.map +1 -1
  4. package/dist/cli/cli.js +6 -0
  5. package/dist/cli/cli.js.map +1 -1
  6. package/dist/core/chunk-QV4Q5377.js +76 -0
  7. package/dist/core/chunk-QV4Q5377.js.map +1 -0
  8. package/dist/core/index.d.ts +191 -38
  9. package/dist/core/index.js +1539 -122
  10. package/dist/core/index.js.map +1 -1
  11. package/dist/core/service.config-ZJEZ6EKA.js +13 -0
  12. package/dist/core/service.config-ZJEZ6EKA.js.map +1 -0
  13. package/dist/proxy/index.d.ts +35 -0
  14. package/dist/proxy/index.js +75 -0
  15. package/dist/proxy/index.js.map +1 -0
  16. package/dist/react/actions/websocket.action.d.ts +71 -0
  17. package/dist/react/actions/websocket.action.d.ts.map +1 -0
  18. package/dist/react/chunk-2QOYO3GF.js +182 -0
  19. package/dist/react/chunk-2QOYO3GF.js.map +1 -0
  20. package/dist/react/chunk-4WSYM746.js +383 -0
  21. package/dist/react/chunk-4WSYM746.js.map +1 -0
  22. package/dist/react/chunk-5XIRNUBL.js +43 -0
  23. package/dist/react/chunk-5XIRNUBL.js.map +1 -0
  24. package/dist/react/chunk-7JDOKZGQ.js +172 -0
  25. package/dist/react/chunk-7JDOKZGQ.js.map +1 -0
  26. package/dist/react/chunk-A5TI2FW3.js +13 -0
  27. package/dist/react/chunk-A5TI2FW3.js.map +1 -0
  28. package/dist/react/chunk-BJXCFDMF.js +15 -0
  29. package/dist/react/chunk-BJXCFDMF.js.map +1 -0
  30. package/dist/react/chunk-BUTF5RJU.js +29 -0
  31. package/dist/react/chunk-BUTF5RJU.js.map +1 -0
  32. package/dist/react/chunk-DTRWUIDH.js +402 -0
  33. package/dist/react/chunk-DTRWUIDH.js.map +1 -0
  34. package/dist/react/chunk-GFVCNWVT.js +54 -0
  35. package/dist/react/chunk-GFVCNWVT.js.map +1 -0
  36. package/dist/react/chunk-JT5EZZSL.js +489 -0
  37. package/dist/react/chunk-JT5EZZSL.js.map +1 -0
  38. package/dist/react/chunk-KJX5LOMN.js +43 -0
  39. package/dist/react/chunk-KJX5LOMN.js.map +1 -0
  40. package/dist/react/chunk-KLXK4V6G.js +65 -0
  41. package/dist/react/chunk-KLXK4V6G.js.map +1 -0
  42. package/dist/react/chunk-LJLMKEKI.js +245 -0
  43. package/dist/react/chunk-LJLMKEKI.js.map +1 -0
  44. package/dist/react/chunk-MIXAYX55.js +147 -0
  45. package/dist/react/chunk-MIXAYX55.js.map +1 -0
  46. package/dist/react/chunk-RPNCWADG.js +248 -0
  47. package/dist/react/chunk-RPNCWADG.js.map +1 -0
  48. package/dist/react/chunk-S6RDMHHH.js +47 -0
  49. package/dist/react/chunk-S6RDMHHH.js.map +1 -0
  50. package/dist/react/chunk-U6RIOMF4.js +893 -0
  51. package/dist/react/chunk-U6RIOMF4.js.map +1 -0
  52. package/dist/react/chunk-WCRLJFBW.js +5568 -0
  53. package/dist/react/chunk-WCRLJFBW.js.map +1 -0
  54. package/dist/react/chunk-YF6S7S36.js +588 -0
  55. package/dist/react/chunk-YF6S7S36.js.map +1 -0
  56. package/dist/react/dist-es-5WYA7CWK.js +379 -0
  57. package/dist/react/dist-es-5WYA7CWK.js.map +1 -0
  58. package/dist/react/dist-es-CR5AOOCO.js +333 -0
  59. package/dist/react/dist-es-CR5AOOCO.js.map +1 -0
  60. package/dist/react/dist-es-KZ3GLAJI.js +494 -0
  61. package/dist/react/dist-es-KZ3GLAJI.js.map +1 -0
  62. package/dist/react/dist-es-R4TRTT45.js +22 -0
  63. package/dist/react/dist-es-R4TRTT45.js.map +1 -0
  64. package/dist/react/dist-es-SKDPAJEW.js +169 -0
  65. package/dist/react/dist-es-SKDPAJEW.js.map +1 -0
  66. package/dist/react/dist-es-TOHBZNTZ.js +71 -0
  67. package/dist/react/dist-es-TOHBZNTZ.js.map +1 -0
  68. package/dist/react/dist-es-XNAC47MK.js +90 -0
  69. package/dist/react/dist-es-XNAC47MK.js.map +1 -0
  70. package/dist/react/event-streams-WAZW4P3K.js +277 -0
  71. package/dist/react/event-streams-WAZW4P3K.js.map +1 -0
  72. package/dist/react/index.d.ts +53 -4
  73. package/dist/react/index.d.ts.map +1 -1
  74. package/dist/react/index.js +10991 -190
  75. package/dist/react/index.js.map +1 -1
  76. package/dist/react/loadSso-KXVD6CBM.js +556 -0
  77. package/dist/react/loadSso-KXVD6CBM.js.map +1 -0
  78. package/dist/react/service.config-I7RKP6FE.js +14 -0
  79. package/dist/react/service.config-I7RKP6FE.js.map +1 -0
  80. package/dist/react/services/core.service.d.ts +11 -1
  81. package/dist/react/services/core.service.d.ts.map +1 -1
  82. package/dist/react/signin-SEY3FDQ5.js +653 -0
  83. package/dist/react/signin-SEY3FDQ5.js.map +1 -0
  84. package/dist/react/sso-oidc-REODVHH5.js +786 -0
  85. package/dist/react/sso-oidc-REODVHH5.js.map +1 -0
  86. package/dist/react/sts-I3M4QP37.js +3948 -0
  87. package/dist/react/sts-I3M4QP37.js.map +1 -0
  88. package/dist/react/websocket/WebSocketManager.d.ts +68 -0
  89. package/dist/react/websocket/WebSocketManager.d.ts.map +1 -0
  90. package/dist/react/websocket/index.d.ts +3 -0
  91. package/dist/react/websocket/index.d.ts.map +1 -0
  92. package/dist/react/websocket/optimistic.d.ts +51 -0
  93. package/dist/react/websocket/optimistic.d.ts.map +1 -0
  94. package/dist/react/websocket-OSLLJSNO.js +10 -0
  95. package/dist/react/websocket-OSLLJSNO.js.map +1 -0
  96. package/dist/sst/components/monorise-core.d.ts +10 -0
  97. package/dist/sst/components/monorise-core.d.ts.map +1 -1
  98. package/dist/sst/index.js +75 -12
  99. package/dist/sst/index.js.map +1 -1
  100. package/package.json +9 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../actions/app.action.ts","../actions/auth.action.ts","../actions/config.action.ts","../actions/core.action.ts","../lib/entity.ts","../lib/utils.ts","../lib/api.ts","../services/auth.service.ts","../services/core.service.ts","../services/filestore.service.ts","../store/monorise.store.ts","../index.ts"],"sourcesContent":["import { produce } from 'immer';\nimport { useEffect, useState } from 'react';\nimport type { ApplicationRequestError, ModalProps } from '../types/api.type';\nimport type { MonoriseStore } from '../store/monorise.store';\n\ntype StartLoadingPayload<T> = {\n requestKey: string;\n isInterruptive?: boolean;\n message?: string | boolean;\n request: Promise<T>;\n};\n\ntype EndLoadingPayload = {\n requestKey: string;\n isInterruptive?: boolean;\n};\n\ntype SetErrorPayload = {\n requestKey: string;\n error: ApplicationRequestError;\n};\n\ntype Options = {\n modals?: Record<string, React.ComponentType<unknown>>;\n};\n\nconst initAppActions = (store: MonoriseStore) => {\n let options: Options = {};\n\n const { modals = {} } = options;\n type AppModalProps = ModalProps<typeof modals>;\n\n const startLoading = <T>({\n requestKey,\n isInterruptive,\n message,\n request,\n }: StartLoadingPayload<T>) => {\n store.setState(\n produce((state) => {\n const stackType = isInterruptive ? 'intLoadStack' : 'loadStack';\n const requestKeyCount = state.app[stackType].get(requestKey);\n\n state.app.loadingMessage =\n typeof message === 'string' ? message : 'Loading';\n state.app.ongoingRequests.set(requestKey, request);\n state.app[stackType].set(\n requestKey,\n requestKeyCount ? requestKeyCount + 1 : 1,\n );\n }),\n undefined,\n `mr/start-loading/${requestKey}`,\n );\n };\n\n const endLoading = ({ requestKey, isInterruptive }: EndLoadingPayload) => {\n setTimeout(() => {\n store.setState(\n produce((state) => {\n const stackType = isInterruptive ? 'intLoadStack' : 'loadStack';\n const requestKeyCount = state.app[stackType].get(requestKey);\n\n if (state.app.ongoingRequests.has(requestKey)) {\n state.app.ongoingRequests.delete(requestKey);\n }\n\n if (typeof requestKeyCount === 'number' && requestKeyCount > 1) {\n state.app[stackType].set(requestKey, requestKeyCount - 1);\n } else {\n state.app[stackType].delete(requestKey);\n }\n }),\n undefined,\n `mr/end-loading/${requestKey}`,\n );\n }, 500);\n };\n\n const checkIsLoading = (requestKey?: string) => {\n const { intLoadStack, loadStack } = store.getState().app;\n if (!requestKey) {\n return intLoadStack.size > 0 || loadStack.size > 0;\n }\n\n const activeIntLoadingCount = intLoadStack.get(requestKey);\n const isIntLoading =\n typeof activeIntLoadingCount === 'number' && activeIntLoadingCount > 0;\n\n const activeLoadingCount = loadStack.get(requestKey);\n const isLoading =\n typeof activeLoadingCount === 'number' && activeLoadingCount > 0;\n\n return isIntLoading || isLoading;\n };\n\n const setError = ({ requestKey, error }: SetErrorPayload) =>\n store.setState(\n produce((state) => {\n state.app.errorStack.set(requestKey, error);\n }),\n undefined,\n `mr/set-error/${requestKey}`,\n );\n\n const getError = (requestKey: string) => {\n const { errorStack } = store.getState().app;\n return errorStack.get(requestKey);\n };\n\n const clearError = (requestKey: string) => {\n const { errorStack } = store.getState().app;\n\n if (errorStack.has(requestKey)) {\n store.setState(\n produce((state) => {\n state.app.errorStack.delete(requestKey);\n }),\n undefined,\n `mr/clear-error/${requestKey}`,\n );\n }\n };\n\n const openModal = (modal: {\n name: keyof AppModalProps;\n context?: AppModalProps[keyof AppModalProps];\n }) =>\n store.setState(\n produce((state) => {\n state.app.modal = modal;\n }),\n undefined,\n `mr/open-modal/${modal.name}`,\n );\n\n const closeModal = () =>\n store.setState(\n produce((state) => {\n state.app.modal = { name: null };\n }),\n undefined,\n 'mr/close-modal',\n );\n\n const useLoadStore = (requestKey?: string) => {\n const { loadStack, intLoadStack } = store((state) => ({\n loadStack: state.app.loadStack,\n intLoadStack: state.app.intLoadStack,\n }));\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n if (loadStack && intLoadStack && requestKey) {\n setIsLoading(checkIsLoading(requestKey));\n }\n }, [loadStack, intLoadStack, requestKey]);\n\n return isLoading;\n };\n\n const useInterruptiveLoadStore = () => {\n const { intLoadStack, loadingMessage } = store((state) => ({\n intLoadStack: state.app.intLoadStack,\n loadingMessage: state.app.loadingMessage,\n }));\n\n return {\n isLoading: intLoadStack.size > 0,\n message: loadingMessage,\n };\n };\n\n const useErrorStore = (requestKey: string) => {\n const error = store((state) => state.app.errorStack.get(requestKey));\n\n useEffect(() => {\n if (error) {\n return () => {\n clearError(requestKey);\n };\n }\n }, [error, requestKey]);\n\n return error;\n };\n\n const useModalStore = () => {\n return store((state) => state.app.modal);\n };\n\n const setOptions = (opts: Options) => {\n options = {\n ...options,\n ...opts,\n };\n };\n\n return {\n startLoading,\n endLoading,\n setError,\n getError,\n clearError,\n openModal,\n closeModal,\n checkIsLoading,\n useLoadStore,\n useInterruptiveLoadStore,\n useErrorStore,\n useModalStore,\n setOptions,\n };\n};\n\nexport { initAppActions };\n\nexport type AppActions = ReturnType<typeof initAppActions>;\n","import type { Entity } from '@monorise/base';\nimport { produce } from 'immer';\nimport type { AuthService } from '../services/auth.service';\nimport type { MonoriseStore } from '../store/monorise.store';\n\nconst initAuthActions = (store: MonoriseStore, authService: AuthService) => {\n const requestLogin = async (\n entityType: Entity,\n payload: { email: string },\n ) => {\n const { data } = await authService.requestLoginMagicLink(\n entityType,\n payload,\n );\n\n return data;\n };\n\n const useProfile = <T extends Record<string, unknown>>(): T & {\n displayName: string;\n email: string;\n accountId: string;\n impersonatorId?: string;\n } => {\n const profile = store((state) => state.auth.profile);\n\n return profile as T & typeof profile;\n };\n\n const getProfile = async () => {\n try {\n const {\n data: { displayName, email, accountId, ...rest },\n } = await authService.getSessionProfile();\n\n store.setState(\n produce((state) => {\n state.auth.profile = { displayName, email, accountId, ...rest };\n state.auth.isUnauthorized = false;\n state.auth.isLoading = false;\n }),\n undefined,\n 'mr/auth/get-profile',\n );\n } catch {\n store.setState(\n produce((state) => {\n state.auth.profile = {};\n state.auth.isUnauthorized = true;\n state.auth.isLoading = false;\n }),\n undefined,\n 'mr/auth/get-profile',\n );\n }\n };\n\n const useIsUnauthorized = () => {\n const { isUnauthorized, profile, isLoading } = store((state) => state.auth);\n\n return { isUnauthorized: isUnauthorized && !profile.accountId, isLoading };\n };\n\n const setIsUnauthorized = (isUnauthorized: boolean) =>\n store.setState(\n produce((state) => {\n state.auth.isUnauthorized = isUnauthorized;\n }),\n );\n\n const logout = () => {\n authService.logout();\n store.setState(\n produce((state) => {\n state.auth.isUnauthorized = true;\n state.auth.profile = {};\n }),\n );\n };\n\n return {\n requestLogin,\n useProfile,\n getProfile,\n useIsUnauthorized,\n setIsUnauthorized,\n logout,\n };\n};\n\nexport { initAuthActions };\n\nexport type AuthActions = ReturnType<typeof initAuthActions>;\n","import type {\n CreatedEntity,\n Entity,\n MonoriseEntityConfig,\n} from '@monorise/base';\nimport { produce } from 'immer';\nimport type { MonoriseStore } from '../store/monorise.store';\nimport type { CommonStore } from '../types/monorise.type';\n\nconst initConfigActions = (store: MonoriseStore) => {\n const setConfig = (config: Record<Entity, MonoriseEntityConfig>) => {\n const entityMaps = Object.keys(config).reduce(\n (acc, entity) => {\n acc[entity as any] = {\n dataMap: new Map<string, CreatedEntity<Entity>>(),\n isFirstFetched: false,\n lastKey: '',\n } as CommonStore<CreatedEntity<Entity>>;\n return acc;\n },\n {} as Record<Entity, CommonStore<CreatedEntity<Entity>>>,\n );\n\n store.setState(\n produce((state) => {\n state.config = config;\n state.entity = entityMaps;\n }),\n );\n };\n\n const getConfig = () => {\n return store.getState().config;\n };\n\n const useConfig = () => {\n const config = store((state) => state.config);\n\n return config;\n };\n\n return {\n setConfig,\n getConfig,\n useConfig,\n };\n};\n\nexport { initConfigActions };\n\nexport type ConfigActions = ReturnType<typeof initConfigActions>;\n","import type {\n CreatedEntity,\n DraftEntity,\n Entity,\n EntitySchemaMap,\n} from '@monorise/base';\nimport { produce } from 'immer';\nimport { useEffect, useState } from 'react';\nimport {\n byEntityId,\n constructLocal,\n constructMutual,\n flipMutual,\n} from '../lib/entity';\nimport {\n convertToMap,\n getEntityRequestKey,\n getMutualRequestKey,\n getMutualStateKey,\n getTagRequestKey,\n getTagStateKey,\n getUniqueFieldRequestKey,\n getUniqueFieldStateKey,\n} from '../lib/utils';\nimport type {\n CommonOptions,\n CoreService,\n ListEntitiesByTagParams,\n} from '../services/core.service';\nimport type { MonoriseStore } from '../store/monorise.store';\nimport type { ApplicationRequestError } from '../types/api.type';\nimport type { CommonStore } from '../types/monorise.type';\nimport type { Mutual, MutualData } from '../types/mutual.type';\nimport type { AppActions } from './app.action';\n\n// ===== Important tips ======\n// Should we use store.getState() or store()?\n// USE store.getState() WHEN using within an action such as getEntity, getProfile\n// USE store() WHEN using within a react hook so that it gets the benefit of reactivity, such as useProfile, useEntity\n\nconst defaultOnError = (error: ApplicationRequestError | Error) => {\n if (!(error instanceof Error) && error.status >= 500) {\n // we only want server error to be captured by error tracking service\n throw error;\n }\n};\n\nconst initCoreActions = (\n monoriseStore: MonoriseStore,\n appActions: AppActions,\n coreService: CoreService,\n) => {\n const { makeEntityService, makeMutualService } = coreService;\n const { checkIsLoading, getError, useLoadStore, useErrorStore } = appActions;\n\n const listEntities = async <T extends Entity>(\n entityType: T,\n params: {\n skRange?: { start: string; end: string };\n all?: boolean;\n limit?: number;\n } = { limit: 20 },\n opts: CommonOptions = {},\n ) => {\n const store = monoriseStore.getState();\n const entityState = store.entity[entityType] ?? {};\n const { isFirstFetched } = entityState;\n const entityService = makeEntityService(entityType);\n const { skRange } = params;\n const requestKey = getEntityRequestKey('list', entityType);\n const isLoading = checkIsLoading(requestKey);\n const error = getError(requestKey);\n const onError = opts.onError ?? defaultOnError;\n\n if (error) {\n onError(error);\n return;\n }\n\n if (\n !opts.forceFetch &&\n ((isFirstFetched && !params.skRange) || isLoading)\n ) {\n return;\n }\n\n try {\n const { data: result } = await entityService.listEntities(\n {\n ...(params?.all ? {} : { limit: params?.limit }),\n start: skRange?.start,\n end: skRange?.end,\n },\n opts,\n );\n const newEntityMap = convertToMap<CreatedEntity<T>>(\n result.data,\n 'entityId',\n );\n\n const mergedMap = new Map([\n ...newEntityMap,\n ...store.entity[entityType].dataMap,\n ]);\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType] = {\n dataMap: params.skRange ? newEntityMap : mergedMap,\n isFirstFetched: true,\n lastKey: result.lastKey,\n };\n }),\n undefined,\n `mr/entity/list/${entityType}`,\n );\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n\n return { error };\n }\n };\n\n const listMoreEntities = async <T extends Entity>(\n entityType: T,\n opts: CommonOptions = {},\n ) => {\n const requestKey = getEntityRequestKey('list', entityType);\n const store = monoriseStore.getState();\n const entityState = store.entity[entityType];\n const { dataMap, lastKey } = entityState;\n const entityService = makeEntityService(entityType);\n const error = getError(requestKey);\n const onError = opts.onError ?? defaultOnError;\n\n if (!lastKey) {\n return;\n }\n\n if (error) {\n onError(error);\n return;\n }\n\n try {\n const { data: result } = await entityService.listEntities(\n {\n limit: opts.limit ?? 20,\n lastKey,\n },\n opts,\n );\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].isFirstFetched = true;\n state.entity[entityType].lastKey = result.lastKey;\n for (const i in result.data) {\n state.entity[entityType].dataMap.set(\n result.data[i].entityId,\n result.data[i],\n );\n }\n }),\n undefined,\n `mr/entity/list-more/${entityType}`,\n );\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n\n return { error };\n }\n };\n\n const searchEntities = async <T extends Entity>(\n entityType: T,\n query: string,\n opts: CommonOptions = {},\n ) => {\n const requestKey = getEntityRequestKey('search', entityType);\n const entityService = makeEntityService(entityType);\n const error = getError(requestKey);\n const onError = opts.onError ?? defaultOnError;\n\n if (error) {\n onError(error);\n return;\n }\n\n try {\n const { data: result } = await entityService.searchEntities(query, opts);\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].searchResults = result.data;\n for (const i in result.data) {\n state.entity[entityType].dataMap.set(\n result.data[i].entityId,\n result.data[i],\n );\n }\n }),\n );\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n\n return { error };\n }\n };\n\n const listEntitiesByTag = async <T extends Entity>(\n entityType: T,\n tagName: string,\n opts: CommonOptions & { params?: ListEntitiesByTagParams } = {},\n ) => {\n const tagKey = getTagStateKey(entityType, tagName, opts.params);\n\n const state = monoriseStore.getState();\n const tagState = state.tag[tagKey] || {};\n const { isFirstFetched, dataMap } = tagState;\n const entityService = makeEntityService(entityType);\n const { forceFetch } = opts;\n const requestKey = getTagRequestKey(\n 'list',\n entityType,\n tagName,\n opts.params,\n );\n const isLoading = checkIsLoading(requestKey);\n const error = getError(requestKey);\n const onError = opts.onError ?? defaultOnError;\n\n if (!forceFetch) {\n if (error) {\n onError(error);\n return { error };\n }\n\n if (isFirstFetched || isLoading) {\n return {\n data: {\n entities: Array.from(dataMap?.values() || []),\n lastKey: null,\n },\n };\n }\n }\n\n try {\n const { data } = await entityService.listEntitiesByTag(tagName, {\n ...opts,\n requestKey,\n });\n const { entities, lastKey } = data;\n\n monoriseStore.setState(\n produce((state) => {\n for (const entity of entities) {\n state.entity[entityType].dataMap.set(entity.entityId, entity);\n }\n }),\n );\n\n monoriseStore.setState(\n produce((state) => {\n // Initialize tag state if it doesn't exist\n if (!state.tag[tagKey]) {\n state.tag[tagKey] = {\n dataMap: new Map(),\n isFirstFetched: false,\n };\n }\n\n // Merge new entities into existing dataMap instead of replacing\n for (const entity of entities) {\n state.tag[tagKey].dataMap.set(entity.entityId, entity);\n }\n\n state.tag[tagKey].isFirstFetched = true;\n state.tag[tagKey].lastKey = lastKey;\n }),\n );\n\n return { data };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n\n return { error };\n }\n };\n\n const getEntity = async <T extends Entity>(\n entityType: T,\n id: string,\n opts: CommonOptions = {},\n ): Promise<{\n data?: CreatedEntity<T>;\n error?: ApplicationRequestError | (Error & { originalError?: unknown });\n }> => {\n const store = monoriseStore.getState();\n const entityState = store.entity[entityType];\n const { dataMap } = entityState;\n const entityService = makeEntityService(entityType);\n let entity = dataMap.get(id);\n const requestKey = getEntityRequestKey('get', entityType, id);\n const isLoading = checkIsLoading(requestKey);\n const error = getError(requestKey);\n const { forceFetch } = opts;\n const onError = opts.onError ?? defaultOnError;\n\n if (!forceFetch) {\n if (error) {\n // If there's an existing error, handle it and return the error.\n onError?.(error);\n return { error };\n }\n\n if (entity) {\n // If entity already exists and no force fetch, return it.\n return { data: entity };\n }\n\n if (isLoading) {\n // If already loading, return undefined data and error to indicate ongoing operation.\n return {};\n }\n }\n\n try {\n ({ data: entity } = await entityService.getEntity(id, opts));\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].dataMap.set(entity?.entityId, entity);\n }),\n undefined,\n `mr/entity/get/${entityType}/${id}`,\n );\n\n return { data: entity };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n\n return { error };\n }\n };\n\n const getEntityByUniqueField = async <T extends Entity>(\n entityType: T,\n fieldName: string,\n value: string,\n opts: CommonOptions = {},\n ) => {\n const store = monoriseStore.getState();\n const entityState = store.entity[entityType];\n const { dataMap } = entityState;\n const entityService = makeEntityService(entityType);\n const stateKey = getUniqueFieldStateKey(fieldName, value);\n let entity = dataMap.get(stateKey);\n const requestKey = getUniqueFieldRequestKey(entityType, fieldName, value);\n const isLoading = checkIsLoading(requestKey);\n const error = getError(requestKey);\n const { forceFetch } = opts;\n const onError = opts.onError ?? defaultOnError;\n\n if (!forceFetch) {\n if (error) {\n onError?.(error);\n return { error };\n }\n\n if (entity) {\n return { data: entity };\n }\n\n if (isLoading) {\n return {};\n }\n }\n\n try {\n ({ data: entity } = await entityService.getEntityByUniqueField(\n fieldName,\n value,\n opts,\n ));\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].dataMap.set(entity?.entityId, entity);\n state.entity[entityType].dataMap.set(`${stateKey}`, entity);\n }),\n undefined,\n `mr/entity/unique/${entityType}/${stateKey}`,\n );\n\n return { data: entity };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n\n return { error };\n }\n };\n\n const createEntity = async <T extends Entity>(\n entityType: T,\n entity: DraftEntity<T>,\n opts: CommonOptions = {},\n ) => {\n const entityService = makeEntityService(entityType);\n const onError = opts.onError ?? defaultOnError;\n\n try {\n const { data } = await entityService.createEntity(entity, opts);\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].dataMap.set(data.entityId, data);\n\n // auto-populate tag store based on entity config\n const tagConfigs = state.config[entityType]?.tags;\n if (tagConfigs) {\n for (const tagConfig of tagConfigs) {\n const { name, processor } = tagConfig;\n const processorResults = processor(\n data as CreatedEntity<Entity>,\n );\n\n for (const tagKey of Object.keys(state.tag)) {\n const [tagEntityType, tagName, ...paramParts] =\n tagKey.split('/');\n\n if (\n (tagEntityType as unknown as Entity) !== entityType ||\n tagName !== name\n ) {\n continue;\n }\n\n if (!state.tag[tagKey]?.isFirstFetched) {\n continue;\n }\n\n // parse params from key\n const keyParams: Record<string, string> = {};\n for (const part of paramParts) {\n const colonIdx = part.indexOf(':');\n if (colonIdx > 0) {\n keyParams[part.substring(0, colonIdx)] =\n part.substring(colonIdx + 1);\n }\n }\n\n // skip query-filtered stores (can't match client-side)\n if (keyParams.query) {\n continue;\n }\n\n // check if any processor result matches this tag store's params\n const matches = processorResults.some((result) => {\n if (keyParams.group && result.group !== keyParams.group) {\n return false;\n }\n if (\n keyParams.start &&\n (!result.sortValue || result.sortValue < keyParams.start)\n ) {\n return false;\n }\n if (\n keyParams.end &&\n (!result.sortValue || result.sortValue > keyParams.end)\n ) {\n return false;\n }\n return true;\n });\n\n if (matches) {\n state.tag[tagKey].dataMap.set(data.entityId, data);\n }\n }\n }\n }\n\n // auto-populate mutual store based on entity config\n const mutualFields =\n state.config[entityType]?.mutual?.mutualFields;\n if (mutualFields) {\n for (const [field, fieldConfig] of Object.entries(mutualFields)) {\n const byEntityType = fieldConfig.entityType;\n const ids = (entity as Record<string, any>)[field];\n if (!Array.isArray(ids)) continue;\n\n for (const byEntityId of ids) {\n const mutualKey = getMutualStateKey(\n byEntityType,\n byEntityId,\n entityType,\n );\n if (\n state.mutual[mutualKey] &&\n state.mutual[mutualKey].isFirstFetched\n ) {\n state.mutual[mutualKey].dataMap.set(data.entityId, {\n entityId: data.entityId,\n entityType,\n byEntityId,\n byEntityType,\n mutualId: '',\n data: data.data,\n mutualData: {},\n createdAt: data.createdAt,\n updatedAt: data.updatedAt,\n mutualUpdatedAt: data.updatedAt,\n });\n }\n }\n }\n }\n }),\n undefined,\n `mr/entity/create/${entityType}`,\n );\n\n return { data };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n\n onError?.(error);\n\n return { error };\n }\n };\n\n const upsertEntity = async <T extends Entity>(\n entityType: T,\n id: string,\n entity: DraftEntity<T>,\n opts: CommonOptions = {},\n ) => {\n const entityService = makeEntityService(entityType);\n const onError = opts.onError ?? defaultOnError;\n\n try {\n const { data } = await entityService.upsertEntity(id, entity, opts);\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].dataMap.set(data.entityId, data);\n }),\n undefined,\n `mr/entity/upsert/${entityType}/${id}`,\n );\n return { data };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n onError(error);\n return { error };\n }\n };\n\n const editEntity = async <T extends Entity>(\n entityType: T,\n id: string,\n entity: Partial<DraftEntity<T>>,\n opts: CommonOptions = {},\n ) => {\n const entityService = makeEntityService(entityType);\n const onError = opts.onError ?? defaultOnError;\n\n try {\n const { data } = await entityService.editEntity(id, entity, opts);\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].dataMap.set(data.entityId, data);\n\n // update mutual's entity data\n for (const key of Object.keys(state.mutual)) {\n const [_byEntity, _byId, _entityType] = key.split('/');\n if ((_entityType as unknown as Entity) === entityType) {\n const mutual = state.mutual[key].dataMap.get(id);\n if (mutual) {\n state.mutual[key].dataMap = new Map(\n state.mutual[key].dataMap,\n ).set(id, { ...mutual, data: data.data });\n }\n }\n }\n\n // update flipped mutual side (entity is the \"by\" entity)\n for (const key of Object.keys(state.mutual)) {\n const [_byEntity, _byId] = key.split('/');\n if ((_byEntity as unknown as Entity) === entityType && _byId === id) {\n const newDataMap = new Map(state.mutual[key].dataMap);\n for (const [entryId, mutual] of newDataMap) {\n newDataMap.set(entryId, { ...mutual, data: data.data });\n }\n state.mutual[key].dataMap = newDataMap;\n }\n }\n\n // update tag store entries\n for (const tagKey of Object.keys(state.tag)) {\n const [tagEntityType] = tagKey.split('/');\n if ((tagEntityType as unknown as Entity) === entityType) {\n if (state.tag[tagKey]?.dataMap?.has(id)) {\n state.tag[tagKey].dataMap.set(id, data);\n }\n }\n }\n }),\n undefined,\n `mr/entity/edit/${entityType}/${id}`,\n );\n return { data };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n onError(error);\n return { error };\n }\n };\n\n const adjustEntity = async <T extends Entity>(\n entityType: T,\n id: string,\n adjustments: Record<string, number>,\n opts: CommonOptions = {},\n ) => {\n const entityService = makeEntityService(entityType);\n const onError = opts.onError ?? defaultOnError;\n\n try {\n const { data } = await entityService.adjustEntity(id, adjustments, opts);\n\n // Update local store with server response\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].dataMap.set(data.entityId, data);\n\n // Propagate to mutual stores\n for (const key of Object.keys(state.mutual)) {\n const [_byEntity, _byId, _entityType] = key.split('/');\n if ((_entityType as unknown as Entity) === entityType) {\n const mutual = state.mutual[key].dataMap.get(id);\n if (mutual) {\n state.mutual[key].dataMap = new Map(\n state.mutual[key].dataMap,\n ).set(id, { ...(mutual as any), data: data.data });\n }\n }\n }\n\n for (const key of Object.keys(state.mutual)) {\n const [_byEntity, _byId] = key.split('/');\n if ((_byEntity as unknown as Entity) === entityType && _byId === id) {\n const newDataMap = new Map(state.mutual[key].dataMap);\n for (const [entryId, mutual] of newDataMap) {\n newDataMap.set(entryId, { ...(mutual as any), data: data.data });\n }\n state.mutual[key].dataMap = newDataMap;\n }\n }\n\n // Propagate to tag stores\n for (const tagKey of Object.keys(state.tag)) {\n const [tagEntityType] = tagKey.split('/');\n if ((tagEntityType as unknown as Entity) === entityType) {\n if (state.tag[tagKey]?.dataMap?.has(id)) {\n state.tag[tagKey].dataMap.set(id, data);\n }\n }\n }\n }),\n undefined,\n `mr/entity/adjust/${entityType}/${id}`,\n );\n\n return { data };\n } catch (err: any) {\n // Constraint violated — refetch entity to get latest state\n if (err?.response?.status === 409) {\n await getEntity(entityType, id, { forceFetch: true });\n }\n\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n onError(error);\n return { error };\n }\n };\n\n const deleteEntity = async <T extends Entity>(\n entityType: T,\n id: string,\n opts: CommonOptions = {},\n ) => {\n const entityService = makeEntityService(entityType);\n const onError = opts.onError ?? defaultOnError;\n\n try {\n await entityService.deleteEntity(id, opts);\n deleteLocalMutualsByEntity(entityType, id);\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].dataMap.delete(id);\n\n // delete mutual's entity data\n for (const key of Object.keys(state.mutual)) {\n const [_byEntity, _byId, _entityType] = key.split('/');\n if ((_entityType as unknown as Entity) === entityType) {\n state.mutual[key].dataMap.delete(id);\n }\n }\n\n // delete from tag store\n for (const tagKey of Object.keys(state.tag)) {\n const [tagEntityType] = tagKey.split('/');\n if ((tagEntityType as unknown as Entity) === entityType) {\n state.tag[tagKey]?.dataMap?.delete(id);\n }\n }\n }),\n undefined,\n `mr/entity/delete/${entityType}/${id}`,\n );\n return { data: { entityId: id } }; // Indicate success with the deleted ID\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n onError(error);\n return { error };\n }\n };\n\n const listEntitiesByEntity = async <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n id: string,\n opts: CommonOptions = {},\n chainEntityQuery?: string,\n ) => {\n const onError = opts.onError ?? defaultOnError;\n const selfKey =\n opts.stateKey ??\n getMutualStateKey(\n byEntityType,\n id,\n entityType,\n undefined,\n chainEntityQuery,\n );\n const mutualService = makeMutualService(byEntityType, entityType);\n const store = monoriseStore.getState();\n const mutualState = store.mutual[selfKey] || {};\n const { isFirstFetched } = mutualState;\n const requestKey = getMutualRequestKey(\n 'list',\n byEntityType,\n entityType,\n id,\n undefined,\n chainEntityQuery,\n );\n const isLoading = checkIsLoading(requestKey);\n const error = getError(requestKey);\n const { forceFetch } = opts;\n\n if (!forceFetch) {\n if (error) {\n onError(error);\n return { error };\n }\n\n if (isFirstFetched || isLoading) {\n return {\n data: {\n entities: Array.from(mutualState.dataMap?.values() || []),\n lastKey: mutualState.lastKey,\n },\n };\n }\n }\n\n try {\n const { data } = await mutualService.listEntitiesByEntity(\n id,\n opts,\n chainEntityQuery,\n );\n const { entities, lastKey } = data;\n const newEntityDataMap = new Map();\n\n for (const i in entities) {\n newEntityDataMap.set(entities[i].entityId, entities[i]);\n }\n\n monoriseStore.setState(\n produce((state) => {\n for (const [key, value] of newEntityDataMap) {\n state.entity[entityType]?.dataMap.set(key, value);\n }\n\n // prepare or extend the mutual entry\n const existing = state.mutual[selfKey];\n if (existing) {\n // extend the existing map\n const incoming = convertToMap(entities, 'entityId');\n for (const [k, v] of incoming) {\n existing.dataMap.set(k, v);\n }\n existing.isFirstFetched = true;\n existing.lastKey = lastKey;\n } else {\n // first time: create it\n state.mutual[selfKey] = {\n dataMap: convertToMap(entities, 'entityId'),\n isFirstFetched: true,\n lastKey,\n };\n }\n }),\n undefined,\n `mr/mutual/list/${selfKey}`,\n );\n\n return { data };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n\n return { error };\n }\n };\n\n // todo: list more mutuals by entity\n // const listMoremutualsByEntity = async (\n // entityType: Entity,\n // otherEntityType: Entity,\n // id: string,\n // ) =>\n\n const getMutual = async <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string | null,\n entityId: string,\n opts: CommonOptions & {\n // if failed to retrieve, would still set a default mutual data\n defaultMutualData?: Record<string, any>;\n } = {},\n ) => {\n const selfKey = getMutualStateKey(byEntityType, byEntityId, entityType);\n const mutualService = makeMutualService(byEntityType, entityType);\n const store = monoriseStore.getState();\n const mutualState = store.mutual[selfKey] || {};\n const requestKey = getMutualRequestKey(\n 'get',\n byEntityType,\n entityType,\n byEntityId,\n entityId,\n );\n const isLoading = checkIsLoading(requestKey);\n const error = getError(requestKey);\n const onError = opts.onError ?? defaultOnError;\n\n if (error) {\n onError?.(error);\n return { error };\n }\n\n if (!byEntityId || isLoading) {\n return {\n data: mutualState.dataMap?.get(entityId) as Mutual<B, T>,\n };\n }\n\n if (mutualState.dataMap?.get(entityId)) {\n return {\n data: mutualState.dataMap.get(entityId) as Mutual<B, T>,\n };\n }\n\n let mutual: Omit<Mutual<B, T>, 'data'>;\n let hasRequestFailed = false;\n\n try {\n ({ data: mutual } = await mutualService.getMutual(\n byEntityId,\n entityId,\n opts,\n ));\n } catch (err) {\n if (!opts.defaultMutualData) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n return { error };\n }\n\n hasRequestFailed = true;\n mutual = {\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n mutualId: `${byEntityId}-${entityId}`,\n mutualUpdatedAt: new Date().toISOString(),\n byEntityType,\n byEntityId,\n entityType,\n entityId,\n mutualData: opts.defaultMutualData,\n };\n }\n\n const newMutualDataMap = new Map(store.mutual[selfKey]?.dataMap);\n newMutualDataMap.set(mutual.entityId, mutual as Mutual<B, T>);\n\n if (!hasRequestFailed) {\n const entityState = store.entity[entityType];\n const { dataMap: entityDataMap } = entityState;\n\n const newEntityDataMap = new Map(entityDataMap);\n newEntityDataMap.set(mutual.entityId, mutual as any);\n\n monoriseStore.setState(\n produce((state) => {\n state.mutual[selfKey] = {\n ...(state.mutual[selfKey] || {}),\n dataMap: newMutualDataMap,\n };\n state.entity[entityType].dataMap = newEntityDataMap;\n }),\n undefined,\n `mr/mutual/get/${getMutualStateKey(\n byEntityType,\n byEntityId,\n entityType,\n entityId,\n )}`,\n );\n }\n return { data: mutual as Mutual<B, T> };\n };\n\n const createMutual = async <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n payload: MutualData<B, T> | Record<string, any> = {},\n opts: CommonOptions = {},\n ) => {\n const mutualService = makeMutualService(byEntityType, entityType);\n const onError = opts.onError ?? defaultOnError;\n\n try {\n const { data: mutual } = await mutualService.createMutual(\n byEntityId,\n entityId,\n payload,\n opts,\n );\n\n monoriseStore.setState(\n produce((state) => {\n const bySide = getMutualStateKey(\n byEntityType,\n byEntityId,\n entityType,\n );\n const side = getMutualStateKey(entityType, entityId, byEntityType);\n\n if (!state.mutual[bySide]) {\n state.mutual[bySide] = {\n dataMap: new Map(),\n };\n }\n\n state.mutual[bySide].dataMap = new Map(\n state.mutual[bySide]?.dataMap,\n ).set(mutual.entityId, mutual);\n\n if (!state.mutual[side]) {\n state.mutual[side] = {\n dataMap: new Map(),\n };\n }\n\n state.mutual[side].dataMap = new Map(state.mutual[side]?.dataMap).set(\n mutual.byEntityId,\n flipMutual(mutual),\n );\n }),\n undefined,\n `mr/mutual/create/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n );\n return { data: mutual };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n onError(error);\n return { error };\n }\n };\n\n const createLocalMutual = async <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n mutualData: MutualData<B, T>,\n data: EntitySchemaMap[T] | Record<string, any>,\n ) => {\n const mutual = constructMutual(\n byEntityType,\n byEntityId,\n entityType,\n entityId,\n mutualData,\n data as EntitySchemaMap[T],\n );\n\n monoriseStore.setState(\n produce((state) => {\n const bySide = getMutualStateKey(byEntityType, byEntityId, entityType);\n const side = getMutualStateKey(entityType, entityId, byEntityType);\n\n if (!state.mutual[bySide]) {\n state.mutual[bySide] = {\n dataMap: new Map(),\n };\n }\n\n state.mutual[bySide].dataMap = new Map(\n state.mutual[bySide]?.dataMap,\n ).set(mutual.entityId, mutual);\n\n if (!state.mutual[side]) {\n state.mutual[side] = {\n dataMap: new Map(),\n };\n }\n\n state.mutual[side].dataMap = new Map(state.mutual[side]?.dataMap).set(\n mutual.byEntityId,\n flipMutual(mutual),\n );\n }),\n undefined,\n `mr/mutual/create/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n );\n };\n\n const updateLocalEntity = async <T extends Entity>(\n entityType: Entity,\n entityId: string,\n data: Partial<DraftEntity<T>> = {},\n ) => {\n const createdEntity = constructLocal(entityType, entityId, data);\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].dataMap.set(entityId, createdEntity);\n }),\n undefined,\n `mr/entity/local-update/${entityType}/${entityId}`,\n );\n };\n\n const upsertLocalMutual = async <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n mutualData: MutualData<B, T>,\n data: EntitySchemaMap[T] | Record<string, any> = {},\n ) => {\n const mutual = constructMutual(\n byEntityType,\n byEntityId,\n entityType,\n entityId,\n mutualData,\n data as EntitySchemaMap[T],\n );\n\n monoriseStore.setState(\n produce((state) => {\n const bySide = getMutualStateKey(byEntityType, byEntityId, entityType);\n const side = getMutualStateKey(entityType, entityId, byEntityType);\n\n if (!state.mutual[bySide]) {\n state.mutual[bySide] = {\n dataMap: new Map(),\n };\n }\n\n state.mutual[bySide].dataMap = new Map(\n state.mutual[bySide]?.dataMap,\n ).set(entityId, mutual);\n\n if (!state.mutual[side]) {\n state.mutual[side] = {\n dataMap: new Map(),\n };\n }\n\n state.mutual[side].dataMap = new Map(state.mutual[side]?.dataMap).set(\n byEntityId,\n flipMutual(mutual),\n );\n }),\n undefined,\n `mr/mutual/local-update/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n );\n };\n\n const editMutual = async <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n payload: MutualData<B, T> | Record<string, any> = {},\n opts: CommonOptions = {},\n ) => {\n const mutualService = makeMutualService(byEntityType, entityType);\n const onError = opts.onError ?? defaultOnError;\n\n try {\n const { data: mutual } = await mutualService.editMutual(\n byEntityId,\n entityId,\n payload,\n opts,\n );\n\n monoriseStore.setState(\n produce((state) => {\n const bySide = getMutualStateKey(\n byEntityType,\n byEntityId,\n entityType,\n );\n const side = getMutualStateKey(entityType, entityId, byEntityType);\n\n if (!state.mutual[bySide]) {\n state.mutual[bySide] = {\n dataMap: new Map(),\n };\n }\n\n state.mutual[bySide].dataMap = new Map(\n state.mutual[bySide]?.dataMap,\n ).set(mutual.entityId, mutual);\n\n if (!state.mutual[side]) {\n state.mutual[side] = {\n dataMap: new Map(),\n };\n }\n\n state.mutual[side].dataMap = new Map(state.mutual[side]?.dataMap).set(\n mutual.byEntityId,\n flipMutual(mutual),\n );\n }),\n undefined,\n `mr/mutual/edit/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n );\n return { data: mutual };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n onError(error);\n return { error };\n }\n };\n\n const deleteMutual = async <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId = '',\n opts: CommonOptions = {},\n ) => {\n const mutualService = makeMutualService(byEntityType, entityType);\n const onError = opts.onError ?? defaultOnError;\n\n try {\n const { data } = await mutualService.deleteMutual(\n byEntityId,\n entityId,\n opts,\n );\n\n monoriseStore.setState(\n produce((state) => {\n const bySide = getMutualStateKey(\n byEntityType,\n byEntityId,\n entityType,\n );\n const side = getMutualStateKey(entityType, entityId, byEntityType);\n\n state.mutual[bySide].dataMap.delete(data.entityId);\n\n if (state.mutual[side]) {\n state.mutual[side].dataMap.delete(data.byEntityId);\n }\n }),\n undefined,\n `mr/mutual/delete/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n );\n return { data };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n onError(error);\n return { error };\n }\n };\n\n const deleteLocalMutual = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n ) => {\n monoriseStore.setState(\n produce((state) => {\n const bySide = getMutualStateKey(byEntityType, byEntityId, entityType);\n const side = getMutualStateKey(entityType, entityId, byEntityType);\n const bySideDataMap = new Map(state.mutual[bySide]?.dataMap);\n const sideDataMap = new Map(state.mutual[side]?.dataMap);\n bySideDataMap.delete(entityId);\n sideDataMap.delete(byEntityId);\n\n if (state.mutual[bySide]) {\n state.mutual[bySide].dataMap.delete(entityId);\n }\n if (state.mutual[side]) {\n state.mutual[side].dataMap.delete(byEntityId);\n }\n }),\n undefined,\n `mr/mutual/local-delete/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n );\n };\n\n const deleteLocalMutualsByEntity = <T extends Entity>(\n entityType: T,\n id: string,\n ) => {\n const store = monoriseStore.getState();\n const entityConfig = store.config; // Assuming store.config holds mutual related configurations\n let mutuals: Mutual[] = [];\n for (const i of Object.keys(entityConfig)) {\n const mutualState = store.mutual[`${entityType}/${id}/${i}`];\n mutuals = [\n ...mutuals,\n ...Array.from(mutualState?.dataMap.values() || []),\n ];\n }\n\n const updatedState = mutuals.reduce(\n (acc, mutual) => {\n const side = getMutualStateKey(\n mutual.entityType,\n mutual.entityId,\n mutual.byEntityType,\n );\n const dataMap = new Map(store.mutual[side]?.dataMap); // Use optional chaining\n dataMap.delete(id);\n acc[side] = {\n ...store.mutual[side],\n dataMap,\n };\n return acc;\n },\n {} as Record<string, CommonStore<Mutual>>,\n );\n\n monoriseStore.setState(\n produce((state) => {\n // This is a full replacement, might not be desired for partial updates.\n // If state.mutual can contain other keys, this might clear them.\n // Consider a more granular update if needed.\n for (const key in updatedState) {\n state.mutual[key] = updatedState[key];\n }\n }),\n undefined,\n `mr/mutual/local-delete-by-entity/${entityType}/${id}`,\n );\n };\n\n const useEntity = <T extends Entity>(\n entityType: T,\n id?: string,\n opts: CommonOptions = {},\n ): {\n entity: CreatedEntity<T> | undefined;\n isLoading: boolean;\n error?: ApplicationRequestError;\n requestKey: string;\n isFirstFetched?: boolean;\n refetch: () => Promise<CreatedEntity<T> | undefined>;\n } => {\n const dataMap = monoriseStore(\n (state) => state.entity[entityType]?.dataMap || new Map(),\n );\n const isFirstFetched = monoriseStore(\n (state) => state.entity[entityType]?.isFirstFetched,\n );\n const requestKey = getEntityRequestKey('get', entityType, id);\n const isLoading = useLoadStore(requestKey);\n const error = useErrorStore(requestKey);\n\n useEffect(() => {\n if (id) {\n getEntity(entityType, id, opts);\n }\n }, [id, entityType, opts]);\n\n return {\n entity: id ? dataMap.get(id) : undefined,\n isLoading,\n error,\n requestKey,\n isFirstFetched,\n refetch: async () => {\n if (id) {\n const { data, error: fetchError } = await getEntity(entityType, id, {\n ...opts,\n forceFetch: true,\n });\n if (fetchError) {\n // Handle refetch error if necessary, e.g., throw or set local state\n }\n return data;\n }\n },\n };\n };\n\n const useEntityByUniqueField = <T extends Entity>(\n entityType: T,\n fieldName: string,\n value?: string,\n opts: CommonOptions = {},\n ): {\n entity: CreatedEntity<T> | undefined;\n isLoading: boolean;\n error?: ApplicationRequestError;\n requestKey: string;\n isFirstFetched?: boolean;\n refetch: () => Promise<CreatedEntity<T> | undefined>;\n } => {\n const dataMap = monoriseStore(\n (state) => state.entity[entityType]?.dataMap || new Map(),\n );\n const isFirstFetched = monoriseStore(\n (state) => state.entity[entityType]?.isFirstFetched,\n );\n const stateKey = getUniqueFieldStateKey(fieldName, value || '');\n const requestKey = getUniqueFieldRequestKey(\n entityType,\n fieldName,\n value || '',\n );\n const isLoading = useLoadStore(requestKey);\n const error = useErrorStore(requestKey);\n\n useEffect(() => {\n if (value) {\n getEntityByUniqueField(entityType, fieldName, value, opts);\n }\n }, [fieldName, value, entityType, opts]);\n\n return {\n entity: value ? dataMap.get(`${stateKey}`) : undefined,\n isLoading,\n error,\n requestKey,\n isFirstFetched,\n refetch: async () => {\n if (value) {\n const { data, error: fetchError } = await getEntityByUniqueField(\n entityType,\n fieldName,\n value,\n {\n ...opts,\n forceFetch: true,\n },\n );\n if (fetchError) {\n // Handle refetch error if necessary\n }\n return data;\n }\n },\n };\n };\n\n const useEntities = <T extends Entity>(\n entityType: T,\n params: {\n skRange?: {\n start: string;\n end: string;\n };\n all?: boolean;\n limit?: number;\n } = { limit: 20 },\n opts: CommonOptions & { searchInterval?: number } = {},\n ): {\n isLoading: boolean;\n entities?: CreatedEntity<T>[];\n entitiesMap: Map<string, CreatedEntity<T>>;\n error?: ApplicationRequestError;\n requestKey: string;\n searchField: {\n value: string;\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n };\n lastKey?: string;\n isFirstFetched?: boolean;\n listMore: () => void;\n refetch: () => void;\n } => {\n const requestKey = getEntityRequestKey('list', entityType);\n const isListing = useLoadStore(requestKey);\n const error = useErrorStore(requestKey);\n const state = monoriseStore((state) => state.entity[entityType]);\n const { dataMap, searchResults, isFirstFetched, lastKey } = state ?? {\n dataMap: new Map(),\n };\n const [entities, setEntities] = useState<CreatedEntity<T>[]>();\n const [query, setQuery] = useState<string>('');\n const [skRange, setBetween] = useState(params.skRange);\n const [all, setAll] = useState(params.all);\n const [limit, setLimit] = useState(params.limit);\n const [isSearching, setIsSearching] = useState(false);\n const isLoading = isListing || isSearching;\n\n useEffect(() => {\n if (\n params?.skRange &&\n skRange?.start !== params.skRange.start &&\n skRange?.end !== params.skRange.end\n ) {\n setBetween(params.skRange);\n }\n }, [skRange?.end, skRange?.start, params.skRange]);\n\n useEffect(() => {\n if (params?.all !== all) {\n setAll(params.all);\n }\n }, [all, params.all]);\n\n useEffect(() => {\n if (params?.limit !== limit) {\n setLimit(params.limit);\n }\n }, [limit, params.limit]);\n\n useEffect(() => {\n if (!isFirstFetched || opts?.forceFetch) {\n listEntities(entityType, { skRange, all, limit }, opts);\n }\n }, [all, entityType, skRange, opts, isFirstFetched, opts?.forceFetch, limit]);\n\n useEffect(() => {\n let queryTimeout: NodeJS.Timeout;\n\n if (query?.length) {\n setIsSearching(true);\n queryTimeout = setTimeout(async () => {\n await searchEntities(entityType, query);\n setIsSearching(false);\n }, opts.searchInterval ?? 700);\n }\n\n return () => queryTimeout && clearTimeout(queryTimeout);\n }, [entityType, query]);\n\n useEffect(() => {\n if (!query && dataMap.size !== entities?.length) {\n setIsSearching(false);\n setEntities(\n Array.from(dataMap.values()).sort(byEntityId) as CreatedEntity<T>[],\n );\n }\n\n if (query) {\n setEntities(searchResults as CreatedEntity<T>[]);\n }\n }, [\n dataMap,\n dataMap.size,\n entities?.length,\n query,\n searchResults,\n searchResults?.length,\n ]);\n\n const handleQueryChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setQuery(event.target.value);\n };\n\n const searchField = {\n value: query,\n onChange: handleQueryChange,\n };\n\n return {\n entities,\n entitiesMap: dataMap,\n searchField,\n isLoading,\n error,\n requestKey,\n isFirstFetched,\n lastKey,\n refetch: async () => {\n if (entityType && query) {\n await searchEntities(entityType, query);\n return;\n }\n await listEntities(\n entityType,\n { skRange, all },\n {\n ...opts,\n forceFetch: true,\n },\n );\n },\n listMore: async () => {\n if (!lastKey) return;\n\n await listMoreEntities(entityType, {\n ...opts,\n limit,\n forceFetch: true,\n });\n },\n };\n };\n\n const useMutual = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byId: string | null,\n id: string,\n opts: CommonOptions & {\n // if failed to retrieve, would still set a default mutual data\n defaultMutualData?: Record<string, any>;\n } = {},\n ): {\n mutual?: Mutual<B, T>;\n isLoading: boolean;\n error?: ApplicationRequestError;\n requestKey: string;\n } => {\n const stateKey = getMutualStateKey(byEntityType, byId, entityType);\n const state = monoriseStore((state) => state.mutual[stateKey]);\n const requestKey = getMutualRequestKey(\n 'get',\n byEntityType,\n entityType,\n byId,\n id,\n );\n const isLoading = useLoadStore(requestKey);\n const error = useErrorStore(requestKey);\n\n const { dataMap } = state || {\n dataMap: new Map(),\n };\n\n useEffect(() => {\n if (!dataMap.get(id)) {\n getMutual(byEntityType, entityType, byId, id, opts);\n }\n }, [byEntityType, byId, entityType, id, opts, dataMap]);\n\n return {\n mutual: dataMap.get(id) as Mutual<B, T>,\n isLoading,\n error,\n requestKey,\n };\n };\n\n const useMutuals = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byId?: string,\n opts: CommonOptions = {},\n chainEntityQuery?: string, // chain entity query, refer to list-entities-by-entity.controller.ts\n ): {\n mutuals: Mutual<B, T>[];\n mutualsMap: Map<string, Mutual<B, T>>;\n isLoading: boolean;\n requestKey: string;\n error?: ApplicationRequestError;\n isFirstFetched?: boolean;\n lastKey?: string;\n listMore?: () => void;\n refetch?: () => Promise<any>;\n } => {\n const stateKey = getMutualStateKey(\n byEntityType,\n byId || '',\n entityType,\n undefined,\n chainEntityQuery,\n );\n const state = monoriseStore((state) => state.mutual[stateKey]);\n const { dataMap, isFirstFetched, lastKey } = state || {\n dataMap: new Map(),\n };\n const [mutuals, setMutuals] = useState<Mutual<B, T>[]>([]);\n const requestKey = getMutualRequestKey(\n 'list',\n byEntityType,\n entityType,\n byId || '',\n undefined,\n chainEntityQuery,\n );\n const isLoading = useLoadStore(requestKey);\n const error = useErrorStore(requestKey);\n\n useEffect(() => {\n if (byEntityType && entityType && byId && (!isFirstFetched || opts?.forceFetch)) {\n listEntitiesByEntity(\n byEntityType,\n entityType,\n byId,\n { ...opts, stateKey },\n chainEntityQuery,\n );\n }\n }, [\n isFirstFetched,\n byEntityType,\n byId,\n entityType,\n opts,\n chainEntityQuery,\n stateKey,\n opts?.forceFetch,\n opts?.noData,\n ]);\n\n useEffect(() => {\n const dataMapArray = Array.from(dataMap.values());\n if (\n dataMap.size !== mutuals?.length ||\n dataMapArray.some(\n (item, index) =>\n JSON.stringify(item) !== JSON.stringify(mutuals[index]),\n )\n ) {\n setMutuals(dataMapArray as Mutual<B, T>[]);\n }\n }, [dataMap, dataMap.size, mutuals?.length]);\n\n return {\n mutuals,\n mutualsMap: dataMap as Map<string, Mutual<B, T>>,\n isLoading,\n requestKey,\n error,\n isFirstFetched,\n lastKey,\n refetch: async () => {\n if (byEntityType && entityType && byId) {\n return await listEntitiesByEntity(\n byEntityType,\n entityType,\n byId,\n {\n ...opts,\n forceFetch: true,\n stateKey,\n },\n chainEntityQuery,\n );\n }\n },\n ...(lastKey && {\n listMore: () => {\n if (byEntityType && entityType && byId) {\n listEntitiesByEntity(\n byEntityType,\n entityType,\n byId,\n {\n ...opts,\n forceFetch: true,\n params: { ...opts.params, lastKey },\n stateKey,\n },\n chainEntityQuery,\n );\n }\n },\n }),\n };\n };\n\n const useTaggedEntities = <T extends Entity>(\n entityType: T,\n tagName: string,\n opts: CommonOptions & { params?: ListEntitiesByTagParams } = {},\n ) => {\n const { params } = opts || {};\n const stateKey = getTagStateKey(entityType, tagName, params);\n const state = monoriseStore((state) => state.tag[stateKey]);\n const { dataMap, isFirstFetched, lastKey } = state || {\n dataMap: new Map(),\n };\n const [entities, setEntities] = useState<CreatedEntity<T>[]>([]);\n const requestKey = getTagRequestKey('list', entityType, tagName, params);\n const isLoading = useLoadStore(requestKey);\n const error = useErrorStore(requestKey);\n\n useEffect(() => {\n if (entityType && tagName && Object.keys(params).length > 0) {\n listEntitiesByTag(entityType, tagName, opts);\n }\n }, [entityType, opts, tagName, params, opts?.forceFetch]);\n\n useEffect(() => {\n const dataMapArray = Array.from(dataMap.values());\n if (\n dataMap.size !== entities?.length ||\n dataMapArray.some(\n (item, index) =>\n JSON.stringify(item) !== JSON.stringify(entities[index]),\n )\n ) {\n setEntities(dataMapArray as CreatedEntity<T>[]);\n }\n }, [dataMap, dataMap.size, entities?.length]);\n\n return {\n entities,\n entitiesMap: dataMap as Map<string, CreatedEntity<T>>,\n isLoading,\n requestKey,\n error,\n isFirstFetched,\n lastKey,\n refetch: async () => {\n if (entityType && tagName && params?.group) {\n return await listEntitiesByTag(entityType, tagName, {\n ...opts,\n forceFetch: true,\n });\n }\n },\n listMore: async () => {\n if (entityType && tagName && params?.group) {\n return await listEntitiesByTag(entityType, tagName, {\n ...opts,\n forceFetch: true,\n params: { ...params, lastKey },\n });\n }\n },\n };\n };\n\n const useEntityState = <T extends Entity>(entityType: T) => {\n return monoriseStore((state) => state.entity[entityType]);\n };\n\n const updateLocalTaggedEntity = <T extends Entity>(\n entityType: T,\n entityId: string,\n tagName: string,\n data: Partial<DraftEntity<T>> = {},\n params?: ListEntitiesByTagParams,\n ) => {\n const tagKey = getTagStateKey(\n entityType,\n tagName,\n params as Record<string, string>,\n );\n\n monoriseStore.setState(\n produce((state) => {\n const entity = state.tag[tagKey]?.dataMap?.get(entityId);\n if (entity) {\n state.tag[tagKey].dataMap.set(entityId, {\n ...entity,\n data: { ...entity.data, ...data },\n });\n }\n }),\n undefined,\n `mr/tag/local-update/${entityType}/${entityId}`,\n );\n };\n\n const deleteLocalTaggedEntity = <T extends Entity>(\n entityType: T,\n entityId: string,\n tagName: string,\n params?: ListEntitiesByTagParams,\n ) => {\n const tagKey = getTagStateKey(\n entityType,\n tagName,\n params as Record<string, string>,\n );\n\n monoriseStore.setState(\n produce((state) => {\n if (state.tag[tagKey]?.dataMap?.has(entityId)) {\n state.tag[tagKey].dataMap.delete(entityId);\n }\n }),\n undefined,\n `mr/tag/local-delete/${entityType}/${entityId}`,\n );\n };\n\n return {\n listMoreEntities,\n createEntity,\n upsertEntity,\n getEntity,\n editEntity,\n adjustEntity,\n deleteEntity,\n getMutual,\n updateLocalEntity,\n createMutual,\n createLocalMutual,\n upsertLocalMutual,\n editMutual,\n deleteMutual,\n deleteLocalMutual,\n useEntity,\n useEntityByUniqueField,\n useEntities,\n useMutual,\n useMutuals,\n useTaggedEntities,\n useEntityState,\n updateLocalTaggedEntity,\n deleteLocalTaggedEntity,\n };\n};\n\nexport { initCoreActions };\n\nexport type CoreActions = ReturnType<typeof initCoreActions>;\n","import type { CreatedEntity, Entity, EntitySchemaMap } from '@monorise/base';\nimport type { Mutual, MutualData } from '../types/mutual.type';\n\nexport const constructLocal = (\n entityType: Entity,\n entityId: string,\n data: any,\n): CreatedEntity<Entity> => {\n return {\n entityType: entityType as unknown as string,\n entityId,\n data,\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n };\n};\n\nexport const constructMutual = <B extends Entity, T extends Entity>(\n byEntityType: B,\n byEntityId: string,\n entityType: T,\n entityId: string,\n mutualData: Partial<MutualData<B, T>>,\n data: EntitySchemaMap[T],\n): Mutual => {\n return {\n mutualId: `${byEntityId}-${entityId}`,\n byEntityType,\n byEntityId,\n entityType,\n entityId,\n mutualData,\n data,\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n mutualUpdatedAt: new Date().toISOString(),\n };\n};\n\nexport const flipMutual = (mutual: Mutual): Mutual => {\n return {\n ...mutual,\n entityId: mutual.byEntityId,\n entityType: mutual.byEntityType,\n byEntityId: mutual.entityId,\n byEntityType: mutual.entityType,\n };\n};\n\nexport const byMutualIndex = (a: Mutual<any, any>, b: Mutual<any, any>) => {\n return a.mutualData.index - b.mutualData.index;\n};\n\nexport const byEntityId = (a: CreatedEntity<any>, b: CreatedEntity<any>) => {\n if (b.entityId < a.entityId) return -1;\n return 1;\n};\n\nexport const constructOrderByIndex = (mutuals: Mutual<any, any>[]) => {\n return mutuals.sort(byMutualIndex).map((mutual) => mutual.entityId);\n};\n\nexport const injectFields = <T extends Entity>(\n entity: CreatedEntity<T> | undefined,\n fields: Record<string, any>,\n): CreatedEntity<T> | undefined => {\n return entity\n ? {\n ...entity,\n data: {\n ...entity.data,\n ...fields,\n },\n }\n : undefined;\n};\n","import type { Entity } from '@monorise/base';\n\nexport const convertToMap = <T extends Record<string, any>>(\n data: T[],\n mapKey: string,\n) => {\n const map = new Map();\n\n for (const i in data) {\n map.set(data[i][mapKey], data[i]);\n }\n\n return map;\n};\n\nexport const getMutualStateKey = (\n byEntity: Entity,\n byEntityId: string | null,\n entity: Entity,\n entityId?: string,\n chainEntityQuery?: string,\n) => {\n return `${byEntity}/${byEntityId}/${entity}${entityId ? `/${entityId}` : ''}${chainEntityQuery ? `?${chainEntityQuery}` : ''}`;\n};\n\nexport const getTagStateKey = (\n entityType: Entity,\n tagName: string,\n params: Record<string, string> = {},\n) => {\n const { lastKey, ...stateParams } = params;\n\n const paramsKey = Object.keys(stateParams)\n .map((key) => `${key}:${stateParams[key]}`)\n .join('/');\n\n return `${entityType}/${tagName}/${paramsKey}`;\n};\n\nexport const getUniqueFieldStateKey = (\n fieldName: string,\n fieldValue: string,\n) => {\n return `${fieldName}/${fieldValue}`;\n};\n\nexport const getEntityRequestKey = (\n mode: 'create' | 'upsert' | 'edit' | 'adjust' | 'delete' | 'get' | 'list' | 'search',\n entityType: Entity,\n entityId?: string,\n) => {\n return `entity/${entityType}/${mode}${entityId ? `/${entityId}` : ''}`;\n};\n\nexport const getMutualRequestKey = (\n mode: 'create' | 'update' | 'delete' | 'get' | 'list',\n byEntityType: Entity,\n entityType: Entity,\n byEntityId: string | null,\n entityId?: string,\n chainEntityQuery?: string,\n) => {\n return `mutual/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId, chainEntityQuery)}/${mode}`;\n};\n\nexport const getTagRequestKey = (\n mode: 'list',\n entityType: Entity,\n tagName: string,\n params: Record<string, string> = {},\n) => {\n return `tag/${getTagStateKey(entityType, tagName, params)}/${mode}`;\n};\n\nexport const getUniqueFieldRequestKey = (\n entityType: Entity,\n fieldName: string,\n value: string,\n) => {\n return `entity/${entityType}/unique/${getUniqueFieldStateKey(fieldName, value)}`;\n};\n","import request, {\n type AxiosError,\n type AxiosRequestConfig,\n type AxiosResponse,\n} from 'axios';\nimport type { AppActions } from '../actions/app.action';\nimport type { AuthActions } from '../actions/auth.action';\nimport type { MonoriseStore } from '../store/monorise.store';\nimport type { ApplicationRequestError } from '../types/api.type';\n\ntype IntercepterAxiosRequestConfig<D> = AxiosRequestConfig<D> & {\n requestKey: string;\n isInterruptive?: boolean;\n feedback?: {\n loading?: string | boolean;\n success?: ((data: any) => string) | string | boolean;\n failure?: string | boolean;\n };\n};\n\nconst initAxiosInterceptor = (store: MonoriseStore, appActions: AppActions) => {\n const { startLoading } = appActions;\n\n const axiosInstance = request.create();\n\n function makeRequest<T = any, R = AxiosResponse<T, any>, D = any>(\n url: string,\n config: AxiosRequestConfig<D>,\n data?: D,\n ): Promise<R> {\n const { requestKey, isInterruptive = false, feedback } = config;\n const { ongoingRequests } = store.getState().app;\n\n if (ongoingRequests.has(requestKey)) {\n return ongoingRequests.get(requestKey) as Promise<R>;\n }\n\n const promise = axiosInstance.request<T, R, D>({\n ...config,\n url,\n data,\n headers: {\n ...(config.headers || {}),\n 'Mr-Interruptive': String(isInterruptive),\n },\n });\n startLoading({\n requestKey,\n isInterruptive,\n message: feedback?.loading,\n request: promise,\n });\n\n return promise;\n }\n\n const axios = {\n ...axiosInstance,\n post: <T = any, R = AxiosResponse<T, any>, D = any>(\n url: string,\n data: D,\n config: IntercepterAxiosRequestConfig<D>,\n ): Promise<R> => makeRequest(url, { ...config, method: 'POST' }, data),\n put: <T = any, R = AxiosResponse<T, any>, D = any>(\n url: string,\n data: D,\n config: IntercepterAxiosRequestConfig<D>,\n ): Promise<R> => makeRequest(url, { ...config, method: 'PUT' }, data),\n patch: <T = any, R = AxiosResponse<T, any>, D = any>(\n url: string,\n data: D,\n config: IntercepterAxiosRequestConfig<D>,\n ): Promise<R> => makeRequest(url, { ...config, method: 'PATCH' }, data),\n delete: <T = any, R = AxiosResponse<T, any>, D = any>(\n url: string,\n config: IntercepterAxiosRequestConfig<D>,\n ): Promise<R> => makeRequest(url, { ...config, method: 'DELETE' }),\n get: <T = any, R = AxiosResponse<T, any>, D = any>(\n url: string,\n config: IntercepterAxiosRequestConfig<D>,\n ): Promise<R> => makeRequest(url, { ...config, method: 'GET' }),\n };\n\n return axios;\n};\n\ntype ConfigOptions = {\n onApiSuccess?: <T>(\n response: AxiosResponse<T>,\n feedbackSuccess:\n | ((data: AxiosResponse<T>['data']) => React.ReactNode)\n | string\n | boolean,\n ) => void;\n};\n\nconst injectAxiosInterceptor = (\n appActions: AppActions,\n authActions: AuthActions,\n axios: ReturnType<typeof initAxiosInterceptor>,\n opts?: ConfigOptions,\n) => {\n let options: ConfigOptions = opts || {};\n const { endLoading, setError, clearError } = appActions;\n const { setIsUnauthorized } = authActions;\n\n const unknownError: ApplicationRequestError = {\n status: 500,\n code: 'UNKNOWN_EXCEPTION',\n message: \"Ops, something doesn't seems right\",\n };\n\n axios.interceptors.response.use(\n (response) => {\n const { requestKey, isInterruptive, feedback } = response.config;\n endLoading({ requestKey, isInterruptive });\n clearError(requestKey);\n\n if (feedback?.success) {\n options.onApiSuccess?.(response, feedback.success);\n }\n // switch (typeof feedback.success) {\n // case 'function':\n // toast(feedback.success(response.data));\n // break;\n // case 'string':\n // toast(\n // <Fragment>\n // <IconCircleCheckFilled color='rgb(34 197 94)' />\n // {feedback.success}\n // </Fragment>,\n // );\n // break;\n // case 'boolean':\n // toast('Request success');\n // break;\n // }\n\n return Promise.resolve(response);\n },\n (error: AxiosError<string>) => {\n const { requestKey, isInterruptive } = error.config as AxiosRequestConfig;\n endLoading({ requestKey, isInterruptive });\n\n const appError = error.response?.data\n ? {\n code: error.response?.statusText,\n status: error.response?.status,\n message: error.response?.data,\n }\n : unknownError;\n setError({ requestKey, error: appError });\n if (error.response?.status === 401) {\n setIsUnauthorized(true);\n }\n return Promise.reject(error);\n },\n );\n\n const setOptions = (opts: ConfigOptions) => {\n options = {\n ...options,\n ...opts,\n };\n };\n\n return { setOptions };\n};\n\nexport { initAxiosInterceptor, injectAxiosInterceptor };\n","import type { Entity } from '@monorise/base';\nimport type { AxiosInterceptor } from '../types/api.type';\n\ntype LoginPayload = {\n email: string;\n};\n\ntype Options = {\n apiBaseUrl?: string;\n};\n\nconst initAuthService = (axios: AxiosInterceptor) => {\n let options: Options = {};\n const { apiBaseUrl = '/api/auth' } = options;\n\n const requestLoginMagicLink = (entityType: Entity, payload: LoginPayload) => {\n return axios.post(\n `${apiBaseUrl}/${entityType}`,\n {\n body: { ...payload },\n },\n {\n requestKey: `auth/${entityType}/request-login`,\n isInterruptive: true,\n feedback: {\n loading: 'Requesting login link',\n },\n },\n );\n };\n\n const getSessionProfile = <T extends Record<string, unknown>>() =>\n axios.get<\n T & {\n displayName: string;\n email: string;\n accountId: string;\n }\n >('/session', {\n requestKey: 'auth/session',\n });\n\n const logout = () =>\n axios.get('/logout', {\n requestKey: 'auth/logout',\n });\n\n const setOptions = (opts: Options) => {\n options = {\n ...options,\n ...opts,\n };\n };\n\n return {\n requestLoginMagicLink,\n getSessionProfile,\n logout,\n setOptions,\n };\n};\n\nexport default initAuthService;\n\nexport type AuthService = ReturnType<typeof initAuthService>;\n","import type { CreatedEntity, DraftEntity, Entity } from '@monorise/base';\nimport type { AxiosRequestConfig } from 'axios';\nimport {\n getEntityRequestKey,\n getMutualRequestKey,\n getMutualStateKey,\n getTagRequestKey,\n getUniqueFieldRequestKey,\n getUniqueFieldStateKey,\n} from '../lib/utils';\nimport type { MonoriseStore } from '../store/monorise.store';\nimport type {\n ApplicationRequestError,\n AxiosInterceptor,\n} from '../types/api.type';\nimport type { Mutual, MutualData } from '../types/mutual.type';\n\nconst ENTITY_API_BASE_URL = '/api/core/entity';\nconst MUTUAL_API_BASE_URL = '/api/core/mutual';\nconst TAG_API_BASE_URL = '/api/core/tag';\n\ntype ListEntitiesPayload = {\n limit?: number;\n lastKey?: string;\n start?: string;\n end?: string;\n};\n\nexport type ListEntitiesByTagParams = {\n group?: string;\n query?: string;\n start?: string;\n end?: string;\n limit?: number;\n lastKey?: string;\n};\n\ntype ConfigOptions = {\n entityApiBaseUrl?: string;\n mutualApiBaseUrl?: string;\n tagApiBaseUrl?: string;\n};\n\nexport type CommonOptions = Partial<AxiosRequestConfig> & {\n customUrl?: string;\n isInterruptive?: boolean;\n feedback?: {\n success?: string;\n failure?: string;\n loading?: string;\n };\n stateKey?: string;\n forceFetch?: boolean;\n noData?: boolean;\n limit?: number;\n requestKey?: string;\n onError?: (error: ApplicationRequestError | Error) => void;\n entityId?: string;\n};\n\nconst initCoreService = (\n monoriseStore: MonoriseStore,\n axios: AxiosInterceptor,\n opts?: ConfigOptions,\n) => {\n let options: ConfigOptions = opts || {};\n\n const listEntities = <T extends Entity>(\n entityType: T,\n payload?: ListEntitiesPayload,\n opts: CommonOptions = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n return axios.get<{\n data: CreatedEntity<T>[];\n lastKey?: string;\n totalCount: number;\n }>(opts.customUrl || `${entityApiBaseUrl}/${entityType}`, {\n requestKey: getEntityRequestKey('list', entityType),\n params: payload ?? undefined,\n isInterruptive: opts.isInterruptive,\n feedback: opts.feedback,\n });\n };\n\n const searchEntities = <T extends Entity>(\n entityType: T,\n query: string,\n opts: CommonOptions = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n return axios.get<{ data: CreatedEntity<T>[] }>(\n opts.customUrl || `${entityApiBaseUrl}/${entityType}`,\n {\n requestKey: getEntityRequestKey('search', entityType),\n params: { query },\n isInterruptive: opts.isInterruptive,\n feedback: opts.feedback,\n },\n );\n };\n\n const listEntitiesByTag = <T extends Entity>(\n entityType: T,\n tagName: string,\n opts: CommonOptions & { params?: ListEntitiesByTagParams } = {},\n ) => {\n const { tagApiBaseUrl = TAG_API_BASE_URL } = options;\n return axios.get<{ entities: CreatedEntity<T>[]; lastKey: string }>(\n opts.customUrl || `${tagApiBaseUrl}/${entityType}/${tagName}`,\n {\n requestKey:\n opts.requestKey ||\n getTagRequestKey('list', entityType, tagName, opts.params),\n params: opts.params,\n isInterruptive: opts.isInterruptive,\n feedback: opts.feedback,\n },\n );\n };\n\n const getEntity = <T extends Entity>(\n entityType: T,\n id: string,\n opts: CommonOptions = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n return axios.get<CreatedEntity<T>>(\n opts.customUrl || `${entityApiBaseUrl}/${entityType}/${id}`,\n {\n requestKey: getEntityRequestKey('get', entityType, id),\n isInterruptive: opts.isInterruptive,\n feedback: {\n loading: `Retrieving ${entityType}`,\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const getEntityByUniqueField = <T extends Entity>(\n entityType: T,\n fieldName: string,\n value: string,\n opts: CommonOptions = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n return axios.get<CreatedEntity<T>>(\n opts.customUrl ||\n `${entityApiBaseUrl}/${entityType}/unique/${getUniqueFieldStateKey(fieldName, value)}`,\n {\n requestKey: getUniqueFieldRequestKey(entityType, fieldName, value),\n isInterruptive: opts.isInterruptive,\n feedback: {\n loading: `Retrieving ${entityType}`,\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const createEntity = <T extends Entity>(\n entityType: T,\n values: DraftEntity<T>,\n opts: CommonOptions = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n const entityConfig = monoriseStore.getState().config;\n return axios.post<CreatedEntity<T>>(\n opts.customUrl || `${entityApiBaseUrl}/${entityType}`,\n { ...values, ...(opts.entityId && { entityId: opts.entityId }) },\n {\n requestKey:\n opts.requestKey || getEntityRequestKey('create', entityType),\n isInterruptive: opts.isInterruptive ?? true,\n feedback: {\n loading: `Creating ${entityConfig[entityType].displayName}`,\n success: `${entityConfig[entityType].displayName} created`,\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const upsertEntity = <T extends Entity>(\n entityType: T,\n id: string,\n values: DraftEntity<T>,\n opts: CommonOptions = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n const entityConfig = monoriseStore.getState().config;\n return axios.put<CreatedEntity<T>>(\n opts.customUrl || `${entityApiBaseUrl}/${entityType}/${id}`,\n values,\n {\n requestKey: getEntityRequestKey('upsert', entityType, id),\n isInterruptive: opts.isInterruptive ?? true,\n feedback: {\n loading: `Updating ${entityConfig[entityType].displayName}`,\n success: `${entityConfig[entityType].displayName} updated`,\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const editEntity = <T extends Entity>(\n entityType: T,\n id: string,\n values: Partial<DraftEntity<T>>,\n opts: CommonOptions = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n const entityConfig = monoriseStore.getState().config;\n return axios.patch<CreatedEntity<T>>(\n opts.customUrl || `${entityApiBaseUrl}/${entityType}/${id}`,\n values,\n {\n requestKey: getEntityRequestKey('edit', entityType, id),\n isInterruptive: opts.isInterruptive ?? true,\n feedback: {\n loading: `Updating ${entityConfig[entityType].displayName}`,\n success: `${entityConfig[entityType].displayName} updated`,\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const adjustEntity = <T extends Entity>(\n entityType: T,\n id: string,\n adjustments: Record<string, number>,\n opts: CommonOptions = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n const entityConfig = monoriseStore.getState().config;\n return axios.post<CreatedEntity<T>>(\n opts.customUrl || `${entityApiBaseUrl}/${entityType}/${id}/adjust`,\n adjustments,\n {\n requestKey: getEntityRequestKey('adjust', entityType, id),\n isInterruptive: opts.isInterruptive ?? true,\n feedback: {\n loading: `Updating ${entityConfig[entityType].displayName}`,\n success: `${entityConfig[entityType].displayName} updated`,\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const deleteEntity = <T extends Entity>(\n entityType: T,\n id: string,\n opts: CommonOptions = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n const entityConfig = monoriseStore.getState().config;\n return axios.delete(\n opts.customUrl || `${entityApiBaseUrl}/${entityType}/${id}`,\n {\n requestKey: getEntityRequestKey('delete', entityType, id),\n isInterruptive: opts.isInterruptive ?? true,\n feedback: {\n loading: `Deleting ${entityConfig[entityType].displayName}`,\n success: `${entityConfig[entityType].displayName} deleted`,\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const listEntitiesByEntity = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n opts: CommonOptions = {},\n chainEntityQuery?: string,\n ) => {\n const { mutualApiBaseUrl = MUTUAL_API_BASE_URL } = options;\n return axios.get<{ entities: Mutual<B, T>[]; lastKey: string }>(\n opts.customUrl ||\n `${mutualApiBaseUrl}/${byEntityType}/${byEntityId}/${entityType}`,\n {\n requestKey: getMutualRequestKey(\n 'list',\n byEntityType,\n entityType,\n byEntityId,\n undefined,\n chainEntityQuery,\n ),\n isInterruptive: opts.isInterruptive,\n feedback: opts.feedback,\n params: {\n chainEntityQuery,\n limit: opts.limit,\n ...opts.params,\n ...(opts.noData && { projection: 'no-data' }),\n },\n },\n );\n };\n\n const getMutual = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n opts: CommonOptions = {},\n ) => {\n const { mutualApiBaseUrl = MUTUAL_API_BASE_URL } = options;\n return axios.get<Mutual<B, T>>(\n opts.customUrl ||\n `${mutualApiBaseUrl}/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n {\n requestKey: getMutualRequestKey(\n 'get',\n byEntityType,\n entityType,\n byEntityId,\n entityId,\n ),\n isInterruptive: opts.isInterruptive ?? false,\n feedback: opts.feedback,\n },\n );\n };\n\n const createMutual = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n payload: MutualData<B, T> | Record<string, unknown>,\n opts: CommonOptions = {},\n ) => {\n const { mutualApiBaseUrl = MUTUAL_API_BASE_URL } = options;\n return axios.post<Mutual<B, T>>(\n opts.customUrl ||\n `${mutualApiBaseUrl}/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n payload,\n {\n requestKey: getMutualRequestKey(\n 'create',\n byEntityType,\n entityType,\n byEntityId,\n ),\n isInterruptive: opts.isInterruptive ?? true,\n feedback: {\n loading: 'Creating linkage',\n success: 'Linkage created',\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const editMutual = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n payload: MutualData<B, T> | Record<string, unknown>,\n opts: CommonOptions = {},\n ) => {\n const { mutualApiBaseUrl = MUTUAL_API_BASE_URL } = options;\n return axios.patch<Mutual<B, T>>(\n opts.customUrl ||\n `${mutualApiBaseUrl}/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n payload,\n {\n requestKey: getMutualRequestKey(\n 'update',\n byEntityType,\n entityType,\n byEntityId,\n entityId,\n ),\n isInterruptive: opts.isInterruptive ?? true,\n feedback: {\n loading: 'Updating linkage',\n success: 'Linkage updated',\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const deleteMutual = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n opts: CommonOptions = {},\n ) => {\n const { mutualApiBaseUrl = MUTUAL_API_BASE_URL } = options;\n return axios.delete(\n opts.customUrl ||\n `${mutualApiBaseUrl}/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n {\n requestKey: getMutualRequestKey(\n 'delete',\n byEntityType,\n entityType,\n byEntityId,\n entityId,\n ),\n isInterruptive: opts.isInterruptive ?? true,\n feedback: {\n loading: 'Removing linkage',\n success: 'Linkage removed',\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const makeEntityService = <T extends Entity>(entityType: T) => ({\n listEntities: (payload: ListEntitiesPayload, opts: CommonOptions = {}) =>\n listEntities(entityType, payload, opts),\n searchEntities: (query: string, opts: CommonOptions = {}) =>\n searchEntities(entityType, query, opts),\n listEntitiesByTag: (tagName: string, opts: CommonOptions = {}) =>\n listEntitiesByTag(entityType, tagName, opts),\n getEntity: (id: string, opts: CommonOptions = {}) =>\n getEntity(entityType, id, opts),\n getEntityByUniqueField: (\n fieldName: string,\n value: string,\n opts: CommonOptions = {},\n ) => getEntityByUniqueField(entityType, fieldName, value, opts),\n createEntity: (values: DraftEntity<T>, opts: CommonOptions = {}) =>\n createEntity(entityType, values, opts),\n upsertEntity: (\n id: string,\n values: DraftEntity<T>,\n opts: CommonOptions = {},\n ) => upsertEntity(entityType, id, values, opts),\n editEntity: (\n id: string,\n values: Partial<DraftEntity<T>>,\n opts: CommonOptions = {},\n ) => editEntity(entityType, id, values, opts),\n updateEntity: (\n id: string,\n values: DraftEntity<T>,\n opts: CommonOptions = {},\n ) => editEntity(entityType, id, values, opts),\n adjustEntity: (\n id: string,\n adjustments: Record<string, number>,\n opts: CommonOptions = {},\n ) => adjustEntity(entityType, id, adjustments, opts),\n deleteEntity: (id: string, opts: CommonOptions = {}) =>\n deleteEntity(entityType, id, opts),\n });\n\n const makeMutualService = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n ) => ({\n listEntitiesByEntity: (\n byEntityId: string,\n opts: CommonOptions = {},\n chainEntityQuery?: string,\n ) =>\n listEntitiesByEntity(\n byEntityType,\n entityType,\n byEntityId,\n opts,\n chainEntityQuery,\n ),\n getMutual: (\n byEntityId: string,\n entityId: string,\n opts: CommonOptions = {},\n ) => getMutual(byEntityType, entityType, byEntityId, entityId, opts),\n createMutual: (\n byEntityId: string,\n entityId: string,\n payload: MutualData<B, T> | Record<string, unknown>,\n opts = {},\n ) =>\n createMutual(\n byEntityType,\n entityType,\n byEntityId,\n entityId,\n payload,\n opts,\n ),\n editMutual: (\n byEntityId: string,\n entityId: string,\n payload: MutualData<B, T> | Record<string, unknown>,\n opts = {},\n ) =>\n editMutual(byEntityType, entityType, byEntityId, entityId, payload, opts),\n deleteMutual: (\n byEntityId: string,\n entityId: string,\n opts: CommonOptions = {},\n ) => deleteMutual(byEntityType, entityType, byEntityId, entityId, opts),\n });\n\n const setOptions = (opts: ConfigOptions) => {\n options = {\n ...options,\n ...opts,\n };\n };\n\n return {\n makeEntityService,\n makeMutualService,\n setOptions,\n };\n};\n\nexport default initCoreService;\n\nexport type CoreService = ReturnType<typeof initCoreService>;\n","import type { AxiosInterceptor } from '../types/api.type';\n\ntype UploadFileProps = {\n file: File;\n scope: string;\n directory: string;\n name: string;\n disableLoading?: boolean;\n onProgress?: (progress: number) => void;\n};\n\ntype Options = {\n apiBaseUrl?: string;\n};\n\nconst initFilestoreService = (axios: AxiosInterceptor) => {\n let options: Options = {};\n const { apiBaseUrl = '/api/file' } = options;\n\n const uploadFile = async ({\n file,\n scope,\n directory,\n name,\n disableLoading,\n onProgress,\n }: UploadFileProps) => {\n const { data } = await axios.get(`${apiBaseUrl}/upload`, {\n requestKey: `filestore/presign/file/${name}`,\n isInterruptive: !disableLoading,\n feedback: {\n loading: 'Preparing upload',\n },\n params: {\n scope,\n directory,\n filename: name,\n },\n });\n\n return axios.put(data.url, file, {\n requestKey: `filestore/upload/${name}`,\n isInterruptive: !disableLoading,\n feedback: {\n loading: 'Uploading file',\n },\n headers: {\n 'Content-Type': file.type,\n 'Content-Disposition': 'inline',\n },\n onUploadProgress: (progressEvent) => {\n if (onProgress && progressEvent.total) {\n const progress = Math.round(\n (progressEvent.loaded / progressEvent.total) * 100,\n );\n onProgress(progress);\n }\n },\n });\n };\n\n const deleteFiles = async (keys: string[]) => {\n console.log('Deleting files', keys);\n const { data } = await axios.post(\n `${apiBaseUrl}/delete`,\n {\n keys,\n },\n {\n requestKey: 'filestore/delete',\n },\n );\n\n return data;\n };\n\n const uploadVideo = async ({\n file,\n scope,\n directory,\n name,\n }: UploadFileProps) => {\n const { data: presign } = await axios.get(`${apiBaseUrl}/upload`, {\n requestKey: `filestore/presign/video/${name}`,\n isInterruptive: true,\n feedback: {\n loading: 'Preparing upload',\n },\n params: {\n scope,\n directory,\n filename: name,\n },\n });\n\n await axios.put(presign.url, file, {\n requestKey: `filestore/upload/video/${name}`,\n isInterruptive: true,\n feedback: {\n loading: 'Uploading video',\n },\n headers: {\n 'Content-Type': file.type,\n },\n });\n\n const { data } = await axios.post(\n `${apiBaseUrl}/video/convert`,\n {\n scope,\n directory,\n filename: name,\n },\n {\n requestKey: 'filestore/convert/video',\n isInterruptive: true,\n feedback: {\n loading: 'Triggering video conversion',\n },\n },\n );\n\n return data;\n };\n\n const uploadAudio = async ({\n file,\n scope,\n directory,\n name,\n }: UploadFileProps) => {\n const { data: presign } = await axios.get(`${apiBaseUrl}/upload`, {\n requestKey: `filestore/presign/audio/${name}`,\n isInterruptive: true,\n feedback: {\n loading: 'Preparing upload',\n },\n params: {\n scope,\n directory,\n filename: name,\n },\n });\n\n await axios.put(presign.url, file, {\n requestKey: `filestore/upload/audio/${name}`,\n isInterruptive: true,\n feedback: {\n loading: 'Uploading audio',\n },\n headers: {\n 'Content-Type': file.type,\n },\n });\n\n const { data } = await axios.post(\n `${apiBaseUrl}/audio/convert`,\n {\n scope,\n directory,\n filename: name,\n },\n {\n requestKey: 'filestore/convert/audio',\n isInterruptive: true,\n feedback: {\n loading: 'Triggering audio conversion',\n },\n },\n );\n\n return data;\n };\n\n const getJobStatus = async (id: string) => {\n const { data } = await axios.get(`${apiBaseUrl}/job/${id}`, {\n requestKey: `filestore/get-job/${id}`,\n });\n\n return data;\n };\n\n const setOptions = (opts: Options) => {\n options = {\n ...options,\n ...opts,\n };\n };\n\n return {\n uploadFile,\n deleteFiles,\n uploadVideo,\n uploadAudio,\n getJobStatus,\n setOptions,\n };\n};\n\nexport default initFilestoreService;\n","import type {\n CreatedEntity,\n Entity,\n MonoriseEntityConfig,\n} from '@monorise/base';\nimport { enableMapSet } from 'immer';\nimport type React from 'react';\nimport { create } from 'zustand';\nimport { devtools } from 'zustand/middleware';\nimport type { ApplicationRequestError, ModalProps } from '../types/api.type';\nimport type { CommonStore } from '../types/monorise.type';\nimport type { Mutual } from '../types/mutual.type';\n\nenableMapSet();\n\nconst configureDevtools = (storeName: string) => ({\n name: `${storeName} Store`,\n anonymousActionType: `${storeName.toLowerCase()}/action`,\n enabled: !['prod', 'dev'].includes(process.env.NEXT_PUBLIC_ENVIRONMENT ?? ''),\n serialize: {\n options: {\n map: true,\n },\n },\n});\n\ntype Options = {\n modals?: Record<string, React.ComponentType<unknown>>;\n};\n\nconst initMonoriseStore = () => {\n let options: Options = {};\n const { modals = {} } = options;\n\n type AppModalProps = ModalProps<typeof modals>;\n\n const monoriseStore = create(\n devtools(\n (): {\n app: {\n ongoingRequests: Map<string, Promise<unknown>>;\n loadStack: Map<string, number>;\n intLoadStack: Map<string, number>;\n loadingMessage: string;\n errorStack: Map<string, ApplicationRequestError>;\n modal: {\n name: keyof AppModalProps | null;\n context?: AppModalProps[keyof AppModalProps];\n };\n };\n config: Record<Entity, MonoriseEntityConfig>;\n entity: Record<Entity, CommonStore<CreatedEntity<Entity>>>;\n mutual: Record<string, CommonStore<Mutual>>;\n tag: Record<string, CommonStore<CreatedEntity<Entity>>>;\n auth: {\n isUnauthorized: boolean;\n profile: {\n displayName: string;\n email: string;\n accountId: string;\n };\n isLoading: boolean;\n };\n } => ({\n app: {\n ongoingRequests: new Map(),\n loadStack: new Map(),\n intLoadStack: new Map(),\n loadingMessage: '',\n errorStack: new Map(),\n modal: {\n name: null,\n },\n },\n config: {},\n entity: {},\n mutual: {},\n tag: {},\n auth: {\n isUnauthorized: false,\n profile: {\n displayName: '',\n email: '',\n accountId: '',\n },\n isLoading: true,\n },\n }),\n configureDevtools('monorise'),\n ),\n );\n\n const setOptions = (opts: Options) => {\n options = {\n ...options,\n ...opts,\n };\n };\n\n return { setOptions, monoriseStore };\n};\n\nexport { initMonoriseStore };\n\nexport type MonoriseStore = Awaited<\n ReturnType<typeof initMonoriseStore>\n>['monoriseStore'];\n","import type { Entity, MonoriseEntityConfig } from '@monorise/base';\nimport type { AxiosResponse } from 'axios';\nimport { initAppActions } from './actions/app.action';\nimport { initAuthActions } from './actions/auth.action';\nimport { initConfigActions } from './actions/config.action';\nimport { initCoreActions } from './actions/core.action';\nimport { initAxiosInterceptor, injectAxiosInterceptor } from './lib/api';\nimport {\n getEntityRequestKey,\n getMutualRequestKey,\n getTagRequestKey,\n getUniqueFieldRequestKey,\n} from './lib/utils';\nimport initAuthService from './services/auth.service';\nimport initCoreService from './services/core.service';\nimport initFilestoreService from './services/filestore.service';\nimport { initMonoriseStore } from './store/monorise.store';\nimport {\n Mutual,\n MutualData,\n MutualDataMapping,\n MutualDataWithIndex,\n} from './types/mutual.type';\n\ntype Options<T extends Record<string, React.ComponentType<any>>> = {\n authBaseUrl?: string;\n filestoreBaseUrl?: string;\n entityBaseUrl?: string;\n mutualBaseUrl?: string;\n tagBaseUrl?: string;\n modals?: T;\n entityConfig: Record<Entity, MonoriseEntityConfig>;\n onApiSuccess?: <T>(\n response: AxiosResponse<T>,\n feedbackSuccess:\n | ((data: AxiosResponse<T>['data']) => React.ReactNode)\n | string\n | boolean,\n ) => void;\n};\n\nconst initMonorise = () => {\n const { monoriseStore: store, setOptions: setMonoriseOptions } =\n initMonoriseStore();\n const appActions = initAppActions(store);\n const configActions = initConfigActions(store);\n const axios = initAxiosInterceptor(store, appActions);\n\n const authService = initAuthService(axios);\n const filestoreService = initFilestoreService(axios);\n const coreService = initCoreService(store, axios);\n\n const authActions = initAuthActions(store, authService);\n const coreActions = initCoreActions(store, appActions, coreService);\n\n const axiosInterceptor = injectAxiosInterceptor(\n appActions,\n authActions,\n axios,\n );\n\n const config = <T extends Record<string, React.ComponentType<any>>>(\n opts: Options<T>,\n ) => {\n setMonoriseOptions({\n modals: opts.modals,\n });\n configActions.setConfig(opts.entityConfig);\n authService.setOptions({\n apiBaseUrl: opts.authBaseUrl,\n });\n filestoreService.setOptions({\n apiBaseUrl: opts.filestoreBaseUrl,\n });\n coreService.setOptions({\n entityApiBaseUrl: opts.entityBaseUrl,\n mutualApiBaseUrl: opts.mutualBaseUrl,\n tagApiBaseUrl: opts.tagBaseUrl,\n });\n axiosInterceptor.setOptions({\n onApiSuccess: opts.onApiSuccess,\n });\n };\n\n return {\n config,\n store,\n axios,\n authService,\n filestoreService,\n coreService,\n ...configActions,\n ...appActions,\n ...authActions,\n ...coreActions,\n };\n};\n\nconst Monorise = initMonorise();\n\nconst {\n store,\n axios,\n authService,\n filestoreService,\n coreService,\n setConfig,\n getConfig,\n useConfig,\n startLoading,\n endLoading,\n setError,\n getError,\n clearError,\n openModal,\n closeModal,\n useLoadStore,\n useInterruptiveLoadStore,\n useErrorStore,\n useModalStore,\n requestLogin,\n useProfile,\n getProfile,\n useIsUnauthorized,\n setIsUnauthorized,\n logout,\n listMoreEntities,\n createEntity,\n upsertEntity,\n editEntity,\n adjustEntity,\n updateLocalEntity,\n deleteEntity,\n getMutual,\n createMutual,\n createLocalMutual,\n upsertLocalMutual,\n editMutual,\n deleteMutual,\n deleteLocalMutual,\n useEntity,\n useEntityByUniqueField,\n useEntities,\n useMutual,\n useMutuals,\n useTaggedEntities,\n useEntityState,\n getEntity,\n updateLocalTaggedEntity,\n deleteLocalTaggedEntity,\n} = Monorise;\n\nexport {\n store,\n axios,\n authService,\n filestoreService,\n coreService,\n setConfig,\n getConfig,\n useConfig,\n startLoading,\n endLoading,\n setError,\n getError,\n clearError,\n openModal,\n closeModal,\n useLoadStore,\n useInterruptiveLoadStore,\n useErrorStore,\n useModalStore,\n requestLogin,\n useProfile,\n getProfile,\n useIsUnauthorized,\n setIsUnauthorized,\n logout,\n listMoreEntities,\n createEntity,\n upsertEntity,\n editEntity,\n adjustEntity,\n updateLocalEntity,\n deleteEntity,\n getMutual,\n createMutual,\n createLocalMutual,\n upsertLocalMutual,\n editMutual,\n deleteMutual,\n deleteLocalMutual,\n useEntity,\n useEntityByUniqueField,\n useEntities,\n useMutual,\n useMutuals,\n useTaggedEntities,\n useEntityState,\n getEntityRequestKey,\n getMutualRequestKey,\n getTagRequestKey,\n getUniqueFieldRequestKey,\n getEntity,\n updateLocalTaggedEntity,\n deleteLocalTaggedEntity,\n};\n\nexport default Monorise;\n\nexport { MutualDataWithIndex, MutualDataMapping, MutualData, Mutual };\n\nexport type {\n CreatedEntity,\n DraftEntity,\n Entity,\n EntitySchemaMap,\n NumericFields,\n} from '@monorise/base';\n"],"mappings":"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","names":["store","startLoading","request","endLoading","setError","getError","clearError","openModal","closeModal","useLoadStore","useInterruptiveLoadStore","useErrorStore","useModalStore","produce","store","authService","requestLogin","useProfile","getProfile","produce","useIsUnauthorized","setIsUnauthorized","logout","produce","store","setConfig","getConfig","useConfig","produce","useEffect","useState","byEntityId","byEntityId","coreService","getError","useLoadStore","useErrorStore","store","produce","error","listMoreEntities","state","getEntity","createEntity","_a","byEntityId","upsertEntity","editEntity","adjustEntity","_b","deleteEntity","getMutual","createMutual","createLocalMutual","updateLocalEntity","upsertLocalMutual","editMutual","deleteMutual","deleteLocalMutual","useEntity","useEffect","useEntityByUniqueField","useEntities","useState","useMutual","useMutuals","useTaggedEntities","useEntityState","updateLocalTaggedEntity","deleteLocalTaggedEntity","store","startLoading","axios","endLoading","setError","clearError","setIsUnauthorized","opts","axios","logout","axios","opts","getEntity","createEntity","upsertEntity","editEntity","adjustEntity","deleteEntity","byEntityId","getMutual","createMutual","editMutual","deleteMutual","axios","store","axios","authService","filestoreService","coreService"]}
1
+ {"version":3,"sources":["../../../node_modules/http-status/lib/index.js","../actions/app.action.ts","../actions/auth.action.ts","../actions/config.action.ts","../actions/core.action.ts","../lib/entity.ts","../lib/utils.ts","../actions/websocket.action.ts","../lib/api.ts","../services/auth.service.ts","../services/core.service.ts","../services/filestore.service.ts","../store/monorise.store.ts","../../../node_modules/hono/dist/compose.js","../../../node_modules/hono/dist/request/constants.js","../../../node_modules/hono/dist/utils/body.js","../../../node_modules/hono/dist/utils/url.js","../../../node_modules/hono/dist/request.js","../../../node_modules/hono/dist/utils/html.js","../../../node_modules/hono/dist/context.js","../../../node_modules/hono/dist/router.js","../../../node_modules/hono/dist/utils/constants.js","../../../node_modules/hono/dist/hono-base.js","../../../node_modules/hono/dist/router/reg-exp-router/matcher.js","../../../node_modules/hono/dist/router/reg-exp-router/node.js","../../../node_modules/hono/dist/router/reg-exp-router/trie.js","../../../node_modules/hono/dist/router/reg-exp-router/router.js","../../../node_modules/hono/dist/router/smart-router/router.js","../../../node_modules/hono/dist/router/trie-router/node.js","../../../node_modules/hono/dist/router/trie-router/router.js","../../../node_modules/hono/dist/hono.js","../../../node_modules/hono/dist/helper/factory/index.js","../../core/middlewares/entity-type-check.ts","../../core/middlewares/mutual-type-check.ts","../../../node_modules/@aws-sdk/client-dynamodb/dist-es/endpoint/EndpointParameters.js","../../../node_modules/@aws-sdk/client-dynamodb/dist-es/models/DynamoDBServiceException.js","../../../node_modules/@aws-sdk/client-dynamodb/dist-es/models/errors.js","../../../node_modules/@aws-sdk/client-dynamodb/dist-es/schemas/schemas_0.js","../../../node_modules/@aws-sdk/credential-provider-node/dist-es/remoteProvider.js","../../../node_modules/@aws-sdk/credential-provider-node/dist-es/runtime/memoize-chain.js","../../../node_modules/@aws-sdk/credential-provider-node/dist-es/defaultProvider.js","../../../node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js","../../../node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJson1_1Protocol.js","../../../node_modules/@aws-sdk/client-dynamodb/dist-es/commands/QueryCommand.js","../../../node_modules/@aws-sdk/client-dynamodb/dist-es/commands/ScanCommand.js","../../../node_modules/@aws-sdk/util-dynamodb/dist-es/NumberValue.js","../../../node_modules/@aws-sdk/util-dynamodb/dist-es/convertToAttr.js","../../../node_modules/@aws-sdk/util-dynamodb/dist-es/convertToNative.js","../../../node_modules/@aws-sdk/util-dynamodb/dist-es/marshall.js","../../../node_modules/@aws-sdk/util-dynamodb/dist-es/unmarshall.js","../../../node_modules/ulid/dist/index.esm.js","../../../node_modules/@aws-sdk/lib-dynamodb/dist-es/commands/utils.js","../../../node_modules/@aws-sdk/lib-dynamodb/dist-es/baseCommand/DynamoDBDocumentClientCommand.js","../../../node_modules/@aws-sdk/lib-dynamodb/dist-es/commands/QueryCommand.js","../../../node_modules/@aws-sdk/lib-dynamodb/dist-es/commands/ScanCommand.js","../../../node_modules/@aws-sdk/lib-dynamodb/dist-es/DynamoDBDocumentClient.js","../../../node_modules/@aws-sdk/lib-dynamodb/dist-es/pagination/QueryPaginator.js","../../../node_modules/@aws-sdk/lib-dynamodb/dist-es/pagination/ScanPaginator.js","../../../node_modules/hono/dist/utils/encode.js","../../../node_modules/hono/dist/adapter/aws-lambda/handler.js","../../core/middlewares/api-key-auth.ts","../../core/helpers/dependencies.ts","../../../node_modules/@aws-sdk/client-eventbridge/dist-es/endpoint/ruleset.js","../../../node_modules/@aws-sdk/client-eventbridge/dist-es/endpoint/endpointResolver.js","../../../node_modules/@aws-sdk/client-eventbridge/dist-es/auth/httpAuthSchemeProvider.js","../../../node_modules/@aws-sdk/client-eventbridge/dist-es/endpoint/EndpointParameters.js","../../../node_modules/@aws-sdk/client-eventbridge/package.json","../../../node_modules/@aws-sdk/client-eventbridge/dist-es/models/EventBridgeServiceException.js","../../../node_modules/@aws-sdk/client-eventbridge/dist-es/models/errors.js","../../../node_modules/@aws-sdk/client-eventbridge/dist-es/schemas/schemas_0.js","../../../node_modules/@aws-sdk/client-eventbridge/dist-es/runtimeConfig.shared.js","../../../node_modules/@aws-sdk/client-eventbridge/dist-es/runtimeConfig.js","../../../node_modules/@aws-sdk/client-eventbridge/dist-es/auth/httpAuthExtensionConfiguration.js","../../../node_modules/@aws-sdk/client-eventbridge/dist-es/runtimeExtensions.js","../../../node_modules/@aws-sdk/client-eventbridge/dist-es/EventBridgeClient.js","../../core/types/event.ts","../../core/helpers/event.ts","../../core/middlewares/general-error-handler.ts","../../core/controllers/entity/create-entity.controller.ts","../../core/controllers/entity/delete-entity.controller.ts","../../core/controllers/entity/get-entity-by-unique-field-value.controller.ts","../../core/controllers/entity/get-entity.controller.ts","../../../node_modules/zod/v3/external.js","../../../node_modules/zod/v3/helpers/util.js","../../../node_modules/zod/v3/ZodError.js","../../../node_modules/zod/v3/locales/en.js","../../../node_modules/zod/v3/errors.js","../../../node_modules/zod/v3/helpers/parseUtil.js","../../../node_modules/zod/v3/helpers/errorUtil.js","../../../node_modules/zod/v3/types.js","../../core/controllers/entity/list-entities.controller.ts","../../core/controllers/entity/update-entity.controller.ts","../../core/controllers/entity/adjust-entity.controller.ts","../../core/controllers/entity/upsert-entity.controller.ts","../../core/controllers/mutual/create-mutual.controller.ts","../../core/controllers/mutual/delete-mutual.controller.ts","../../core/controllers/mutual/get-mutual.controller.ts","../../core/controllers/mutual/update-mutual.controller.ts","../../core/controllers/tag/list-tags.controller.ts","../../core/controllers/transaction/execute-transaction.controller.ts","../../core/controllers/ws/create-ticket.controller.ts","../../core/helpers/transactional.ts","../index.ts"],"sourcesContent":["// Generated by CoffeeScript 2.7.0\n// # node-http-status\n\n// **Reference:** \n\n// - https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml\n// - https://tools.ietf.org/html/rfc2324#section-2.3.2\n\n// ## Classes\n\n// The first digit of the status-code defines the class of response. The last two digits do not have any categorization role. There are five values for the first digit:\nvar classes;\n\nclasses = {\n // 1xx - The 1xx (Informational) class of status code indicates an interim response for communicating connection status or request progress prior to completing the requested action and sending a final response.\n '1xx': 'Informational',\n '1xx_NAME': 'INFORMATIONAL',\n '1xx_MESSAGE': 'Indicates an interim response for communicating connection status or request progress prior to completing the requested action and sending a final response.',\n INFORMATIONAL: '1xx',\n // 2xx - The 2xx (Successful) class of status code indicates that the client's request was successfully received, understood, and accepted.\n '2xx': 'Successful',\n '2xx_NAME': 'SUCCESSFUL',\n '2xx_MESSAGE': 'Indicates that the client\\'s request was successfully received, understood, and accepted.',\n SUCCESSFUL: '2xx',\n // 3xx - The 3xx (Redirection) class of status code indicates that further action needs to be taken by the user agent in order to fulfill the request.\n '3xx': 'Redirection',\n '3xx_NAME': 'REDIRECTION',\n '3xx_MESSAGE': 'Indicates that further action needs to be taken by the user agent in order to fulfill the request.',\n REDIRECTION: '3xx',\n // 4xx - The 4xx (Client Error) class of status code indicates that the client seems to have erred.\n '4xx': 'Client Error',\n '4xx_NAME': 'CLIENT_ERROR',\n '4xx_MESSAGE': 'Indicates that the client seems to have erred.',\n CLIENT_ERROR: '4xx',\n // 5xx - The 5xx (Server Error) class of status code indicates that the server is aware that it has erred or is incapable of performing the requested method.\n '5xx': 'Server Error',\n '5xx_NAME': 'SERVER_ERROR',\n '5xx_MESSAGE': 'Indicates that the server is aware that it has erred or is incapable of performing the requested method.',\n SERVER_ERROR: '5xx'\n};\n\nmodule.exports = {\n classes: classes,\n // ## Informational 1xx\n\n // Indicates an interim response for communicating connection status or request progress prior to completing the requested action and sending a final response.\n\n // 100 - The server has received the request headers and the client should proceed to send the request body.\n 100: 'Continue',\n '100_NAME': 'CONTINUE',\n '100_MESSAGE': 'The server has received the request headers and the client should proceed to send the request body.',\n '100_CLASS': classes.INFORMATIONAL,\n CONTINUE: 100,\n // 101 - The requester has asked the server to switch protocols and the server has agreed to do so.\n 101: 'Switching Protocols',\n '101_NAME': 'SWITCHING_PROTOCOLS',\n '101_MESSAGE': 'The requester has asked the server to switch protocols and the server has agreed to do so.',\n '101_CLASS': classes.INFORMATIONAL,\n SWITCHING_PROTOCOLS: 101,\n // 102 Processing (WebDAV; RFC 2518) - A WebDAV request may contain many sub-requests involving file operations, requiring a long time to complete the request. This code indicates that the server has received and is processing the request, but no response is available yet.[7] This prevents the client from timing out and assuming the request was lost.\n 102: 'Processing',\n '102_NAME': 'PROCESSING',\n '102_MESSAGE': 'A WebDAV request may contain many sub-requests involving file operations, requiring a long time to complete the request. This code indicates that the server has received and is processing the request, but no response is available yet.[7] This prevents the client from timing out and assuming the request was lost.',\n '102_CLASS': classes.INFORMATIONAL,\n PROCESSING: 102,\n // 103 Early Hints (RFC 8297) - Used to return some response headers before final HTTP message.\n 103: 'Early Hints',\n '103_NAME': 'EARLY_HINTS',\n '103_MESSAGE': 'Used to return some response headers before final HTTP message.',\n '103_CLASS': classes.INFORMATIONAL,\n EARLY_HINTS: 103,\n // ## Successful 2xx\n\n // Indicates that the client's request was successfully received, understood, and accepted.\n\n // 200 - Standard response for successful HTTP requests.\n 200: 'OK',\n '200_NAME': 'OK',\n '200_MESSAGE': 'Standard response for successful HTTP requests.',\n '200_CLASS': classes.SUCCESSFUL,\n OK: 200,\n // 201 - The request has been fulfilled, resulting in the creation of a new resource.\n 201: 'Created',\n '201_NAME': 'CREATED',\n '201_MESSAGE': 'The request has been fulfilled, resulting in the creation of a new resource.',\n '201_CLASS': classes.SUCCESSFUL,\n CREATED: 201,\n // 202 - The request has been accepted for processing, but the processing has not been completed.\n 202: 'Accepted',\n '202_NAME': 'ACCEPTED',\n '202_MESSAGE': 'The request has been accepted for processing, but the processing has not been completed.',\n '202_CLASS': classes.SUCCESSFUL,\n ACCEPTED: 202,\n // 203 (since HTTP/1.1) - The server is a transforming proxy (e.g. a Web accelerator) that received a 200 OK from its origin, but is returning a modified version of the origin's response.\n 203: 'Non-Authoritative Information',\n '203_NAME': 'NON_AUTHORITATIVE_INFORMATION',\n '203_MESSAGE': 'The server is a transforming proxy (e.g. a Web accelerator) that received a 200 OK from its origin, but is returning a modified version of the origin\\'s response.',\n '203_CLASS': classes.SUCCESSFUL,\n NON_AUTHORITATIVE_INFORMATION: 203,\n // 204 - The server successfully processed the request and is not returning any content.\n 204: 'No Content',\n '204_NAME': 'NO_CONTENT',\n '204_MESSAGE': 'The server successfully processed the request and is not returning any content.',\n '204_CLASS': classes.SUCCESSFUL,\n NO_CONTENT: 204,\n // 205 - The server successfully processed the request, but is not returning any content. Unlike a 204 response, this response requires that the requester reset the document view.\n 205: 'Reset Content',\n '205_NAME': 'RESET_CONTENT',\n '205_MESSAGE': 'The server successfully processed the request, but is not returning any content. Unlike a 204 response, this response requires that the requester reset the document view.',\n '205_CLASS': classes.SUCCESSFUL,\n RESET_CONTENT: 205,\n // 206 (RFC 7233) - The server is delivering only part of the resource (byte serving) due to a range header sent by the client.\n 206: 'Partial Content',\n '206_NAME': 'PARTIAL_CONTENT',\n '206_MESSAGE': 'The server is delivering only part of the resource (byte serving) due to a range header sent by the client.',\n '206_CLASS': classes.SUCCESSFUL,\n PARTIAL_CONTENT: 206,\n // 207 (WebDAV; RFC 4918) - The message body that follows is by default an XML message and can contain a number of separate response codes, depending on how many sub-requests were made.\n 207: 'Multi Status',\n '207_NAME': 'MULTI_STATUS',\n '207_MESSAGE': 'The message body that follows is by default an XML message and can contain a number of separate response codes, depending on how many sub-requests were made.',\n '207_CLASS': classes.SUCCESSFUL,\n MULTI_STATUS: 207,\n // 208 (WebDAV; RFC 5842) - The members of a DAV binding have already been enumerated in a preceding part of the (multistatus) response, and are not being included again.\n 208: 'Already Reported',\n '208_NAME': 'ALREADY_REPORTED',\n '208_MESSAGE': 'The members of a DAV binding have already been enumerated in a preceding part of the (multistatus) response, and are not being included again.',\n '208_CLASS': classes.SUCCESSFUL,\n ALREADY_REPORTED: 208,\n // 226 (RFC 3229) - The server has fulfilled a request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.\n 226: 'IM Used',\n '226_NAME': 'IM_USED',\n '226_MESSAGE': 'The server has fulfilled a request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.',\n '226_CLASS': classes.SUCCESSFUL,\n IM_USED: 226,\n // ## Redirection 3xx\n\n // Indicates that further action needs to be taken by the user agent in order to fulfill the request.\n\n // 300 - Indicates multiple options for the resource from which the client may choose.\n 300: 'Multiple Choices',\n '300_NAME': 'MULTIPLE_CHOICES',\n '300_MESSAGE': 'Indicates multiple options for the resource from which the client may choose.',\n '300_CLASS': classes.REDIRECTION,\n MULTIPLE_CHOICES: 300,\n // 301 - This and all future requests should be directed to the given URI.\n 301: 'Moved Permanently',\n '301_NAME': 'MOVED_PERMANENTLY',\n '301_MESSAGE': 'This and all future requests should be directed to the given URI.',\n '301_CLASS': classes.REDIRECTION,\n MOVED_PERMANENTLY: 301,\n // 302 - This is an example of industry practice contradicting the standard. The HTTP/1.0 specification (RFC 1945) required the client to perform a temporary redirect (the original describing phrase was \"Moved Temporarily\"), but popular browsers implemented 302 with the functionality of a 303 See Other. Therefore, HTTP/1.1 added status codes 303 and 307 to distinguish between the two behaviours.\n 302: 'Found',\n '302_NAME': 'FOUND',\n '302_MESSAGE': 'This is an example of industry practice contradicting the standard. The HTTP/1.0 specification (RFC 1945) required the client to perform a temporary redirect (the original describing phrase was \"Moved Temporarily\"), but popular browsers implemented 302 with the functionality of a 303 See Other. Therefore, HTTP/1.1 added status codes 303 and 307 to distinguish between the two behaviours.',\n '302_CLASS': classes.REDIRECTION,\n FOUND: 302,\n // 303 (since HTTP/1.1) - The response to the request can be found under another URI using the GET method.\n 303: 'See Other',\n '303_NAME': 'SEE_OTHER',\n '303_MESSAGE': 'The response to the request can be found under another URI using the GET method.',\n '303_CLASS': classes.REDIRECTION,\n SEE_OTHER: 303,\n // 304 (RFC 7232) - Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match.\n 304: 'Not Modified',\n '304_NAME': 'NOT_MODIFIED',\n '304_MESSAGE': 'Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match.',\n '304_CLASS': classes.REDIRECTION,\n NOT_MODIFIED: 304,\n // 305 (since HTTP/1.1) - The requested resource is available only through a proxy, the address for which is provided in the response.\n 305: 'Use Proxy',\n '305_NAME': 'USE_PROXY',\n '305_MESSAGE': 'The requested resource is available only through a proxy, the address for which is provided in the response.',\n '305_CLASS': classes.REDIRECTION,\n USE_PROXY: 305,\n // 306 - No longer used. Originally meant \"Subsequent requests should use the specified proxy.\n 306: 'Switch Proxy',\n '306_NAME': 'SWITCH_PROXY',\n '306_MESSAGE': 'No longer used. Originally meant \"Subsequent requests should use the specified proxy.',\n '306_CLASS': classes.REDIRECTION,\n SWITCH_PROXY: 306,\n // 307 (since HTTP/1.1) - In this case, the request should be repeated with another URI; however, future requests should still use the original URI.\n 307: 'Temporary Redirect',\n '307_NAME': 'TEMPORARY_REDIRECT',\n '307_MESSAGE': 'In this case, the request should be repeated with another URI; however, future requests should still use the original URI.',\n '307_CLASS': classes.REDIRECTION,\n TEMPORARY_REDIRECT: 307,\n // 308 (RFC 7538) - The request and all future requests should be repeated using another URI.\n 308: 'Permanent Redirect',\n '308_NAME': 'PERMANENT_REDIRECT',\n '308_MESSAGE': 'The request and all future requests should be repeated using another URI.',\n '308_CLASS': classes.REDIRECTION,\n PERMANENT_REDIRECT: 308,\n // ## Client Error 4xx\n\n // Indicates that the client seems to have erred.\n\n // 400 - The server cannot or will not process the request due to an apparent client error.\n 400: 'Bad Request',\n '400_NAME': 'BAD_REQUEST',\n '400_MESSAGE': 'The server cannot or will not process the request due to an apparent client error.',\n '400_CLASS': classes.CLIENT_ERROR,\n BAD_REQUEST: 400,\n // 401 (RFC 7235) - Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided.\n 401: 'Unauthorized',\n '401_NAME': 'UNAUTHORIZED',\n '401_MESSAGE': 'Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided.',\n '401_CLASS': classes.CLIENT_ERROR,\n UNAUTHORIZED: 401,\n // 402 - Reserved for future use. The original intention was that this code might be used as part of some form of digital cash or micropayment scheme, as proposed for example by GNU Taler, but that has not yet happened, and this code is not usually used.\n 402: 'Payment Required',\n '402_NAME': 'PAYMENT_REQUIRED',\n '402_MESSAGE': 'Reserved for future use. The original intention was that this code might be used as part of some form of digital cash or micropayment scheme, as proposed for example by GNU Taler, but that has not yet happened, and this code is not usually used.',\n '402_CLASS': classes.CLIENT_ERROR,\n PAYMENT_REQUIRED: 402,\n // 403 - The request was valid, but the server is refusing action.\n 403: 'Forbidden',\n '403_NAME': 'FORBIDDEN',\n '403_MESSAGE': 'The request was valid, but the server is refusing action.',\n '403_CLASS': classes.CLIENT_ERROR,\n FORBIDDEN: 403,\n // 404 - The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible.\n 404: 'Not Found',\n '404_NAME': 'NOT_FOUND',\n '404_MESSAGE': 'The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible.',\n '404_CLASS': classes.CLIENT_ERROR,\n NOT_FOUND: 404,\n // 405 - A request method is not supported for the requested resource.\n 405: 'Method Not Allowed',\n '405_NAME': 'METHOD_NOT_ALLOWED',\n '405_MESSAGE': 'A request method is not supported for the requested resource.',\n '405_CLASS': classes.CLIENT_ERROR,\n METHOD_NOT_ALLOWED: 405,\n // 406 - The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request.\n 406: 'Not Acceptable',\n '406_NAME': 'NOT_ACCEPTABLE',\n '406_MESSAGE': 'The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request.',\n '406_CLASS': classes.CLIENT_ERROR,\n NOT_ACCEPTABLE: 406,\n // 407 (RFC 7235) - The client must first authenticate itself with the proxy.\n 407: 'Proxy Authentication Required',\n '407_NAME': 'PROXY_AUTHENTICATION_REQUIRED',\n '407_MESSAGE': 'The client must first authenticate itself with the proxy.',\n '407_CLASS': classes.CLIENT_ERROR,\n PROXY_AUTHENTICATION_REQUIRED: 407,\n // 408 - The server timed out waiting for the request.\n 408: 'Request Time-out',\n '408_NAME': 'REQUEST_TIMEOUT',\n '408_MESSAGE': 'The server timed out waiting for the request.',\n '408_CLASS': classes.CLIENT_ERROR,\n REQUEST_TIMEOUT: 408,\n // 409 - Indicates that the request could not be processed because of conflict in the request, such as an edit conflict between multiple simultaneous updates.\n 409: 'Conflict',\n '409_NAME': 'CONFLICT',\n '409_MESSAGE': 'Indicates that the request could not be processed because of conflict in the request, such as an edit conflict between multiple simultaneous updates.',\n '409_CLASS': classes.CLIENT_ERROR,\n CONFLICT: 409,\n // 410 - Indicates that the resource requested is no longer available and will not be available again.\n 410: 'Gone',\n '410_NAME': 'GONE',\n '410_MESSAGE': 'Indicates that the resource requested is no longer available and will not be available again.',\n '410_CLASS': classes.CLIENT_ERROR,\n GONE: 410,\n // 411 - The request did not specify the length of its content, which is required by the requested resource.\n 411: 'Length Required',\n '411_NAME': 'LENGTH_REQUIRED',\n '411_MESSAGE': 'The request did not specify the length of its content, which is required by the requested resource.',\n '411_CLASS': classes.CLIENT_ERROR,\n LENGTH_REQUIRED: 411,\n // 412 (RFC 7232) - The server does not meet one of the preconditions that the requester put on the request.\n 412: 'Precondition Failed',\n '412_NAME': 'PRECONDITION_FAILED',\n '412_MESSAGE': 'The server does not meet one of the preconditions that the requester put on the request.',\n '412_CLASS': classes.CLIENT_ERROR,\n PRECONDITION_FAILED: 412,\n // 413 (RFC 7231) - The request is larger than the server is willing or able to process. Previously called \"Request Entity Too Large\".\n 413: 'Request Entity Too Large',\n '413_NAME': 'REQUEST_ENTITY_TOO_LARGE',\n '413_MESSAGE': 'The request is larger than the server is willing or able to process. Previously called \"Request Entity Too Large\".',\n '413_CLASS': classes.CLIENT_ERROR,\n REQUEST_ENTITY_TOO_LARGE: 413,\n // 414 (RFC 7231) - The URI provided was too long for the server to process.\n 414: 'Request-URI Too Large',\n '414_NAME': 'REQUEST_URI_TOO_LONG',\n '414_MESSAGE': 'The URI provided was too long for the server to process.',\n '414_CLASS': classes.CLIENT_ERROR,\n REQUEST_URI_TOO_LONG: 414,\n // 415 - The request entity has a media type which the server or resource does not support.\n 415: 'Unsupported Media Type',\n '415_NAME': 'UNSUPPORTED_MEDIA_TYPE',\n '415_MESSAGE': 'The request entity has a media type which the server or resource does not support.',\n '415_CLASS': classes.CLIENT_ERROR,\n UNSUPPORTED_MEDIA_TYPE: 415,\n // 416 (RFC 7233) - The client has asked for a portion of the file (byte serving), but the server cannot supply that portion.\n 416: 'Requested Range not Satisfiable',\n '416_NAME': 'REQUESTED_RANGE_NOT_SATISFIABLE',\n '416_MESSAGE': 'The client has asked for a portion of the file (byte serving), but the server cannot supply that portion.',\n '416_CLASS': classes.CLIENT_ERROR,\n REQUESTED_RANGE_NOT_SATISFIABLE: 416,\n // 417 - The server cannot meet the requirements of the Expect request-header field.\n 417: 'Expectation Failed',\n '417_NAME': 'EXPECTATION_FAILED',\n '417_MESSAGE': 'The server cannot meet the requirements of the Expect request-header field.',\n '417_CLASS': classes.CLIENT_ERROR,\n EXPECTATION_FAILED: 417,\n // 418 (RFC 2324, RFC 7168) - Any attempt to brew coffee with a teapot should result in the error code \"418 I'm a teapot\". The resulting entity body MAY be short and stout. This code was defined in 1998 as one of the traditional IETF April Fools' jokes, in RFC 2324, Hyper Text Coffee Pot Control Protocol, and is not expected to be implemented by actual HTTP servers. The RFC specifies this code should be returned by teapots requested to brew coffee. This HTTP status is used as an Easter egg in some websites, including Google.com.\n 418: 'I\\'m a teapot',\n '418_NAME': 'IM_A_TEAPOT',\n '418_MESSAGE': 'Any attempt to brew coffee with a teapot should result in the error code \"418 I\\'m a teapot\". The resulting entity body MAY be short and stout.',\n '418_CLASS': classes.CLIENT_ERROR,\n IM_A_TEAPOT: 418,\n // 421 (RFC 7540) - The request was directed at a server that is not able to produce a response.\n 421: 'Misdirected Request',\n '421_NAME': 'MISDIRECTED_REQUEST',\n '421_MESSAGE': 'The request was directed at a server that is not able to produce a response.',\n '421_CLASS': classes.CLIENT_ERROR,\n MISDIRECTED_REQUEST: 421,\n // 422 (WebDAV; RFC 4918) - The request was well-formed but was unable to be followed due to semantic errors.\n 422: 'Unprocessable Entity',\n '422_NAME': 'UNPROCESSABLE_ENTITY',\n '422_MESSAGE': 'The request was well-formed but was unable to be followed due to semantic errors.',\n '422_CLASS': classes.CLIENT_ERROR,\n UNPROCESSABLE_ENTITY: 422,\n // 423 (WebDAV; RFC 4918) - The resource that is being accessed is locked.\n 423: 'Locked',\n '423_NAME': 'LOCKED',\n '423_MESSAGE': 'The resource that is being accessed is locked.',\n '423_CLASS': classes.CLIENT_ERROR,\n LOCKED: 423,\n // 424 (WebDAV; RFC 4918) - The request failed because it depended on another request and that request failed.\n 424: 'Failed Dependency',\n '424_NAME': 'FAILED_DEPENDENCY',\n '424_MESSAGE': 'The request failed because it depended on another request and that request failed.',\n '424_CLASS': classes.CLIENT_ERROR,\n FAILED_DEPENDENCY: 424,\n // 425 (RFC 8470) - The server is unwilling to risk processing a request that might be replayed.\n 425: 'Too Early',\n '425_NAME': 'TOO_EARLY',\n '425_MESSAGE': 'The server is unwilling to risk processing a request that might be replayed.',\n '425_CLASS': classes.CLIENT_ERROR,\n TOO_EARLY: 425,\n // 426 - The client should switch to a different protocol such as TLS/1.0, given in the Upgrade header field.\n 426: 'Upgrade Required',\n '426_NAME': 'UPGRADE_REQUIRED',\n '426_MESSAGE': 'The client should switch to a different protocol such as TLS/1.0, given in the Upgrade header field.',\n '426_CLASS': classes.CLIENT_ERROR,\n UPGRADE_REQUIRED: 426,\n // 428 (RFC 6585) - The origin server requires the request to be conditional.\n 428: 'Precondition Required', // RFC 6585\n '428_NAME': 'PRECONDITION_REQUIRED',\n '428_MESSAGE': 'The origin server requires the request to be conditional.',\n '428_CLASS': classes.CLIENT_ERROR,\n PRECONDITION_REQUIRED: 428,\n // 429 (RFC 6585) - The user has sent too many requests in a given amount of time.\n 429: 'Too Many Requests',\n '429_NAME': 'TOO_MANY_REQUESTS',\n '429_MESSAGE': 'The user has sent too many requests in a given amount of time.',\n '429_CLASS': classes.CLIENT_ERROR,\n TOO_MANY_REQUESTS: 429,\n // 431 (RFC 6585) - The server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large.\n 431: 'Request Header Fields Too Large', // RFC 6585\n '431_NAME': 'REQUEST_HEADER_FIELDS_TOO_LARGE',\n '431_MESSAGE': 'The server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large.',\n '431_CLASS': classes.CLIENT_ERROR,\n REQUEST_HEADER_FIELDS_TOO_LARGE: 431,\n // 451 (RFC 7725) - A server operator has received a legal demand to deny access to a resource or to a set of resources that includes the requested resource.\n 451: 'Unavailable For Legal Reasons',\n '451_NAME': 'UNAVAILABLE_FOR_LEGAL_REASONS',\n '451_MESSAGE': 'A server operator has received a legal demand to deny access to a resource or to a set of resources that includes the requested resource.',\n '451_CLASS': classes.CLIENT_ERROR,\n UNAVAILABLE_FOR_LEGAL_REASONS: 451,\n // ## Server Error 5xx\n\n // Indicates that the server is aware that it has erred or is incapable of performing the requested method.\n\n // 500 - A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.\n 500: 'Internal Server Error',\n '500_NAME': 'INTERNAL_SERVER_ERROR',\n '500_MESSAGE': 'A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.',\n '500_CLASS': classes.SERVER_ERROR,\n INTERNAL_SERVER_ERROR: 500,\n // 501 - The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability.\n 501: 'Not Implemented',\n '501_NAME': 'NOT_IMPLEMENTED',\n '501_MESSAGE': 'The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability.',\n '501_CLASS': classes.SERVER_ERROR,\n NOT_IMPLEMENTED: 501,\n // 502 - The server was acting as a gateway or proxy and received an invalid response from the upstream server.\n 502: 'Bad Gateway',\n '502_NAME': 'BAD_GATEWAY',\n '502_MESSAGE': 'The server was acting as a gateway or proxy and received an invalid response from the upstream server.',\n '502_CLASS': classes.SERVER_ERROR,\n BAD_GATEWAY: 502,\n // 503 - The server is currently unavailable (because it is overloaded or down for maintenance). Generally, this is a temporary state.\n 503: 'Service Unavailable',\n '503_NAME': 'SERVICE_UNAVAILABLE',\n '503_MESSAGE': 'The server is currently unavailable (because it is overloaded or down for maintenance). Generally, this is a temporary state.',\n '503_CLASS': classes.SERVER_ERROR,\n SERVICE_UNAVAILABLE: 503,\n // 504 - The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.\n 504: 'Gateway Time-out',\n '504_NAME': 'GATEWAY_TIMEOUT',\n '504_MESSAGE': 'The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.',\n '504_CLASS': classes.SERVER_ERROR,\n GATEWAY_TIMEOUT: 504,\n // 505 - The server does not support the HTTP protocol version used in the request.\n 505: 'HTTP Version not Supported',\n '505_NAME': 'HTTP_VERSION_NOT_SUPPORTED',\n '505_MESSAGE': 'The server does not support the HTTP protocol version used in the request.',\n '505_CLASS': classes.SERVER_ERROR,\n HTTP_VERSION_NOT_SUPPORTED: 505,\n // 506 (RFC 2295) - Transparent content negotiation for the request results in a circular reference.\n 506: 'Variant Also Negotiates',\n '506_NAME': 'VARIANT_ALSO_NEGOTIATES',\n '506_MESSAGE': 'Transparent content negotiation for the request results in a circular reference.',\n '506_CLASS': classes.SERVER_ERROR,\n VARIANT_ALSO_NEGOTIATES: 506,\n // 507 (WebDAV; RFC 4918) - The server is unable to store the representation needed to complete the request.\n 507: 'Insufficient Storage',\n '507_NAME': 'INSUFFICIENT_STORAGE',\n '507_MESSAGE': 'The server is unable to store the representation needed to complete the request.',\n '507_CLASS': classes.SERVER_ERROR,\n INSUFFICIENT_STORAGE: 507,\n // 508 (WebDAV; RFC 5842) - The server detected an infinite loop while processing the request.\n 508: 'Loop Detected',\n '508_NAME': 'LOOP_DETECTED',\n '508_MESSAGE': 'The server detected an infinite loop while processing the request.',\n '508_CLASS': classes.SERVER_ERROR,\n LOOP_DETECTED: 508,\n // 510 (RFC 2774) - Further extensions to the request are required for the server to fulfil it.\n 510: 'Not Extended',\n '510_NAME': 'NOT_EXTENDED',\n '510_MESSAGE': 'Further extensions to the request are required for the server to fulfil it.',\n '510_CLASS': classes.SERVER_ERROR,\n NOT_EXTENDED: 510,\n // 511 (RFC 6585) - The client needs to authenticate to gain network access. Intended for use by intercepting proxies used to control access to the network.\n 511: 'Network Authentication Required',\n '511_NAME': 'NETWORK_AUTHENTICATION_REQUIRED',\n '511_MESSAGE': 'The client needs to authenticate to gain network access. Intended for use by intercepting proxies used to control access to the network.',\n '511_CLASS': classes.SERVER_ERROR,\n NETWORK_AUTHENTICATION_REQUIRED: 511,\n // ## Extra code\n\n // Extra HTTP code implemented by vendors and other specifications.\n extra: {\n // ### Unofficial codes\n\n // The following codes are not specified by any standard.\n unofficial: {\n // 103 - Used in the resumable requests proposal to resume aborted PUT or POST requests.\n 103: 'Checkpoint',\n '103_NAME': 'CHECKPOINT',\n '103_MESSAGE': 'Used in the resumable requests proposal to resume aborted PUT or POST requests.',\n '103_CLASS': classes.INFORMATIONAL,\n CHECKPOINT: 103,\n // 419 Page Expired (Laravel Framework) - Used by the Laravel Framework when a CSRF Token is missing or expired.\n 419: 'Page Expired',\n '419_NAME': 'PAGE_EXPIRED',\n '419_MESSAGE': 'Used by the Laravel Framework when a CSRF Token is missing or expired.',\n '419_CLASS': classes.CLIENT_ERROR,\n PAGE_EXPIRED: 419,\n // 218 This is fine (Apache Web Server) - Used as a catch-all error condition for allowing response bodies to flow through Apache when ProxyErrorOverride is enabled. When ProxyErrorOverride is enabled in Apache, response bodies that contain a status code of 4xx or 5xx are automatically discarded by Apache in favor of a generic response or a custom response specified by the ErrorDocument directive.\n 218: 'This is fine',\n '218_NAME': 'THIS_IS_FINE',\n '218_MESSAGE': 'Used as a catch-all error condition for allowing response bodies to flow through Apache when ProxyErrorOverride is enabled. When ProxyErrorOverride is enabled in Apache, response bodies that contain a status code of 4xx or 5xx are automatically discarded by Apache in favor of a generic response or a custom response specified by the ErrorDocument directive.',\n '218_CLASS': classes.SUCCESSFUL,\n THIS_IS_FINE: 218,\n // 420 Enhance Your Calm (Twitter) - Returned by version 1 of the Twitter Search and Trends API when the client is being rate limited; versions 1.1 and later use the 429 Too Many Requests response code instead.\n 420: 'Enhance Your Calm',\n '420_NAME': 'ENHANCE_YOUR_CALM',\n '420_MESSAGE': 'Returned by version 1 of the Twitter Search and Trends API when the client is being rate limited; versions 1.1 and later use the 429 Too Many Requests response code instead.',\n '420_CLASS': classes.CLIENT_ERROR,\n ENHANCE_YOUR_CALM: 420,\n // 450 Blocked by Windows Parental (Microsoft) - The Microsoft extension code indicated when Windows Parental Controls are turned on and are blocking access to the requested webpage.\n 450: 'Blocked by Windows Parental Controls',\n '450_NAME': 'BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS',\n '450_MESSAGE': 'The Microsoft extension code indicated when Windows Parental Controls are turned on and are blocking access to the requested webpage.',\n '450_CLASS': classes.CLIENT_ERROR,\n BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS: 450,\n // 498 Invalid Token (Esri) - Returned by ArcGIS for Server. Code 498 indicates an expired or otherwise invalid token.\n 498: 'Invalid Token',\n '498_NAME': 'INVALID_TOKEN',\n '498_MESSAGE': 'Returned by ArcGIS for Server. Code 498 indicates an expired or otherwise invalid token.',\n '498_CLASS': classes.CLIENT_ERROR,\n INVALID_TOKEN: 498,\n // 499 Token Required (Esri) - Returned by ArcGIS for Server. Code 499 indicates that a token is required but was not submitted.\n 499: 'Token Required',\n '499_NAME': 'TOKEN_REQUIRED',\n '499_MESSAGE': 'Returned by ArcGIS for Server. Code 499 indicates that a token is required but was not submitted.',\n '499_CLASS': classes.CLIENT_ERROR,\n TOKEN_REQUIRED: 499,\n // 509 Bandwidth Limit Exceeded (Apache Web Server/cPanel) - The server has exceeded the bandwidth specified by the server administrator.\n 509: 'Bandwidth Limit Exceeded',\n '509_NAME': 'BANDWIDTH_LIMIT_EXCEEDED',\n '509_MESSAGE': 'The server has exceeded the bandwidth specified by the server administrator.',\n '509_CLASS': classes.SERVER_ERROR,\n BANDWIDTH_LIMIT_EXCEEDED: 509,\n // 530 Site is frozen - Used by the Pantheon web platform to indicate a site that has been frozen due to inactivity.\n 530: 'Site is frozen',\n '530_NAME': 'SITE_IS_FROZEN',\n '530_MESSAGE': 'Used by the Pantheon web platform to indicate a site that has been frozen due to inactivity.',\n '530_CLASS': classes.SERVER_ERROR,\n SITE_IS_FROZEN: 530,\n // 598 (Informal convention) Network read timeout error - Used by some HTTP proxies to signal a network read timeout behind the proxy to a client in front of the proxy.\n 598: 'Network read timeout error',\n '598_NAME': 'NETWORK_READ_TIMEOUT_ERROR',\n '598_MESSAGE': 'Used by some HTTP proxies to signal a network read timeout behind the proxy to a client in front of the proxy.',\n '598_CLASS': classes.SERVER_ERROR,\n NETWORK_READ_TIMEOUT_ERROR: 598\n },\n // ### Internet Information Services (IIS)\n\n // Microsoft's Internet Information Services (IIS) web server expands the 4xx error space to signal errors with the client's request.\n iis: {\n // 440 - The client's session has expired and must log in again.\n 440: 'Login Time-out',\n '440_NAME': 'LOGIN_TIME_OUT',\n '440_MESSAGE': 'The client\\'s session has expired and must log in again.',\n '440_CLASS': classes.CLIENT_ERROR,\n LOGIN_TIME_OUT: 440,\n // 449 - The server cannot honour the request because the user has not provided the required information.\n 449: 'Retry With',\n '449_NAME': 'RETRY_WITH',\n '449_MESSAGE': 'The server cannot honour the request because the user has not provided the required information.',\n '449_CLASS': classes.CLIENT_ERROR,\n RETRY_WITH: 449,\n // 451 - Used in Exchange ActiveSync when either a more efficient server is available or the server cannot access the users' mailbox.\n 451: 'Redirect',\n '451_NAME': 'REDIRECT',\n '451_MESSAGE': 'Used in Exchange ActiveSync when either a more efficient server is available or the server cannot access the users\\' mailbox.',\n '451_CLASS': classes.CLIENT_ERROR,\n REDIRECT: 451\n },\n // ### NGINX\n\n // The NGINX web server software expands the 4xx error space to signal issues with the client's request.\n nginx: {\n // 444 - Used internally to instruct the server to return no information to the client and close the connection immediately.\n 444: 'No Response',\n '444_NAME': 'NO_RESPONSE',\n '444_MESSAGE': 'Used internally to instruct the server to return no information to the client and close the connection immediately.',\n '444_CLASS': classes.CLIENT_ERROR,\n NO_RESPONSE: 444,\n // 494 - Client sent too large request or too long header line.\n 494: 'Request header too large',\n '494_NAME': 'REQUEST_HEADER_TOO_LARGE',\n '494_MESSAGE': 'Client sent too large request or too long header line.',\n '494_CLASS': classes.CLIENT_ERROR,\n REQUEST_HEADER_TOO_LARGE: 494,\n // 495 - An expansion of the 400 Bad Request response code, used when the client has provided an invalid client certificate.\n 495: 'SSL Certificate Error',\n '495_NAME': 'SSL_CERTIFICATE_ERROR',\n '495_MESSAGE': 'An expansion of the 400 Bad Request response code, used when the client has provided an invalid client certificate.',\n '495_CLASS': classes.CLIENT_ERROR,\n SSL_CERTIFICATE_ERROR: 495,\n // 496 - An expansion of the 400 Bad Request response code, used when a client certificate is required but not provided.\n 496: 'SSL Certificate Required',\n '496_NAME': 'SSL_CERTIFICATE_REQUIRED',\n '496_MESSAGE': 'An expansion of the 400 Bad Request response code, used when a client certificate is required but not provided.',\n '496_CLASS': classes.CLIENT_ERROR,\n SSL_CERTIFICATE_REQUIRED: 496,\n // 497 - An expansion of the 400 Bad Request response code, used when the client has made a HTTP request to a port listening for HTTPS requests.\n 497: 'HTTP Request Sent to HTTPS Port',\n '497_NAME': 'HTTP_REQUEST_SENT_TO_HTTPS_PORT',\n '497_MESSAGE': 'An expansion of the 400 Bad Request response code, used when the client has made a HTTP request to a port listening for HTTPS requests.',\n '497_CLASS': classes.CLIENT_ERROR,\n HTTP_REQUEST_SENT_TO_HTTPS_PORT: 497,\n // 499 - Used when the client has closed the request before the server could send a response.\n 499: 'Client Closed Request',\n '499_NAME': 'CLIENT_CLOSED_REQUEST',\n '499_MESSAGE': 'Used when the client has closed the request before the server could send a response.',\n '499_CLASS': classes.CLIENT_ERROR,\n CLIENT_CLOSED_REQUEST: 499\n },\n // ### Cloudflare\n\n // Cloudflare's reverse proxy service expands the 5xx series of errors space to signal issues with the origin server.\n cloudflare: {\n // 520 - The 520 error is used as a \"catch-all response for when the origin server returns something unexpected\", listing connection resets, large headers, and empty or invalid responses as common triggers.\n 520: 'Unknown Error',\n '520_NAME': 'UNKNOWN_ERROR',\n '520_MESSAGE': 'The 520 error is used as a \"catch-all response for when the origin server returns something unexpected\", listing connection resets, large headers, and empty or invalid responses as common triggers.',\n '520_CLASS': classes.SERVER_ERROR,\n UNKNOWN_ERROR: 520,\n // 521 - The origin server has refused the connection from Cloudflare.\n 521: 'Web Server Is Down',\n '521_NAME': 'WEB_SERVER_IS_DOWN',\n '521_MESSAGE': 'The origin server has refused the connection from Cloudflare.',\n '521_CLASS': classes.SERVER_ERROR,\n WEB_SERVER_IS_DOWN: 521,\n // 522 - Cloudflare could not negotiate a TCP handshake with the origin server.\n 522: 'Connection Timed Out',\n '522_NAME': 'CONNECTION_TIMED_OUT',\n '522_MESSAGE': 'Cloudflare could not negotiate a TCP handshake with the origin server.',\n '522_CLASS': classes.SERVER_ERROR,\n CONNECTION_TIMED_OUT: 522,\n // 523 - Cloudflare could not reach the origin server.\n 523: 'Origin Is Unreachable',\n '523_NAME': 'ORIGIN_IS_UNREACHABLE',\n '523_MESSAGE': 'Cloudflare could not reach the origin server.',\n '523_CLASS': classes.SERVER_ERROR,\n ORIGIN_IS_UNREACHABLE: 523,\n // 524 - Cloudflare was able to complete a TCP connection to the origin server, but did not receive a timely HTTP response.\n 524: 'A Timeout Occurred',\n '524_NAME': 'A_TIMEOUT_OCCURRED',\n '524_MESSAGE': 'Cloudflare was able to complete a TCP connection to the origin server, but did not receive a timely HTTP response.',\n '524_CLASS': classes.SERVER_ERROR,\n A_TIMEOUT_OCCURRED: 524,\n // 525 - Cloudflare could not negotiate a SSL/TLS handshake with the origin server.\n 525: 'SSL Handshake Failed',\n '525_NAME': 'SSL_HANDSHAKE_FAILED',\n '525_MESSAGE': 'Cloudflare could not negotiate a SSL/TLS handshake with the origin server.',\n '525_CLASS': classes.SERVER_ERROR,\n SSL_HANDSHAKE_FAILED: 525,\n // 526 - Cloudflare could not validate the SSL/TLS certificate that the origin server presented.\n 526: 'Invalid SSL Certificate',\n '526_NAME': 'INVALID_SSL_CERTIFICATE',\n '526_MESSAGE': 'Cloudflare could not validate the SSL/TLS certificate that the origin server presented.',\n '526_CLASS': classes.SERVER_ERROR,\n INVALID_SSL_CERTIFICATE: 526,\n // 527 - Error 527 indicates that the request timed out or failed after the WAN connection had been established.\n 527: 'Railgun Error',\n '527_NAME': 'RAILGUN_ERROR',\n '527_MESSAGE': 'Error 527 indicates that the request timed out or failed after the WAN connection had been established.',\n '527_CLASS': classes.SERVER_ERROR,\n RAILGUN_ERROR: 527\n }\n }\n};\n","import { produce } from 'immer';\nimport { useEffect, useState } from 'react';\nimport type { ApplicationRequestError, ModalProps } from '../types/api.type';\nimport type { MonoriseStore } from '../store/monorise.store';\n\ntype StartLoadingPayload<T> = {\n requestKey: string;\n isInterruptive?: boolean;\n message?: string | boolean;\n request: Promise<T>;\n};\n\ntype EndLoadingPayload = {\n requestKey: string;\n isInterruptive?: boolean;\n};\n\ntype SetErrorPayload = {\n requestKey: string;\n error: ApplicationRequestError;\n};\n\ntype Options = {\n modals?: Record<string, React.ComponentType<unknown>>;\n};\n\nconst initAppActions = (store: MonoriseStore) => {\n let options: Options = {};\n\n const { modals = {} } = options;\n type AppModalProps = ModalProps<typeof modals>;\n\n const startLoading = <T>({\n requestKey,\n isInterruptive,\n message,\n request,\n }: StartLoadingPayload<T>) => {\n store.setState(\n produce((state) => {\n const stackType = isInterruptive ? 'intLoadStack' : 'loadStack';\n const requestKeyCount = state.app[stackType].get(requestKey);\n\n state.app.loadingMessage =\n typeof message === 'string' ? message : 'Loading';\n state.app.ongoingRequests.set(requestKey, request);\n state.app[stackType].set(\n requestKey,\n requestKeyCount ? requestKeyCount + 1 : 1,\n );\n }),\n undefined,\n `mr/start-loading/${requestKey}`,\n );\n };\n\n const endLoading = ({ requestKey, isInterruptive }: EndLoadingPayload) => {\n setTimeout(() => {\n store.setState(\n produce((state) => {\n const stackType = isInterruptive ? 'intLoadStack' : 'loadStack';\n const requestKeyCount = state.app[stackType].get(requestKey);\n\n if (state.app.ongoingRequests.has(requestKey)) {\n state.app.ongoingRequests.delete(requestKey);\n }\n\n if (typeof requestKeyCount === 'number' && requestKeyCount > 1) {\n state.app[stackType].set(requestKey, requestKeyCount - 1);\n } else {\n state.app[stackType].delete(requestKey);\n }\n }),\n undefined,\n `mr/end-loading/${requestKey}`,\n );\n }, 500);\n };\n\n const checkIsLoading = (requestKey?: string) => {\n const { intLoadStack, loadStack } = store.getState().app;\n if (!requestKey) {\n return intLoadStack.size > 0 || loadStack.size > 0;\n }\n\n const activeIntLoadingCount = intLoadStack.get(requestKey);\n const isIntLoading =\n typeof activeIntLoadingCount === 'number' && activeIntLoadingCount > 0;\n\n const activeLoadingCount = loadStack.get(requestKey);\n const isLoading =\n typeof activeLoadingCount === 'number' && activeLoadingCount > 0;\n\n return isIntLoading || isLoading;\n };\n\n const setError = ({ requestKey, error }: SetErrorPayload) =>\n store.setState(\n produce((state) => {\n state.app.errorStack.set(requestKey, error);\n }),\n undefined,\n `mr/set-error/${requestKey}`,\n );\n\n const getError = (requestKey: string) => {\n const { errorStack } = store.getState().app;\n return errorStack.get(requestKey);\n };\n\n const clearError = (requestKey: string) => {\n const { errorStack } = store.getState().app;\n\n if (errorStack.has(requestKey)) {\n store.setState(\n produce((state) => {\n state.app.errorStack.delete(requestKey);\n }),\n undefined,\n `mr/clear-error/${requestKey}`,\n );\n }\n };\n\n const openModal = (modal: {\n name: keyof AppModalProps;\n context?: AppModalProps[keyof AppModalProps];\n }) =>\n store.setState(\n produce((state) => {\n state.app.modal = modal;\n }),\n undefined,\n `mr/open-modal/${modal.name}`,\n );\n\n const closeModal = () =>\n store.setState(\n produce((state) => {\n state.app.modal = { name: null };\n }),\n undefined,\n 'mr/close-modal',\n );\n\n const useLoadStore = (requestKey?: string) => {\n const { loadStack, intLoadStack } = store((state) => ({\n loadStack: state.app.loadStack,\n intLoadStack: state.app.intLoadStack,\n }));\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n if (loadStack && intLoadStack && requestKey) {\n setIsLoading(checkIsLoading(requestKey));\n }\n }, [loadStack, intLoadStack, requestKey]);\n\n return isLoading;\n };\n\n const useInterruptiveLoadStore = () => {\n const { intLoadStack, loadingMessage } = store((state) => ({\n intLoadStack: state.app.intLoadStack,\n loadingMessage: state.app.loadingMessage,\n }));\n\n return {\n isLoading: intLoadStack.size > 0,\n message: loadingMessage,\n };\n };\n\n const useErrorStore = (requestKey: string) => {\n const error = store((state) => state.app.errorStack.get(requestKey));\n\n useEffect(() => {\n if (error) {\n return () => {\n clearError(requestKey);\n };\n }\n }, [error, requestKey]);\n\n return error;\n };\n\n const useModalStore = () => {\n return store((state) => state.app.modal);\n };\n\n const setOptions = (opts: Options) => {\n options = {\n ...options,\n ...opts,\n };\n };\n\n return {\n startLoading,\n endLoading,\n setError,\n getError,\n clearError,\n openModal,\n closeModal,\n checkIsLoading,\n useLoadStore,\n useInterruptiveLoadStore,\n useErrorStore,\n useModalStore,\n setOptions,\n };\n};\n\nexport { initAppActions };\n\nexport type AppActions = ReturnType<typeof initAppActions>;\n","import type { Entity } from '@monorise/base';\nimport { produce } from 'immer';\nimport type { AuthService } from '../services/auth.service';\nimport type { MonoriseStore } from '../store/monorise.store';\n\nconst initAuthActions = (store: MonoriseStore, authService: AuthService) => {\n const requestLogin = async (\n entityType: Entity,\n payload: { email: string },\n ) => {\n const { data } = await authService.requestLoginMagicLink(\n entityType,\n payload,\n );\n\n return data;\n };\n\n const useProfile = <T extends Record<string, unknown>>(): T & {\n displayName: string;\n email: string;\n accountId: string;\n impersonatorId?: string;\n } => {\n const profile = store((state) => state.auth.profile);\n\n return profile as T & typeof profile;\n };\n\n const getProfile = async () => {\n try {\n const {\n data: { displayName, email, accountId, ...rest },\n } = await authService.getSessionProfile();\n\n store.setState(\n produce((state) => {\n state.auth.profile = { displayName, email, accountId, ...rest };\n state.auth.isUnauthorized = false;\n state.auth.isLoading = false;\n }),\n undefined,\n 'mr/auth/get-profile',\n );\n } catch {\n store.setState(\n produce((state) => {\n state.auth.profile = {};\n state.auth.isUnauthorized = true;\n state.auth.isLoading = false;\n }),\n undefined,\n 'mr/auth/get-profile',\n );\n }\n };\n\n const useIsUnauthorized = () => {\n const { isUnauthorized, profile, isLoading } = store((state) => state.auth);\n\n return { isUnauthorized: isUnauthorized && !profile.accountId, isLoading };\n };\n\n const setIsUnauthorized = (isUnauthorized: boolean) =>\n store.setState(\n produce((state) => {\n state.auth.isUnauthorized = isUnauthorized;\n }),\n );\n\n const logout = () => {\n authService.logout();\n store.setState(\n produce((state) => {\n state.auth.isUnauthorized = true;\n state.auth.profile = {};\n }),\n );\n };\n\n return {\n requestLogin,\n useProfile,\n getProfile,\n useIsUnauthorized,\n setIsUnauthorized,\n logout,\n };\n};\n\nexport { initAuthActions };\n\nexport type AuthActions = ReturnType<typeof initAuthActions>;\n","import type {\n CreatedEntity,\n Entity,\n MonoriseEntityConfig,\n} from '@monorise/base';\nimport { produce } from 'immer';\nimport type { MonoriseStore } from '../store/monorise.store';\nimport type { CommonStore } from '../types/monorise.type';\n\nconst initConfigActions = (store: MonoriseStore) => {\n const setConfig = (config: Record<Entity, MonoriseEntityConfig>) => {\n const entityMaps = Object.keys(config).reduce(\n (acc, entity) => {\n acc[entity as any] = {\n dataMap: new Map<string, CreatedEntity<Entity>>(),\n isFirstFetched: false,\n lastKey: '',\n } as CommonStore<CreatedEntity<Entity>>;\n return acc;\n },\n {} as Record<Entity, CommonStore<CreatedEntity<Entity>>>,\n );\n\n store.setState(\n produce((state) => {\n state.config = config;\n state.entity = entityMaps;\n }),\n );\n };\n\n const getConfig = () => {\n return store.getState().config;\n };\n\n const useConfig = () => {\n const config = store((state) => state.config);\n\n return config;\n };\n\n return {\n setConfig,\n getConfig,\n useConfig,\n };\n};\n\nexport { initConfigActions };\n\nexport type ConfigActions = ReturnType<typeof initConfigActions>;\n","import type {\n CreatedEntity,\n DraftEntity,\n Entity,\n EntitySchemaMap,\n} from '@monorise/base';\nimport { produce } from 'immer';\nimport { useEffect, useState } from 'react';\nimport {\n byEntityId,\n constructLocal,\n constructMutual,\n flipMutual,\n} from '../lib/entity';\nimport {\n convertToMap,\n getEntityRequestKey,\n getMutualRequestKey,\n getMutualStateKey,\n getTagRequestKey,\n getTagStateKey,\n getUniqueFieldRequestKey,\n getUniqueFieldStateKey,\n} from '../lib/utils';\nimport type {\n CommonOptions,\n CoreService,\n ListEntitiesByTagParams,\n} from '../services/core.service';\nimport type { MonoriseStore } from '../store/monorise.store';\nimport type { ApplicationRequestError } from '../types/api.type';\nimport type { CommonStore } from '../types/monorise.type';\nimport type { Mutual, MutualData } from '../types/mutual.type';\nimport type { AppActions } from './app.action';\n\n// ===== Important tips ======\n// Should we use store.getState() or store()?\n// USE store.getState() WHEN using within an action such as getEntity, getProfile\n// USE store() WHEN using within a react hook so that it gets the benefit of reactivity, such as useProfile, useEntity\n\nconst defaultOnError = (error: ApplicationRequestError | Error) => {\n if (!(error instanceof Error) && error.status >= 500) {\n // we only want server error to be captured by error tracking service\n throw error;\n }\n};\n\nconst initCoreActions = (\n monoriseStore: MonoriseStore,\n appActions: AppActions,\n coreService: CoreService,\n) => {\n const { makeEntityService, makeMutualService } = coreService;\n const { checkIsLoading, getError, useLoadStore, useErrorStore } = appActions;\n\n const listEntities = async <T extends Entity>(\n entityType: T,\n params: {\n skRange?: { start: string; end: string };\n all?: boolean;\n limit?: number;\n } = { limit: 20 },\n opts: CommonOptions = {},\n ) => {\n const store = monoriseStore.getState();\n const entityState = store.entity[entityType] ?? {};\n const { isFirstFetched } = entityState;\n const entityService = makeEntityService(entityType);\n const { skRange } = params;\n const requestKey = getEntityRequestKey('list', entityType);\n const isLoading = checkIsLoading(requestKey);\n const error = getError(requestKey);\n const onError = opts.onError ?? defaultOnError;\n\n if (error) {\n onError(error);\n return;\n }\n\n if (\n !opts.forceFetch &&\n ((isFirstFetched && !params.skRange) || isLoading)\n ) {\n return;\n }\n\n try {\n const { data: result } = await entityService.listEntities(\n {\n ...(params?.all ? {} : { limit: params?.limit }),\n start: skRange?.start,\n end: skRange?.end,\n },\n opts,\n );\n const newEntityMap = convertToMap<CreatedEntity<T>>(\n result.data,\n 'entityId',\n );\n\n const mergedMap = new Map([\n ...newEntityMap,\n ...store.entity[entityType].dataMap,\n ]);\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType] = {\n dataMap: params.skRange ? newEntityMap : mergedMap,\n isFirstFetched: true,\n lastKey: result.lastKey,\n };\n }),\n undefined,\n `mr/entity/list/${entityType}`,\n );\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n\n return { error };\n }\n };\n\n const listMoreEntities = async <T extends Entity>(\n entityType: T,\n opts: CommonOptions = {},\n ) => {\n const requestKey = getEntityRequestKey('list', entityType);\n const store = monoriseStore.getState();\n const entityState = store.entity[entityType];\n const { dataMap, lastKey } = entityState;\n const entityService = makeEntityService(entityType);\n const error = getError(requestKey);\n const onError = opts.onError ?? defaultOnError;\n\n if (!lastKey) {\n return;\n }\n\n if (error) {\n onError(error);\n return;\n }\n\n try {\n const { data: result } = await entityService.listEntities(\n {\n limit: opts.limit ?? 20,\n lastKey,\n },\n opts,\n );\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].isFirstFetched = true;\n state.entity[entityType].lastKey = result.lastKey;\n for (const i in result.data) {\n state.entity[entityType].dataMap.set(\n result.data[i].entityId,\n result.data[i],\n );\n }\n }),\n undefined,\n `mr/entity/list-more/${entityType}`,\n );\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n\n return { error };\n }\n };\n\n const searchEntities = async <T extends Entity>(\n entityType: T,\n query: string,\n opts: CommonOptions = {},\n ) => {\n const requestKey = getEntityRequestKey('search', entityType);\n const entityService = makeEntityService(entityType);\n const error = getError(requestKey);\n const onError = opts.onError ?? defaultOnError;\n\n if (error) {\n onError(error);\n return;\n }\n\n try {\n const { data: result } = await entityService.searchEntities(query, opts);\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].searchResults = result.data;\n for (const i in result.data) {\n state.entity[entityType].dataMap.set(\n result.data[i].entityId,\n result.data[i],\n );\n }\n }),\n );\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n\n return { error };\n }\n };\n\n const listEntitiesByTag = async <T extends Entity>(\n entityType: T,\n tagName: string,\n opts: CommonOptions & { params?: ListEntitiesByTagParams } = {},\n ) => {\n const tagKey = getTagStateKey(entityType, tagName, opts.params);\n\n const state = monoriseStore.getState();\n const tagState = state.tag[tagKey] || {};\n const { isFirstFetched, dataMap } = tagState;\n const entityService = makeEntityService(entityType);\n const { forceFetch } = opts;\n const requestKey = getTagRequestKey(\n 'list',\n entityType,\n tagName,\n opts.params,\n );\n const isLoading = checkIsLoading(requestKey);\n const error = getError(requestKey);\n const onError = opts.onError ?? defaultOnError;\n\n if (!forceFetch) {\n if (error) {\n onError(error);\n return { error };\n }\n\n if (isFirstFetched || isLoading) {\n return {\n data: {\n entities: Array.from(dataMap?.values() || []),\n lastKey: null,\n },\n };\n }\n }\n\n try {\n const { data } = await entityService.listEntitiesByTag(tagName, {\n ...opts,\n requestKey,\n });\n const { entities, lastKey } = data;\n\n monoriseStore.setState(\n produce((state) => {\n for (const entity of entities) {\n state.entity[entityType].dataMap.set(entity.entityId, entity);\n }\n }),\n );\n\n monoriseStore.setState(\n produce((state) => {\n // Initialize tag state if it doesn't exist\n if (!state.tag[tagKey]) {\n state.tag[tagKey] = {\n dataMap: new Map(),\n isFirstFetched: false,\n };\n }\n\n // Merge new entities into existing dataMap instead of replacing\n for (const entity of entities) {\n state.tag[tagKey].dataMap.set(entity.entityId, entity);\n }\n\n state.tag[tagKey].isFirstFetched = true;\n state.tag[tagKey].lastKey = lastKey;\n }),\n );\n\n return { data };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n\n return { error };\n }\n };\n\n const getEntity = async <T extends Entity>(\n entityType: T,\n id: string,\n opts: CommonOptions = {},\n ): Promise<{\n data?: CreatedEntity<T>;\n error?: ApplicationRequestError | (Error & { originalError?: unknown });\n }> => {\n const store = monoriseStore.getState();\n const entityState = store.entity[entityType];\n const { dataMap } = entityState;\n const entityService = makeEntityService(entityType);\n let entity = dataMap.get(id);\n const requestKey = getEntityRequestKey('get', entityType, id);\n const isLoading = checkIsLoading(requestKey);\n const error = getError(requestKey);\n const { forceFetch } = opts;\n const onError = opts.onError ?? defaultOnError;\n\n if (!forceFetch) {\n if (error) {\n // If there's an existing error, handle it and return the error.\n onError?.(error);\n return { error };\n }\n\n if (entity) {\n // If entity already exists and no force fetch, return it.\n return { data: entity };\n }\n\n if (isLoading) {\n // If already loading, return undefined data and error to indicate ongoing operation.\n return {};\n }\n }\n\n try {\n ({ data: entity } = await entityService.getEntity(id, opts));\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].dataMap.set(entity?.entityId, entity);\n }),\n undefined,\n `mr/entity/get/${entityType}/${id}`,\n );\n\n return { data: entity };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n\n return { error };\n }\n };\n\n const getEntityByUniqueField = async <T extends Entity>(\n entityType: T,\n fieldName: string,\n value: string,\n opts: CommonOptions = {},\n ) => {\n const store = monoriseStore.getState();\n const entityState = store.entity[entityType];\n const { dataMap } = entityState;\n const entityService = makeEntityService(entityType);\n const stateKey = getUniqueFieldStateKey(fieldName, value);\n let entity = dataMap.get(stateKey);\n const requestKey = getUniqueFieldRequestKey(entityType, fieldName, value);\n const isLoading = checkIsLoading(requestKey);\n const error = getError(requestKey);\n const { forceFetch } = opts;\n const onError = opts.onError ?? defaultOnError;\n\n if (!forceFetch) {\n if (error) {\n onError?.(error);\n return { error };\n }\n\n if (entity) {\n return { data: entity };\n }\n\n if (isLoading) {\n return {};\n }\n }\n\n try {\n ({ data: entity } = await entityService.getEntityByUniqueField(\n fieldName,\n value,\n opts,\n ));\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].dataMap.set(entity?.entityId, entity);\n state.entity[entityType].dataMap.set(`${stateKey}`, entity);\n }),\n undefined,\n `mr/entity/unique/${entityType}/${stateKey}`,\n );\n\n return { data: entity };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n\n return { error };\n }\n };\n\n const createEntity = async <T extends Entity>(\n entityType: T,\n entity: DraftEntity<T>,\n opts: CommonOptions = {},\n ) => {\n const entityService = makeEntityService(entityType);\n const onError = opts.onError ?? defaultOnError;\n\n try {\n const { data } = await entityService.createEntity(entity, opts);\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].dataMap.set(data.entityId, data);\n\n // auto-populate tag store based on entity config\n const tagConfigs = state.config[entityType]?.tags;\n if (tagConfigs) {\n for (const tagConfig of tagConfigs) {\n const { name, processor } = tagConfig;\n const processorResults = processor(\n data as CreatedEntity<Entity>,\n );\n\n for (const tagKey of Object.keys(state.tag)) {\n const [tagEntityType, tagName, ...paramParts] =\n tagKey.split('/');\n\n if (\n (tagEntityType as unknown as Entity) !== entityType ||\n tagName !== name\n ) {\n continue;\n }\n\n if (!state.tag[tagKey]?.isFirstFetched) {\n continue;\n }\n\n // parse params from key\n const keyParams: Record<string, string> = {};\n for (const part of paramParts) {\n const colonIdx = part.indexOf(':');\n if (colonIdx > 0) {\n keyParams[part.substring(0, colonIdx)] =\n part.substring(colonIdx + 1);\n }\n }\n\n // skip query-filtered stores (can't match client-side)\n if (keyParams.query) {\n continue;\n }\n\n // check if any processor result matches this tag store's params\n const matches = processorResults.some((result) => {\n if (keyParams.group && result.group !== keyParams.group) {\n return false;\n }\n if (\n keyParams.start &&\n (!result.sortValue || result.sortValue < keyParams.start)\n ) {\n return false;\n }\n if (\n keyParams.end &&\n (!result.sortValue || result.sortValue > keyParams.end)\n ) {\n return false;\n }\n return true;\n });\n\n if (matches) {\n state.tag[tagKey].dataMap.set(data.entityId, data);\n }\n }\n }\n }\n\n // auto-populate mutual store based on entity config\n const mutualFields =\n state.config[entityType]?.mutual?.mutualFields;\n if (mutualFields) {\n for (const [field, fieldConfig] of Object.entries(mutualFields)) {\n const byEntityType = fieldConfig.entityType;\n const ids = (entity as Record<string, any>)[field];\n if (!Array.isArray(ids)) continue;\n\n for (const byEntityId of ids) {\n const mutualKey = getMutualStateKey(\n byEntityType,\n byEntityId,\n entityType,\n );\n if (\n state.mutual[mutualKey] &&\n state.mutual[mutualKey].isFirstFetched\n ) {\n state.mutual[mutualKey].dataMap.set(data.entityId, {\n entityId: data.entityId,\n entityType,\n byEntityId,\n byEntityType,\n mutualId: '',\n data: data.data,\n mutualData: {},\n createdAt: data.createdAt,\n updatedAt: data.updatedAt,\n mutualUpdatedAt: data.updatedAt,\n });\n }\n }\n }\n }\n }),\n undefined,\n `mr/entity/create/${entityType}`,\n );\n\n return { data };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n\n onError?.(error);\n\n return { error };\n }\n };\n\n const upsertEntity = async <T extends Entity>(\n entityType: T,\n id: string,\n entity: DraftEntity<T>,\n opts: CommonOptions = {},\n ) => {\n const entityService = makeEntityService(entityType);\n const onError = opts.onError ?? defaultOnError;\n\n try {\n const { data } = await entityService.upsertEntity(id, entity, opts);\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].dataMap.set(data.entityId, data);\n }),\n undefined,\n `mr/entity/upsert/${entityType}/${id}`,\n );\n return { data };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n onError(error);\n return { error };\n }\n };\n\n const editEntity = async <T extends Entity>(\n entityType: T,\n id: string,\n entity: Partial<DraftEntity<T>>,\n opts: CommonOptions = {},\n ) => {\n const entityService = makeEntityService(entityType);\n const onError = opts.onError ?? defaultOnError;\n\n try {\n const { data } = await entityService.editEntity(id, entity, opts);\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].dataMap.set(data.entityId, data);\n\n // update mutual's entity data\n for (const key of Object.keys(state.mutual)) {\n const [_byEntity, _byId, _entityType] = key.split('/');\n if ((_entityType as unknown as Entity) === entityType) {\n const mutual = state.mutual[key].dataMap.get(id);\n if (mutual) {\n state.mutual[key].dataMap = new Map(\n state.mutual[key].dataMap,\n ).set(id, { ...mutual, data: data.data });\n }\n }\n }\n\n // update flipped mutual side (entity is the \"by\" entity)\n for (const key of Object.keys(state.mutual)) {\n const [_byEntity, _byId] = key.split('/');\n if ((_byEntity as unknown as Entity) === entityType && _byId === id) {\n const newDataMap = new Map(state.mutual[key].dataMap);\n for (const [entryId, mutual] of newDataMap) {\n newDataMap.set(entryId, { ...mutual, data: data.data });\n }\n state.mutual[key].dataMap = newDataMap;\n }\n }\n\n // update tag store entries\n for (const tagKey of Object.keys(state.tag)) {\n const [tagEntityType] = tagKey.split('/');\n if ((tagEntityType as unknown as Entity) === entityType) {\n if (state.tag[tagKey]?.dataMap?.has(id)) {\n state.tag[tagKey].dataMap.set(id, data);\n }\n }\n }\n }),\n undefined,\n `mr/entity/edit/${entityType}/${id}`,\n );\n return { data };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n onError(error);\n return { error };\n }\n };\n\n const adjustEntity = async <T extends Entity>(\n entityType: T,\n id: string,\n adjustments: Record<string, number>,\n opts: CommonOptions = {},\n ) => {\n const entityService = makeEntityService(entityType);\n const onError = opts.onError ?? defaultOnError;\n\n try {\n const { data } = await entityService.adjustEntity(id, adjustments, opts);\n\n // Update local store with server response\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].dataMap.set(data.entityId, data);\n\n // Propagate to mutual stores\n for (const key of Object.keys(state.mutual)) {\n const [_byEntity, _byId, _entityType] = key.split('/');\n if ((_entityType as unknown as Entity) === entityType) {\n const mutual = state.mutual[key].dataMap.get(id);\n if (mutual) {\n state.mutual[key].dataMap = new Map(\n state.mutual[key].dataMap,\n ).set(id, { ...(mutual as any), data: data.data });\n }\n }\n }\n\n for (const key of Object.keys(state.mutual)) {\n const [_byEntity, _byId] = key.split('/');\n if ((_byEntity as unknown as Entity) === entityType && _byId === id) {\n const newDataMap = new Map(state.mutual[key].dataMap);\n for (const [entryId, mutual] of newDataMap) {\n newDataMap.set(entryId, { ...(mutual as any), data: data.data });\n }\n state.mutual[key].dataMap = newDataMap;\n }\n }\n\n // Propagate to tag stores\n for (const tagKey of Object.keys(state.tag)) {\n const [tagEntityType] = tagKey.split('/');\n if ((tagEntityType as unknown as Entity) === entityType) {\n if (state.tag[tagKey]?.dataMap?.has(id)) {\n state.tag[tagKey].dataMap.set(id, data);\n }\n }\n }\n }),\n undefined,\n `mr/entity/adjust/${entityType}/${id}`,\n );\n\n return { data };\n } catch (err: any) {\n // Constraint violated — refetch entity to get latest state\n if (err?.response?.status === 409) {\n await getEntity(entityType, id, { forceFetch: true });\n }\n\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n onError(error);\n return { error };\n }\n };\n\n const deleteEntity = async <T extends Entity>(\n entityType: T,\n id: string,\n opts: CommonOptions = {},\n ) => {\n const entityService = makeEntityService(entityType);\n const onError = opts.onError ?? defaultOnError;\n\n try {\n await entityService.deleteEntity(id, opts);\n deleteLocalMutualsByEntity(entityType, id);\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].dataMap.delete(id);\n\n // delete mutual's entity data\n for (const key of Object.keys(state.mutual)) {\n const [_byEntity, _byId, _entityType] = key.split('/');\n if ((_entityType as unknown as Entity) === entityType) {\n state.mutual[key].dataMap.delete(id);\n }\n }\n\n // delete from tag store\n for (const tagKey of Object.keys(state.tag)) {\n const [tagEntityType] = tagKey.split('/');\n if ((tagEntityType as unknown as Entity) === entityType) {\n state.tag[tagKey]?.dataMap?.delete(id);\n }\n }\n }),\n undefined,\n `mr/entity/delete/${entityType}/${id}`,\n );\n return { data: { entityId: id } }; // Indicate success with the deleted ID\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n onError(error);\n return { error };\n }\n };\n\n const listEntitiesByEntity = async <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n id: string,\n opts: CommonOptions = {},\n chainEntityQuery?: string,\n ) => {\n const onError = opts.onError ?? defaultOnError;\n const selfKey =\n opts.stateKey ??\n getMutualStateKey(\n byEntityType,\n id,\n entityType,\n undefined,\n chainEntityQuery,\n );\n const mutualService = makeMutualService(byEntityType, entityType);\n const store = monoriseStore.getState();\n const mutualState = store.mutual[selfKey] || {};\n const { isFirstFetched } = mutualState;\n const requestKey = getMutualRequestKey(\n 'list',\n byEntityType,\n entityType,\n id,\n undefined,\n chainEntityQuery,\n );\n const isLoading = checkIsLoading(requestKey);\n const error = getError(requestKey);\n const { forceFetch } = opts;\n\n if (!forceFetch) {\n if (error) {\n onError(error);\n return { error };\n }\n\n if (isFirstFetched || isLoading) {\n return {\n data: {\n entities: Array.from(mutualState.dataMap?.values() || []),\n lastKey: mutualState.lastKey,\n },\n };\n }\n }\n\n try {\n const { data } = await mutualService.listEntitiesByEntity(\n id,\n opts,\n chainEntityQuery,\n );\n const { entities, lastKey } = data;\n const newEntityDataMap = new Map();\n\n for (const i in entities) {\n newEntityDataMap.set(entities[i].entityId, entities[i]);\n }\n\n monoriseStore.setState(\n produce((state) => {\n for (const [key, value] of newEntityDataMap) {\n state.entity[entityType]?.dataMap.set(key, value);\n }\n\n // prepare or extend the mutual entry\n const existing = state.mutual[selfKey];\n if (existing) {\n // extend the existing map\n const incoming = convertToMap(entities, 'entityId');\n for (const [k, v] of incoming) {\n existing.dataMap.set(k, v);\n }\n existing.isFirstFetched = true;\n existing.lastKey = lastKey;\n } else {\n // first time: create it\n state.mutual[selfKey] = {\n dataMap: convertToMap(entities, 'entityId'),\n isFirstFetched: true,\n lastKey,\n };\n }\n }),\n undefined,\n `mr/mutual/list/${selfKey}`,\n );\n\n return { data };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n\n return { error };\n }\n };\n\n // todo: list more mutuals by entity\n // const listMoremutualsByEntity = async (\n // entityType: Entity,\n // otherEntityType: Entity,\n // id: string,\n // ) =>\n\n const getMutual = async <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string | null,\n entityId: string,\n opts: CommonOptions & {\n // if failed to retrieve, would still set a default mutual data\n defaultMutualData?: Record<string, any>;\n } = {},\n ) => {\n const selfKey = getMutualStateKey(byEntityType, byEntityId, entityType);\n const mutualService = makeMutualService(byEntityType, entityType);\n const store = monoriseStore.getState();\n const mutualState = store.mutual[selfKey] || {};\n const requestKey = getMutualRequestKey(\n 'get',\n byEntityType,\n entityType,\n byEntityId,\n entityId,\n );\n const isLoading = checkIsLoading(requestKey);\n const error = getError(requestKey);\n const onError = opts.onError ?? defaultOnError;\n\n if (error) {\n onError?.(error);\n return { error };\n }\n\n if (!byEntityId || isLoading) {\n return {\n data: mutualState.dataMap?.get(entityId) as Mutual<B, T>,\n };\n }\n\n if (mutualState.dataMap?.get(entityId)) {\n return {\n data: mutualState.dataMap.get(entityId) as Mutual<B, T>,\n };\n }\n\n let mutual: Omit<Mutual<B, T>, 'data'>;\n let hasRequestFailed = false;\n\n try {\n ({ data: mutual } = await mutualService.getMutual(\n byEntityId,\n entityId,\n opts,\n ));\n } catch (err) {\n if (!opts.defaultMutualData) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n return { error };\n }\n\n hasRequestFailed = true;\n mutual = {\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n mutualId: `${byEntityId}-${entityId}`,\n mutualUpdatedAt: new Date().toISOString(),\n byEntityType,\n byEntityId,\n entityType,\n entityId,\n mutualData: opts.defaultMutualData,\n };\n }\n\n const newMutualDataMap = new Map(store.mutual[selfKey]?.dataMap);\n newMutualDataMap.set(mutual.entityId, mutual as Mutual<B, T>);\n\n if (!hasRequestFailed) {\n const entityState = store.entity[entityType];\n const { dataMap: entityDataMap } = entityState;\n\n const newEntityDataMap = new Map(entityDataMap);\n newEntityDataMap.set(mutual.entityId, mutual as any);\n\n monoriseStore.setState(\n produce((state) => {\n state.mutual[selfKey] = {\n ...(state.mutual[selfKey] || {}),\n dataMap: newMutualDataMap,\n };\n state.entity[entityType].dataMap = newEntityDataMap;\n }),\n undefined,\n `mr/mutual/get/${getMutualStateKey(\n byEntityType,\n byEntityId,\n entityType,\n entityId,\n )}`,\n );\n }\n return { data: mutual as Mutual<B, T> };\n };\n\n const createMutual = async <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n payload: MutualData<B, T> | Record<string, any> = {},\n opts: CommonOptions = {},\n ) => {\n const mutualService = makeMutualService(byEntityType, entityType);\n const onError = opts.onError ?? defaultOnError;\n\n try {\n const { data: mutual } = await mutualService.createMutual(\n byEntityId,\n entityId,\n payload,\n opts,\n );\n\n monoriseStore.setState(\n produce((state) => {\n const bySide = getMutualStateKey(\n byEntityType,\n byEntityId,\n entityType,\n );\n const side = getMutualStateKey(entityType, entityId, byEntityType);\n\n if (!state.mutual[bySide]) {\n state.mutual[bySide] = {\n dataMap: new Map(),\n };\n }\n\n state.mutual[bySide].dataMap = new Map(\n state.mutual[bySide]?.dataMap,\n ).set(mutual.entityId, mutual);\n\n if (!state.mutual[side]) {\n state.mutual[side] = {\n dataMap: new Map(),\n };\n }\n\n state.mutual[side].dataMap = new Map(state.mutual[side]?.dataMap).set(\n mutual.byEntityId,\n flipMutual(mutual),\n );\n }),\n undefined,\n `mr/mutual/create/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n );\n return { data: mutual };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n onError(error);\n return { error };\n }\n };\n\n const createLocalMutual = async <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n mutualData: MutualData<B, T>,\n data: EntitySchemaMap[T] | Record<string, any>,\n ) => {\n const mutual = constructMutual(\n byEntityType,\n byEntityId,\n entityType,\n entityId,\n mutualData,\n data as EntitySchemaMap[T],\n );\n\n monoriseStore.setState(\n produce((state) => {\n const bySide = getMutualStateKey(byEntityType, byEntityId, entityType);\n const side = getMutualStateKey(entityType, entityId, byEntityType);\n\n if (!state.mutual[bySide]) {\n state.mutual[bySide] = {\n dataMap: new Map(),\n };\n }\n\n state.mutual[bySide].dataMap = new Map(\n state.mutual[bySide]?.dataMap,\n ).set(mutual.entityId, mutual);\n\n if (!state.mutual[side]) {\n state.mutual[side] = {\n dataMap: new Map(),\n };\n }\n\n state.mutual[side].dataMap = new Map(state.mutual[side]?.dataMap).set(\n mutual.byEntityId,\n flipMutual(mutual),\n );\n }),\n undefined,\n `mr/mutual/create/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n );\n };\n\n const updateLocalEntity = async <T extends Entity>(\n entityType: Entity,\n entityId: string,\n data: Partial<DraftEntity<T>> = {},\n ) => {\n const createdEntity = constructLocal(entityType, entityId, data);\n\n monoriseStore.setState(\n produce((state) => {\n state.entity[entityType].dataMap.set(entityId, createdEntity);\n }),\n undefined,\n `mr/entity/local-update/${entityType}/${entityId}`,\n );\n };\n\n const upsertLocalMutual = async <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n mutualData: MutualData<B, T>,\n data: EntitySchemaMap[T] | Record<string, any> = {},\n ) => {\n const mutual = constructMutual(\n byEntityType,\n byEntityId,\n entityType,\n entityId,\n mutualData,\n data as EntitySchemaMap[T],\n );\n\n monoriseStore.setState(\n produce((state) => {\n const bySide = getMutualStateKey(byEntityType, byEntityId, entityType);\n const side = getMutualStateKey(entityType, entityId, byEntityType);\n\n if (!state.mutual[bySide]) {\n state.mutual[bySide] = {\n dataMap: new Map(),\n };\n }\n\n state.mutual[bySide].dataMap = new Map(\n state.mutual[bySide]?.dataMap,\n ).set(entityId, mutual);\n\n if (!state.mutual[side]) {\n state.mutual[side] = {\n dataMap: new Map(),\n };\n }\n\n state.mutual[side].dataMap = new Map(state.mutual[side]?.dataMap).set(\n byEntityId,\n flipMutual(mutual),\n );\n }),\n undefined,\n `mr/mutual/local-update/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n );\n };\n\n const editMutual = async <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n payload: MutualData<B, T> | Record<string, any> = {},\n opts: CommonOptions = {},\n ) => {\n const mutualService = makeMutualService(byEntityType, entityType);\n const onError = opts.onError ?? defaultOnError;\n\n try {\n const { data: mutual } = await mutualService.editMutual(\n byEntityId,\n entityId,\n payload,\n opts,\n );\n\n monoriseStore.setState(\n produce((state) => {\n const bySide = getMutualStateKey(\n byEntityType,\n byEntityId,\n entityType,\n );\n const side = getMutualStateKey(entityType, entityId, byEntityType);\n\n if (!state.mutual[bySide]) {\n state.mutual[bySide] = {\n dataMap: new Map(),\n };\n }\n\n state.mutual[bySide].dataMap = new Map(\n state.mutual[bySide]?.dataMap,\n ).set(mutual.entityId, mutual);\n\n if (!state.mutual[side]) {\n state.mutual[side] = {\n dataMap: new Map(),\n };\n }\n\n state.mutual[side].dataMap = new Map(state.mutual[side]?.dataMap).set(\n mutual.byEntityId,\n flipMutual(mutual),\n );\n }),\n undefined,\n `mr/mutual/edit/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n );\n return { data: mutual };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n onError(error);\n return { error };\n }\n };\n\n const deleteMutual = async <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId = '',\n opts: CommonOptions = {},\n ) => {\n const mutualService = makeMutualService(byEntityType, entityType);\n const onError = opts.onError ?? defaultOnError;\n\n try {\n const { data } = await mutualService.deleteMutual(\n byEntityId,\n entityId,\n opts,\n );\n\n monoriseStore.setState(\n produce((state) => {\n const bySide = getMutualStateKey(\n byEntityType,\n byEntityId,\n entityType,\n );\n const side = getMutualStateKey(entityType, entityId, byEntityType);\n\n state.mutual[bySide].dataMap.delete(data.entityId);\n\n if (state.mutual[side]) {\n state.mutual[side].dataMap.delete(data.byEntityId);\n }\n }),\n undefined,\n `mr/mutual/delete/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n );\n return { data };\n } catch (err) {\n const error: Error & { originalError?: unknown } =\n err instanceof Error ? err : new Error('Unknown error occurred');\n onError(error);\n return { error };\n }\n };\n\n const deleteLocalMutual = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n ) => {\n monoriseStore.setState(\n produce((state) => {\n const bySide = getMutualStateKey(byEntityType, byEntityId, entityType);\n const side = getMutualStateKey(entityType, entityId, byEntityType);\n const bySideDataMap = new Map(state.mutual[bySide]?.dataMap);\n const sideDataMap = new Map(state.mutual[side]?.dataMap);\n bySideDataMap.delete(entityId);\n sideDataMap.delete(byEntityId);\n\n if (state.mutual[bySide]) {\n state.mutual[bySide].dataMap.delete(entityId);\n }\n if (state.mutual[side]) {\n state.mutual[side].dataMap.delete(byEntityId);\n }\n }),\n undefined,\n `mr/mutual/local-delete/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n );\n };\n\n const deleteLocalMutualsByEntity = <T extends Entity>(\n entityType: T,\n id: string,\n ) => {\n const store = monoriseStore.getState();\n const entityConfig = store.config; // Assuming store.config holds mutual related configurations\n let mutuals: Mutual[] = [];\n for (const i of Object.keys(entityConfig)) {\n const mutualState = store.mutual[`${entityType}/${id}/${i}`];\n mutuals = [\n ...mutuals,\n ...Array.from(mutualState?.dataMap.values() || []),\n ];\n }\n\n const updatedState = mutuals.reduce(\n (acc, mutual) => {\n const side = getMutualStateKey(\n mutual.entityType,\n mutual.entityId,\n mutual.byEntityType,\n );\n const dataMap = new Map(store.mutual[side]?.dataMap); // Use optional chaining\n dataMap.delete(id);\n acc[side] = {\n ...store.mutual[side],\n dataMap,\n };\n return acc;\n },\n {} as Record<string, CommonStore<Mutual>>,\n );\n\n monoriseStore.setState(\n produce((state) => {\n // This is a full replacement, might not be desired for partial updates.\n // If state.mutual can contain other keys, this might clear them.\n // Consider a more granular update if needed.\n for (const key in updatedState) {\n state.mutual[key] = updatedState[key];\n }\n }),\n undefined,\n `mr/mutual/local-delete-by-entity/${entityType}/${id}`,\n );\n };\n\n const useEntity = <T extends Entity>(\n entityType: T,\n id?: string,\n opts: CommonOptions = {},\n ): {\n entity: CreatedEntity<T> | undefined;\n isLoading: boolean;\n error?: ApplicationRequestError;\n requestKey: string;\n isFirstFetched?: boolean;\n refetch: () => Promise<CreatedEntity<T> | undefined>;\n } => {\n const dataMap = monoriseStore(\n (state) => state.entity[entityType]?.dataMap || new Map(),\n );\n const isFirstFetched = monoriseStore(\n (state) => state.entity[entityType]?.isFirstFetched,\n );\n const requestKey = getEntityRequestKey('get', entityType, id);\n const isLoading = useLoadStore(requestKey);\n const error = useErrorStore(requestKey);\n\n useEffect(() => {\n if (id) {\n getEntity(entityType, id, opts);\n }\n }, [id, entityType, opts]);\n\n return {\n entity: id ? dataMap.get(id) : undefined,\n isLoading,\n error,\n requestKey,\n isFirstFetched,\n refetch: async () => {\n if (id) {\n const { data, error: fetchError } = await getEntity(entityType, id, {\n ...opts,\n forceFetch: true,\n });\n if (fetchError) {\n // Handle refetch error if necessary, e.g., throw or set local state\n }\n return data;\n }\n },\n };\n };\n\n const useEntityByUniqueField = <T extends Entity>(\n entityType: T,\n fieldName: string,\n value?: string,\n opts: CommonOptions = {},\n ): {\n entity: CreatedEntity<T> | undefined;\n isLoading: boolean;\n error?: ApplicationRequestError;\n requestKey: string;\n isFirstFetched?: boolean;\n refetch: () => Promise<CreatedEntity<T> | undefined>;\n } => {\n const dataMap = monoriseStore(\n (state) => state.entity[entityType]?.dataMap || new Map(),\n );\n const isFirstFetched = monoriseStore(\n (state) => state.entity[entityType]?.isFirstFetched,\n );\n const stateKey = getUniqueFieldStateKey(fieldName, value || '');\n const requestKey = getUniqueFieldRequestKey(\n entityType,\n fieldName,\n value || '',\n );\n const isLoading = useLoadStore(requestKey);\n const error = useErrorStore(requestKey);\n\n useEffect(() => {\n if (value) {\n getEntityByUniqueField(entityType, fieldName, value, opts);\n }\n }, [fieldName, value, entityType, opts]);\n\n return {\n entity: value ? dataMap.get(`${stateKey}`) : undefined,\n isLoading,\n error,\n requestKey,\n isFirstFetched,\n refetch: async () => {\n if (value) {\n const { data, error: fetchError } = await getEntityByUniqueField(\n entityType,\n fieldName,\n value,\n {\n ...opts,\n forceFetch: true,\n },\n );\n if (fetchError) {\n // Handle refetch error if necessary\n }\n return data;\n }\n },\n };\n };\n\n const useEntities = <T extends Entity>(\n entityType: T,\n params: {\n skRange?: {\n start: string;\n end: string;\n };\n all?: boolean;\n limit?: number;\n } = { limit: 20 },\n opts: CommonOptions & { searchInterval?: number } = {},\n ): {\n isLoading: boolean;\n entities?: CreatedEntity<T>[];\n entitiesMap: Map<string, CreatedEntity<T>>;\n error?: ApplicationRequestError;\n requestKey: string;\n searchField: {\n value: string;\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n };\n lastKey?: string;\n isFirstFetched?: boolean;\n listMore: () => void;\n refetch: () => void;\n } => {\n const requestKey = getEntityRequestKey('list', entityType);\n const isListing = useLoadStore(requestKey);\n const error = useErrorStore(requestKey);\n const state = monoriseStore((state) => state.entity[entityType]);\n const { dataMap, searchResults, isFirstFetched, lastKey } = state ?? {\n dataMap: new Map(),\n };\n const [entities, setEntities] = useState<CreatedEntity<T>[]>();\n const [query, setQuery] = useState<string>('');\n const [skRange, setBetween] = useState(params.skRange);\n const [all, setAll] = useState(params.all);\n const [limit, setLimit] = useState(params.limit);\n const [isSearching, setIsSearching] = useState(false);\n const isLoading = isListing || isSearching;\n\n useEffect(() => {\n if (\n params?.skRange &&\n skRange?.start !== params.skRange.start &&\n skRange?.end !== params.skRange.end\n ) {\n setBetween(params.skRange);\n }\n }, [skRange?.end, skRange?.start, params.skRange]);\n\n useEffect(() => {\n if (params?.all !== all) {\n setAll(params.all);\n }\n }, [all, params.all]);\n\n useEffect(() => {\n if (params?.limit !== limit) {\n setLimit(params.limit);\n }\n }, [limit, params.limit]);\n\n useEffect(() => {\n if (!isFirstFetched || opts?.forceFetch) {\n listEntities(entityType, { skRange, all, limit }, opts);\n }\n }, [all, entityType, skRange, opts, isFirstFetched, opts?.forceFetch, limit]);\n\n useEffect(() => {\n let queryTimeout: NodeJS.Timeout;\n\n if (query?.length) {\n setIsSearching(true);\n queryTimeout = setTimeout(async () => {\n await searchEntities(entityType, query);\n setIsSearching(false);\n }, opts.searchInterval ?? 700);\n }\n\n return () => queryTimeout && clearTimeout(queryTimeout);\n }, [entityType, query]);\n\n useEffect(() => {\n if (!query && dataMap.size !== entities?.length) {\n setIsSearching(false);\n setEntities(\n Array.from(dataMap.values()).sort(byEntityId) as CreatedEntity<T>[],\n );\n }\n\n if (query) {\n setEntities(searchResults as CreatedEntity<T>[]);\n }\n }, [\n dataMap,\n dataMap.size,\n entities?.length,\n query,\n searchResults,\n searchResults?.length,\n ]);\n\n const handleQueryChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setQuery(event.target.value);\n };\n\n const searchField = {\n value: query,\n onChange: handleQueryChange,\n };\n\n return {\n entities,\n entitiesMap: dataMap,\n searchField,\n isLoading,\n error,\n requestKey,\n isFirstFetched,\n lastKey,\n refetch: async () => {\n if (entityType && query) {\n await searchEntities(entityType, query);\n return;\n }\n await listEntities(\n entityType,\n { skRange, all },\n {\n ...opts,\n forceFetch: true,\n },\n );\n },\n listMore: async () => {\n if (!lastKey) return;\n\n await listMoreEntities(entityType, {\n ...opts,\n limit,\n forceFetch: true,\n });\n },\n };\n };\n\n const useMutual = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byId: string | null,\n id: string,\n opts: CommonOptions & {\n // if failed to retrieve, would still set a default mutual data\n defaultMutualData?: Record<string, any>;\n } = {},\n ): {\n mutual?: Mutual<B, T>;\n isLoading: boolean;\n error?: ApplicationRequestError;\n requestKey: string;\n } => {\n const stateKey = getMutualStateKey(byEntityType, byId, entityType);\n const state = monoriseStore((state) => state.mutual[stateKey]);\n const requestKey = getMutualRequestKey(\n 'get',\n byEntityType,\n entityType,\n byId,\n id,\n );\n const isLoading = useLoadStore(requestKey);\n const error = useErrorStore(requestKey);\n\n const { dataMap } = state || {\n dataMap: new Map(),\n };\n\n useEffect(() => {\n if (!dataMap.get(id)) {\n getMutual(byEntityType, entityType, byId, id, opts);\n }\n }, [byEntityType, byId, entityType, id, opts, dataMap]);\n\n return {\n mutual: dataMap.get(id) as Mutual<B, T>,\n isLoading,\n error,\n requestKey,\n };\n };\n\n const useMutuals = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byId?: string,\n opts: CommonOptions = {},\n chainEntityQuery?: string, // chain entity query, refer to list-entities-by-entity.controller.ts\n ): {\n mutuals: Mutual<B, T>[];\n mutualsMap: Map<string, Mutual<B, T>>;\n isLoading: boolean;\n requestKey: string;\n error?: ApplicationRequestError;\n isFirstFetched?: boolean;\n lastKey?: string;\n listMore?: () => void;\n refetch?: () => Promise<any>;\n } => {\n const stateKey = getMutualStateKey(\n byEntityType,\n byId || '',\n entityType,\n undefined,\n chainEntityQuery,\n );\n const state = monoriseStore((state) => state.mutual[stateKey]);\n const { dataMap, isFirstFetched, lastKey } = state || {\n dataMap: new Map(),\n };\n const [mutuals, setMutuals] = useState<Mutual<B, T>[]>([]);\n const requestKey = getMutualRequestKey(\n 'list',\n byEntityType,\n entityType,\n byId || '',\n undefined,\n chainEntityQuery,\n );\n const isLoading = useLoadStore(requestKey);\n const error = useErrorStore(requestKey);\n\n useEffect(() => {\n if (byEntityType && entityType && byId && (!isFirstFetched || opts?.forceFetch)) {\n listEntitiesByEntity(\n byEntityType,\n entityType,\n byId,\n { ...opts, stateKey },\n chainEntityQuery,\n );\n }\n }, [\n isFirstFetched,\n byEntityType,\n byId,\n entityType,\n opts,\n chainEntityQuery,\n stateKey,\n opts?.forceFetch,\n opts?.noData,\n ]);\n\n useEffect(() => {\n const dataMapArray = Array.from(dataMap.values());\n if (\n dataMap.size !== mutuals?.length ||\n dataMapArray.some(\n (item, index) =>\n JSON.stringify(item) !== JSON.stringify(mutuals[index]),\n )\n ) {\n setMutuals(dataMapArray as Mutual<B, T>[]);\n }\n }, [dataMap, dataMap.size, mutuals?.length]);\n\n return {\n mutuals,\n mutualsMap: dataMap as Map<string, Mutual<B, T>>,\n isLoading,\n requestKey,\n error,\n isFirstFetched,\n lastKey,\n refetch: async () => {\n if (byEntityType && entityType && byId) {\n return await listEntitiesByEntity(\n byEntityType,\n entityType,\n byId,\n {\n ...opts,\n forceFetch: true,\n stateKey,\n },\n chainEntityQuery,\n );\n }\n },\n ...(lastKey && {\n listMore: () => {\n if (byEntityType && entityType && byId) {\n listEntitiesByEntity(\n byEntityType,\n entityType,\n byId,\n {\n ...opts,\n forceFetch: true,\n params: { ...opts.params, lastKey },\n stateKey,\n },\n chainEntityQuery,\n );\n }\n },\n }),\n };\n };\n\n const useTaggedEntities = <T extends Entity>(\n entityType: T,\n tagName: string,\n opts: CommonOptions & { params?: ListEntitiesByTagParams } = {},\n ) => {\n const { params } = opts || {};\n const stateKey = getTagStateKey(entityType, tagName, params);\n const state = monoriseStore((state) => state.tag[stateKey]);\n const { dataMap, isFirstFetched, lastKey } = state || {\n dataMap: new Map(),\n };\n const [entities, setEntities] = useState<CreatedEntity<T>[]>([]);\n const requestKey = getTagRequestKey('list', entityType, tagName, params);\n const isLoading = useLoadStore(requestKey);\n const error = useErrorStore(requestKey);\n\n useEffect(() => {\n if (entityType && tagName && Object.keys(params).length > 0) {\n listEntitiesByTag(entityType, tagName, opts);\n }\n }, [entityType, opts, tagName, params, opts?.forceFetch]);\n\n useEffect(() => {\n const dataMapArray = Array.from(dataMap.values());\n if (\n dataMap.size !== entities?.length ||\n dataMapArray.some(\n (item, index) =>\n JSON.stringify(item) !== JSON.stringify(entities[index]),\n )\n ) {\n setEntities(dataMapArray as CreatedEntity<T>[]);\n }\n }, [dataMap, dataMap.size, entities?.length]);\n\n return {\n entities,\n entitiesMap: dataMap as Map<string, CreatedEntity<T>>,\n isLoading,\n requestKey,\n error,\n isFirstFetched,\n lastKey,\n refetch: async () => {\n if (entityType && tagName && params?.group) {\n return await listEntitiesByTag(entityType, tagName, {\n ...opts,\n forceFetch: true,\n });\n }\n },\n listMore: async () => {\n if (entityType && tagName && params?.group) {\n return await listEntitiesByTag(entityType, tagName, {\n ...opts,\n forceFetch: true,\n params: { ...params, lastKey },\n });\n }\n },\n };\n };\n\n const useEntityState = <T extends Entity>(entityType: T) => {\n return monoriseStore((state) => state.entity[entityType]);\n };\n\n const updateLocalTaggedEntity = <T extends Entity>(\n entityType: T,\n entityId: string,\n tagName: string,\n data: Partial<DraftEntity<T>> = {},\n params?: ListEntitiesByTagParams,\n ) => {\n const tagKey = getTagStateKey(\n entityType,\n tagName,\n params as Record<string, string>,\n );\n\n monoriseStore.setState(\n produce((state) => {\n const entity = state.tag[tagKey]?.dataMap?.get(entityId);\n if (entity) {\n state.tag[tagKey].dataMap.set(entityId, {\n ...entity,\n data: { ...entity.data, ...data },\n });\n }\n }),\n undefined,\n `mr/tag/local-update/${entityType}/${entityId}`,\n );\n };\n\n const deleteLocalTaggedEntity = <T extends Entity>(\n entityType: T,\n entityId: string,\n tagName: string,\n params?: ListEntitiesByTagParams,\n ) => {\n const tagKey = getTagStateKey(\n entityType,\n tagName,\n params as Record<string, string>,\n );\n\n monoriseStore.setState(\n produce((state) => {\n if (state.tag[tagKey]?.dataMap?.has(entityId)) {\n state.tag[tagKey].dataMap.delete(entityId);\n }\n }),\n undefined,\n `mr/tag/local-delete/${entityType}/${entityId}`,\n );\n };\n\n return {\n listMoreEntities,\n createEntity,\n upsertEntity,\n getEntity,\n editEntity,\n adjustEntity,\n deleteEntity,\n getMutual,\n updateLocalEntity,\n createMutual,\n createLocalMutual,\n upsertLocalMutual,\n editMutual,\n deleteMutual,\n deleteLocalMutual,\n useEntity,\n useEntityByUniqueField,\n useEntities,\n useMutual,\n useMutuals,\n useTaggedEntities,\n useEntityState,\n updateLocalTaggedEntity,\n deleteLocalTaggedEntity,\n };\n};\n\nexport { initCoreActions };\n\nexport type CoreActions = ReturnType<typeof initCoreActions>;\n","import type { CreatedEntity, Entity, EntitySchemaMap } from '@monorise/base';\nimport type { Mutual, MutualData } from '../types/mutual.type';\n\nexport const constructLocal = (\n entityType: Entity,\n entityId: string,\n data: any,\n): CreatedEntity<Entity> => {\n return {\n entityType: entityType as unknown as string,\n entityId,\n data,\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n };\n};\n\nexport const constructMutual = <B extends Entity, T extends Entity>(\n byEntityType: B,\n byEntityId: string,\n entityType: T,\n entityId: string,\n mutualData: Partial<MutualData<B, T>>,\n data: EntitySchemaMap[T],\n): Mutual => {\n return {\n mutualId: `${byEntityId}-${entityId}`,\n byEntityType,\n byEntityId,\n entityType,\n entityId,\n mutualData,\n data,\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n mutualUpdatedAt: new Date().toISOString(),\n };\n};\n\nexport const flipMutual = (mutual: Mutual): Mutual => {\n return {\n ...mutual,\n entityId: mutual.byEntityId,\n entityType: mutual.byEntityType,\n byEntityId: mutual.entityId,\n byEntityType: mutual.entityType,\n };\n};\n\nexport const byMutualIndex = (a: Mutual<any, any>, b: Mutual<any, any>) => {\n return a.mutualData.index - b.mutualData.index;\n};\n\nexport const byEntityId = (a: CreatedEntity<any>, b: CreatedEntity<any>) => {\n if (b.entityId < a.entityId) return -1;\n return 1;\n};\n\nexport const constructOrderByIndex = (mutuals: Mutual<any, any>[]) => {\n return mutuals.sort(byMutualIndex).map((mutual) => mutual.entityId);\n};\n\nexport const injectFields = <T extends Entity>(\n entity: CreatedEntity<T> | undefined,\n fields: Record<string, any>,\n): CreatedEntity<T> | undefined => {\n return entity\n ? {\n ...entity,\n data: {\n ...entity.data,\n ...fields,\n },\n }\n : undefined;\n};\n","import type { Entity } from '@monorise/base';\n\nexport const convertToMap = <T extends Record<string, any>>(\n data: T[],\n mapKey: string,\n) => {\n const map = new Map();\n\n for (const i in data) {\n map.set(data[i][mapKey], data[i]);\n }\n\n return map;\n};\n\nexport const getMutualStateKey = (\n byEntity: Entity,\n byEntityId: string | null,\n entity: Entity,\n entityId?: string,\n chainEntityQuery?: string,\n) => {\n return `${byEntity}/${byEntityId}/${entity}${entityId ? `/${entityId}` : ''}${chainEntityQuery ? `?${chainEntityQuery}` : ''}`;\n};\n\nexport const getTagStateKey = (\n entityType: Entity,\n tagName: string,\n params: Record<string, string> = {},\n) => {\n const { lastKey, ...stateParams } = params;\n\n const paramsKey = Object.keys(stateParams)\n .map((key) => `${key}:${stateParams[key]}`)\n .join('/');\n\n return `${entityType}/${tagName}/${paramsKey}`;\n};\n\nexport const getUniqueFieldStateKey = (\n fieldName: string,\n fieldValue: string,\n) => {\n return `${fieldName}/${fieldValue}`;\n};\n\nexport const getEntityRequestKey = (\n mode: 'create' | 'upsert' | 'edit' | 'adjust' | 'delete' | 'get' | 'list' | 'search',\n entityType: Entity,\n entityId?: string,\n) => {\n return `entity/${entityType}/${mode}${entityId ? `/${entityId}` : ''}`;\n};\n\nexport const getMutualRequestKey = (\n mode: 'create' | 'update' | 'delete' | 'get' | 'list',\n byEntityType: Entity,\n entityType: Entity,\n byEntityId: string | null,\n entityId?: string,\n chainEntityQuery?: string,\n) => {\n return `mutual/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId, chainEntityQuery)}/${mode}`;\n};\n\nexport const getTagRequestKey = (\n mode: 'list',\n entityType: Entity,\n tagName: string,\n params: Record<string, string> = {},\n) => {\n return `tag/${getTagStateKey(entityType, tagName, params)}/${mode}`;\n};\n\nexport const getUniqueFieldRequestKey = (\n entityType: Entity,\n fieldName: string,\n value: string,\n) => {\n return `entity/${entityType}/unique/${getUniqueFieldStateKey(fieldName, value)}`;\n};\n","import type { CreatedEntity, Entity } from '@monorise/base';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { produce } from 'immer';\nimport type { MonoriseStore } from '../store/monorise.store';\nimport type {\n ConnectionState,\n ServerMessage,\n WebSocketManager,\n} from '../websocket';\n\nexport interface UseEntitySocketReturn<T extends Entity> {\n entities: CreatedEntity<T>[];\n isLoading: boolean;\n isFetchingMore: boolean;\n isSubscribed: boolean;\n error: Error | null;\n isRefreshing: boolean;\n fetchMore: () => Promise<void>;\n hasMore: boolean;\n}\n\nexport interface UseMutualSocketReturn<T extends Entity> {\n mutuals: unknown[];\n isLoading: boolean;\n isFetchingMore: boolean;\n isSubscribed: boolean;\n error: Error | null;\n isRefreshing: boolean;\n fetchMore: () => Promise<void>;\n hasMore: boolean;\n}\n\nexport interface UseEntityFeedOptions {\n entityType: Entity;\n entityId: string;\n ticketEndpoint?: string;\n}\n\nexport interface UseEntityFeedReturn {\n isConnected: boolean;\n error: { code: string; message: string } | null;\n}\n\nlet globalWsManager: WebSocketManager | null = null;\nlet wsEndpoint: string | undefined;\n\nexport const initializeWebSocketManager = (\n WebSocketManagerClass: typeof WebSocketManager,\n endpoint: string,\n token?: string,\n) => {\n if (globalWsManager) return globalWsManager;\n\n wsEndpoint = endpoint;\n globalWsManager = new WebSocketManagerClass(endpoint, token || '');\n globalWsManager.connect();\n\n return globalWsManager;\n};\n\nexport const getWebSocketManager = () => globalWsManager;\n\nexport const initWebSocketActions = (\n monoriseStore: MonoriseStore,\n httpActions?: {\n listEntities: <T extends Entity>(\n entityType: T,\n params?: { limit?: number; lastKey?: string },\n ) => Promise<{ data: CreatedEntity<T>[]; lastKey?: string }>;\n listEntitiesByEntity: <B extends Entity, T extends Entity>(\n byEntityType: B,\n byEntityId: string,\n entityType: T,\n params?: { limit?: number; lastKey?: string },\n ) => Promise<{ entities: unknown[]; lastKey?: string }>;\n },\n) => {\n const useEntitySocket = <T extends Entity>(\n entityType: T,\n opts: { limit?: number; skipInitialFetch?: boolean } = {},\n ): UseEntitySocketReturn<T> => {\n const { limit = 20, skipInitialFetch = false } = opts;\n const [isLoading, setIsLoading] = useState(!skipInitialFetch);\n const [isFetchingMore, setIsFetchingMore] = useState(false);\n const [isRefreshing, setIsRefreshing] = useState(false);\n const [isSubscribed, setIsSubscribed] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const [hasMore, setHasMore] = useState(true);\n const lastKeyRef = useRef<string | undefined>(undefined);\n const isFirstFetchRef = useRef(true);\n\n const entities = monoriseStore((state) => {\n const entityState = state.entity[entityType];\n return Array.from(entityState?.dataMap?.values() || []);\n });\n\n const fetchData = async (type: 'initial' | 'more' | 'refresh') => {\n if (!httpActions) return;\n if (type === 'more') {\n setIsFetchingMore(true);\n } else if (type === 'refresh') {\n setIsRefreshing(true);\n } else {\n setIsLoading(true);\n }\n setError(null);\n\n try {\n const fetchLastKey = type === 'refresh' ? undefined : lastKeyRef.current;\n const result = await httpActions.listEntities(entityType, {\n limit,\n lastKey: fetchLastKey,\n });\n\n monoriseStore.setState(\n produce((state) => {\n if (type === 'refresh') {\n state.entity[entityType as unknown as string].dataMap.clear();\n }\n for (const entity of result.data) {\n state.entity[entityType as unknown as string].dataMap.set(entity.entityId, entity);\n }\n state.entity[entityType as unknown as string].isFirstFetched = true;\n state.entity[entityType as unknown as string].lastKey = result.lastKey;\n }),\n );\n\n lastKeyRef.current = result.lastKey;\n setHasMore(!!result.lastKey);\n } catch (err) {\n setError(err instanceof Error ? err : new Error('Failed to fetch'));\n } finally {\n setIsLoading(false);\n setIsFetchingMore(false);\n setIsRefreshing(false);\n }\n };\n\n useEffect(() => {\n if (skipInitialFetch) return;\n fetchData('initial');\n }, [entityType, limit, skipInitialFetch]);\n\n useEffect(() => {\n if (!globalWsManager) {\n setIsSubscribed(false);\n return;\n }\n\n const subKey = globalWsManager.subscribeEntityType(entityType as unknown as string);\n setIsSubscribed(true);\n\n let wasConnected = false;\n const unsubscribeState = globalWsManager.onStateChange((state) => {\n if (state === 'connected' && wasConnected === false && !isFirstFetchRef.current) {\n fetchData('refresh');\n }\n wasConnected = state === 'connected';\n isFirstFetchRef.current = false;\n });\n\n const unsubscribeMessage = globalWsManager.onMessage(\n (msg: ServerMessage) => {\n if (\n msg.type === 'entity.created' ||\n msg.type === 'entity.updated' ||\n msg.type === 'entity.deleted'\n ) {\n const payload = msg.payload as {\n entityType: string;\n entityId: string;\n data?: CreatedEntity<T>;\n };\n\n if (payload.entityType !== (entityType as unknown as string)) return;\n\n if (msg.type === 'entity.created' || msg.type === 'entity.updated') {\n if (payload.data) {\n monoriseStore.setState(\n produce((state) => {\n const key = entityType as unknown as string;\n if (!state.entity[key]) {\n state.entity[key] = { dataMap: new Map(), isFirstFetched: false, lastKey: undefined };\n }\n state.entity[key].dataMap.set(\n payload.entityId,\n payload.data!,\n );\n }),\n );\n }\n } else if (msg.type === 'entity.deleted') {\n monoriseStore.setState(\n produce((state) => {\n const key = entityType as unknown as string;\n if (state.entity[key]?.dataMap) {\n state.entity[key].dataMap.delete(payload.entityId);\n }\n }),\n );\n }\n }\n },\n );\n\n return () => {\n globalWsManager?.unsubscribeEntityType(subKey);\n unsubscribeState();\n unsubscribeMessage();\n setIsSubscribed(false);\n };\n }, [entityType]);\n\n const fetchMore = async () => {\n if (!hasMore || isFetchingMore) return;\n await fetchData('more');\n };\n\n return {\n entities,\n isLoading,\n isFetchingMore,\n isSubscribed,\n error,\n isRefreshing,\n fetchMore,\n hasMore,\n };\n };\n\n const useMutualSocket = <B extends Entity, T extends Entity>(\n byEntityType: B,\n byEntityId: string | undefined,\n mutualEntityType: T,\n opts: { limit?: number; skipInitialFetch?: boolean } = {},\n ): UseMutualSocketReturn<T> => {\n const { limit = 20, skipInitialFetch = false } = opts;\n const [isLoading, setIsLoading] = useState(\n !skipInitialFetch && !!byEntityId,\n );\n const [isFetchingMore, setIsFetchingMore] = useState(false);\n const [isRefreshing, setIsRefreshing] = useState(false);\n const [isSubscribed, setIsSubscribed] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const [hasMore, setHasMore] = useState(true);\n const lastKeyRef = useRef<string | undefined>(undefined);\n const isFirstFetchRef = useRef(true);\n\n const mutualKey = byEntityId\n ? `${byEntityType}/${byEntityId}/${mutualEntityType}`\n : '';\n\n const mutuals = monoriseStore((state) => {\n return Array.from(state.mutual[mutualKey]?.dataMap?.values() || []);\n });\n\n const fetchData = async (type: 'initial' | 'more' | 'refresh') => {\n if (!byEntityId || !httpActions) return;\n\n if (type === 'more') {\n setIsFetchingMore(true);\n } else if (type === 'refresh') {\n setIsRefreshing(true);\n } else {\n setIsLoading(true);\n }\n setError(null);\n\n try {\n const fetchLastKey = type === 'refresh' ? undefined : lastKeyRef.current;\n const result = await httpActions.listEntitiesByEntity(\n byEntityType,\n byEntityId,\n mutualEntityType,\n { limit, lastKey: fetchLastKey },\n );\n\n monoriseStore.setState(\n produce((state) => {\n if (!state.mutual[mutualKey]) {\n state.mutual[mutualKey] = {\n dataMap: new Map(),\n isFirstFetched: true,\n lastKey: undefined as unknown as string,\n };\n }\n if (type === 'refresh') {\n state.mutual[mutualKey].dataMap.clear();\n }\n for (const entity of result.entities) {\n const e = entity as any;\n state.mutual[mutualKey].dataMap.set(e.entityId, entity);\n }\n state.mutual[mutualKey].lastKey = result.lastKey;\n }),\n );\n\n lastKeyRef.current = result.lastKey;\n setHasMore(!!result.lastKey);\n } catch (err) {\n setError(err instanceof Error ? err : new Error('Failed to fetch'));\n } finally {\n setIsLoading(false);\n setIsFetchingMore(false);\n setIsRefreshing(false);\n }\n };\n\n useEffect(() => {\n if (skipInitialFetch || !byEntityId) {\n setIsLoading(false);\n return;\n }\n lastKeyRef.current = undefined;\n setHasMore(true);\n isFirstFetchRef.current = true;\n fetchData('initial');\n }, [byEntityType, byEntityId, mutualEntityType, limit, skipInitialFetch]);\n\n useEffect(() => {\n if (!globalWsManager || !byEntityId) {\n setIsSubscribed(false);\n return;\n }\n\n const subKey = globalWsManager.subscribeMutualType(\n byEntityType as unknown as string,\n byEntityId,\n mutualEntityType as unknown as string,\n );\n setIsSubscribed(true);\n\n let wasConnected = false;\n const unsubscribeState = globalWsManager.onStateChange((state) => {\n if (state === 'connected' && wasConnected === false && !isFirstFetchRef.current) {\n fetchData('refresh');\n }\n wasConnected = state === 'connected';\n isFirstFetchRef.current = false;\n });\n\n const unsubscribeMessage = globalWsManager.onMessage(\n (msg: ServerMessage) => {\n if (\n msg.type === 'mutual.created' ||\n msg.type === 'mutual.updated' ||\n msg.type === 'mutual.deleted'\n ) {\n const payload = msg.payload as {\n byEntityType: string;\n byEntityId: string;\n mutualEntityType: string;\n entityId: string;\n data?: unknown;\n };\n\n if (\n payload.byEntityType !== (byEntityType as unknown as string) ||\n payload.byEntityId !== byEntityId ||\n payload.mutualEntityType !== (mutualEntityType as unknown as string)\n ) {\n return;\n }\n\n if (\n msg.type === 'mutual.created' ||\n msg.type === 'mutual.updated'\n ) {\n if (payload.data) {\n monoriseStore.setState(\n produce((state) => {\n if (!state.mutual[mutualKey]) {\n state.mutual[mutualKey] = {\n dataMap: new Map(),\n isFirstFetched: true,\n lastKey: undefined as unknown as string,\n };\n }\n state.mutual[mutualKey].dataMap.set(\n payload.entityId,\n payload.data!,\n );\n }),\n );\n }\n } else if (msg.type === 'mutual.deleted') {\n monoriseStore.setState(\n produce((state) => {\n state.mutual[mutualKey]?.dataMap.delete(payload.entityId);\n }),\n );\n }\n }\n },\n );\n\n return () => {\n globalWsManager?.unsubscribeMutualType(subKey);\n unsubscribeState();\n unsubscribeMessage();\n setIsSubscribed(false);\n };\n }, [byEntityType, byEntityId, mutualEntityType, mutualKey]);\n\n const fetchMore = async () => {\n if (!hasMore || isFetchingMore) return;\n await fetchData('more');\n };\n\n return {\n mutuals,\n isLoading,\n isFetchingMore,\n isSubscribed,\n error,\n isRefreshing,\n fetchMore,\n hasMore,\n };\n };\n\n const useEphemeralSocket = <T = unknown>(\n channel: string | undefined,\n opts?: {\n onMessage?: (data: T, senderId?: string) => void;\n },\n ): {\n isSubscribed: boolean;\n send: (data: T) => void;\n } => {\n const [isSubscribed, setIsSubscribed] = useState(false);\n\n useEffect(() => {\n if (!globalWsManager || !channel) {\n setIsSubscribed(false);\n return;\n }\n\n const subKey = globalWsManager.subscribeEphemeral(channel);\n setIsSubscribed(true);\n\n const unsubscribeMessage = globalWsManager.onMessage(\n (msg: ServerMessage) => {\n if (msg.type === 'ephemeral') {\n const payload = msg.payload as {\n channel: string;\n data: T;\n senderId?: string;\n };\n if (payload.channel !== channel) return;\n opts?.onMessage?.(payload.data, payload.senderId);\n }\n },\n );\n\n return () => {\n globalWsManager?.unsubscribeEphemeral(subKey);\n unsubscribeMessage();\n setIsSubscribed(false);\n };\n }, [channel]);\n\n const send = useCallback(\n (data: T) => {\n if (!globalWsManager || !channel) return;\n globalWsManager.sendEphemeral(channel, data);\n },\n [channel],\n );\n\n return { isSubscribed, send };\n };\n\n /**\n * Subscribe to an entity's real-time feed.\n *\n * Fetches a ticket (via ticketEndpoint or default monorise route through catch-all proxy),\n * establishes a WebSocket connection, and auto-updates entity/mutual stores.\n * Handles ticket refresh and auto-resync on reconnect.\n *\n * @example\n * ```tsx\n * // Internal app (uses catch-all proxy)\n * useEntityFeed({ entityType: Entity.USER, entityId: userId });\n *\n * // Client-facing app (custom auth endpoint)\n * useEntityFeed({ entityType: Entity.USER, entityId: userId, ticketEndpoint: '/api/ws/ticket' });\n * ```\n */\n const useEntityFeed = (opts: UseEntityFeedOptions): UseEntityFeedReturn => {\n const { entityType, entityId, ticketEndpoint } = opts;\n const [isConnected, setIsConnected] = useState(false);\n const [error, setError] = useState<{ code: string; message: string } | null>(null);\n const refreshTimerRef = useRef<NodeJS.Timeout | null>(null);\n const wsManagerRef = useRef<WebSocketManager | null>(null);\n const isMountedRef = useRef(true);\n const connectingRef = useRef(false);\n const reconnectCountRef = useRef(0);\n const connectRef = useRef<() => void>(() => {});\n const lastConnectedAtRef = useRef(0);\n\n const fetchTicket = useCallback(async () => {\n try {\n const url = ticketEndpoint\n || `/api/core/ws/ticket/${entityType}/${entityId}`;\n\n const fetchOpts: RequestInit = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n };\n\n // Only send body for custom endpoints (default route gets params from URL)\n if (ticketEndpoint) {\n fetchOpts.body = JSON.stringify({ entityType, entityId });\n }\n\n const response = await fetch(url, fetchOpts);\n\n if (response.status === 401 || response.status === 403) {\n return { error: { code: 'TICKET_UNAUTHORIZED', message: 'Unauthorized' } };\n }\n\n if (!response.ok) {\n return { error: { code: 'TICKET_FAILED', message: `HTTP ${response.status}` } };\n }\n\n const data = await response.json();\n return { data: data as { ticket: string; wsUrl: string; expiresIn: number } };\n } catch (err) {\n return { error: { code: 'TICKET_FAILED', message: (err as Error).message } };\n }\n }, [entityType, entityId, ticketEndpoint]);\n\n const connectWithTicket = useCallback(async () => {\n if (connectingRef.current) return;\n connectingRef.current = true;\n\n // Retry ticket fetch with backoff\n let result: Awaited<ReturnType<typeof fetchTicket>> | null = null;\n const maxRetries = 3;\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n result = await fetchTicket();\n\n if (!isMountedRef.current) {\n connectingRef.current = false;\n return;\n }\n\n if (!result.error) break;\n\n // Don't retry auth errors\n if (result.error.code === 'TICKET_UNAUTHORIZED') break;\n\n if (attempt < maxRetries) {\n await new Promise((r) => setTimeout(r, 1000 * Math.pow(2, attempt)));\n if (!isMountedRef.current) {\n connectingRef.current = false;\n return;\n }\n }\n }\n\n if (result!.error) {\n setError(result!.error);\n setIsConnected(false);\n connectingRef.current = false;\n return;\n }\n\n setError(null);\n const { ticket, wsUrl, expiresIn } = result!.data!;\n // Disconnect existing connection\n if (wsManagerRef.current) {\n wsManagerRef.current.disconnect();\n }\n\n const { WebSocketManager: WsManagerClass } = await import('../websocket');\n\n const wsUrlWithTicket = `${wsUrl}?ticket=${encodeURIComponent(ticket)}`;\n const manager = new WsManagerClass(wsUrlWithTicket, '');\n manager.disableAutoReconnect = true;\n wsManagerRef.current = manager;\n globalWsManager = manager;\n\n manager.onStateChange((state: ConnectionState) => {\n if (!isMountedRef.current) return;\n // Ignore events from old managers (stale callbacks)\n if (wsManagerRef.current !== manager) return;\n\n if (state === 'connected') {\n connectingRef.current = false;\n reconnectCountRef.current = 0;\n lastConnectedAtRef.current = Date.now();\n setIsConnected(true);\n setError(null);\n } else if (state === 'disconnected') {\n connectingRef.current = false;\n setIsConnected(false);\n\n // Only auto-reconnect if we were connected for >5s (stable connection)\n // and haven't exceeded max reconnect attempts\n const wasStable = Date.now() - lastConnectedAtRef.current > 5000;\n if (wasStable && reconnectCountRef.current < 5) {\n reconnectCountRef.current++;\n const delay = 2000 * Math.pow(2, reconnectCountRef.current - 1);\n setTimeout(() => {\n if (isMountedRef.current && !connectingRef.current) {\n connectRef.current();\n }\n }, delay);\n }\n }\n });\n\n // Route feed messages into stores\n manager.onMessage((msg: ServerMessage) => {\n if (!isMountedRef.current) return;\n\n if (msg.type === 'entity.created' || msg.type === 'entity.updated') {\n const payload = msg.payload as {\n entityType: string;\n entityId: string;\n data?: any;\n };\n if (payload.data) {\n monoriseStore.setState(\n produce((state) => {\n const key = payload.entityType;\n if (!state.entity[key]) {\n state.entity[key] = { dataMap: new Map(), isFirstFetched: false, lastKey: undefined };\n }\n state.entity[key].dataMap.set(payload.entityId, payload.data);\n }),\n );\n }\n } else if (msg.type === 'entity.deleted') {\n const payload = msg.payload as { entityType: string; entityId: string };\n monoriseStore.setState(\n produce((state) => {\n state.entity[payload.entityType]?.dataMap?.delete(payload.entityId);\n }),\n );\n } else if (msg.type === 'mutual.created' || msg.type === 'mutual.updated') {\n const payload = msg.payload as {\n byEntityType: string;\n byEntityId: string;\n mutualEntityType: string;\n entityId: string;\n data?: any;\n };\n if (payload.data) {\n const mutualKey = `${payload.byEntityType}/${payload.byEntityId}/${payload.mutualEntityType}`;\n monoriseStore.setState(\n produce((state) => {\n if (!state.mutual[mutualKey]) {\n state.mutual[mutualKey] = { dataMap: new Map(), isFirstFetched: false, lastKey: undefined };\n }\n state.mutual[mutualKey].dataMap.set(payload.entityId, payload.data);\n }),\n );\n }\n } else if (msg.type === 'mutual.deleted') {\n const payload = msg.payload as {\n byEntityType: string;\n byEntityId: string;\n mutualEntityType: string;\n entityId: string;\n };\n const mutualKey = `${payload.byEntityType}/${payload.byEntityId}/${payload.mutualEntityType}`;\n monoriseStore.setState(\n produce((state) => {\n state.mutual[mutualKey]?.dataMap?.delete(payload.entityId);\n }),\n );\n }\n });\n\n manager.connect();\n\n // Schedule proactive ticket refresh\n if (refreshTimerRef.current) {\n clearTimeout(refreshTimerRef.current);\n }\n const refreshMs = Math.max((expiresIn - 120) * 1000, 60000); // refresh 2 min before expiry, minimum 1 min\n refreshTimerRef.current = setTimeout(() => {\n if (isMountedRef.current) {\n connectRef.current();\n }\n }, refreshMs);\n }, [fetchTicket]);\n\n connectRef.current = connectWithTicket;\n\n useEffect(() => {\n isMountedRef.current = true;\n\n if (entityId) {\n connectRef.current();\n }\n\n // Detect wake from sleep using periodic check\n let lastCheckTime = Date.now();\n const sleepCheckInterval = setInterval(() => {\n const now = Date.now();\n const elapsed = now - lastCheckTime;\n lastCheckTime = now;\n\n if (elapsed > 30000 && wsManagerRef.current) {\n wsManagerRef.current.disconnect();\n wsManagerRef.current = null;\n connectingRef.current = false;\n reconnectCountRef.current = 0;\n connectRef.current();\n }\n }, 5000);\n\n // Reconnect when network comes back online\n const handleOnline = () => {\n if (!isMountedRef.current) return;\n if (wsManagerRef.current?.getState() === 'connected') return;\n if (connectingRef.current) return;\n reconnectCountRef.current = 0;\n connectRef.current();\n };\n window.addEventListener('online', handleOnline);\n\n return () => {\n isMountedRef.current = false;\n clearInterval(sleepCheckInterval);\n window.removeEventListener('online', handleOnline);\n if (refreshTimerRef.current) {\n clearTimeout(refreshTimerRef.current);\n }\n if (wsManagerRef.current) {\n wsManagerRef.current.disconnect();\n wsManagerRef.current = null;\n }\n };\n }, [entityType, entityId]);\n\n return { isConnected, error };\n };\n\n return {\n useEntitySocket,\n useMutualSocket,\n useEphemeralSocket,\n useEntityFeed,\n };\n};\n\nexport type WebSocketActions = ReturnType<typeof initWebSocketActions>;\n","import request, {\n type AxiosError,\n type AxiosRequestConfig,\n type AxiosResponse,\n} from 'axios';\nimport type { AppActions } from '../actions/app.action';\nimport type { AuthActions } from '../actions/auth.action';\nimport type { MonoriseStore } from '../store/monorise.store';\nimport type { ApplicationRequestError } from '../types/api.type';\n\ntype IntercepterAxiosRequestConfig<D> = AxiosRequestConfig<D> & {\n requestKey: string;\n isInterruptive?: boolean;\n feedback?: {\n loading?: string | boolean;\n success?: ((data: any) => string) | string | boolean;\n failure?: string | boolean;\n };\n};\n\nconst initAxiosInterceptor = (store: MonoriseStore, appActions: AppActions) => {\n const { startLoading } = appActions;\n\n const axiosInstance = request.create();\n\n function makeRequest<T = any, R = AxiosResponse<T, any>, D = any>(\n url: string,\n config: AxiosRequestConfig<D>,\n data?: D,\n ): Promise<R> {\n const { requestKey, isInterruptive = false, feedback } = config;\n const { ongoingRequests } = store.getState().app;\n\n if (ongoingRequests.has(requestKey)) {\n return ongoingRequests.get(requestKey) as Promise<R>;\n }\n\n const promise = axiosInstance.request<T, R, D>({\n ...config,\n url,\n data,\n headers: {\n ...(config.headers || {}),\n 'Mr-Interruptive': String(isInterruptive),\n },\n });\n startLoading({\n requestKey,\n isInterruptive,\n message: feedback?.loading,\n request: promise,\n });\n\n return promise;\n }\n\n const axios = {\n ...axiosInstance,\n post: <T = any, R = AxiosResponse<T, any>, D = any>(\n url: string,\n data: D,\n config: IntercepterAxiosRequestConfig<D>,\n ): Promise<R> => makeRequest(url, { ...config, method: 'POST' }, data),\n put: <T = any, R = AxiosResponse<T, any>, D = any>(\n url: string,\n data: D,\n config: IntercepterAxiosRequestConfig<D>,\n ): Promise<R> => makeRequest(url, { ...config, method: 'PUT' }, data),\n patch: <T = any, R = AxiosResponse<T, any>, D = any>(\n url: string,\n data: D,\n config: IntercepterAxiosRequestConfig<D>,\n ): Promise<R> => makeRequest(url, { ...config, method: 'PATCH' }, data),\n delete: <T = any, R = AxiosResponse<T, any>, D = any>(\n url: string,\n config: IntercepterAxiosRequestConfig<D>,\n ): Promise<R> => makeRequest(url, { ...config, method: 'DELETE' }),\n get: <T = any, R = AxiosResponse<T, any>, D = any>(\n url: string,\n config: IntercepterAxiosRequestConfig<D>,\n ): Promise<R> => makeRequest(url, { ...config, method: 'GET' }),\n };\n\n return axios;\n};\n\ntype ConfigOptions = {\n onApiSuccess?: <T>(\n response: AxiosResponse<T>,\n feedbackSuccess:\n | ((data: AxiosResponse<T>['data']) => React.ReactNode)\n | string\n | boolean,\n ) => void;\n};\n\nconst injectAxiosInterceptor = (\n appActions: AppActions,\n authActions: AuthActions,\n axios: ReturnType<typeof initAxiosInterceptor>,\n opts?: ConfigOptions,\n) => {\n let options: ConfigOptions = opts || {};\n const { endLoading, setError, clearError } = appActions;\n const { setIsUnauthorized } = authActions;\n\n const unknownError: ApplicationRequestError = {\n status: 500,\n code: 'UNKNOWN_EXCEPTION',\n message: \"Ops, something doesn't seems right\",\n };\n\n axios.interceptors.response.use(\n (response) => {\n const { requestKey, isInterruptive, feedback } = response.config;\n endLoading({ requestKey, isInterruptive });\n clearError(requestKey);\n\n if (feedback?.success) {\n options.onApiSuccess?.(response, feedback.success);\n }\n // switch (typeof feedback.success) {\n // case 'function':\n // toast(feedback.success(response.data));\n // break;\n // case 'string':\n // toast(\n // <Fragment>\n // <IconCircleCheckFilled color='rgb(34 197 94)' />\n // {feedback.success}\n // </Fragment>,\n // );\n // break;\n // case 'boolean':\n // toast('Request success');\n // break;\n // }\n\n return Promise.resolve(response);\n },\n (error: AxiosError<string>) => {\n const { requestKey, isInterruptive } = error.config as AxiosRequestConfig;\n endLoading({ requestKey, isInterruptive });\n\n const appError = error.response?.data\n ? {\n code: error.response?.statusText,\n status: error.response?.status,\n message: error.response?.data,\n }\n : unknownError;\n setError({ requestKey, error: appError });\n if (error.response?.status === 401) {\n setIsUnauthorized(true);\n }\n return Promise.reject(error);\n },\n );\n\n const setOptions = (opts: ConfigOptions) => {\n options = {\n ...options,\n ...opts,\n };\n };\n\n return { setOptions };\n};\n\nexport { initAxiosInterceptor, injectAxiosInterceptor };\n","import type { Entity } from '@monorise/base';\nimport type { AxiosInterceptor } from '../types/api.type';\n\ntype LoginPayload = {\n email: string;\n};\n\ntype Options = {\n apiBaseUrl?: string;\n};\n\nconst initAuthService = (axios: AxiosInterceptor) => {\n let options: Options = {};\n const { apiBaseUrl = '/api/auth' } = options;\n\n const requestLoginMagicLink = (entityType: Entity, payload: LoginPayload) => {\n return axios.post(\n `${apiBaseUrl}/${entityType}`,\n {\n body: { ...payload },\n },\n {\n requestKey: `auth/${entityType}/request-login`,\n isInterruptive: true,\n feedback: {\n loading: 'Requesting login link',\n },\n },\n );\n };\n\n const getSessionProfile = <T extends Record<string, unknown>>() =>\n axios.get<\n T & {\n displayName: string;\n email: string;\n accountId: string;\n }\n >('/session', {\n requestKey: 'auth/session',\n });\n\n const logout = () =>\n axios.get('/logout', {\n requestKey: 'auth/logout',\n });\n\n const setOptions = (opts: Options) => {\n options = {\n ...options,\n ...opts,\n };\n };\n\n return {\n requestLoginMagicLink,\n getSessionProfile,\n logout,\n setOptions,\n };\n};\n\nexport default initAuthService;\n\nexport type AuthService = ReturnType<typeof initAuthService>;\n","import type { CreatedEntity, DraftEntity, Entity } from '@monorise/base';\nimport type { AxiosRequestConfig } from 'axios';\nimport {\n getEntityRequestKey,\n getMutualRequestKey,\n getMutualStateKey,\n getTagRequestKey,\n getUniqueFieldRequestKey,\n getUniqueFieldStateKey,\n} from '../lib/utils';\nimport type { MonoriseStore } from '../store/monorise.store';\nimport type {\n ApplicationRequestError,\n AxiosInterceptor,\n} from '../types/api.type';\nimport type { Mutual, MutualData } from '../types/mutual.type';\n\nconst ENTITY_API_BASE_URL = '/api/core/entity';\nconst MUTUAL_API_BASE_URL = '/api/core/mutual';\nconst TAG_API_BASE_URL = '/api/core/tag';\nconst TRANSACTION_API_BASE_URL = '/api/core/transaction';\n\ntype ListEntitiesPayload = {\n limit?: number;\n lastKey?: string;\n start?: string;\n end?: string;\n};\n\nexport type ListEntitiesByTagParams = {\n group?: string;\n query?: string;\n start?: string;\n end?: string;\n limit?: number;\n lastKey?: string;\n};\n\ntype ConfigOptions = {\n entityApiBaseUrl?: string;\n mutualApiBaseUrl?: string;\n tagApiBaseUrl?: string;\n};\n\nexport type CommonOptions = Partial<AxiosRequestConfig> & {\n customUrl?: string;\n isInterruptive?: boolean;\n feedback?: {\n success?: string;\n failure?: string;\n loading?: string;\n };\n stateKey?: string;\n forceFetch?: boolean;\n noData?: boolean;\n limit?: number;\n requestKey?: string;\n onError?: (error: ApplicationRequestError | Error) => void;\n entityId?: string;\n};\n\nconst initCoreService = (\n monoriseStore: MonoriseStore,\n axios: AxiosInterceptor,\n opts?: ConfigOptions,\n) => {\n let options: ConfigOptions = opts || {};\n\n const listEntities = <T extends Entity>(\n entityType: T,\n payload?: ListEntitiesPayload,\n opts: CommonOptions = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n return axios.get<{\n data: CreatedEntity<T>[];\n lastKey?: string;\n totalCount: number;\n }>(opts.customUrl || `${entityApiBaseUrl}/${entityType}`, {\n requestKey: getEntityRequestKey('list', entityType),\n params: payload ?? undefined,\n isInterruptive: opts.isInterruptive,\n feedback: opts.feedback,\n });\n };\n\n const searchEntities = <T extends Entity>(\n entityType: T,\n query: string,\n opts: CommonOptions = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n return axios.get<{ data: CreatedEntity<T>[] }>(\n opts.customUrl || `${entityApiBaseUrl}/${entityType}`,\n {\n requestKey: getEntityRequestKey('search', entityType),\n params: { query },\n isInterruptive: opts.isInterruptive,\n feedback: opts.feedback,\n },\n );\n };\n\n const listEntitiesByTag = <T extends Entity>(\n entityType: T,\n tagName: string,\n opts: CommonOptions & { params?: ListEntitiesByTagParams } = {},\n ) => {\n const { tagApiBaseUrl = TAG_API_BASE_URL } = options;\n return axios.get<{ entities: CreatedEntity<T>[]; lastKey: string }>(\n opts.customUrl || `${tagApiBaseUrl}/${entityType}/${tagName}`,\n {\n requestKey:\n opts.requestKey ||\n getTagRequestKey('list', entityType, tagName, opts.params),\n params: opts.params,\n isInterruptive: opts.isInterruptive,\n feedback: opts.feedback,\n },\n );\n };\n\n const getEntity = <T extends Entity>(\n entityType: T,\n id: string,\n opts: CommonOptions = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n return axios.get<CreatedEntity<T>>(\n opts.customUrl || `${entityApiBaseUrl}/${entityType}/${id}`,\n {\n requestKey: getEntityRequestKey('get', entityType, id),\n isInterruptive: opts.isInterruptive,\n feedback: {\n loading: `Retrieving ${entityType}`,\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const getEntityByUniqueField = <T extends Entity>(\n entityType: T,\n fieldName: string,\n value: string,\n opts: CommonOptions = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n return axios.get<CreatedEntity<T>>(\n opts.customUrl ||\n `${entityApiBaseUrl}/${entityType}/unique/${getUniqueFieldStateKey(fieldName, value)}`,\n {\n requestKey: getUniqueFieldRequestKey(entityType, fieldName, value),\n isInterruptive: opts.isInterruptive,\n feedback: {\n loading: `Retrieving ${entityType}`,\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const createEntity = <T extends Entity>(\n entityType: T,\n values: DraftEntity<T>,\n opts: CommonOptions = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n const entityConfig = monoriseStore.getState().config;\n return axios.post<CreatedEntity<T>>(\n opts.customUrl || `${entityApiBaseUrl}/${entityType}`,\n { ...values, ...(opts.entityId && { entityId: opts.entityId }) },\n {\n requestKey:\n opts.requestKey || getEntityRequestKey('create', entityType),\n isInterruptive: opts.isInterruptive ?? true,\n feedback: {\n loading: `Creating ${entityConfig[entityType].displayName}`,\n success: `${entityConfig[entityType].displayName} created`,\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const upsertEntity = <T extends Entity>(\n entityType: T,\n id: string,\n values: DraftEntity<T>,\n opts: CommonOptions = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n const entityConfig = monoriseStore.getState().config;\n return axios.put<CreatedEntity<T>>(\n opts.customUrl || `${entityApiBaseUrl}/${entityType}/${id}`,\n values,\n {\n requestKey: getEntityRequestKey('upsert', entityType, id),\n isInterruptive: opts.isInterruptive ?? true,\n feedback: {\n loading: `Updating ${entityConfig[entityType].displayName}`,\n success: `${entityConfig[entityType].displayName} updated`,\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const editEntity = <T extends Entity>(\n entityType: T,\n id: string,\n values: Partial<DraftEntity<T>> & { $condition?: string },\n opts: CommonOptions = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n const entityConfig = monoriseStore.getState().config;\n return axios.patch<CreatedEntity<T>>(\n opts.customUrl || `${entityApiBaseUrl}/${entityType}/${id}`,\n values,\n {\n requestKey: getEntityRequestKey('edit', entityType, id),\n isInterruptive: opts.isInterruptive ?? true,\n feedback: {\n loading: `Updating ${entityConfig[entityType].displayName}`,\n success: `${entityConfig[entityType].displayName} updated`,\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const adjustEntity = <T extends Entity>(\n entityType: T,\n id: string,\n adjustments: Record<string, number>,\n opts: CommonOptions & { condition?: string } = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n const entityConfig = monoriseStore.getState().config;\n const body = opts.condition\n ? { ...adjustments, $condition: opts.condition }\n : adjustments;\n return axios.post<CreatedEntity<T>>(\n opts.customUrl || `${entityApiBaseUrl}/${entityType}/${id}/adjust`,\n body,\n {\n requestKey: getEntityRequestKey('adjust', entityType, id),\n isInterruptive: opts.isInterruptive ?? true,\n feedback: {\n loading: `Updating ${entityConfig[entityType].displayName}`,\n success: `${entityConfig[entityType].displayName} updated`,\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const deleteEntity = <T extends Entity>(\n entityType: T,\n id: string,\n opts: CommonOptions = {},\n ) => {\n const { entityApiBaseUrl = ENTITY_API_BASE_URL } = options;\n const entityConfig = monoriseStore.getState().config;\n return axios.delete(\n opts.customUrl || `${entityApiBaseUrl}/${entityType}/${id}`,\n {\n requestKey: getEntityRequestKey('delete', entityType, id),\n isInterruptive: opts.isInterruptive ?? true,\n feedback: {\n loading: `Deleting ${entityConfig[entityType].displayName}`,\n success: `${entityConfig[entityType].displayName} deleted`,\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const transaction = (\n operations: Array<{\n operation:\n | 'createEntity'\n | 'updateEntity'\n | 'adjustEntity'\n | 'deleteEntity';\n entityType: Entity;\n entityId?: string;\n payload?: Record<string, unknown>;\n adjustments?: Record<string, number>;\n condition?: string;\n }>,\n opts: CommonOptions = {},\n ) => {\n const { transactionApiBaseUrl = TRANSACTION_API_BASE_URL } =\n options as any;\n return axios.post(\n opts.customUrl || transactionApiBaseUrl,\n { operations },\n {\n requestKey: 'transaction',\n isInterruptive: opts.isInterruptive ?? true,\n feedback: {\n loading: 'Processing transaction',\n success: 'Transaction completed',\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const listEntitiesByEntity = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n opts: CommonOptions = {},\n chainEntityQuery?: string,\n ) => {\n const { mutualApiBaseUrl = MUTUAL_API_BASE_URL } = options;\n return axios.get<{ entities: Mutual<B, T>[]; lastKey: string }>(\n opts.customUrl ||\n `${mutualApiBaseUrl}/${byEntityType}/${byEntityId}/${entityType}`,\n {\n requestKey: getMutualRequestKey(\n 'list',\n byEntityType,\n entityType,\n byEntityId,\n undefined,\n chainEntityQuery,\n ),\n isInterruptive: opts.isInterruptive,\n feedback: opts.feedback,\n params: {\n chainEntityQuery,\n limit: opts.limit,\n ...opts.params,\n ...(opts.noData && { projection: 'no-data' }),\n },\n },\n );\n };\n\n const getMutual = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n opts: CommonOptions = {},\n ) => {\n const { mutualApiBaseUrl = MUTUAL_API_BASE_URL } = options;\n return axios.get<Mutual<B, T>>(\n opts.customUrl ||\n `${mutualApiBaseUrl}/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n {\n requestKey: getMutualRequestKey(\n 'get',\n byEntityType,\n entityType,\n byEntityId,\n entityId,\n ),\n isInterruptive: opts.isInterruptive ?? false,\n feedback: opts.feedback,\n },\n );\n };\n\n const createMutual = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n payload: MutualData<B, T> | Record<string, unknown>,\n opts: CommonOptions = {},\n ) => {\n const { mutualApiBaseUrl = MUTUAL_API_BASE_URL } = options;\n return axios.post<Mutual<B, T>>(\n opts.customUrl ||\n `${mutualApiBaseUrl}/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n payload,\n {\n requestKey: getMutualRequestKey(\n 'create',\n byEntityType,\n entityType,\n byEntityId,\n ),\n isInterruptive: opts.isInterruptive ?? true,\n feedback: {\n loading: 'Creating linkage',\n success: 'Linkage created',\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const editMutual = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n payload: MutualData<B, T> | Record<string, unknown>,\n opts: CommonOptions = {},\n ) => {\n const { mutualApiBaseUrl = MUTUAL_API_BASE_URL } = options;\n return axios.patch<Mutual<B, T>>(\n opts.customUrl ||\n `${mutualApiBaseUrl}/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n payload,\n {\n requestKey: getMutualRequestKey(\n 'update',\n byEntityType,\n entityType,\n byEntityId,\n entityId,\n ),\n isInterruptive: opts.isInterruptive ?? true,\n feedback: {\n loading: 'Updating linkage',\n success: 'Linkage updated',\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const deleteMutual = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n byEntityId: string,\n entityId: string,\n opts: CommonOptions = {},\n ) => {\n const { mutualApiBaseUrl = MUTUAL_API_BASE_URL } = options;\n return axios.delete(\n opts.customUrl ||\n `${mutualApiBaseUrl}/${getMutualStateKey(byEntityType, byEntityId, entityType, entityId)}`,\n {\n requestKey: getMutualRequestKey(\n 'delete',\n byEntityType,\n entityType,\n byEntityId,\n entityId,\n ),\n isInterruptive: opts.isInterruptive ?? true,\n feedback: {\n loading: 'Removing linkage',\n success: 'Linkage removed',\n ...(opts.feedback || {}),\n },\n },\n );\n };\n\n const makeEntityService = <T extends Entity>(entityType: T) => ({\n listEntities: (payload: ListEntitiesPayload, opts: CommonOptions = {}) =>\n listEntities(entityType, payload, opts),\n searchEntities: (query: string, opts: CommonOptions = {}) =>\n searchEntities(entityType, query, opts),\n listEntitiesByTag: (tagName: string, opts: CommonOptions = {}) =>\n listEntitiesByTag(entityType, tagName, opts),\n getEntity: (id: string, opts: CommonOptions = {}) =>\n getEntity(entityType, id, opts),\n getEntityByUniqueField: (\n fieldName: string,\n value: string,\n opts: CommonOptions = {},\n ) => getEntityByUniqueField(entityType, fieldName, value, opts),\n createEntity: (values: DraftEntity<T>, opts: CommonOptions = {}) =>\n createEntity(entityType, values, opts),\n upsertEntity: (\n id: string,\n values: DraftEntity<T>,\n opts: CommonOptions = {},\n ) => upsertEntity(entityType, id, values, opts),\n editEntity: (\n id: string,\n values: Partial<DraftEntity<T>> & { $condition?: string },\n opts: CommonOptions = {},\n ) => editEntity(entityType, id, values, opts),\n updateEntity: (\n id: string,\n values: DraftEntity<T>,\n opts: CommonOptions = {},\n ) => editEntity(entityType, id, values, opts),\n adjustEntity: (\n id: string,\n adjustments: Record<string, number>,\n opts: CommonOptions = {},\n ) => adjustEntity(entityType, id, adjustments, opts),\n deleteEntity: (id: string, opts: CommonOptions = {}) =>\n deleteEntity(entityType, id, opts),\n });\n\n const makeMutualService = <B extends Entity, T extends Entity>(\n byEntityType: B,\n entityType: T,\n ) => ({\n listEntitiesByEntity: (\n byEntityId: string,\n opts: CommonOptions = {},\n chainEntityQuery?: string,\n ) =>\n listEntitiesByEntity(\n byEntityType,\n entityType,\n byEntityId,\n opts,\n chainEntityQuery,\n ),\n getMutual: (\n byEntityId: string,\n entityId: string,\n opts: CommonOptions = {},\n ) => getMutual(byEntityType, entityType, byEntityId, entityId, opts),\n createMutual: (\n byEntityId: string,\n entityId: string,\n payload: MutualData<B, T> | Record<string, unknown>,\n opts = {},\n ) =>\n createMutual(\n byEntityType,\n entityType,\n byEntityId,\n entityId,\n payload,\n opts,\n ),\n editMutual: (\n byEntityId: string,\n entityId: string,\n payload: MutualData<B, T> | Record<string, unknown>,\n opts = {},\n ) =>\n editMutual(byEntityType, entityType, byEntityId, entityId, payload, opts),\n deleteMutual: (\n byEntityId: string,\n entityId: string,\n opts: CommonOptions = {},\n ) => deleteMutual(byEntityType, entityType, byEntityId, entityId, opts),\n });\n\n const setOptions = (opts: ConfigOptions) => {\n options = {\n ...options,\n ...opts,\n };\n };\n\n return {\n makeEntityService,\n makeMutualService,\n transaction,\n setOptions,\n };\n};\n\nexport default initCoreService;\n\nexport type CoreService = ReturnType<typeof initCoreService>;\n","import type { AxiosInterceptor } from '../types/api.type';\n\ntype UploadFileProps = {\n file: File;\n scope: string;\n directory: string;\n name: string;\n disableLoading?: boolean;\n onProgress?: (progress: number) => void;\n};\n\ntype Options = {\n apiBaseUrl?: string;\n};\n\nconst initFilestoreService = (axios: AxiosInterceptor) => {\n let options: Options = {};\n const { apiBaseUrl = '/api/file' } = options;\n\n const uploadFile = async ({\n file,\n scope,\n directory,\n name,\n disableLoading,\n onProgress,\n }: UploadFileProps) => {\n const { data } = await axios.get(`${apiBaseUrl}/upload`, {\n requestKey: `filestore/presign/file/${name}`,\n isInterruptive: !disableLoading,\n feedback: {\n loading: 'Preparing upload',\n },\n params: {\n scope,\n directory,\n filename: name,\n },\n });\n\n return axios.put(data.url, file, {\n requestKey: `filestore/upload/${name}`,\n isInterruptive: !disableLoading,\n feedback: {\n loading: 'Uploading file',\n },\n headers: {\n 'Content-Type': file.type,\n 'Content-Disposition': 'inline',\n },\n onUploadProgress: (progressEvent) => {\n if (onProgress && progressEvent.total) {\n const progress = Math.round(\n (progressEvent.loaded / progressEvent.total) * 100,\n );\n onProgress(progress);\n }\n },\n });\n };\n\n const deleteFiles = async (keys: string[]) => {\n console.log('Deleting files', keys);\n const { data } = await axios.post(\n `${apiBaseUrl}/delete`,\n {\n keys,\n },\n {\n requestKey: 'filestore/delete',\n },\n );\n\n return data;\n };\n\n const uploadVideo = async ({\n file,\n scope,\n directory,\n name,\n }: UploadFileProps) => {\n const { data: presign } = await axios.get(`${apiBaseUrl}/upload`, {\n requestKey: `filestore/presign/video/${name}`,\n isInterruptive: true,\n feedback: {\n loading: 'Preparing upload',\n },\n params: {\n scope,\n directory,\n filename: name,\n },\n });\n\n await axios.put(presign.url, file, {\n requestKey: `filestore/upload/video/${name}`,\n isInterruptive: true,\n feedback: {\n loading: 'Uploading video',\n },\n headers: {\n 'Content-Type': file.type,\n },\n });\n\n const { data } = await axios.post(\n `${apiBaseUrl}/video/convert`,\n {\n scope,\n directory,\n filename: name,\n },\n {\n requestKey: 'filestore/convert/video',\n isInterruptive: true,\n feedback: {\n loading: 'Triggering video conversion',\n },\n },\n );\n\n return data;\n };\n\n const uploadAudio = async ({\n file,\n scope,\n directory,\n name,\n }: UploadFileProps) => {\n const { data: presign } = await axios.get(`${apiBaseUrl}/upload`, {\n requestKey: `filestore/presign/audio/${name}`,\n isInterruptive: true,\n feedback: {\n loading: 'Preparing upload',\n },\n params: {\n scope,\n directory,\n filename: name,\n },\n });\n\n await axios.put(presign.url, file, {\n requestKey: `filestore/upload/audio/${name}`,\n isInterruptive: true,\n feedback: {\n loading: 'Uploading audio',\n },\n headers: {\n 'Content-Type': file.type,\n },\n });\n\n const { data } = await axios.post(\n `${apiBaseUrl}/audio/convert`,\n {\n scope,\n directory,\n filename: name,\n },\n {\n requestKey: 'filestore/convert/audio',\n isInterruptive: true,\n feedback: {\n loading: 'Triggering audio conversion',\n },\n },\n );\n\n return data;\n };\n\n const getJobStatus = async (id: string) => {\n const { data } = await axios.get(`${apiBaseUrl}/job/${id}`, {\n requestKey: `filestore/get-job/${id}`,\n });\n\n return data;\n };\n\n const setOptions = (opts: Options) => {\n options = {\n ...options,\n ...opts,\n };\n };\n\n return {\n uploadFile,\n deleteFiles,\n uploadVideo,\n uploadAudio,\n getJobStatus,\n setOptions,\n };\n};\n\nexport default initFilestoreService;\n","import type {\n CreatedEntity,\n Entity,\n MonoriseEntityConfig,\n} from '@monorise/base';\nimport { enableMapSet } from 'immer';\nimport type React from 'react';\nimport { create } from 'zustand';\nimport { devtools } from 'zustand/middleware';\nimport type { ApplicationRequestError, ModalProps } from '../types/api.type';\nimport type { CommonStore } from '../types/monorise.type';\nimport type { Mutual } from '../types/mutual.type';\n\nenableMapSet();\n\nconst configureDevtools = (storeName: string) => ({\n name: `${storeName} Store`,\n anonymousActionType: `${storeName.toLowerCase()}/action`,\n enabled: !['prod', 'dev'].includes(process.env.NEXT_PUBLIC_ENVIRONMENT ?? ''),\n serialize: {\n options: {\n map: true,\n },\n },\n});\n\ntype Options = {\n modals?: Record<string, React.ComponentType<unknown>>;\n};\n\nconst initMonoriseStore = () => {\n let options: Options = {};\n const { modals = {} } = options;\n\n type AppModalProps = ModalProps<typeof modals>;\n\n const monoriseStore = create(\n devtools(\n (): {\n app: {\n ongoingRequests: Map<string, Promise<unknown>>;\n loadStack: Map<string, number>;\n intLoadStack: Map<string, number>;\n loadingMessage: string;\n errorStack: Map<string, ApplicationRequestError>;\n modal: {\n name: keyof AppModalProps | null;\n context?: AppModalProps[keyof AppModalProps];\n };\n };\n config: Record<Entity, MonoriseEntityConfig>;\n entity: Record<Entity, CommonStore<CreatedEntity<Entity>>>;\n mutual: Record<string, CommonStore<Mutual>>;\n tag: Record<string, CommonStore<CreatedEntity<Entity>>>;\n auth: {\n isUnauthorized: boolean;\n profile: {\n displayName: string;\n email: string;\n accountId: string;\n };\n isLoading: boolean;\n };\n } => ({\n app: {\n ongoingRequests: new Map(),\n loadStack: new Map(),\n intLoadStack: new Map(),\n loadingMessage: '',\n errorStack: new Map(),\n modal: {\n name: null,\n },\n },\n config: {},\n entity: {},\n mutual: {},\n tag: {},\n auth: {\n isUnauthorized: false,\n profile: {\n displayName: '',\n email: '',\n accountId: '',\n },\n isLoading: true,\n },\n }),\n configureDevtools('monorise'),\n ),\n );\n\n const setOptions = (opts: Options) => {\n options = {\n ...options,\n ...opts,\n };\n };\n\n return { setOptions, monoriseStore };\n};\n\nexport { initMonoriseStore };\n\nexport type MonoriseStore = Awaited<\n ReturnType<typeof initMonoriseStore>\n>['monoriseStore'];\n","// src/compose.ts\nvar compose = (middleware, onError, onNotFound) => {\n return (context, next) => {\n let index = -1;\n return dispatch(0);\n async function dispatch(i) {\n if (i <= index) {\n throw new Error(\"next() called multiple times\");\n }\n index = i;\n let res;\n let isError = false;\n let handler;\n if (middleware[i]) {\n handler = middleware[i][0][0];\n context.req.routeIndex = i;\n } else {\n handler = i === middleware.length && next || void 0;\n }\n if (handler) {\n try {\n res = await handler(context, () => dispatch(i + 1));\n } catch (err) {\n if (err instanceof Error && onError) {\n context.error = err;\n res = await onError(err, context);\n isError = true;\n } else {\n throw err;\n }\n }\n } else {\n if (context.finalized === false && onNotFound) {\n res = await onNotFound(context);\n }\n }\n if (res && (context.finalized === false || isError)) {\n context.res = res;\n }\n return context;\n }\n };\n};\nexport {\n compose\n};\n","// src/request/constants.ts\nvar GET_MATCH_RESULT = /* @__PURE__ */ Symbol();\nexport {\n GET_MATCH_RESULT\n};\n","// src/utils/body.ts\nimport { HonoRequest } from \"../request.js\";\nvar parseBody = async (request, options = /* @__PURE__ */ Object.create(null)) => {\n const { all = false, dot = false } = options;\n const headers = request instanceof HonoRequest ? request.raw.headers : request.headers;\n const contentType = headers.get(\"Content-Type\");\n if (contentType?.startsWith(\"multipart/form-data\") || contentType?.startsWith(\"application/x-www-form-urlencoded\")) {\n return parseFormData(request, { all, dot });\n }\n return {};\n};\nasync function parseFormData(request, options) {\n const formData = await request.formData();\n if (formData) {\n return convertFormDataToBodyData(formData, options);\n }\n return {};\n}\nfunction convertFormDataToBodyData(formData, options) {\n const form = /* @__PURE__ */ Object.create(null);\n formData.forEach((value, key) => {\n const shouldParseAllValues = options.all || key.endsWith(\"[]\");\n if (!shouldParseAllValues) {\n form[key] = value;\n } else {\n handleParsingAllValues(form, key, value);\n }\n });\n if (options.dot) {\n Object.entries(form).forEach(([key, value]) => {\n const shouldParseDotValues = key.includes(\".\");\n if (shouldParseDotValues) {\n handleParsingNestedValues(form, key, value);\n delete form[key];\n }\n });\n }\n return form;\n}\nvar handleParsingAllValues = (form, key, value) => {\n if (form[key] !== void 0) {\n if (Array.isArray(form[key])) {\n ;\n form[key].push(value);\n } else {\n form[key] = [form[key], value];\n }\n } else {\n if (!key.endsWith(\"[]\")) {\n form[key] = value;\n } else {\n form[key] = [value];\n }\n }\n};\nvar handleParsingNestedValues = (form, key, value) => {\n if (/(?:^|\\.)__proto__\\./.test(key)) {\n return;\n }\n let nestedForm = form;\n const keys = key.split(\".\");\n keys.forEach((key2, index) => {\n if (index === keys.length - 1) {\n nestedForm[key2] = value;\n } else {\n if (!nestedForm[key2] || typeof nestedForm[key2] !== \"object\" || Array.isArray(nestedForm[key2]) || nestedForm[key2] instanceof File) {\n nestedForm[key2] = /* @__PURE__ */ Object.create(null);\n }\n nestedForm = nestedForm[key2];\n }\n });\n};\nexport {\n parseBody\n};\n","// src/utils/url.ts\nvar splitPath = (path) => {\n const paths = path.split(\"/\");\n if (paths[0] === \"\") {\n paths.shift();\n }\n return paths;\n};\nvar splitRoutingPath = (routePath) => {\n const { groups, path } = extractGroupsFromPath(routePath);\n const paths = splitPath(path);\n return replaceGroupMarks(paths, groups);\n};\nvar extractGroupsFromPath = (path) => {\n const groups = [];\n path = path.replace(/\\{[^}]+\\}/g, (match, index) => {\n const mark = `@${index}`;\n groups.push([mark, match]);\n return mark;\n });\n return { groups, path };\n};\nvar replaceGroupMarks = (paths, groups) => {\n for (let i = groups.length - 1; i >= 0; i--) {\n const [mark] = groups[i];\n for (let j = paths.length - 1; j >= 0; j--) {\n if (paths[j].includes(mark)) {\n paths[j] = paths[j].replace(mark, groups[i][1]);\n break;\n }\n }\n }\n return paths;\n};\nvar patternCache = {};\nvar getPattern = (label, next) => {\n if (label === \"*\") {\n return \"*\";\n }\n const match = label.match(/^\\:([^\\{\\}]+)(?:\\{(.+)\\})?$/);\n if (match) {\n const cacheKey = `${label}#${next}`;\n if (!patternCache[cacheKey]) {\n if (match[2]) {\n patternCache[cacheKey] = next && next[0] !== \":\" && next[0] !== \"*\" ? [cacheKey, match[1], new RegExp(`^${match[2]}(?=/${next})`)] : [label, match[1], new RegExp(`^${match[2]}$`)];\n } else {\n patternCache[cacheKey] = [label, match[1], true];\n }\n }\n return patternCache[cacheKey];\n }\n return null;\n};\nvar tryDecode = (str, decoder) => {\n try {\n return decoder(str);\n } catch {\n return str.replace(/(?:%[0-9A-Fa-f]{2})+/g, (match) => {\n try {\n return decoder(match);\n } catch {\n return match;\n }\n });\n }\n};\nvar tryDecodeURI = (str) => tryDecode(str, decodeURI);\nvar getPath = (request) => {\n const url = request.url;\n const start = url.indexOf(\"/\", url.indexOf(\":\") + 4);\n let i = start;\n for (; i < url.length; i++) {\n const charCode = url.charCodeAt(i);\n if (charCode === 37) {\n const queryIndex = url.indexOf(\"?\", i);\n const hashIndex = url.indexOf(\"#\", i);\n const end = queryIndex === -1 ? hashIndex === -1 ? void 0 : hashIndex : hashIndex === -1 ? queryIndex : Math.min(queryIndex, hashIndex);\n const path = url.slice(start, end);\n return tryDecodeURI(path.includes(\"%25\") ? path.replace(/%25/g, \"%2525\") : path);\n } else if (charCode === 63 || charCode === 35) {\n break;\n }\n }\n return url.slice(start, i);\n};\nvar getQueryStrings = (url) => {\n const queryIndex = url.indexOf(\"?\", 8);\n return queryIndex === -1 ? \"\" : \"?\" + url.slice(queryIndex + 1);\n};\nvar getPathNoStrict = (request) => {\n const result = getPath(request);\n return result.length > 1 && result.at(-1) === \"/\" ? result.slice(0, -1) : result;\n};\nvar mergePath = (base, sub, ...rest) => {\n if (rest.length) {\n sub = mergePath(sub, ...rest);\n }\n return `${base?.[0] === \"/\" ? \"\" : \"/\"}${base}${sub === \"/\" ? \"\" : `${base?.at(-1) === \"/\" ? \"\" : \"/\"}${sub?.[0] === \"/\" ? sub.slice(1) : sub}`}`;\n};\nvar checkOptionalParameter = (path) => {\n if (path.charCodeAt(path.length - 1) !== 63 || !path.includes(\":\")) {\n return null;\n }\n const segments = path.split(\"/\");\n const results = [];\n let basePath = \"\";\n segments.forEach((segment) => {\n if (segment !== \"\" && !/\\:/.test(segment)) {\n basePath += \"/\" + segment;\n } else if (/\\:/.test(segment)) {\n if (/\\?/.test(segment)) {\n if (results.length === 0 && basePath === \"\") {\n results.push(\"/\");\n } else {\n results.push(basePath);\n }\n const optionalSegment = segment.replace(\"?\", \"\");\n basePath += \"/\" + optionalSegment;\n results.push(basePath);\n } else {\n basePath += \"/\" + segment;\n }\n }\n });\n return results.filter((v, i, a) => a.indexOf(v) === i);\n};\nvar _decodeURI = (value) => {\n if (!/[%+]/.test(value)) {\n return value;\n }\n if (value.indexOf(\"+\") !== -1) {\n value = value.replace(/\\+/g, \" \");\n }\n return value.indexOf(\"%\") !== -1 ? tryDecode(value, decodeURIComponent_) : value;\n};\nvar _getQueryParam = (url, key, multiple) => {\n let encoded;\n if (!multiple && key && !/[%+]/.test(key)) {\n let keyIndex2 = url.indexOf(\"?\", 8);\n if (keyIndex2 === -1) {\n return void 0;\n }\n if (!url.startsWith(key, keyIndex2 + 1)) {\n keyIndex2 = url.indexOf(`&${key}`, keyIndex2 + 1);\n }\n while (keyIndex2 !== -1) {\n const trailingKeyCode = url.charCodeAt(keyIndex2 + key.length + 1);\n if (trailingKeyCode === 61) {\n const valueIndex = keyIndex2 + key.length + 2;\n const endIndex = url.indexOf(\"&\", valueIndex);\n return _decodeURI(url.slice(valueIndex, endIndex === -1 ? void 0 : endIndex));\n } else if (trailingKeyCode == 38 || isNaN(trailingKeyCode)) {\n return \"\";\n }\n keyIndex2 = url.indexOf(`&${key}`, keyIndex2 + 1);\n }\n encoded = /[%+]/.test(url);\n if (!encoded) {\n return void 0;\n }\n }\n const results = {};\n encoded ??= /[%+]/.test(url);\n let keyIndex = url.indexOf(\"?\", 8);\n while (keyIndex !== -1) {\n const nextKeyIndex = url.indexOf(\"&\", keyIndex + 1);\n let valueIndex = url.indexOf(\"=\", keyIndex);\n if (valueIndex > nextKeyIndex && nextKeyIndex !== -1) {\n valueIndex = -1;\n }\n let name = url.slice(\n keyIndex + 1,\n valueIndex === -1 ? nextKeyIndex === -1 ? void 0 : nextKeyIndex : valueIndex\n );\n if (encoded) {\n name = _decodeURI(name);\n }\n keyIndex = nextKeyIndex;\n if (name === \"\") {\n continue;\n }\n let value;\n if (valueIndex === -1) {\n value = \"\";\n } else {\n value = url.slice(valueIndex + 1, nextKeyIndex === -1 ? void 0 : nextKeyIndex);\n if (encoded) {\n value = _decodeURI(value);\n }\n }\n if (multiple) {\n if (!(results[name] && Array.isArray(results[name]))) {\n results[name] = [];\n }\n ;\n results[name].push(value);\n } else {\n results[name] ??= value;\n }\n }\n return key ? results[key] : results;\n};\nvar getQueryParam = _getQueryParam;\nvar getQueryParams = (url, key) => {\n return _getQueryParam(url, key, true);\n};\nvar decodeURIComponent_ = decodeURIComponent;\nexport {\n checkOptionalParameter,\n decodeURIComponent_,\n getPath,\n getPathNoStrict,\n getPattern,\n getQueryParam,\n getQueryParams,\n getQueryStrings,\n mergePath,\n splitPath,\n splitRoutingPath,\n tryDecode,\n tryDecodeURI\n};\n","// src/request.ts\nimport { HTTPException } from \"./http-exception.js\";\nimport { GET_MATCH_RESULT } from \"./request/constants.js\";\nimport { parseBody } from \"./utils/body.js\";\nimport { decodeURIComponent_, getQueryParam, getQueryParams, tryDecode } from \"./utils/url.js\";\nvar tryDecodeURIComponent = (str) => tryDecode(str, decodeURIComponent_);\nvar HonoRequest = class {\n /**\n * `.raw` can get the raw Request object.\n *\n * @see {@link https://hono.dev/docs/api/request#raw}\n *\n * @example\n * ```ts\n * // For Cloudflare Workers\n * app.post('/', async (c) => {\n * const metadata = c.req.raw.cf?.hostMetadata?\n * ...\n * })\n * ```\n */\n raw;\n #validatedData;\n // Short name of validatedData\n #matchResult;\n routeIndex = 0;\n /**\n * `.path` can get the pathname of the request.\n *\n * @see {@link https://hono.dev/docs/api/request#path}\n *\n * @example\n * ```ts\n * app.get('/about/me', (c) => {\n * const pathname = c.req.path // `/about/me`\n * })\n * ```\n */\n path;\n bodyCache = {};\n constructor(request, path = \"/\", matchResult = [[]]) {\n this.raw = request;\n this.path = path;\n this.#matchResult = matchResult;\n this.#validatedData = {};\n }\n param(key) {\n return key ? this.#getDecodedParam(key) : this.#getAllDecodedParams();\n }\n #getDecodedParam(key) {\n const paramKey = this.#matchResult[0][this.routeIndex][1][key];\n const param = this.#getParamValue(paramKey);\n return param && /\\%/.test(param) ? tryDecodeURIComponent(param) : param;\n }\n #getAllDecodedParams() {\n const decoded = {};\n const keys = Object.keys(this.#matchResult[0][this.routeIndex][1]);\n for (const key of keys) {\n const value = this.#getParamValue(this.#matchResult[0][this.routeIndex][1][key]);\n if (value !== void 0) {\n decoded[key] = /\\%/.test(value) ? tryDecodeURIComponent(value) : value;\n }\n }\n return decoded;\n }\n #getParamValue(paramKey) {\n return this.#matchResult[1] ? this.#matchResult[1][paramKey] : paramKey;\n }\n query(key) {\n return getQueryParam(this.url, key);\n }\n queries(key) {\n return getQueryParams(this.url, key);\n }\n header(name) {\n if (name) {\n return this.raw.headers.get(name) ?? void 0;\n }\n const headerData = {};\n this.raw.headers.forEach((value, key) => {\n headerData[key] = value;\n });\n return headerData;\n }\n async parseBody(options) {\n return parseBody(this, options);\n }\n #cachedBody = (key) => {\n const { bodyCache, raw } = this;\n const cachedBody = bodyCache[key];\n if (cachedBody) {\n return cachedBody;\n }\n const anyCachedKey = Object.keys(bodyCache)[0];\n if (anyCachedKey) {\n return bodyCache[anyCachedKey].then((body) => {\n if (anyCachedKey === \"json\") {\n body = JSON.stringify(body);\n }\n return new Response(body)[key]();\n });\n }\n return bodyCache[key] = raw[key]();\n };\n /**\n * `.json()` can parse Request body of type `application/json`\n *\n * @see {@link https://hono.dev/docs/api/request#json}\n *\n * @example\n * ```ts\n * app.post('/entry', async (c) => {\n * const body = await c.req.json()\n * })\n * ```\n */\n json() {\n return this.#cachedBody(\"text\").then((text) => JSON.parse(text));\n }\n /**\n * `.text()` can parse Request body of type `text/plain`\n *\n * @see {@link https://hono.dev/docs/api/request#text}\n *\n * @example\n * ```ts\n * app.post('/entry', async (c) => {\n * const body = await c.req.text()\n * })\n * ```\n */\n text() {\n return this.#cachedBody(\"text\");\n }\n /**\n * `.arrayBuffer()` parse Request body as an `ArrayBuffer`\n *\n * @see {@link https://hono.dev/docs/api/request#arraybuffer}\n *\n * @example\n * ```ts\n * app.post('/entry', async (c) => {\n * const body = await c.req.arrayBuffer()\n * })\n * ```\n */\n arrayBuffer() {\n return this.#cachedBody(\"arrayBuffer\");\n }\n /**\n * Parses the request body as a `Blob`.\n * @example\n * ```ts\n * app.post('/entry', async (c) => {\n * const body = await c.req.blob();\n * });\n * ```\n * @see https://hono.dev/docs/api/request#blob\n */\n blob() {\n return this.#cachedBody(\"blob\");\n }\n /**\n * Parses the request body as `FormData`.\n * @example\n * ```ts\n * app.post('/entry', async (c) => {\n * const body = await c.req.formData();\n * });\n * ```\n * @see https://hono.dev/docs/api/request#formdata\n */\n formData() {\n return this.#cachedBody(\"formData\");\n }\n /**\n * Adds validated data to the request.\n *\n * @param target - The target of the validation.\n * @param data - The validated data to add.\n */\n addValidatedData(target, data) {\n this.#validatedData[target] = data;\n }\n valid(target) {\n return this.#validatedData[target];\n }\n /**\n * `.url()` can get the request url strings.\n *\n * @see {@link https://hono.dev/docs/api/request#url}\n *\n * @example\n * ```ts\n * app.get('/about/me', (c) => {\n * const url = c.req.url // `http://localhost:8787/about/me`\n * ...\n * })\n * ```\n */\n get url() {\n return this.raw.url;\n }\n /**\n * `.method()` can get the method name of the request.\n *\n * @see {@link https://hono.dev/docs/api/request#method}\n *\n * @example\n * ```ts\n * app.get('/about/me', (c) => {\n * const method = c.req.method // `GET`\n * })\n * ```\n */\n get method() {\n return this.raw.method;\n }\n get [GET_MATCH_RESULT]() {\n return this.#matchResult;\n }\n /**\n * `.matchedRoutes()` can return a matched route in the handler\n *\n * @deprecated\n *\n * Use matchedRoutes helper defined in \"hono/route\" instead.\n *\n * @see {@link https://hono.dev/docs/api/request#matchedroutes}\n *\n * @example\n * ```ts\n * app.use('*', async function logger(c, next) {\n * await next()\n * c.req.matchedRoutes.forEach(({ handler, method, path }, i) => {\n * const name = handler.name || (handler.length < 2 ? '[handler]' : '[middleware]')\n * console.log(\n * method,\n * ' ',\n * path,\n * ' '.repeat(Math.max(10 - path.length, 0)),\n * name,\n * i === c.req.routeIndex ? '<- respond from here' : ''\n * )\n * })\n * })\n * ```\n */\n get matchedRoutes() {\n return this.#matchResult[0].map(([[, route]]) => route);\n }\n /**\n * `routePath()` can retrieve the path registered within the handler\n *\n * @deprecated\n *\n * Use routePath helper defined in \"hono/route\" instead.\n *\n * @see {@link https://hono.dev/docs/api/request#routepath}\n *\n * @example\n * ```ts\n * app.get('/posts/:id', (c) => {\n * return c.json({ path: c.req.routePath })\n * })\n * ```\n */\n get routePath() {\n return this.#matchResult[0].map(([[, route]]) => route)[this.routeIndex].path;\n }\n};\nvar cloneRawRequest = async (req) => {\n if (!req.raw.bodyUsed) {\n return req.raw.clone();\n }\n const cacheKey = Object.keys(req.bodyCache)[0];\n if (!cacheKey) {\n throw new HTTPException(500, {\n message: \"Cannot clone request: body was already consumed and not cached. Please use HonoRequest methods (e.g., req.json(), req.text()) instead of consuming req.raw directly.\"\n });\n }\n const requestInit = {\n body: await req[cacheKey](),\n cache: req.raw.cache,\n credentials: req.raw.credentials,\n headers: req.header(),\n integrity: req.raw.integrity,\n keepalive: req.raw.keepalive,\n method: req.method,\n mode: req.raw.mode,\n redirect: req.raw.redirect,\n referrer: req.raw.referrer,\n referrerPolicy: req.raw.referrerPolicy,\n signal: req.raw.signal\n };\n return new Request(req.url, requestInit);\n};\nexport {\n HonoRequest,\n cloneRawRequest\n};\n","// src/utils/html.ts\nvar HtmlEscapedCallbackPhase = {\n Stringify: 1,\n BeforeStream: 2,\n Stream: 3\n};\nvar raw = (value, callbacks) => {\n const escapedString = new String(value);\n escapedString.isEscaped = true;\n escapedString.callbacks = callbacks;\n return escapedString;\n};\nvar escapeRe = /[&<>'\"]/;\nvar stringBufferToString = async (buffer, callbacks) => {\n let str = \"\";\n callbacks ||= [];\n const resolvedBuffer = await Promise.all(buffer);\n for (let i = resolvedBuffer.length - 1; ; i--) {\n str += resolvedBuffer[i];\n i--;\n if (i < 0) {\n break;\n }\n let r = resolvedBuffer[i];\n if (typeof r === \"object\") {\n callbacks.push(...r.callbacks || []);\n }\n const isEscaped = r.isEscaped;\n r = await (typeof r === \"object\" ? r.toString() : r);\n if (typeof r === \"object\") {\n callbacks.push(...r.callbacks || []);\n }\n if (r.isEscaped ?? isEscaped) {\n str += r;\n } else {\n const buf = [str];\n escapeToBuffer(r, buf);\n str = buf[0];\n }\n }\n return raw(str, callbacks);\n};\nvar escapeToBuffer = (str, buffer) => {\n const match = str.search(escapeRe);\n if (match === -1) {\n buffer[0] += str;\n return;\n }\n let escape;\n let index;\n let lastIndex = 0;\n for (index = match; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escape = \"&quot;\";\n break;\n case 39:\n escape = \"&#39;\";\n break;\n case 38:\n escape = \"&amp;\";\n break;\n case 60:\n escape = \"&lt;\";\n break;\n case 62:\n escape = \"&gt;\";\n break;\n default:\n continue;\n }\n buffer[0] += str.substring(lastIndex, index) + escape;\n lastIndex = index + 1;\n }\n buffer[0] += str.substring(lastIndex, index);\n};\nvar resolveCallbackSync = (str) => {\n const callbacks = str.callbacks;\n if (!callbacks?.length) {\n return str;\n }\n const buffer = [str];\n const context = {};\n callbacks.forEach((c) => c({ phase: HtmlEscapedCallbackPhase.Stringify, buffer, context }));\n return buffer[0];\n};\nvar resolveCallback = async (str, phase, preserveCallbacks, context, buffer) => {\n if (typeof str === \"object\" && !(str instanceof String)) {\n if (!(str instanceof Promise)) {\n str = str.toString();\n }\n if (str instanceof Promise) {\n str = await str;\n }\n }\n const callbacks = str.callbacks;\n if (!callbacks?.length) {\n return Promise.resolve(str);\n }\n if (buffer) {\n buffer[0] += str;\n } else {\n buffer = [str];\n }\n const resStr = Promise.all(callbacks.map((c) => c({ phase, buffer, context }))).then(\n (res) => Promise.all(\n res.filter(Boolean).map((str2) => resolveCallback(str2, phase, false, context, buffer))\n ).then(() => buffer[0])\n );\n if (preserveCallbacks) {\n return raw(await resStr, callbacks);\n } else {\n return resStr;\n }\n};\nexport {\n HtmlEscapedCallbackPhase,\n escapeToBuffer,\n raw,\n resolveCallback,\n resolveCallbackSync,\n stringBufferToString\n};\n","// src/context.ts\nimport { HonoRequest } from \"./request.js\";\nimport { HtmlEscapedCallbackPhase, resolveCallback } from \"./utils/html.js\";\nvar TEXT_PLAIN = \"text/plain; charset=UTF-8\";\nvar setDefaultContentType = (contentType, headers) => {\n return {\n \"Content-Type\": contentType,\n ...headers\n };\n};\nvar createResponseInstance = (body, init) => new Response(body, init);\nvar Context = class {\n #rawRequest;\n #req;\n /**\n * `.env` can get bindings (environment variables, secrets, KV namespaces, D1 database, R2 bucket etc.) in Cloudflare Workers.\n *\n * @see {@link https://hono.dev/docs/api/context#env}\n *\n * @example\n * ```ts\n * // Environment object for Cloudflare Workers\n * app.get('*', async c => {\n * const counter = c.env.COUNTER\n * })\n * ```\n */\n env = {};\n #var;\n finalized = false;\n /**\n * `.error` can get the error object from the middleware if the Handler throws an error.\n *\n * @see {@link https://hono.dev/docs/api/context#error}\n *\n * @example\n * ```ts\n * app.use('*', async (c, next) => {\n * await next()\n * if (c.error) {\n * // do something...\n * }\n * })\n * ```\n */\n error;\n #status;\n #executionCtx;\n #res;\n #layout;\n #renderer;\n #notFoundHandler;\n #preparedHeaders;\n #matchResult;\n #path;\n /**\n * Creates an instance of the Context class.\n *\n * @param req - The Request object.\n * @param options - Optional configuration options for the context.\n */\n constructor(req, options) {\n this.#rawRequest = req;\n if (options) {\n this.#executionCtx = options.executionCtx;\n this.env = options.env;\n this.#notFoundHandler = options.notFoundHandler;\n this.#path = options.path;\n this.#matchResult = options.matchResult;\n }\n }\n /**\n * `.req` is the instance of {@link HonoRequest}.\n */\n get req() {\n this.#req ??= new HonoRequest(this.#rawRequest, this.#path, this.#matchResult);\n return this.#req;\n }\n /**\n * @see {@link https://hono.dev/docs/api/context#event}\n * The FetchEvent associated with the current request.\n *\n * @throws Will throw an error if the context does not have a FetchEvent.\n */\n get event() {\n if (this.#executionCtx && \"respondWith\" in this.#executionCtx) {\n return this.#executionCtx;\n } else {\n throw Error(\"This context has no FetchEvent\");\n }\n }\n /**\n * @see {@link https://hono.dev/docs/api/context#executionctx}\n * The ExecutionContext associated with the current request.\n *\n * @throws Will throw an error if the context does not have an ExecutionContext.\n */\n get executionCtx() {\n if (this.#executionCtx) {\n return this.#executionCtx;\n } else {\n throw Error(\"This context has no ExecutionContext\");\n }\n }\n /**\n * @see {@link https://hono.dev/docs/api/context#res}\n * The Response object for the current request.\n */\n get res() {\n return this.#res ||= createResponseInstance(null, {\n headers: this.#preparedHeaders ??= new Headers()\n });\n }\n /**\n * Sets the Response object for the current request.\n *\n * @param _res - The Response object to set.\n */\n set res(_res) {\n if (this.#res && _res) {\n _res = createResponseInstance(_res.body, _res);\n for (const [k, v] of this.#res.headers.entries()) {\n if (k === \"content-type\") {\n continue;\n }\n if (k === \"set-cookie\") {\n const cookies = this.#res.headers.getSetCookie();\n _res.headers.delete(\"set-cookie\");\n for (const cookie of cookies) {\n _res.headers.append(\"set-cookie\", cookie);\n }\n } else {\n _res.headers.set(k, v);\n }\n }\n }\n this.#res = _res;\n this.finalized = true;\n }\n /**\n * `.render()` can create a response within a layout.\n *\n * @see {@link https://hono.dev/docs/api/context#render-setrenderer}\n *\n * @example\n * ```ts\n * app.get('/', (c) => {\n * return c.render('Hello!')\n * })\n * ```\n */\n render = (...args) => {\n this.#renderer ??= (content) => this.html(content);\n return this.#renderer(...args);\n };\n /**\n * Sets the layout for the response.\n *\n * @param layout - The layout to set.\n * @returns The layout function.\n */\n setLayout = (layout) => this.#layout = layout;\n /**\n * Gets the current layout for the response.\n *\n * @returns The current layout function.\n */\n getLayout = () => this.#layout;\n /**\n * `.setRenderer()` can set the layout in the custom middleware.\n *\n * @see {@link https://hono.dev/docs/api/context#render-setrenderer}\n *\n * @example\n * ```tsx\n * app.use('*', async (c, next) => {\n * c.setRenderer((content) => {\n * return c.html(\n * <html>\n * <body>\n * <p>{content}</p>\n * </body>\n * </html>\n * )\n * })\n * await next()\n * })\n * ```\n */\n setRenderer = (renderer) => {\n this.#renderer = renderer;\n };\n /**\n * `.header()` can set headers.\n *\n * @see {@link https://hono.dev/docs/api/context#header}\n *\n * @example\n * ```ts\n * app.get('/welcome', (c) => {\n * // Set headers\n * c.header('X-Message', 'Hello!')\n * c.header('Content-Type', 'text/plain')\n *\n * return c.body('Thank you for coming')\n * })\n * ```\n */\n header = (name, value, options) => {\n if (this.finalized) {\n this.#res = createResponseInstance(this.#res.body, this.#res);\n }\n const headers = this.#res ? this.#res.headers : this.#preparedHeaders ??= new Headers();\n if (value === void 0) {\n headers.delete(name);\n } else if (options?.append) {\n headers.append(name, value);\n } else {\n headers.set(name, value);\n }\n };\n status = (status) => {\n this.#status = status;\n };\n /**\n * `.set()` can set the value specified by the key.\n *\n * @see {@link https://hono.dev/docs/api/context#set-get}\n *\n * @example\n * ```ts\n * app.use('*', async (c, next) => {\n * c.set('message', 'Hono is hot!!')\n * await next()\n * })\n * ```\n */\n set = (key, value) => {\n this.#var ??= /* @__PURE__ */ new Map();\n this.#var.set(key, value);\n };\n /**\n * `.get()` can use the value specified by the key.\n *\n * @see {@link https://hono.dev/docs/api/context#set-get}\n *\n * @example\n * ```ts\n * app.get('/', (c) => {\n * const message = c.get('message')\n * return c.text(`The message is \"${message}\"`)\n * })\n * ```\n */\n get = (key) => {\n return this.#var ? this.#var.get(key) : void 0;\n };\n /**\n * `.var` can access the value of a variable.\n *\n * @see {@link https://hono.dev/docs/api/context#var}\n *\n * @example\n * ```ts\n * const result = c.var.client.oneMethod()\n * ```\n */\n // c.var.propName is a read-only\n get var() {\n if (!this.#var) {\n return {};\n }\n return Object.fromEntries(this.#var);\n }\n #newResponse(data, arg, headers) {\n const responseHeaders = this.#res ? new Headers(this.#res.headers) : this.#preparedHeaders ?? new Headers();\n if (typeof arg === \"object\" && \"headers\" in arg) {\n const argHeaders = arg.headers instanceof Headers ? arg.headers : new Headers(arg.headers);\n for (const [key, value] of argHeaders) {\n if (key.toLowerCase() === \"set-cookie\") {\n responseHeaders.append(key, value);\n } else {\n responseHeaders.set(key, value);\n }\n }\n }\n if (headers) {\n for (const [k, v] of Object.entries(headers)) {\n if (typeof v === \"string\") {\n responseHeaders.set(k, v);\n } else {\n responseHeaders.delete(k);\n for (const v2 of v) {\n responseHeaders.append(k, v2);\n }\n }\n }\n }\n const status = typeof arg === \"number\" ? arg : arg?.status ?? this.#status;\n return createResponseInstance(data, { status, headers: responseHeaders });\n }\n newResponse = (...args) => this.#newResponse(...args);\n /**\n * `.body()` can return the HTTP response.\n * You can set headers with `.header()` and set HTTP status code with `.status`.\n * This can also be set in `.text()`, `.json()` and so on.\n *\n * @see {@link https://hono.dev/docs/api/context#body}\n *\n * @example\n * ```ts\n * app.get('/welcome', (c) => {\n * // Set headers\n * c.header('X-Message', 'Hello!')\n * c.header('Content-Type', 'text/plain')\n * // Set HTTP status code\n * c.status(201)\n *\n * // Return the response body\n * return c.body('Thank you for coming')\n * })\n * ```\n */\n body = (data, arg, headers) => this.#newResponse(data, arg, headers);\n /**\n * `.text()` can render text as `Content-Type:text/plain`.\n *\n * @see {@link https://hono.dev/docs/api/context#text}\n *\n * @example\n * ```ts\n * app.get('/say', (c) => {\n * return c.text('Hello!')\n * })\n * ```\n */\n text = (text, arg, headers) => {\n return !this.#preparedHeaders && !this.#status && !arg && !headers && !this.finalized ? new Response(text) : this.#newResponse(\n text,\n arg,\n setDefaultContentType(TEXT_PLAIN, headers)\n );\n };\n /**\n * `.json()` can render JSON as `Content-Type:application/json`.\n *\n * @see {@link https://hono.dev/docs/api/context#json}\n *\n * @example\n * ```ts\n * app.get('/api', (c) => {\n * return c.json({ message: 'Hello!' })\n * })\n * ```\n */\n json = (object, arg, headers) => {\n return this.#newResponse(\n JSON.stringify(object),\n arg,\n setDefaultContentType(\"application/json\", headers)\n );\n };\n html = (html, arg, headers) => {\n const res = (html2) => this.#newResponse(html2, arg, setDefaultContentType(\"text/html; charset=UTF-8\", headers));\n return typeof html === \"object\" ? resolveCallback(html, HtmlEscapedCallbackPhase.Stringify, false, {}).then(res) : res(html);\n };\n /**\n * `.redirect()` can Redirect, default status code is 302.\n *\n * @see {@link https://hono.dev/docs/api/context#redirect}\n *\n * @example\n * ```ts\n * app.get('/redirect', (c) => {\n * return c.redirect('/')\n * })\n * app.get('/redirect-permanently', (c) => {\n * return c.redirect('/', 301)\n * })\n * ```\n */\n redirect = (location, status) => {\n const locationString = String(location);\n this.header(\n \"Location\",\n // Multibyes should be encoded\n // eslint-disable-next-line no-control-regex\n !/[^\\x00-\\xFF]/.test(locationString) ? locationString : encodeURI(locationString)\n );\n return this.newResponse(null, status ?? 302);\n };\n /**\n * `.notFound()` can return the Not Found Response.\n *\n * @see {@link https://hono.dev/docs/api/context#notfound}\n *\n * @example\n * ```ts\n * app.get('/notfound', (c) => {\n * return c.notFound()\n * })\n * ```\n */\n notFound = () => {\n this.#notFoundHandler ??= () => createResponseInstance();\n return this.#notFoundHandler(this);\n };\n};\nexport {\n Context,\n TEXT_PLAIN\n};\n","// src/router.ts\nvar METHOD_NAME_ALL = \"ALL\";\nvar METHOD_NAME_ALL_LOWERCASE = \"all\";\nvar METHODS = [\"get\", \"post\", \"put\", \"delete\", \"options\", \"patch\"];\nvar MESSAGE_MATCHER_IS_ALREADY_BUILT = \"Can not add a route since the matcher is already built.\";\nvar UnsupportedPathError = class extends Error {\n};\nexport {\n MESSAGE_MATCHER_IS_ALREADY_BUILT,\n METHODS,\n METHOD_NAME_ALL,\n METHOD_NAME_ALL_LOWERCASE,\n UnsupportedPathError\n};\n","// src/utils/constants.ts\nvar COMPOSED_HANDLER = \"__COMPOSED_HANDLER\";\nexport {\n COMPOSED_HANDLER\n};\n","// src/hono-base.ts\nimport { compose } from \"./compose.js\";\nimport { Context } from \"./context.js\";\nimport { METHODS, METHOD_NAME_ALL, METHOD_NAME_ALL_LOWERCASE } from \"./router.js\";\nimport { COMPOSED_HANDLER } from \"./utils/constants.js\";\nimport { getPath, getPathNoStrict, mergePath } from \"./utils/url.js\";\nvar notFoundHandler = (c) => {\n return c.text(\"404 Not Found\", 404);\n};\nvar errorHandler = (err, c) => {\n if (\"getResponse\" in err) {\n const res = err.getResponse();\n return c.newResponse(res.body, res);\n }\n console.error(err);\n return c.text(\"Internal Server Error\", 500);\n};\nvar Hono = class _Hono {\n get;\n post;\n put;\n delete;\n options;\n patch;\n all;\n on;\n use;\n /*\n This class is like an abstract class and does not have a router.\n To use it, inherit the class and implement router in the constructor.\n */\n router;\n getPath;\n // Cannot use `#` because it requires visibility at JavaScript runtime.\n _basePath = \"/\";\n #path = \"/\";\n routes = [];\n constructor(options = {}) {\n const allMethods = [...METHODS, METHOD_NAME_ALL_LOWERCASE];\n allMethods.forEach((method) => {\n this[method] = (args1, ...args) => {\n if (typeof args1 === \"string\") {\n this.#path = args1;\n } else {\n this.#addRoute(method, this.#path, args1);\n }\n args.forEach((handler) => {\n this.#addRoute(method, this.#path, handler);\n });\n return this;\n };\n });\n this.on = (method, path, ...handlers) => {\n for (const p of [path].flat()) {\n this.#path = p;\n for (const m of [method].flat()) {\n handlers.map((handler) => {\n this.#addRoute(m.toUpperCase(), this.#path, handler);\n });\n }\n }\n return this;\n };\n this.use = (arg1, ...handlers) => {\n if (typeof arg1 === \"string\") {\n this.#path = arg1;\n } else {\n this.#path = \"*\";\n handlers.unshift(arg1);\n }\n handlers.forEach((handler) => {\n this.#addRoute(METHOD_NAME_ALL, this.#path, handler);\n });\n return this;\n };\n const { strict, ...optionsWithoutStrict } = options;\n Object.assign(this, optionsWithoutStrict);\n this.getPath = strict ?? true ? options.getPath ?? getPath : getPathNoStrict;\n }\n #clone() {\n const clone = new _Hono({\n router: this.router,\n getPath: this.getPath\n });\n clone.errorHandler = this.errorHandler;\n clone.#notFoundHandler = this.#notFoundHandler;\n clone.routes = this.routes;\n return clone;\n }\n #notFoundHandler = notFoundHandler;\n // Cannot use `#` because it requires visibility at JavaScript runtime.\n errorHandler = errorHandler;\n /**\n * `.route()` allows grouping other Hono instance in routes.\n *\n * @see {@link https://hono.dev/docs/api/routing#grouping}\n *\n * @param {string} path - base Path\n * @param {Hono} app - other Hono instance\n * @returns {Hono} routed Hono instance\n *\n * @example\n * ```ts\n * const app = new Hono()\n * const app2 = new Hono()\n *\n * app2.get(\"/user\", (c) => c.text(\"user\"))\n * app.route(\"/api\", app2) // GET /api/user\n * ```\n */\n route(path, app) {\n const subApp = this.basePath(path);\n app.routes.map((r) => {\n let handler;\n if (app.errorHandler === errorHandler) {\n handler = r.handler;\n } else {\n handler = async (c, next) => (await compose([], app.errorHandler)(c, () => r.handler(c, next))).res;\n handler[COMPOSED_HANDLER] = r.handler;\n }\n subApp.#addRoute(r.method, r.path, handler);\n });\n return this;\n }\n /**\n * `.basePath()` allows base paths to be specified.\n *\n * @see {@link https://hono.dev/docs/api/routing#base-path}\n *\n * @param {string} path - base Path\n * @returns {Hono} changed Hono instance\n *\n * @example\n * ```ts\n * const api = new Hono().basePath('/api')\n * ```\n */\n basePath(path) {\n const subApp = this.#clone();\n subApp._basePath = mergePath(this._basePath, path);\n return subApp;\n }\n /**\n * `.onError()` handles an error and returns a customized Response.\n *\n * @see {@link https://hono.dev/docs/api/hono#error-handling}\n *\n * @param {ErrorHandler} handler - request Handler for error\n * @returns {Hono} changed Hono instance\n *\n * @example\n * ```ts\n * app.onError((err, c) => {\n * console.error(`${err}`)\n * return c.text('Custom Error Message', 500)\n * })\n * ```\n */\n onError = (handler) => {\n this.errorHandler = handler;\n return this;\n };\n /**\n * `.notFound()` allows you to customize a Not Found Response.\n *\n * @see {@link https://hono.dev/docs/api/hono#not-found}\n *\n * @param {NotFoundHandler} handler - request handler for not-found\n * @returns {Hono} changed Hono instance\n *\n * @example\n * ```ts\n * app.notFound((c) => {\n * return c.text('Custom 404 Message', 404)\n * })\n * ```\n */\n notFound = (handler) => {\n this.#notFoundHandler = handler;\n return this;\n };\n /**\n * `.mount()` allows you to mount applications built with other frameworks into your Hono application.\n *\n * @see {@link https://hono.dev/docs/api/hono#mount}\n *\n * @param {string} path - base Path\n * @param {Function} applicationHandler - other Request Handler\n * @param {MountOptions} [options] - options of `.mount()`\n * @returns {Hono} mounted Hono instance\n *\n * @example\n * ```ts\n * import { Router as IttyRouter } from 'itty-router'\n * import { Hono } from 'hono'\n * // Create itty-router application\n * const ittyRouter = IttyRouter()\n * // GET /itty-router/hello\n * ittyRouter.get('/hello', () => new Response('Hello from itty-router'))\n *\n * const app = new Hono()\n * app.mount('/itty-router', ittyRouter.handle)\n * ```\n *\n * @example\n * ```ts\n * const app = new Hono()\n * // Send the request to another application without modification.\n * app.mount('/app', anotherApp, {\n * replaceRequest: (req) => req,\n * })\n * ```\n */\n mount(path, applicationHandler, options) {\n let replaceRequest;\n let optionHandler;\n if (options) {\n if (typeof options === \"function\") {\n optionHandler = options;\n } else {\n optionHandler = options.optionHandler;\n if (options.replaceRequest === false) {\n replaceRequest = (request) => request;\n } else {\n replaceRequest = options.replaceRequest;\n }\n }\n }\n const getOptions = optionHandler ? (c) => {\n const options2 = optionHandler(c);\n return Array.isArray(options2) ? options2 : [options2];\n } : (c) => {\n let executionContext = void 0;\n try {\n executionContext = c.executionCtx;\n } catch {\n }\n return [c.env, executionContext];\n };\n replaceRequest ||= (() => {\n const mergedPath = mergePath(this._basePath, path);\n const pathPrefixLength = mergedPath === \"/\" ? 0 : mergedPath.length;\n return (request) => {\n const url = new URL(request.url);\n url.pathname = url.pathname.slice(pathPrefixLength) || \"/\";\n return new Request(url, request);\n };\n })();\n const handler = async (c, next) => {\n const res = await applicationHandler(replaceRequest(c.req.raw), ...getOptions(c));\n if (res) {\n return res;\n }\n await next();\n };\n this.#addRoute(METHOD_NAME_ALL, mergePath(path, \"*\"), handler);\n return this;\n }\n #addRoute(method, path, handler) {\n method = method.toUpperCase();\n path = mergePath(this._basePath, path);\n const r = { basePath: this._basePath, path, method, handler };\n this.router.add(method, path, [handler, r]);\n this.routes.push(r);\n }\n #handleError(err, c) {\n if (err instanceof Error) {\n return this.errorHandler(err, c);\n }\n throw err;\n }\n #dispatch(request, executionCtx, env, method) {\n if (method === \"HEAD\") {\n return (async () => new Response(null, await this.#dispatch(request, executionCtx, env, \"GET\")))();\n }\n const path = this.getPath(request, { env });\n const matchResult = this.router.match(method, path);\n const c = new Context(request, {\n path,\n matchResult,\n env,\n executionCtx,\n notFoundHandler: this.#notFoundHandler\n });\n if (matchResult[0].length === 1) {\n let res;\n try {\n res = matchResult[0][0][0][0](c, async () => {\n c.res = await this.#notFoundHandler(c);\n });\n } catch (err) {\n return this.#handleError(err, c);\n }\n return res instanceof Promise ? res.then(\n (resolved) => resolved || (c.finalized ? c.res : this.#notFoundHandler(c))\n ).catch((err) => this.#handleError(err, c)) : res ?? this.#notFoundHandler(c);\n }\n const composed = compose(matchResult[0], this.errorHandler, this.#notFoundHandler);\n return (async () => {\n try {\n const context = await composed(c);\n if (!context.finalized) {\n throw new Error(\n \"Context is not finalized. Did you forget to return a Response object or `await next()`?\"\n );\n }\n return context.res;\n } catch (err) {\n return this.#handleError(err, c);\n }\n })();\n }\n /**\n * `.fetch()` will be entry point of your app.\n *\n * @see {@link https://hono.dev/docs/api/hono#fetch}\n *\n * @param {Request} request - request Object of request\n * @param {Env} Env - env Object\n * @param {ExecutionContext} - context of execution\n * @returns {Response | Promise<Response>} response of request\n *\n */\n fetch = (request, ...rest) => {\n return this.#dispatch(request, rest[1], rest[0], request.method);\n };\n /**\n * `.request()` is a useful method for testing.\n * You can pass a URL or pathname to send a GET request.\n * app will return a Response object.\n * ```ts\n * test('GET /hello is ok', async () => {\n * const res = await app.request('/hello')\n * expect(res.status).toBe(200)\n * })\n * ```\n * @see https://hono.dev/docs/api/hono#request\n */\n request = (input, requestInit, Env, executionCtx) => {\n if (input instanceof Request) {\n return this.fetch(requestInit ? new Request(input, requestInit) : input, Env, executionCtx);\n }\n input = input.toString();\n return this.fetch(\n new Request(\n /^https?:\\/\\//.test(input) ? input : `http://localhost${mergePath(\"/\", input)}`,\n requestInit\n ),\n Env,\n executionCtx\n );\n };\n /**\n * `.fire()` automatically adds a global fetch event listener.\n * This can be useful for environments that adhere to the Service Worker API, such as non-ES module Cloudflare Workers.\n * @deprecated\n * Use `fire` from `hono/service-worker` instead.\n * ```ts\n * import { Hono } from 'hono'\n * import { fire } from 'hono/service-worker'\n *\n * const app = new Hono()\n * // ...\n * fire(app)\n * ```\n * @see https://hono.dev/docs/api/hono#fire\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API\n * @see https://developers.cloudflare.com/workers/reference/migrate-to-module-workers/\n */\n fire = () => {\n addEventListener(\"fetch\", (event) => {\n event.respondWith(this.#dispatch(event.request, event, void 0, event.request.method));\n });\n };\n};\nexport {\n Hono as HonoBase\n};\n","// src/router/reg-exp-router/matcher.ts\nimport { METHOD_NAME_ALL } from \"../../router.js\";\nvar emptyParam = [];\nfunction match(method, path) {\n const matchers = this.buildAllMatchers();\n const match2 = ((method2, path2) => {\n const matcher = matchers[method2] || matchers[METHOD_NAME_ALL];\n const staticMatch = matcher[2][path2];\n if (staticMatch) {\n return staticMatch;\n }\n const match3 = path2.match(matcher[0]);\n if (!match3) {\n return [[], emptyParam];\n }\n const index = match3.indexOf(\"\", 1);\n return [matcher[1][index], match3];\n });\n this.match = match2;\n return match2(method, path);\n}\nexport {\n emptyParam,\n match\n};\n","// src/router/reg-exp-router/node.ts\nvar LABEL_REG_EXP_STR = \"[^/]+\";\nvar ONLY_WILDCARD_REG_EXP_STR = \".*\";\nvar TAIL_WILDCARD_REG_EXP_STR = \"(?:|/.*)\";\nvar PATH_ERROR = /* @__PURE__ */ Symbol();\nvar regExpMetaChars = new Set(\".\\\\+*[^]$()\");\nfunction compareKey(a, b) {\n if (a.length === 1) {\n return b.length === 1 ? a < b ? -1 : 1 : -1;\n }\n if (b.length === 1) {\n return 1;\n }\n if (a === ONLY_WILDCARD_REG_EXP_STR || a === TAIL_WILDCARD_REG_EXP_STR) {\n return 1;\n } else if (b === ONLY_WILDCARD_REG_EXP_STR || b === TAIL_WILDCARD_REG_EXP_STR) {\n return -1;\n }\n if (a === LABEL_REG_EXP_STR) {\n return 1;\n } else if (b === LABEL_REG_EXP_STR) {\n return -1;\n }\n return a.length === b.length ? a < b ? -1 : 1 : b.length - a.length;\n}\nvar Node = class _Node {\n #index;\n #varIndex;\n #children = /* @__PURE__ */ Object.create(null);\n insert(tokens, index, paramMap, context, pathErrorCheckOnly) {\n if (tokens.length === 0) {\n if (this.#index !== void 0) {\n throw PATH_ERROR;\n }\n if (pathErrorCheckOnly) {\n return;\n }\n this.#index = index;\n return;\n }\n const [token, ...restTokens] = tokens;\n const pattern = token === \"*\" ? restTokens.length === 0 ? [\"\", \"\", ONLY_WILDCARD_REG_EXP_STR] : [\"\", \"\", LABEL_REG_EXP_STR] : token === \"/*\" ? [\"\", \"\", TAIL_WILDCARD_REG_EXP_STR] : token.match(/^\\:([^\\{\\}]+)(?:\\{(.+)\\})?$/);\n let node;\n if (pattern) {\n const name = pattern[1];\n let regexpStr = pattern[2] || LABEL_REG_EXP_STR;\n if (name && pattern[2]) {\n if (regexpStr === \".*\") {\n throw PATH_ERROR;\n }\n regexpStr = regexpStr.replace(/^\\((?!\\?:)(?=[^)]+\\)$)/, \"(?:\");\n if (/\\((?!\\?:)/.test(regexpStr)) {\n throw PATH_ERROR;\n }\n }\n node = this.#children[regexpStr];\n if (!node) {\n if (Object.keys(this.#children).some(\n (k) => k !== ONLY_WILDCARD_REG_EXP_STR && k !== TAIL_WILDCARD_REG_EXP_STR\n )) {\n throw PATH_ERROR;\n }\n if (pathErrorCheckOnly) {\n return;\n }\n node = this.#children[regexpStr] = new _Node();\n if (name !== \"\") {\n node.#varIndex = context.varIndex++;\n }\n }\n if (!pathErrorCheckOnly && name !== \"\") {\n paramMap.push([name, node.#varIndex]);\n }\n } else {\n node = this.#children[token];\n if (!node) {\n if (Object.keys(this.#children).some(\n (k) => k.length > 1 && k !== ONLY_WILDCARD_REG_EXP_STR && k !== TAIL_WILDCARD_REG_EXP_STR\n )) {\n throw PATH_ERROR;\n }\n if (pathErrorCheckOnly) {\n return;\n }\n node = this.#children[token] = new _Node();\n }\n }\n node.insert(restTokens, index, paramMap, context, pathErrorCheckOnly);\n }\n buildRegExpStr() {\n const childKeys = Object.keys(this.#children).sort(compareKey);\n const strList = childKeys.map((k) => {\n const c = this.#children[k];\n return (typeof c.#varIndex === \"number\" ? `(${k})@${c.#varIndex}` : regExpMetaChars.has(k) ? `\\\\${k}` : k) + c.buildRegExpStr();\n });\n if (typeof this.#index === \"number\") {\n strList.unshift(`#${this.#index}`);\n }\n if (strList.length === 0) {\n return \"\";\n }\n if (strList.length === 1) {\n return strList[0];\n }\n return \"(?:\" + strList.join(\"|\") + \")\";\n }\n};\nexport {\n Node,\n PATH_ERROR\n};\n","// src/router/reg-exp-router/trie.ts\nimport { Node } from \"./node.js\";\nvar Trie = class {\n #context = { varIndex: 0 };\n #root = new Node();\n insert(path, index, pathErrorCheckOnly) {\n const paramAssoc = [];\n const groups = [];\n for (let i = 0; ; ) {\n let replaced = false;\n path = path.replace(/\\{[^}]+\\}/g, (m) => {\n const mark = `@\\\\${i}`;\n groups[i] = [mark, m];\n i++;\n replaced = true;\n return mark;\n });\n if (!replaced) {\n break;\n }\n }\n const tokens = path.match(/(?::[^\\/]+)|(?:\\/\\*$)|./g) || [];\n for (let i = groups.length - 1; i >= 0; i--) {\n const [mark] = groups[i];\n for (let j = tokens.length - 1; j >= 0; j--) {\n if (tokens[j].indexOf(mark) !== -1) {\n tokens[j] = tokens[j].replace(mark, groups[i][1]);\n break;\n }\n }\n }\n this.#root.insert(tokens, index, paramAssoc, this.#context, pathErrorCheckOnly);\n return paramAssoc;\n }\n buildRegExp() {\n let regexp = this.#root.buildRegExpStr();\n if (regexp === \"\") {\n return [/^$/, [], []];\n }\n let captureIndex = 0;\n const indexReplacementMap = [];\n const paramReplacementMap = [];\n regexp = regexp.replace(/#(\\d+)|@(\\d+)|\\.\\*\\$/g, (_, handlerIndex, paramIndex) => {\n if (handlerIndex !== void 0) {\n indexReplacementMap[++captureIndex] = Number(handlerIndex);\n return \"$()\";\n }\n if (paramIndex !== void 0) {\n paramReplacementMap[Number(paramIndex)] = ++captureIndex;\n return \"\";\n }\n return \"\";\n });\n return [new RegExp(`^${regexp}`), indexReplacementMap, paramReplacementMap];\n }\n};\nexport {\n Trie\n};\n","// src/router/reg-exp-router/router.ts\nimport {\n MESSAGE_MATCHER_IS_ALREADY_BUILT,\n METHOD_NAME_ALL,\n UnsupportedPathError\n} from \"../../router.js\";\nimport { checkOptionalParameter } from \"../../utils/url.js\";\nimport { match, emptyParam } from \"./matcher.js\";\nimport { PATH_ERROR } from \"./node.js\";\nimport { Trie } from \"./trie.js\";\nvar nullMatcher = [/^$/, [], /* @__PURE__ */ Object.create(null)];\nvar wildcardRegExpCache = /* @__PURE__ */ Object.create(null);\nfunction buildWildcardRegExp(path) {\n return wildcardRegExpCache[path] ??= new RegExp(\n path === \"*\" ? \"\" : `^${path.replace(\n /\\/\\*$|([.\\\\+*[^\\]$()])/g,\n (_, metaChar) => metaChar ? `\\\\${metaChar}` : \"(?:|/.*)\"\n )}$`\n );\n}\nfunction clearWildcardRegExpCache() {\n wildcardRegExpCache = /* @__PURE__ */ Object.create(null);\n}\nfunction buildMatcherFromPreprocessedRoutes(routes) {\n const trie = new Trie();\n const handlerData = [];\n if (routes.length === 0) {\n return nullMatcher;\n }\n const routesWithStaticPathFlag = routes.map(\n (route) => [!/\\*|\\/:/.test(route[0]), ...route]\n ).sort(\n ([isStaticA, pathA], [isStaticB, pathB]) => isStaticA ? 1 : isStaticB ? -1 : pathA.length - pathB.length\n );\n const staticMap = /* @__PURE__ */ Object.create(null);\n for (let i = 0, j = -1, len = routesWithStaticPathFlag.length; i < len; i++) {\n const [pathErrorCheckOnly, path, handlers] = routesWithStaticPathFlag[i];\n if (pathErrorCheckOnly) {\n staticMap[path] = [handlers.map(([h]) => [h, /* @__PURE__ */ Object.create(null)]), emptyParam];\n } else {\n j++;\n }\n let paramAssoc;\n try {\n paramAssoc = trie.insert(path, j, pathErrorCheckOnly);\n } catch (e) {\n throw e === PATH_ERROR ? new UnsupportedPathError(path) : e;\n }\n if (pathErrorCheckOnly) {\n continue;\n }\n handlerData[j] = handlers.map(([h, paramCount]) => {\n const paramIndexMap = /* @__PURE__ */ Object.create(null);\n paramCount -= 1;\n for (; paramCount >= 0; paramCount--) {\n const [key, value] = paramAssoc[paramCount];\n paramIndexMap[key] = value;\n }\n return [h, paramIndexMap];\n });\n }\n const [regexp, indexReplacementMap, paramReplacementMap] = trie.buildRegExp();\n for (let i = 0, len = handlerData.length; i < len; i++) {\n for (let j = 0, len2 = handlerData[i].length; j < len2; j++) {\n const map = handlerData[i][j]?.[1];\n if (!map) {\n continue;\n }\n const keys = Object.keys(map);\n for (let k = 0, len3 = keys.length; k < len3; k++) {\n map[keys[k]] = paramReplacementMap[map[keys[k]]];\n }\n }\n }\n const handlerMap = [];\n for (const i in indexReplacementMap) {\n handlerMap[i] = handlerData[indexReplacementMap[i]];\n }\n return [regexp, handlerMap, staticMap];\n}\nfunction findMiddleware(middleware, path) {\n if (!middleware) {\n return void 0;\n }\n for (const k of Object.keys(middleware).sort((a, b) => b.length - a.length)) {\n if (buildWildcardRegExp(k).test(path)) {\n return [...middleware[k]];\n }\n }\n return void 0;\n}\nvar RegExpRouter = class {\n name = \"RegExpRouter\";\n #middleware;\n #routes;\n constructor() {\n this.#middleware = { [METHOD_NAME_ALL]: /* @__PURE__ */ Object.create(null) };\n this.#routes = { [METHOD_NAME_ALL]: /* @__PURE__ */ Object.create(null) };\n }\n add(method, path, handler) {\n const middleware = this.#middleware;\n const routes = this.#routes;\n if (!middleware || !routes) {\n throw new Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);\n }\n if (!middleware[method]) {\n ;\n [middleware, routes].forEach((handlerMap) => {\n handlerMap[method] = /* @__PURE__ */ Object.create(null);\n Object.keys(handlerMap[METHOD_NAME_ALL]).forEach((p) => {\n handlerMap[method][p] = [...handlerMap[METHOD_NAME_ALL][p]];\n });\n });\n }\n if (path === \"/*\") {\n path = \"*\";\n }\n const paramCount = (path.match(/\\/:/g) || []).length;\n if (/\\*$/.test(path)) {\n const re = buildWildcardRegExp(path);\n if (method === METHOD_NAME_ALL) {\n Object.keys(middleware).forEach((m) => {\n middleware[m][path] ||= findMiddleware(middleware[m], path) || findMiddleware(middleware[METHOD_NAME_ALL], path) || [];\n });\n } else {\n middleware[method][path] ||= findMiddleware(middleware[method], path) || findMiddleware(middleware[METHOD_NAME_ALL], path) || [];\n }\n Object.keys(middleware).forEach((m) => {\n if (method === METHOD_NAME_ALL || method === m) {\n Object.keys(middleware[m]).forEach((p) => {\n re.test(p) && middleware[m][p].push([handler, paramCount]);\n });\n }\n });\n Object.keys(routes).forEach((m) => {\n if (method === METHOD_NAME_ALL || method === m) {\n Object.keys(routes[m]).forEach(\n (p) => re.test(p) && routes[m][p].push([handler, paramCount])\n );\n }\n });\n return;\n }\n const paths = checkOptionalParameter(path) || [path];\n for (let i = 0, len = paths.length; i < len; i++) {\n const path2 = paths[i];\n Object.keys(routes).forEach((m) => {\n if (method === METHOD_NAME_ALL || method === m) {\n routes[m][path2] ||= [\n ...findMiddleware(middleware[m], path2) || findMiddleware(middleware[METHOD_NAME_ALL], path2) || []\n ];\n routes[m][path2].push([handler, paramCount - len + i + 1]);\n }\n });\n }\n }\n match = match;\n buildAllMatchers() {\n const matchers = /* @__PURE__ */ Object.create(null);\n Object.keys(this.#routes).concat(Object.keys(this.#middleware)).forEach((method) => {\n matchers[method] ||= this.#buildMatcher(method);\n });\n this.#middleware = this.#routes = void 0;\n clearWildcardRegExpCache();\n return matchers;\n }\n #buildMatcher(method) {\n const routes = [];\n let hasOwnRoute = method === METHOD_NAME_ALL;\n [this.#middleware, this.#routes].forEach((r) => {\n const ownRoute = r[method] ? Object.keys(r[method]).map((path) => [path, r[method][path]]) : [];\n if (ownRoute.length !== 0) {\n hasOwnRoute ||= true;\n routes.push(...ownRoute);\n } else if (method !== METHOD_NAME_ALL) {\n routes.push(\n ...Object.keys(r[METHOD_NAME_ALL]).map((path) => [path, r[METHOD_NAME_ALL][path]])\n );\n }\n });\n if (!hasOwnRoute) {\n return null;\n } else {\n return buildMatcherFromPreprocessedRoutes(routes);\n }\n }\n};\nexport {\n RegExpRouter\n};\n","// src/router/smart-router/router.ts\nimport { MESSAGE_MATCHER_IS_ALREADY_BUILT, UnsupportedPathError } from \"../../router.js\";\nvar SmartRouter = class {\n name = \"SmartRouter\";\n #routers = [];\n #routes = [];\n constructor(init) {\n this.#routers = init.routers;\n }\n add(method, path, handler) {\n if (!this.#routes) {\n throw new Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);\n }\n this.#routes.push([method, path, handler]);\n }\n match(method, path) {\n if (!this.#routes) {\n throw new Error(\"Fatal error\");\n }\n const routers = this.#routers;\n const routes = this.#routes;\n const len = routers.length;\n let i = 0;\n let res;\n for (; i < len; i++) {\n const router = routers[i];\n try {\n for (let i2 = 0, len2 = routes.length; i2 < len2; i2++) {\n router.add(...routes[i2]);\n }\n res = router.match(method, path);\n } catch (e) {\n if (e instanceof UnsupportedPathError) {\n continue;\n }\n throw e;\n }\n this.match = router.match.bind(router);\n this.#routers = [router];\n this.#routes = void 0;\n break;\n }\n if (i === len) {\n throw new Error(\"Fatal error\");\n }\n this.name = `SmartRouter + ${this.activeRouter.name}`;\n return res;\n }\n get activeRouter() {\n if (this.#routes || this.#routers.length !== 1) {\n throw new Error(\"No active router has been determined yet.\");\n }\n return this.#routers[0];\n }\n};\nexport {\n SmartRouter\n};\n","// src/router/trie-router/node.ts\nimport { METHOD_NAME_ALL } from \"../../router.js\";\nimport { getPattern, splitPath, splitRoutingPath } from \"../../utils/url.js\";\nvar emptyParams = /* @__PURE__ */ Object.create(null);\nvar hasChildren = (children) => {\n for (const _ in children) {\n return true;\n }\n return false;\n};\nvar Node = class _Node {\n #methods;\n #children;\n #patterns;\n #order = 0;\n #params = emptyParams;\n constructor(method, handler, children) {\n this.#children = children || /* @__PURE__ */ Object.create(null);\n this.#methods = [];\n if (method && handler) {\n const m = /* @__PURE__ */ Object.create(null);\n m[method] = { handler, possibleKeys: [], score: 0 };\n this.#methods = [m];\n }\n this.#patterns = [];\n }\n insert(method, path, handler) {\n this.#order = ++this.#order;\n let curNode = this;\n const parts = splitRoutingPath(path);\n const possibleKeys = [];\n for (let i = 0, len = parts.length; i < len; i++) {\n const p = parts[i];\n const nextP = parts[i + 1];\n const pattern = getPattern(p, nextP);\n const key = Array.isArray(pattern) ? pattern[0] : p;\n if (key in curNode.#children) {\n curNode = curNode.#children[key];\n if (pattern) {\n possibleKeys.push(pattern[1]);\n }\n continue;\n }\n curNode.#children[key] = new _Node();\n if (pattern) {\n curNode.#patterns.push(pattern);\n possibleKeys.push(pattern[1]);\n }\n curNode = curNode.#children[key];\n }\n curNode.#methods.push({\n [method]: {\n handler,\n possibleKeys: possibleKeys.filter((v, i, a) => a.indexOf(v) === i),\n score: this.#order\n }\n });\n return curNode;\n }\n #pushHandlerSets(handlerSets, node, method, nodeParams, params) {\n for (let i = 0, len = node.#methods.length; i < len; i++) {\n const m = node.#methods[i];\n const handlerSet = m[method] || m[METHOD_NAME_ALL];\n const processedSet = {};\n if (handlerSet !== void 0) {\n handlerSet.params = /* @__PURE__ */ Object.create(null);\n handlerSets.push(handlerSet);\n if (nodeParams !== emptyParams || params && params !== emptyParams) {\n for (let i2 = 0, len2 = handlerSet.possibleKeys.length; i2 < len2; i2++) {\n const key = handlerSet.possibleKeys[i2];\n const processed = processedSet[handlerSet.score];\n handlerSet.params[key] = params?.[key] && !processed ? params[key] : nodeParams[key] ?? params?.[key];\n processedSet[handlerSet.score] = true;\n }\n }\n }\n }\n }\n search(method, path) {\n const handlerSets = [];\n this.#params = emptyParams;\n const curNode = this;\n let curNodes = [curNode];\n const parts = splitPath(path);\n const curNodesQueue = [];\n const len = parts.length;\n let partOffsets = null;\n for (let i = 0; i < len; i++) {\n const part = parts[i];\n const isLast = i === len - 1;\n const tempNodes = [];\n for (let j = 0, len2 = curNodes.length; j < len2; j++) {\n const node = curNodes[j];\n const nextNode = node.#children[part];\n if (nextNode) {\n nextNode.#params = node.#params;\n if (isLast) {\n if (nextNode.#children[\"*\"]) {\n this.#pushHandlerSets(handlerSets, nextNode.#children[\"*\"], method, node.#params);\n }\n this.#pushHandlerSets(handlerSets, nextNode, method, node.#params);\n } else {\n tempNodes.push(nextNode);\n }\n }\n for (let k = 0, len3 = node.#patterns.length; k < len3; k++) {\n const pattern = node.#patterns[k];\n const params = node.#params === emptyParams ? {} : { ...node.#params };\n if (pattern === \"*\") {\n const astNode = node.#children[\"*\"];\n if (astNode) {\n this.#pushHandlerSets(handlerSets, astNode, method, node.#params);\n astNode.#params = params;\n tempNodes.push(astNode);\n }\n continue;\n }\n const [key, name, matcher] = pattern;\n if (!part && !(matcher instanceof RegExp)) {\n continue;\n }\n const child = node.#children[key];\n if (matcher instanceof RegExp) {\n if (partOffsets === null) {\n partOffsets = new Array(len);\n let offset = path[0] === \"/\" ? 1 : 0;\n for (let p = 0; p < len; p++) {\n partOffsets[p] = offset;\n offset += parts[p].length + 1;\n }\n }\n const restPathString = path.substring(partOffsets[i]);\n const m = matcher.exec(restPathString);\n if (m) {\n params[name] = m[0];\n this.#pushHandlerSets(handlerSets, child, method, node.#params, params);\n if (hasChildren(child.#children)) {\n child.#params = params;\n const componentCount = m[0].match(/\\//)?.length ?? 0;\n const targetCurNodes = curNodesQueue[componentCount] ||= [];\n targetCurNodes.push(child);\n }\n continue;\n }\n }\n if (matcher === true || matcher.test(part)) {\n params[name] = part;\n if (isLast) {\n this.#pushHandlerSets(handlerSets, child, method, params, node.#params);\n if (child.#children[\"*\"]) {\n this.#pushHandlerSets(\n handlerSets,\n child.#children[\"*\"],\n method,\n params,\n node.#params\n );\n }\n } else {\n child.#params = params;\n tempNodes.push(child);\n }\n }\n }\n }\n const shifted = curNodesQueue.shift();\n curNodes = shifted ? tempNodes.concat(shifted) : tempNodes;\n }\n if (handlerSets.length > 1) {\n handlerSets.sort((a, b) => {\n return a.score - b.score;\n });\n }\n return [handlerSets.map(({ handler, params }) => [handler, params])];\n }\n};\nexport {\n Node\n};\n","// src/router/trie-router/router.ts\nimport { checkOptionalParameter } from \"../../utils/url.js\";\nimport { Node } from \"./node.js\";\nvar TrieRouter = class {\n name = \"TrieRouter\";\n #node;\n constructor() {\n this.#node = new Node();\n }\n add(method, path, handler) {\n const results = checkOptionalParameter(path);\n if (results) {\n for (let i = 0, len = results.length; i < len; i++) {\n this.#node.insert(method, results[i], handler);\n }\n return;\n }\n this.#node.insert(method, path, handler);\n }\n match(method, path) {\n return this.#node.search(method, path);\n }\n};\nexport {\n TrieRouter\n};\n","// src/hono.ts\nimport { HonoBase } from \"./hono-base.js\";\nimport { RegExpRouter } from \"./router/reg-exp-router/index.js\";\nimport { SmartRouter } from \"./router/smart-router/index.js\";\nimport { TrieRouter } from \"./router/trie-router/index.js\";\nvar Hono = class extends HonoBase {\n /**\n * Creates an instance of the Hono class.\n *\n * @param options - Optional configuration options for the Hono instance.\n */\n constructor(options = {}) {\n super(options);\n this.router = options.router ?? new SmartRouter({\n routers: [new RegExpRouter(), new TrieRouter()]\n });\n }\n};\nexport {\n Hono\n};\n","// src/helper/factory/index.ts\nimport { Hono } from \"../../hono.js\";\nvar Factory = class {\n initApp;\n #defaultAppOptions;\n constructor(init) {\n this.initApp = init?.initApp;\n this.#defaultAppOptions = init?.defaultAppOptions;\n }\n createApp = (options) => {\n const app = new Hono(\n options && this.#defaultAppOptions ? { ...this.#defaultAppOptions, ...options } : options ?? this.#defaultAppOptions\n );\n if (this.initApp) {\n this.initApp(app);\n }\n return app;\n };\n createMiddleware = (middleware) => middleware;\n createHandlers = (...handlers) => {\n return handlers.filter((handler) => handler !== void 0);\n };\n};\nvar createFactory = (init) => new Factory(init);\nvar createMiddleware = (middleware) => middleware;\nexport {\n Factory,\n createFactory,\n createMiddleware\n};\n","import type { Entity } from '@monorise/base';\nimport { createMiddleware } from 'hono/factory';\nimport httpStatus from 'http-status';\nimport type { DependencyContainer } from '../services/DependencyContainer';\n\nexport const entityTypeCheck = (container: DependencyContainer) =>\n createMiddleware(async (c, next) => {\n const { entityType } = c.req.param() as { entityType: Entity };\n\n if (!container.config.AllowedEntityTypes.includes(entityType)) {\n c.status(httpStatus.NOT_FOUND);\n return c.json({\n code: 'NOT_FOUND',\n });\n }\n\n await next();\n });\n","import type { Entity } from '@monorise/base';\nimport { createMiddleware } from 'hono/factory';\nimport httpStatus from 'http-status';\nimport type { DependencyContainer } from '../services/DependencyContainer';\n\nexport const mutualTypeCheck = (container: DependencyContainer) =>\n createMiddleware(async (c, next) => {\n const { entityType, byEntityType } = c.req.param() as {\n entityType: Entity;\n byEntityType: Entity;\n };\n\n if (\n !container.config.AllowedEntityTypes.includes(entityType) ||\n !container.config.AllowedEntityTypes.includes(byEntityType)\n ) {\n c.status(httpStatus.NOT_FOUND);\n return c.json({\n code: 'NOT_FOUND',\n });\n }\n\n await next();\n });\n","export const resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"dynamodb\",\n });\n};\nexport const commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n AccountId: { type: \"builtInParams\", name: \"accountId\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n AccountIdEndpointMode: { type: \"builtInParams\", name: \"accountIdEndpointMode\" },\n};\n","import { ServiceException as __ServiceException, } from \"@smithy/smithy-client\";\nexport { __ServiceException };\nexport class DynamoDBServiceException extends __ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, DynamoDBServiceException.prototype);\n }\n}\n","import { DynamoDBServiceException as __BaseException } from \"./DynamoDBServiceException\";\nexport class BackupInUseException extends __BaseException {\n name = \"BackupInUseException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"BackupInUseException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, BackupInUseException.prototype);\n }\n}\nexport class BackupNotFoundException extends __BaseException {\n name = \"BackupNotFoundException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"BackupNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, BackupNotFoundException.prototype);\n }\n}\nexport class InternalServerError extends __BaseException {\n name = \"InternalServerError\";\n $fault = \"server\";\n constructor(opts) {\n super({\n name: \"InternalServerError\",\n $fault: \"server\",\n ...opts,\n });\n Object.setPrototypeOf(this, InternalServerError.prototype);\n }\n}\nexport class RequestLimitExceeded extends __BaseException {\n name = \"RequestLimitExceeded\";\n $fault = \"client\";\n ThrottlingReasons;\n constructor(opts) {\n super({\n name: \"RequestLimitExceeded\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, RequestLimitExceeded.prototype);\n this.ThrottlingReasons = opts.ThrottlingReasons;\n }\n}\nexport class ThrottlingException extends __BaseException {\n name = \"ThrottlingException\";\n $fault = \"client\";\n throttlingReasons;\n constructor(opts) {\n super({\n name: \"ThrottlingException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ThrottlingException.prototype);\n this.throttlingReasons = opts.throttlingReasons;\n }\n}\nexport class InvalidEndpointException extends __BaseException {\n name = \"InvalidEndpointException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"InvalidEndpointException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidEndpointException.prototype);\n this.Message = opts.Message;\n }\n}\nexport class ProvisionedThroughputExceededException extends __BaseException {\n name = \"ProvisionedThroughputExceededException\";\n $fault = \"client\";\n ThrottlingReasons;\n constructor(opts) {\n super({\n name: \"ProvisionedThroughputExceededException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ProvisionedThroughputExceededException.prototype);\n this.ThrottlingReasons = opts.ThrottlingReasons;\n }\n}\nexport class ResourceNotFoundException extends __BaseException {\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceNotFoundException.prototype);\n }\n}\nexport class ItemCollectionSizeLimitExceededException extends __BaseException {\n name = \"ItemCollectionSizeLimitExceededException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ItemCollectionSizeLimitExceededException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ItemCollectionSizeLimitExceededException.prototype);\n }\n}\nexport class ReplicatedWriteConflictException extends __BaseException {\n name = \"ReplicatedWriteConflictException\";\n $fault = \"client\";\n $retryable = {};\n constructor(opts) {\n super({\n name: \"ReplicatedWriteConflictException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ReplicatedWriteConflictException.prototype);\n }\n}\nexport class ContinuousBackupsUnavailableException extends __BaseException {\n name = \"ContinuousBackupsUnavailableException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ContinuousBackupsUnavailableException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ContinuousBackupsUnavailableException.prototype);\n }\n}\nexport class LimitExceededException extends __BaseException {\n name = \"LimitExceededException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, LimitExceededException.prototype);\n }\n}\nexport class TableInUseException extends __BaseException {\n name = \"TableInUseException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"TableInUseException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TableInUseException.prototype);\n }\n}\nexport class TableNotFoundException extends __BaseException {\n name = \"TableNotFoundException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"TableNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TableNotFoundException.prototype);\n }\n}\nexport class GlobalTableAlreadyExistsException extends __BaseException {\n name = \"GlobalTableAlreadyExistsException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"GlobalTableAlreadyExistsException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, GlobalTableAlreadyExistsException.prototype);\n }\n}\nexport class ResourceInUseException extends __BaseException {\n name = \"ResourceInUseException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ResourceInUseException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceInUseException.prototype);\n }\n}\nexport class TransactionConflictException extends __BaseException {\n name = \"TransactionConflictException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"TransactionConflictException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TransactionConflictException.prototype);\n }\n}\nexport class PolicyNotFoundException extends __BaseException {\n name = \"PolicyNotFoundException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"PolicyNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, PolicyNotFoundException.prototype);\n }\n}\nexport class ExportNotFoundException extends __BaseException {\n name = \"ExportNotFoundException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ExportNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ExportNotFoundException.prototype);\n }\n}\nexport class GlobalTableNotFoundException extends __BaseException {\n name = \"GlobalTableNotFoundException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"GlobalTableNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, GlobalTableNotFoundException.prototype);\n }\n}\nexport class ImportNotFoundException extends __BaseException {\n name = \"ImportNotFoundException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ImportNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ImportNotFoundException.prototype);\n }\n}\nexport class DuplicateItemException extends __BaseException {\n name = \"DuplicateItemException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"DuplicateItemException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, DuplicateItemException.prototype);\n }\n}\nexport class IdempotentParameterMismatchException extends __BaseException {\n name = \"IdempotentParameterMismatchException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"IdempotentParameterMismatchException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, IdempotentParameterMismatchException.prototype);\n this.Message = opts.Message;\n }\n}\nexport class TransactionInProgressException extends __BaseException {\n name = \"TransactionInProgressException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"TransactionInProgressException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TransactionInProgressException.prototype);\n this.Message = opts.Message;\n }\n}\nexport class ExportConflictException extends __BaseException {\n name = \"ExportConflictException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ExportConflictException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ExportConflictException.prototype);\n }\n}\nexport class InvalidExportTimeException extends __BaseException {\n name = \"InvalidExportTimeException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"InvalidExportTimeException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidExportTimeException.prototype);\n }\n}\nexport class PointInTimeRecoveryUnavailableException extends __BaseException {\n name = \"PointInTimeRecoveryUnavailableException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"PointInTimeRecoveryUnavailableException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, PointInTimeRecoveryUnavailableException.prototype);\n }\n}\nexport class ImportConflictException extends __BaseException {\n name = \"ImportConflictException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ImportConflictException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ImportConflictException.prototype);\n }\n}\nexport class TableAlreadyExistsException extends __BaseException {\n name = \"TableAlreadyExistsException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"TableAlreadyExistsException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TableAlreadyExistsException.prototype);\n }\n}\nexport class InvalidRestoreTimeException extends __BaseException {\n name = \"InvalidRestoreTimeException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"InvalidRestoreTimeException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidRestoreTimeException.prototype);\n }\n}\nexport class ReplicaAlreadyExistsException extends __BaseException {\n name = \"ReplicaAlreadyExistsException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ReplicaAlreadyExistsException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ReplicaAlreadyExistsException.prototype);\n }\n}\nexport class ReplicaNotFoundException extends __BaseException {\n name = \"ReplicaNotFoundException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ReplicaNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ReplicaNotFoundException.prototype);\n }\n}\nexport class IndexNotFoundException extends __BaseException {\n name = \"IndexNotFoundException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"IndexNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, IndexNotFoundException.prototype);\n }\n}\nexport class ConditionalCheckFailedException extends __BaseException {\n name = \"ConditionalCheckFailedException\";\n $fault = \"client\";\n Item;\n constructor(opts) {\n super({\n name: \"ConditionalCheckFailedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ConditionalCheckFailedException.prototype);\n this.Item = opts.Item;\n }\n}\nexport class TransactionCanceledException extends __BaseException {\n name = \"TransactionCanceledException\";\n $fault = \"client\";\n Message;\n CancellationReasons;\n constructor(opts) {\n super({\n name: \"TransactionCanceledException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TransactionCanceledException.prototype);\n this.Message = opts.Message;\n this.CancellationReasons = opts.CancellationReasons;\n }\n}\n","const _A = \"Action\";\nconst _ABA = \"ArchivalBackupArn\";\nconst _ACDTP = \"ApproximateCreationDateTimePrecision\";\nconst _AD = \"AttributeDefinition\";\nconst _ADT = \"ArchivalDateTime\";\nconst _ADt = \"AttributeDefinitions\";\nconst _AM = \"AttributeMap\";\nconst _AMRCU = \"AccountMaxReadCapacityUnits\";\nconst _AMWCU = \"AccountMaxWriteCapacityUnits\";\nconst _AN = \"AttributeName\";\nconst _AR = \"ArchivalReason\";\nconst _AS = \"ArchivalSummary\";\nconst _ASD = \"AutoScalingDisabled\";\nconst _ASPD = \"AutoScalingPolicyDescription\";\nconst _ASPDL = \"AutoScalingPolicyDescriptionList\";\nconst _ASPU = \"AutoScalingPolicyUpdate\";\nconst _ASRA = \"AutoScalingRoleArn\";\nconst _ASSD = \"AutoScalingSettingsDescription\";\nconst _ASSU = \"AutoScalingSettingsUpdate\";\nconst _ASTTSPCD = \"AutoScalingTargetTrackingScalingPolicyConfigurationDescription\";\nconst _ASTTSPCU = \"AutoScalingTargetTrackingScalingPolicyConfigurationUpdate\";\nconst _AT = \"AttributeType\";\nconst _ATG = \"AttributesToGet\";\nconst _AU = \"AttributeUpdates\";\nconst _AV = \"AttributeValue\";\nconst _AVL = \"AttributeValueList\";\nconst _AVU = \"AttributeValueUpdate\";\nconst _Ad = \"Address\";\nconst _At = \"Attributes\";\nconst _B = \"Backfilling\";\nconst _BA = \"BackupArn\";\nconst _BCDT = \"BackupCreationDateTime\";\nconst _BD = \"BackupDescription\";\nconst _BDa = \"BackupDetails\";\nconst _BEDT = \"BackupExpiryDateTime\";\nconst _BES = \"BatchExecuteStatement\";\nconst _BESI = \"BatchExecuteStatementInput\";\nconst _BESO = \"BatchExecuteStatementOutput\";\nconst _BGI = \"BatchGetItem\";\nconst _BGII = \"BatchGetItemInput\";\nconst _BGIO = \"BatchGetItemOutput\";\nconst _BGRM = \"BatchGetResponseMap\";\nconst _BGRMa = \"BatchGetRequestMap\";\nconst _BIUE = \"BackupInUseException\";\nconst _BM = \"BillingMode\";\nconst _BMO = \"BillingModeOverride\";\nconst _BMS = \"BillingModeSummary\";\nconst _BN = \"BackupName\";\nconst _BNFE = \"BackupNotFoundException\";\nconst _BOOL = \"BOOL\";\nconst _BS = \"BackupStatus\";\nconst _BSB = \"BackupSizeBytes\";\nconst _BSBi = \"BilledSizeBytes\";\nconst _BSE = \"BatchStatementError\";\nconst _BSR = \"BatchStatementRequest\";\nconst _BSRa = \"BatchStatementResponse\";\nconst _BS_ = \"BS\";\nconst _BSa = \"BackupSummary\";\nconst _BSac = \"BackupSummaries\";\nconst _BT = \"BackupType\";\nconst _BWI = \"BatchWriteItem\";\nconst _BWII = \"BatchWriteItemInput\";\nconst _BWIO = \"BatchWriteItemOutput\";\nconst _BWIRM = \"BatchWriteItemRequestMap\";\nconst _B_ = \"B\";\nconst _C = \"Code\";\nconst _CB = \"CreateBackup\";\nconst _CBD = \"ContinuousBackupsDescription\";\nconst _CBI = \"CreateBackupInput\";\nconst _CBO = \"CreateBackupOutput\";\nconst _CBS = \"ContinuousBackupsStatus\";\nconst _CBUE = \"ContinuousBackupsUnavailableException\";\nconst _CC = \"ConsumedCapacity\";\nconst _CCFE = \"ConditionalCheckFailedException\";\nconst _CCM = \"ConsumedCapacityMultiple\";\nconst _CCo = \"ConditionCheck\";\nconst _CDT = \"CreationDateTime\";\nconst _CE = \"ConditionExpression\";\nconst _CGSIA = \"CreateGlobalSecondaryIndexAction\";\nconst _CGT = \"CreateGlobalTable\";\nconst _CGTI = \"CreateGlobalTableInput\";\nconst _CGTO = \"CreateGlobalTableOutput\";\nconst _CGTWGMA = \"CreateGlobalTableWitnessGroupMemberAction\";\nconst _CIA = \"ContributorInsightsAction\";\nconst _CIM = \"ContributorInsightsMode\";\nconst _CIRL = \"ContributorInsightsRuleList\";\nconst _CIS = \"ContributorInsightsSummary\";\nconst _CISo = \"ContributorInsightsStatus\";\nconst _CISon = \"ContributorInsightsSummaries\";\nconst _CO = \"ComparisonOperator\";\nconst _COo = \"ConditionalOperator\";\nconst _COs = \"CsvOptions\";\nconst _CPIM = \"CachePeriodInMinutes\";\nconst _CR = \"CancellationReasons\";\nconst _CRA = \"CreateReplicaAction\";\nconst _CRGMA = \"CreateReplicationGroupMemberAction\";\nconst _CRL = \"CancellationReasonList\";\nconst _CRSRA = \"ConfirmRemoveSelfResourceAccess\";\nconst _CRT = \"ClientRequestToken\";\nconst _CRa = \"CancellationReason\";\nconst _CRo = \"ConsistentRead\";\nconst _CT = \"ClientToken\";\nconst _CTI = \"CreateTableInput\";\nconst _CTO = \"CreateTableOutput\";\nconst _CTr = \"CreateTable\";\nconst _CU = \"CapacityUnits\";\nconst _CWLGA = \"CloudWatchLogGroupArn\";\nconst _Ca = \"Capacity\";\nconst _Co = \"Condition\";\nconst _Cou = \"Count\";\nconst _Cr = \"Create\";\nconst _Cs = \"Csv\";\nconst _D = \"Delimiter\";\nconst _DB = \"DeleteBackup\";\nconst _DBI = \"DeleteBackupInput\";\nconst _DBIe = \"DescribeBackupInput\";\nconst _DBO = \"DeleteBackupOutput\";\nconst _DBOe = \"DescribeBackupOutput\";\nconst _DBe = \"DescribeBackup\";\nconst _DCB = \"DescribeContinuousBackups\";\nconst _DCBI = \"DescribeContinuousBackupsInput\";\nconst _DCBO = \"DescribeContinuousBackupsOutput\";\nconst _DCI = \"DescribeContributorInsights\";\nconst _DCII = \"DescribeContributorInsightsInput\";\nconst _DCIO = \"DescribeContributorInsightsOutput\";\nconst _DE = \"DescribeEndpoints\";\nconst _DEI = \"DescribeExportInput\";\nconst _DEO = \"DescribeExportOutput\";\nconst _DER = \"DescribeEndpointsRequest\";\nconst _DERe = \"DescribeEndpointsResponse\";\nconst _DEe = \"DescribeExport\";\nconst _DGSIA = \"DeleteGlobalSecondaryIndexAction\";\nconst _DGT = \"DescribeGlobalTable\";\nconst _DGTI = \"DescribeGlobalTableInput\";\nconst _DGTO = \"DescribeGlobalTableOutput\";\nconst _DGTS = \"DescribeGlobalTableSettings\";\nconst _DGTSI = \"DescribeGlobalTableSettingsInput\";\nconst _DGTSO = \"DescribeGlobalTableSettingsOutput\";\nconst _DGTWGMA = \"DeleteGlobalTableWitnessGroupMemberAction\";\nconst _DI = \"DeleteItem\";\nconst _DIE = \"DuplicateItemException\";\nconst _DII = \"DeleteItemInput\";\nconst _DIIe = \"DescribeImportInput\";\nconst _DIO = \"DeleteItemOutput\";\nconst _DIOe = \"DescribeImportOutput\";\nconst _DIe = \"DescribeImport\";\nconst _DKSD = \"DescribeKinesisStreamingDestination\";\nconst _DKSDI = \"DescribeKinesisStreamingDestinationInput\";\nconst _DKSDO = \"DescribeKinesisStreamingDestinationOutput\";\nconst _DKSDi = \"DisableKinesisStreamingDestination\";\nconst _DL = \"DescribeLimits\";\nconst _DLI = \"DescribeLimitsInput\";\nconst _DLO = \"DescribeLimitsOutput\";\nconst _DPE = \"DeletionProtectionEnabled\";\nconst _DR = \"DeleteRequest\";\nconst _DRA = \"DeleteReplicaAction\";\nconst _DRGMA = \"DeleteReplicationGroupMemberAction\";\nconst _DRP = \"DeleteResourcePolicy\";\nconst _DRPI = \"DeleteResourcePolicyInput\";\nconst _DRPO = \"DeleteResourcePolicyOutput\";\nconst _DS = \"DestinationStatus\";\nconst _DSD = \"DestinationStatusDescription\";\nconst _DSI = \"DisableScaleIn\";\nconst _DT = \"DeleteTable\";\nconst _DTI = \"DeleteTableInput\";\nconst _DTIe = \"DescribeTableInput\";\nconst _DTO = \"DeleteTableOutput\";\nconst _DTOe = \"DescribeTableOutput\";\nconst _DTRAS = \"DescribeTableReplicaAutoScaling\";\nconst _DTRASI = \"DescribeTableReplicaAutoScalingInput\";\nconst _DTRASO = \"DescribeTableReplicaAutoScalingOutput\";\nconst _DTTL = \"DescribeTimeToLive\";\nconst _DTTLI = \"DescribeTimeToLiveInput\";\nconst _DTTLO = \"DescribeTimeToLiveOutput\";\nconst _DTe = \"DescribeTable\";\nconst _De = \"Delete\";\nconst _E = \"Error\";\nconst _EA = \"ExportArn\";\nconst _EAM = \"ExpectedAttributeMap\";\nconst _EAN = \"ExpressionAttributeNames\";\nconst _EAV = \"ExpressionAttributeValues\";\nconst _EAVM = \"ExpressionAttributeValueMap\";\nconst _EAVx = \"ExpectedAttributeValue\";\nconst _EC = \"ErrorCount\";\nconst _ECE = \"ExportConflictException\";\nconst _ED = \"ExportDescription\";\nconst _EDx = \"ExceptionDescription\";\nconst _EF = \"ExportFormat\";\nconst _EFT = \"ExportFromTime\";\nconst _EKSC = \"EnableKinesisStreamingConfiguration\";\nconst _EKSD = \"EnableKinesisStreamingDestination\";\nconst _EM = \"ExportManifest\";\nconst _EN = \"ExceptionName\";\nconst _ENFE = \"ExportNotFoundException\";\nconst _ERDT = \"EarliestRestorableDateTime\";\nconst _ERI = \"ExpectedRevisionId\";\nconst _ES = \"ExportStatus\";\nconst _ESBA = \"ExclusiveStartBackupArn\";\nconst _ESGTN = \"ExclusiveStartGlobalTableName\";\nconst _ESI = \"ExecuteStatementInput\";\nconst _ESK = \"ExclusiveStartKey\";\nconst _ESO = \"ExecuteStatementOutput\";\nconst _ESTN = \"ExclusiveStartTableName\";\nconst _ESx = \"ExportSummary\";\nconst _ESxe = \"ExecuteStatement\";\nconst _ESxp = \"ExportSummaries\";\nconst _ET = \"EndTime\";\nconst _ETI = \"ExecuteTransactionInput\";\nconst _ETO = \"ExecuteTransactionOutput\";\nconst _ETT = \"ExportToTime\";\nconst _ETTPIT = \"ExportTableToPointInTime\";\nconst _ETTPITI = \"ExportTableToPointInTimeInput\";\nconst _ETTPITO = \"ExportTableToPointInTimeOutput\";\nconst _ETx = \"ExportTime\";\nconst _ETxe = \"ExecuteTransaction\";\nconst _ETxp = \"ExportType\";\nconst _EVT = \"ExportViewType\";\nconst _En = \"Endpoints\";\nconst _Ena = \"Enabled\";\nconst _End = \"Endpoint\";\nconst _Ex = \"Expected\";\nconst _Exi = \"Exists\";\nconst _FC = \"FailureCode\";\nconst _FCM = \"FilterConditionMap\";\nconst _FE = \"FailureException\";\nconst _FEi = \"FilterExpression\";\nconst _FM = \"FailureMessage\";\nconst _G = \"Get\";\nconst _GI = \"GetItem\";\nconst _GII = \"GetItemInput\";\nconst _GIO = \"GetItemOutput\";\nconst _GRP = \"GetResourcePolicy\";\nconst _GRPI = \"GetResourcePolicyInput\";\nconst _GRPO = \"GetResourcePolicyOutput\";\nconst _GSI = \"GlobalSecondaryIndexes\";\nconst _GSIASU = \"GlobalSecondaryIndexAutoScalingUpdate\";\nconst _GSIASUL = \"GlobalSecondaryIndexAutoScalingUpdateList\";\nconst _GSID = \"GlobalSecondaryIndexDescription\";\nconst _GSIDL = \"GlobalSecondaryIndexDescriptionList\";\nconst _GSII = \"GlobalSecondaryIndexInfo\";\nconst _GSIL = \"GlobalSecondaryIndexList\";\nconst _GSIO = \"GlobalSecondaryIndexOverride\";\nconst _GSIU = \"GlobalSecondaryIndexUpdate\";\nconst _GSIUL = \"GlobalSecondaryIndexUpdateList\";\nconst _GSIUl = \"GlobalSecondaryIndexUpdates\";\nconst _GSIWTD = \"GlobalSecondaryIndexWarmThroughputDescription\";\nconst _GSIl = \"GlobalSecondaryIndex\";\nconst _GT = \"GlobalTable\";\nconst _GTA = \"GlobalTableArn\";\nconst _GTAEE = \"GlobalTableAlreadyExistsException\";\nconst _GTBM = \"GlobalTableBillingMode\";\nconst _GTD = \"GlobalTableDescription\";\nconst _GTGSISU = \"GlobalTableGlobalSecondaryIndexSettingsUpdate\";\nconst _GTGSISUL = \"GlobalTableGlobalSecondaryIndexSettingsUpdateList\";\nconst _GTL = \"GlobalTableList\";\nconst _GTN = \"GlobalTableName\";\nconst _GTNFE = \"GlobalTableNotFoundException\";\nconst _GTPWCASSU = \"GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate\";\nconst _GTPWCU = \"GlobalTableProvisionedWriteCapacityUnits\";\nconst _GTS = \"GlobalTableStatus\";\nconst _GTSA = \"GlobalTableSourceArn\";\nconst _GTSRM = \"GlobalTableSettingsReplicationMode\";\nconst _GTV = \"GlobalTableVersion\";\nconst _GTW = \"GlobalTableWitnesses\";\nconst _GTWD = \"GlobalTableWitnessDescription\";\nconst _GTWDL = \"GlobalTableWitnessDescriptionList\";\nconst _GTWGU = \"GlobalTableWitnessGroupUpdate\";\nconst _GTWGUL = \"GlobalTableWitnessGroupUpdateList\";\nconst _GTWU = \"GlobalTableWitnessUpdates\";\nconst _GTl = \"GlobalTables\";\nconst _HL = \"HeaderList\";\nconst _I = \"Item\";\nconst _IA = \"ImportArn\";\nconst _IAn = \"IndexArn\";\nconst _IC = \"ItemCount\";\nconst _ICE = \"ImportConflictException\";\nconst _ICK = \"ItemCollectionKey\";\nconst _ICKAM = \"ItemCollectionKeyAttributeMap\";\nconst _ICM = \"ItemCollectionMetrics\";\nconst _ICMM = \"ItemCollectionMetricsMultiple\";\nconst _ICMPT = \"ItemCollectionMetricsPerTable\";\nconst _ICSLEE = \"ItemCollectionSizeLimitExceededException\";\nconst _ICT = \"InputCompressionType\";\nconst _IEDT = \"InaccessibleEncryptionDateTime\";\nconst _IEE = \"InvalidEndpointException\";\nconst _IES = \"IncrementalExportSpecification\";\nconst _IETE = \"InvalidExportTimeException\";\nconst _IF = \"InputFormat\";\nconst _IFO = \"InputFormatOptions\";\nconst _IIC = \"ImportedItemCount\";\nconst _IL = \"ItemList\";\nconst _IN = \"IndexName\";\nconst _INFE = \"ImportNotFoundException\";\nconst _INFEn = \"IndexNotFoundException\";\nconst _IPME = \"IdempotentParameterMismatchException\";\nconst _IR = \"ItemResponse\";\nconst _IRL = \"ItemResponseList\";\nconst _IRTE = \"InvalidRestoreTimeException\";\nconst _IS = \"IndexStatus\";\nconst _ISB = \"IndexSizeBytes\";\nconst _ISE = \"InternalServerError\";\nconst _ISL = \"ImportSummaryList\";\nconst _ISm = \"ImportSummary\";\nconst _ISmp = \"ImportStatus\";\nconst _IT = \"ImportTable\";\nconst _ITD = \"ImportTableDescription\";\nconst _ITI = \"ImportTableInput\";\nconst _ITO = \"ImportTableOutput\";\nconst _It = \"Items\";\nconst _K = \"Key\";\nconst _KAA = \"KeysAndAttributes\";\nconst _KC = \"KeyConditions\";\nconst _KCE = \"KeyConditionExpression\";\nconst _KDSD = \"KinesisDataStreamDestinations\";\nconst _KDSDi = \"KinesisDataStreamDestination\";\nconst _KL = \"KeyList\";\nconst _KMSMKA = \"KMSMasterKeyArn\";\nconst _KMSMKI = \"KMSMasterKeyId\";\nconst _KS = \"KeySchema\";\nconst _KSDI = \"KinesisStreamingDestinationInput\";\nconst _KSDO = \"KinesisStreamingDestinationOutput\";\nconst _KSE = \"KeySchemaElement\";\nconst _KT = \"KeyType\";\nconst _Ke = \"Keys\";\nconst _L = \"Limit\";\nconst _LAV = \"ListAttributeValue\";\nconst _LB = \"ListBackups\";\nconst _LBI = \"ListBackupsInput\";\nconst _LBO = \"ListBackupsOutput\";\nconst _LCI = \"ListContributorInsights\";\nconst _LCII = \"ListContributorInsightsInput\";\nconst _LCIO = \"ListContributorInsightsOutput\";\nconst _LDDT = \"LastDecreaseDateTime\";\nconst _LE = \"ListExports\";\nconst _LEBA = \"LastEvaluatedBackupArn\";\nconst _LEE = \"LimitExceededException\";\nconst _LEGTN = \"LastEvaluatedGlobalTableName\";\nconst _LEI = \"ListExportsInput\";\nconst _LEK = \"LastEvaluatedKey\";\nconst _LEO = \"ListExportsOutput\";\nconst _LETN = \"LastEvaluatedTableName\";\nconst _LGT = \"ListGlobalTables\";\nconst _LGTI = \"ListGlobalTablesInput\";\nconst _LGTO = \"ListGlobalTablesOutput\";\nconst _LI = \"ListImports\";\nconst _LIDT = \"LastIncreaseDateTime\";\nconst _LII = \"ListImportsInput\";\nconst _LIO = \"ListImportsOutput\";\nconst _LRDT = \"LatestRestorableDateTime\";\nconst _LSA = \"LatestStreamArn\";\nconst _LSI = \"LocalSecondaryIndexes\";\nconst _LSID = \"LocalSecondaryIndexDescription\";\nconst _LSIDL = \"LocalSecondaryIndexDescriptionList\";\nconst _LSII = \"LocalSecondaryIndexInfo\";\nconst _LSIL = \"LocalSecondaryIndexList\";\nconst _LSIO = \"LocalSecondaryIndexOverride\";\nconst _LSIo = \"LocalSecondaryIndex\";\nconst _LSL = \"LatestStreamLabel\";\nconst _LT = \"ListTables\";\nconst _LTI = \"ListTablesInput\";\nconst _LTO = \"ListTablesOutput\";\nconst _LTOR = \"ListTagsOfResource\";\nconst _LTORI = \"ListTagsOfResourceInput\";\nconst _LTORO = \"ListTagsOfResourceOutput\";\nconst _LUDT = \"LastUpdateDateTime\";\nconst _LUTPPRDT = \"LastUpdateToPayPerRequestDateTime\";\nconst _L_ = \"L\";\nconst _M = \"Message\";\nconst _MAV = \"MapAttributeValue\";\nconst _MR = \"MaxResults\";\nconst _MRC = \"MultiRegionConsistency\";\nconst _MRRU = \"MaxReadRequestUnits\";\nconst _MU = \"MinimumUnits\";\nconst _MUa = \"MaximumUnits\";\nconst _MWRU = \"MaxWriteRequestUnits\";\nconst _M_ = \"M\";\nconst _N = \"N\";\nconst _NKA = \"NonKeyAttributes\";\nconst _NODT = \"NumberOfDecreasesToday\";\nconst _NS = \"NS\";\nconst _NT = \"NextToken\";\nconst _NULL = \"NULL\";\nconst _ODT = \"OnDemandThroughput\";\nconst _ODTO = \"OnDemandThroughputOverride\";\nconst _P = \"Parameters\";\nconst _PE = \"ProjectionExpression\";\nconst _PI = \"PutItem\";\nconst _PIC = \"ProcessedItemCount\";\nconst _PII = \"PutItemInput\";\nconst _PIIAM = \"PutItemInputAttributeMap\";\nconst _PIO = \"PutItemOutput\";\nconst _PITRD = \"PointInTimeRecoveryDescription\";\nconst _PITRE = \"PointInTimeRecoveryEnabled\";\nconst _PITRS = \"PointInTimeRecoveryStatus\";\nconst _PITRSo = \"PointInTimeRecoverySpecification\";\nconst _PITRUE = \"PointInTimeRecoveryUnavailableException\";\nconst _PN = \"PolicyName\";\nconst _PNFE = \"PolicyNotFoundException\";\nconst _PQLBR = \"PartiQLBatchRequest\";\nconst _PQLBRa = \"PartiQLBatchResponse\";\nconst _PR = \"PutRequest\";\nconst _PRCASS = \"ProvisionedReadCapacityAutoScalingSettings\";\nconst _PRCASSU = \"ProvisionedReadCapacityAutoScalingSettingsUpdate\";\nconst _PRCASU = \"ProvisionedReadCapacityAutoScalingUpdate\";\nconst _PRCU = \"ProvisionedReadCapacityUnits\";\nconst _PRP = \"PutResourcePolicy\";\nconst _PRPI = \"PutResourcePolicyInput\";\nconst _PRPO = \"PutResourcePolicyOutput\";\nconst _PS = \"PageSize\";\nconst _PSB = \"ProcessedSizeBytes\";\nconst _PSP = \"PreparedStatementParameters\";\nconst _PSa = \"ParameterizedStatement\";\nconst _PSar = \"ParameterizedStatements\";\nconst _PT = \"ProvisionedThroughput\";\nconst _PTD = \"ProvisionedThroughputDescription\";\nconst _PTEE = \"ProvisionedThroughputExceededException\";\nconst _PTO = \"ProvisionedThroughputOverride\";\nconst _PTr = \"ProjectionType\";\nconst _PWCASS = \"ProvisionedWriteCapacityAutoScalingSettings\";\nconst _PWCASSU = \"ProvisionedWriteCapacityAutoScalingSettingsUpdate\";\nconst _PWCASU = \"ProvisionedWriteCapacityAutoScalingUpdate\";\nconst _PWCU = \"ProvisionedWriteCapacityUnits\";\nconst _Po = \"Policy\";\nconst _Pr = \"Projection\";\nconst _Pu = \"Put\";\nconst _Q = \"Query\";\nconst _QF = \"QueryFilter\";\nconst _QI = \"QueryInput\";\nconst _QO = \"QueryOutput\";\nconst _R = \"Responses\";\nconst _RA = \"ResourceArn\";\nconst _RAEE = \"ReplicaAlreadyExistsException\";\nconst _RASD = \"ReplicaAutoScalingDescription\";\nconst _RASDL = \"ReplicaAutoScalingDescriptionList\";\nconst _RASU = \"ReplicaAutoScalingUpdate\";\nconst _RASUL = \"ReplicaAutoScalingUpdateList\";\nconst _RAe = \"ReplicaArn\";\nconst _RBMS = \"ReplicaBillingModeSummary\";\nconst _RCC = \"ReturnConsumedCapacity\";\nconst _RCU = \"ReadCapacityUnits\";\nconst _RD = \"ReplicaDescription\";\nconst _RDL = \"ReplicaDescriptionList\";\nconst _RDT = \"RestoreDateTime\";\nconst _RG = \"ReplicationGroup\";\nconst _RGSI = \"ReplicaGlobalSecondaryIndex\";\nconst _RGSIASD = \"ReplicaGlobalSecondaryIndexAutoScalingDescription\";\nconst _RGSIASDL = \"ReplicaGlobalSecondaryIndexAutoScalingDescriptionList\";\nconst _RGSIASU = \"ReplicaGlobalSecondaryIndexAutoScalingUpdate\";\nconst _RGSIASUL = \"ReplicaGlobalSecondaryIndexAutoScalingUpdateList\";\nconst _RGSID = \"ReplicaGlobalSecondaryIndexDescription\";\nconst _RGSIDL = \"ReplicaGlobalSecondaryIndexDescriptionList\";\nconst _RGSIL = \"ReplicaGlobalSecondaryIndexList\";\nconst _RGSIS = \"ReplicaGlobalSecondaryIndexSettings\";\nconst _RGSISD = \"ReplicaGlobalSecondaryIndexSettingsDescription\";\nconst _RGSISDL = \"ReplicaGlobalSecondaryIndexSettingsDescriptionList\";\nconst _RGSISU = \"ReplicaGlobalSecondaryIndexSettingsUpdate\";\nconst _RGSISUL = \"ReplicaGlobalSecondaryIndexSettingsUpdateList\";\nconst _RGSIU = \"ReplicaGlobalSecondaryIndexUpdates\";\nconst _RGU = \"ReplicationGroupUpdate\";\nconst _RGUL = \"ReplicationGroupUpdateList\";\nconst _RI = \"RequestItems\";\nconst _RICM = \"ReturnItemCollectionMetrics\";\nconst _RIDT = \"ReplicaInaccessibleDateTime\";\nconst _RIP = \"RestoreInProgress\";\nconst _RIUE = \"ResourceInUseException\";\nconst _RIe = \"RevisionId\";\nconst _RL = \"ReplicaList\";\nconst _RLE = \"RequestLimitExceeded\";\nconst _RN = \"RegionName\";\nconst _RNFE = \"ReplicaNotFoundException\";\nconst _RNFEe = \"ResourceNotFoundException\";\nconst _RP = \"ResourcePolicy\";\nconst _RPID = \"RecoveryPeriodInDays\";\nconst _RPRCASS = \"ReplicaProvisionedReadCapacityAutoScalingSettings\";\nconst _RPRCASSU = \"ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate\";\nconst _RPRCASU = \"ReplicaProvisionedReadCapacityAutoScalingUpdate\";\nconst _RPRCU = \"ReplicaProvisionedReadCapacityUnits\";\nconst _RPWCASS = \"ReplicaProvisionedWriteCapacityAutoScalingSettings\";\nconst _RPWCU = \"ReplicaProvisionedWriteCapacityUnits\";\nconst _RS = \"ReplicaSettings\";\nconst _RSD = \"ReplicaStatusDescription\";\nconst _RSDL = \"ReplicaSettingsDescriptionList\";\nconst _RSDe = \"ReplicaSettingsDescription\";\nconst _RSPP = \"ReplicaStatusPercentProgress\";\nconst _RSU = \"ReplicaSettingsUpdate\";\nconst _RSUL = \"ReplicaSettingsUpdateList\";\nconst _RSe = \"ReplicaStatus\";\nconst _RSes = \"RestoreSummary\";\nconst _RTC = \"ReplicaTableClass\";\nconst _RTCS = \"ReplicaTableClassSummary\";\nconst _RTFB = \"RestoreTableFromBackup\";\nconst _RTFBI = \"RestoreTableFromBackupInput\";\nconst _RTFBO = \"RestoreTableFromBackupOutput\";\nconst _RTTPIT = \"RestoreTableToPointInTime\";\nconst _RTTPITI = \"RestoreTableToPointInTimeInput\";\nconst _RTTPITO = \"RestoreTableToPointInTimeOutput\";\nconst _RU = \"ReplicaUpdate\";\nconst _RUL = \"ReplicaUpdateList\";\nconst _RUPS = \"ReadUnitsPerSecond\";\nconst _RUe = \"ReplicaUpdates\";\nconst _RV = \"ReturnValues\";\nconst _RVOCCF = \"ReturnValuesOnConditionCheckFailure\";\nconst _RWCE = \"ReplicatedWriteConflictException\";\nconst _Re = \"Replica\";\nconst _Rep = \"Replicas\";\nconst _S = \"Statements\";\nconst _SA = \"StreamArn\";\nconst _SB = \"S3Bucket\";\nconst _SBA = \"SourceBackupArn\";\nconst _SBO = \"S3BucketOwner\";\nconst _SBS = \"S3BucketSource\";\nconst _SC = \"ScannedCount\";\nconst _SD = \"StreamDescription\";\nconst _SE = \"StreamEnabled\";\nconst _SERGB = \"SizeEstimateRangeGB\";\nconst _SF = \"ScanFilter\";\nconst _SI = \"ScanInput\";\nconst _SIC = \"ScaleInCooldown\";\nconst _SICM = \"SecondaryIndexesCapacityMap\";\nconst _SIF = \"ScanIndexForward\";\nconst _SKP = \"S3KeyPrefix\";\nconst _SO = \"ScanOutput\";\nconst _SOC = \"ScaleOutCooldown\";\nconst _SP = \"ScalingPolicies\";\nconst _SPU = \"ScalingPolicyUpdate\";\nconst _SPr = \"S3Prefix\";\nconst _SS = \"StreamSpecification\";\nconst _SSA = \"S3SseAlgorithm\";\nconst _SSED = \"SSEDescription\";\nconst _SSES = \"SSESpecification\";\nconst _SSESO = \"SSESpecificationOverride\";\nconst _SSET = \"SSEType\";\nconst _SSKKI = \"S3SseKmsKeyId\";\nconst _SS_ = \"SS\";\nconst _ST = \"StartTime\";\nconst _STA = \"SourceTableArn\";\nconst _STD = \"SourceTableDetails\";\nconst _STFD = \"SourceTableFeatureDetails\";\nconst _STN = \"SourceTableName\";\nconst _SVT = \"StreamViewType\";\nconst _S_ = \"S\";\nconst _Sc = \"Scan\";\nconst _Se = \"Select\";\nconst _Seg = \"Segment\";\nconst _St = \"Statement\";\nconst _Sta = \"Status\";\nconst _T = \"Table\";\nconst _TA = \"TableArn\";\nconst _TAEE = \"TableAlreadyExistsException\";\nconst _TASD = \"TableAutoScalingDescription\";\nconst _TC = \"TableClass\";\nconst _TCDT = \"TableCreationDateTime\";\nconst _TCE = \"TransactionCanceledException\";\nconst _TCEr = \"TransactionConflictException\";\nconst _TCO = \"TableClassOverride\";\nconst _TCP = \"TableCreationParameters\";\nconst _TCS = \"TableClassSummary\";\nconst _TD = \"TableDescription\";\nconst _TE = \"ThrottlingException\";\nconst _TGI = \"TransactGetItem\";\nconst _TGII = \"TransactGetItemsInput\";\nconst _TGIL = \"TransactGetItemList\";\nconst _TGIO = \"TransactGetItemsOutput\";\nconst _TGIr = \"TransactGetItems\";\nconst _TI = \"TableId\";\nconst _TIPE = \"TransactionInProgressException\";\nconst _TIUE = \"TableInUseException\";\nconst _TIr = \"TransactItems\";\nconst _TK = \"TagKeys\";\nconst _TL = \"TagList\";\nconst _TMRCU = \"TableMaxReadCapacityUnits\";\nconst _TMWCU = \"TableMaxWriteCapacityUnits\";\nconst _TN = \"TableName\";\nconst _TNFE = \"TableNotFoundException\";\nconst _TNa = \"TableNames\";\nconst _TR = \"ThrottlingReasons\";\nconst _TRI = \"TagResourceInput\";\nconst _TRL = \"ThrottlingReasonList\";\nconst _TRLB = \"TimeRangeLowerBound\";\nconst _TRUB = \"TimeRangeUpperBound\";\nconst _TRa = \"TagResource\";\nconst _TRh = \"ThrottlingReason\";\nconst _TS = \"TransactStatements\";\nconst _TSB = \"TableSizeBytes\";\nconst _TSa = \"TableStatus\";\nconst _TSo = \"TotalSegments\";\nconst _TTLD = \"TimeToLiveDescription\";\nconst _TTLS = \"TimeToLiveStatus\";\nconst _TTLSi = \"TimeToLiveSpecification\";\nconst _TTN = \"TargetTableName\";\nconst _TTSPC = \"TargetTrackingScalingPolicyConfiguration\";\nconst _TV = \"TargetValue\";\nconst _TWI = \"TransactWriteItem\";\nconst _TWII = \"TransactWriteItemsInput\";\nconst _TWIL = \"TransactWriteItemList\";\nconst _TWIO = \"TransactWriteItemsOutput\";\nconst _TWIr = \"TransactWriteItems\";\nconst _TWTD = \"TableWarmThroughputDescription\";\nconst _Ta = \"Tags\";\nconst _Tag = \"Tag\";\nconst _U = \"Update\";\nconst _UCB = \"UpdateContinuousBackups\";\nconst _UCBI = \"UpdateContinuousBackupsInput\";\nconst _UCBO = \"UpdateContinuousBackupsOutput\";\nconst _UCI = \"UpdateContributorInsights\";\nconst _UCII = \"UpdateContributorInsightsInput\";\nconst _UCIO = \"UpdateContributorInsightsOutput\";\nconst _UE = \"UpdateExpression\";\nconst _UGSIA = \"UpdateGlobalSecondaryIndexAction\";\nconst _UGT = \"UpdateGlobalTable\";\nconst _UGTI = \"UpdateGlobalTableInput\";\nconst _UGTO = \"UpdateGlobalTableOutput\";\nconst _UGTS = \"UpdateGlobalTableSettings\";\nconst _UGTSI = \"UpdateGlobalTableSettingsInput\";\nconst _UGTSO = \"UpdateGlobalTableSettingsOutput\";\nconst _UI = \"UnprocessedItems\";\nconst _UII = \"UpdateItemInput\";\nconst _UIO = \"UpdateItemOutput\";\nconst _UIp = \"UpdateItem\";\nconst _UK = \"UnprocessedKeys\";\nconst _UKSC = \"UpdateKinesisStreamingConfiguration\";\nconst _UKSD = \"UpdateKinesisStreamingDestination\";\nconst _UKSDI = \"UpdateKinesisStreamingDestinationInput\";\nconst _UKSDO = \"UpdateKinesisStreamingDestinationOutput\";\nconst _ULRT = \"UseLatestRestorableTime\";\nconst _UR = \"UntagResource\";\nconst _URGMA = \"UpdateReplicationGroupMemberAction\";\nconst _URI = \"UntagResourceInput\";\nconst _UT = \"UpdateTable\";\nconst _UTI = \"UpdateTableInput\";\nconst _UTO = \"UpdateTableOutput\";\nconst _UTRAS = \"UpdateTableReplicaAutoScaling\";\nconst _UTRASI = \"UpdateTableReplicaAutoScalingInput\";\nconst _UTRASO = \"UpdateTableReplicaAutoScalingOutput\";\nconst _UTTL = \"UpdateTimeToLive\";\nconst _UTTLI = \"UpdateTimeToLiveInput\";\nconst _UTTLO = \"UpdateTimeToLiveOutput\";\nconst _V = \"Value\";\nconst _WCU = \"WriteCapacityUnits\";\nconst _WR = \"WriteRequest\";\nconst _WRr = \"WriteRequests\";\nconst _WS = \"WitnessStatus\";\nconst _WT = \"WarmThroughput\";\nconst _WUPS = \"WriteUnitsPerSecond\";\nconst _aQE = \"awsQueryError\";\nconst _c = \"client\";\nconst _e = \"error\";\nconst _hE = \"httpError\";\nconst _hH = \"httpHeader\";\nconst _m = \"message\";\nconst _r = \"reason\";\nconst _re = \"resource\";\nconst _s = \"smithy.ts.sdk.synthetic.com.amazonaws.dynamodb\";\nconst _se = \"server\";\nconst _tR = \"throttlingReasons\";\nconst _xacrsra = \"x-amz-confirm-remove-self-resource-access\";\nconst n0 = \"com.amazonaws.dynamodb\";\nimport { TypeRegistry } from \"@smithy/core/schema\";\nimport { DynamoDBServiceException } from \"../models/DynamoDBServiceException\";\nimport { BackupInUseException, BackupNotFoundException, ConditionalCheckFailedException, ContinuousBackupsUnavailableException, DuplicateItemException, ExportConflictException, ExportNotFoundException, GlobalTableAlreadyExistsException, GlobalTableNotFoundException, IdempotentParameterMismatchException, ImportConflictException, ImportNotFoundException, IndexNotFoundException, InternalServerError, InvalidEndpointException, InvalidExportTimeException, InvalidRestoreTimeException, ItemCollectionSizeLimitExceededException, LimitExceededException, PointInTimeRecoveryUnavailableException, PolicyNotFoundException, ProvisionedThroughputExceededException, ReplicaAlreadyExistsException, ReplicaNotFoundException, ReplicatedWriteConflictException, RequestLimitExceeded, ResourceInUseException, ResourceNotFoundException, TableAlreadyExistsException, TableInUseException, TableNotFoundException, ThrottlingException, TransactionCanceledException, TransactionConflictException, TransactionInProgressException, } from \"../models/errors\";\nconst _s_registry = TypeRegistry.for(_s);\nexport var DynamoDBServiceException$ = [-3, _s, \"DynamoDBServiceException\", 0, [], []];\n_s_registry.registerError(DynamoDBServiceException$, DynamoDBServiceException);\nconst n0_registry = TypeRegistry.for(n0);\nexport var BackupInUseException$ = [-3, n0, _BIUE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(BackupInUseException$, BackupInUseException);\nexport var BackupNotFoundException$ = [-3, n0, _BNFE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(BackupNotFoundException$, BackupNotFoundException);\nexport var ConditionalCheckFailedException$ = [-3, n0, _CCFE,\n { [_e]: _c },\n [_m, _I],\n [0, () => AttributeMap]\n];\nn0_registry.registerError(ConditionalCheckFailedException$, ConditionalCheckFailedException);\nexport var ContinuousBackupsUnavailableException$ = [-3, n0, _CBUE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(ContinuousBackupsUnavailableException$, ContinuousBackupsUnavailableException);\nexport var DuplicateItemException$ = [-3, n0, _DIE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(DuplicateItemException$, DuplicateItemException);\nexport var ExportConflictException$ = [-3, n0, _ECE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(ExportConflictException$, ExportConflictException);\nexport var ExportNotFoundException$ = [-3, n0, _ENFE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(ExportNotFoundException$, ExportNotFoundException);\nexport var GlobalTableAlreadyExistsException$ = [-3, n0, _GTAEE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(GlobalTableAlreadyExistsException$, GlobalTableAlreadyExistsException);\nexport var GlobalTableNotFoundException$ = [-3, n0, _GTNFE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(GlobalTableNotFoundException$, GlobalTableNotFoundException);\nexport var IdempotentParameterMismatchException$ = [-3, n0, _IPME,\n { [_e]: _c },\n [_M],\n [0]\n];\nn0_registry.registerError(IdempotentParameterMismatchException$, IdempotentParameterMismatchException);\nexport var ImportConflictException$ = [-3, n0, _ICE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(ImportConflictException$, ImportConflictException);\nexport var ImportNotFoundException$ = [-3, n0, _INFE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(ImportNotFoundException$, ImportNotFoundException);\nexport var IndexNotFoundException$ = [-3, n0, _INFEn,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(IndexNotFoundException$, IndexNotFoundException);\nexport var InternalServerError$ = [-3, n0, _ISE,\n { [_e]: _se },\n [_m],\n [0]\n];\nn0_registry.registerError(InternalServerError$, InternalServerError);\nexport var InvalidEndpointException$ = [-3, n0, _IEE,\n { [_e]: _c, [_hE]: 421 },\n [_M],\n [0]\n];\nn0_registry.registerError(InvalidEndpointException$, InvalidEndpointException);\nexport var InvalidExportTimeException$ = [-3, n0, _IETE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(InvalidExportTimeException$, InvalidExportTimeException);\nexport var InvalidRestoreTimeException$ = [-3, n0, _IRTE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(InvalidRestoreTimeException$, InvalidRestoreTimeException);\nexport var ItemCollectionSizeLimitExceededException$ = [-3, n0, _ICSLEE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(ItemCollectionSizeLimitExceededException$, ItemCollectionSizeLimitExceededException);\nexport var LimitExceededException$ = [-3, n0, _LEE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(LimitExceededException$, LimitExceededException);\nexport var PointInTimeRecoveryUnavailableException$ = [-3, n0, _PITRUE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(PointInTimeRecoveryUnavailableException$, PointInTimeRecoveryUnavailableException);\nexport var PolicyNotFoundException$ = [-3, n0, _PNFE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(PolicyNotFoundException$, PolicyNotFoundException);\nexport var ProvisionedThroughputExceededException$ = [-3, n0, _PTEE,\n { [_e]: _c },\n [_m, _TR],\n [0, () => ThrottlingReasonList]\n];\nn0_registry.registerError(ProvisionedThroughputExceededException$, ProvisionedThroughputExceededException);\nexport var ReplicaAlreadyExistsException$ = [-3, n0, _RAEE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(ReplicaAlreadyExistsException$, ReplicaAlreadyExistsException);\nexport var ReplicaNotFoundException$ = [-3, n0, _RNFE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(ReplicaNotFoundException$, ReplicaNotFoundException);\nexport var ReplicatedWriteConflictException$ = [-3, n0, _RWCE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(ReplicatedWriteConflictException$, ReplicatedWriteConflictException);\nexport var RequestLimitExceeded$ = [-3, n0, _RLE,\n { [_e]: _c },\n [_m, _TR],\n [0, () => ThrottlingReasonList]\n];\nn0_registry.registerError(RequestLimitExceeded$, RequestLimitExceeded);\nexport var ResourceInUseException$ = [-3, n0, _RIUE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(ResourceInUseException$, ResourceInUseException);\nexport var ResourceNotFoundException$ = [-3, n0, _RNFEe,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(ResourceNotFoundException$, ResourceNotFoundException);\nexport var TableAlreadyExistsException$ = [-3, n0, _TAEE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(TableAlreadyExistsException$, TableAlreadyExistsException);\nexport var TableInUseException$ = [-3, n0, _TIUE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(TableInUseException$, TableInUseException);\nexport var TableNotFoundException$ = [-3, n0, _TNFE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(TableNotFoundException$, TableNotFoundException);\nexport var ThrottlingException$ = [-3, n0, _TE,\n { [_aQE]: [`Throttling`, 400], [_e]: _c, [_hE]: 400 },\n [_m, _tR],\n [0, () => ThrottlingReasonList]\n];\nn0_registry.registerError(ThrottlingException$, ThrottlingException);\nexport var TransactionCanceledException$ = [-3, n0, _TCE,\n { [_e]: _c },\n [_M, _CR],\n [0, () => CancellationReasonList]\n];\nn0_registry.registerError(TransactionCanceledException$, TransactionCanceledException);\nexport var TransactionConflictException$ = [-3, n0, _TCEr,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(TransactionConflictException$, TransactionConflictException);\nexport var TransactionInProgressException$ = [-3, n0, _TIPE,\n { [_e]: _c },\n [_M],\n [0]\n];\nn0_registry.registerError(TransactionInProgressException$, TransactionInProgressException);\nexport const errorTypeRegistries = [\n _s_registry,\n n0_registry,\n];\nexport var ArchivalSummary$ = [3, n0, _AS,\n 0,\n [_ADT, _AR, _ABA],\n [4, 0, 0]\n];\nexport var AttributeDefinition$ = [3, n0, _AD,\n 0,\n [_AN, _AT],\n [0, 0], 2\n];\nexport var AttributeValueUpdate$ = [3, n0, _AVU,\n 0,\n [_V, _A],\n [() => AttributeValue$, 0]\n];\nexport var AutoScalingPolicyDescription$ = [3, n0, _ASPD,\n 0,\n [_PN, _TTSPC],\n [0, () => AutoScalingTargetTrackingScalingPolicyConfigurationDescription$]\n];\nexport var AutoScalingPolicyUpdate$ = [3, n0, _ASPU,\n 0,\n [_TTSPC, _PN],\n [() => AutoScalingTargetTrackingScalingPolicyConfigurationUpdate$, 0], 1\n];\nexport var AutoScalingSettingsDescription$ = [3, n0, _ASSD,\n 0,\n [_MU, _MUa, _ASD, _ASRA, _SP],\n [1, 1, 2, 0, () => AutoScalingPolicyDescriptionList]\n];\nexport var AutoScalingSettingsUpdate$ = [3, n0, _ASSU,\n 0,\n [_MU, _MUa, _ASD, _ASRA, _SPU],\n [1, 1, 2, 0, () => AutoScalingPolicyUpdate$]\n];\nexport var AutoScalingTargetTrackingScalingPolicyConfigurationDescription$ = [3, n0, _ASTTSPCD,\n 0,\n [_TV, _DSI, _SIC, _SOC],\n [1, 2, 1, 1], 1\n];\nexport var AutoScalingTargetTrackingScalingPolicyConfigurationUpdate$ = [3, n0, _ASTTSPCU,\n 0,\n [_TV, _DSI, _SIC, _SOC],\n [1, 2, 1, 1], 1\n];\nexport var BackupDescription$ = [3, n0, _BD,\n 0,\n [_BDa, _STD, _STFD],\n [() => BackupDetails$, () => SourceTableDetails$, () => SourceTableFeatureDetails$]\n];\nexport var BackupDetails$ = [3, n0, _BDa,\n 0,\n [_BA, _BN, _BS, _BT, _BCDT, _BSB, _BEDT],\n [0, 0, 0, 0, 4, 1, 4], 5\n];\nexport var BackupSummary$ = [3, n0, _BSa,\n 0,\n [_TN, _TI, _TA, _BA, _BN, _BCDT, _BEDT, _BS, _BT, _BSB],\n [0, 0, 0, 0, 0, 4, 4, 0, 0, 1]\n];\nexport var BatchExecuteStatementInput$ = [3, n0, _BESI,\n 0,\n [_S, _RCC],\n [() => PartiQLBatchRequest, 0], 1\n];\nexport var BatchExecuteStatementOutput$ = [3, n0, _BESO,\n 0,\n [_R, _CC],\n [() => PartiQLBatchResponse, () => ConsumedCapacityMultiple]\n];\nexport var BatchGetItemInput$ = [3, n0, _BGII,\n 0,\n [_RI, _RCC],\n [() => BatchGetRequestMap, 0], 1\n];\nexport var BatchGetItemOutput$ = [3, n0, _BGIO,\n 0,\n [_R, _UK, _CC],\n [() => BatchGetResponseMap, () => BatchGetRequestMap, () => ConsumedCapacityMultiple]\n];\nexport var BatchStatementError$ = [3, n0, _BSE,\n 0,\n [_C, _M, _I],\n [0, 0, () => AttributeMap]\n];\nexport var BatchStatementRequest$ = [3, n0, _BSR,\n 0,\n [_St, _P, _CRo, _RVOCCF],\n [0, () => PreparedStatementParameters, 2, 0], 1\n];\nexport var BatchStatementResponse$ = [3, n0, _BSRa,\n 0,\n [_E, _TN, _I],\n [() => BatchStatementError$, 0, () => AttributeMap]\n];\nexport var BatchWriteItemInput$ = [3, n0, _BWII,\n 0,\n [_RI, _RCC, _RICM],\n [() => BatchWriteItemRequestMap, 0, 0], 1\n];\nexport var BatchWriteItemOutput$ = [3, n0, _BWIO,\n 0,\n [_UI, _ICM, _CC],\n [() => BatchWriteItemRequestMap, () => ItemCollectionMetricsPerTable, () => ConsumedCapacityMultiple]\n];\nexport var BillingModeSummary$ = [3, n0, _BMS,\n 0,\n [_BM, _LUTPPRDT],\n [0, 4]\n];\nexport var CancellationReason$ = [3, n0, _CRa,\n 0,\n [_I, _C, _M],\n [() => AttributeMap, 0, 0]\n];\nexport var Capacity$ = [3, n0, _Ca,\n 0,\n [_RCU, _WCU, _CU],\n [1, 1, 1]\n];\nexport var Condition$ = [3, n0, _Co,\n 0,\n [_CO, _AVL],\n [0, () => AttributeValueList], 1\n];\nexport var ConditionCheck$ = [3, n0, _CCo,\n 0,\n [_K, _TN, _CE, _EAN, _EAV, _RVOCCF],\n [() => Key, 0, 0, 128 | 0, () => ExpressionAttributeValueMap, 0], 3\n];\nexport var ConsumedCapacity$ = [3, n0, _CC,\n 0,\n [_TN, _CU, _RCU, _WCU, _T, _LSI, _GSI],\n [0, 1, 1, 1, () => Capacity$, () => SecondaryIndexesCapacityMap, () => SecondaryIndexesCapacityMap]\n];\nexport var ContinuousBackupsDescription$ = [3, n0, _CBD,\n 0,\n [_CBS, _PITRD],\n [0, () => PointInTimeRecoveryDescription$], 1\n];\nexport var ContributorInsightsSummary$ = [3, n0, _CIS,\n 0,\n [_TN, _IN, _CISo, _CIM],\n [0, 0, 0, 0]\n];\nexport var CreateBackupInput$ = [3, n0, _CBI,\n 0,\n [_TN, _BN],\n [0, 0], 2\n];\nexport var CreateBackupOutput$ = [3, n0, _CBO,\n 0,\n [_BDa],\n [() => BackupDetails$]\n];\nexport var CreateGlobalSecondaryIndexAction$ = [3, n0, _CGSIA,\n 0,\n [_IN, _KS, _Pr, _PT, _ODT, _WT],\n [0, () => KeySchema, () => Projection$, () => ProvisionedThroughput$, () => OnDemandThroughput$, () => WarmThroughput$], 3\n];\nexport var CreateGlobalTableInput$ = [3, n0, _CGTI,\n 0,\n [_GTN, _RG],\n [0, () => ReplicaList], 2\n];\nexport var CreateGlobalTableOutput$ = [3, n0, _CGTO,\n 0,\n [_GTD],\n [() => GlobalTableDescription$]\n];\nexport var CreateGlobalTableWitnessGroupMemberAction$ = [3, n0, _CGTWGMA,\n 0,\n [_RN],\n [0], 1\n];\nexport var CreateReplicaAction$ = [3, n0, _CRA,\n 0,\n [_RN],\n [0], 1\n];\nexport var CreateReplicationGroupMemberAction$ = [3, n0, _CRGMA,\n 0,\n [_RN, _KMSMKI, _PTO, _ODTO, _GSI, _TCO],\n [0, 0, () => ProvisionedThroughputOverride$, () => OnDemandThroughputOverride$, () => ReplicaGlobalSecondaryIndexList, 0], 1\n];\nexport var CreateTableInput$ = [3, n0, _CTI,\n 0,\n [_TN, _ADt, _KS, _LSI, _GSI, _BM, _PT, _SS, _SSES, _Ta, _TC, _DPE, _WT, _RP, _ODT, _GTSA, _GTSRM],\n [0, () => AttributeDefinitions, () => KeySchema, () => LocalSecondaryIndexList, () => GlobalSecondaryIndexList, 0, () => ProvisionedThroughput$, () => StreamSpecification$, () => SSESpecification$, () => TagList, 0, 2, () => WarmThroughput$, 0, () => OnDemandThroughput$, 0, 0], 1\n];\nexport var CreateTableOutput$ = [3, n0, _CTO,\n 0,\n [_TD],\n [() => TableDescription$]\n];\nexport var CsvOptions$ = [3, n0, _COs,\n 0,\n [_D, _HL],\n [0, 64 | 0]\n];\nexport var Delete$ = [3, n0, _De,\n 0,\n [_K, _TN, _CE, _EAN, _EAV, _RVOCCF],\n [() => Key, 0, 0, 128 | 0, () => ExpressionAttributeValueMap, 0], 2\n];\nexport var DeleteBackupInput$ = [3, n0, _DBI,\n 0,\n [_BA],\n [0], 1\n];\nexport var DeleteBackupOutput$ = [3, n0, _DBO,\n 0,\n [_BD],\n [() => BackupDescription$]\n];\nexport var DeleteGlobalSecondaryIndexAction$ = [3, n0, _DGSIA,\n 0,\n [_IN],\n [0], 1\n];\nexport var DeleteGlobalTableWitnessGroupMemberAction$ = [3, n0, _DGTWGMA,\n 0,\n [_RN],\n [0], 1\n];\nexport var DeleteItemInput$ = [3, n0, _DII,\n 0,\n [_TN, _K, _Ex, _COo, _RV, _RCC, _RICM, _CE, _EAN, _EAV, _RVOCCF],\n [0, () => Key, () => ExpectedAttributeMap, 0, 0, 0, 0, 0, 128 | 0, () => ExpressionAttributeValueMap, 0], 2\n];\nexport var DeleteItemOutput$ = [3, n0, _DIO,\n 0,\n [_At, _CC, _ICM],\n [() => AttributeMap, () => ConsumedCapacity$, () => ItemCollectionMetrics$]\n];\nexport var DeleteReplicaAction$ = [3, n0, _DRA,\n 0,\n [_RN],\n [0], 1\n];\nexport var DeleteReplicationGroupMemberAction$ = [3, n0, _DRGMA,\n 0,\n [_RN],\n [0], 1\n];\nexport var DeleteRequest$ = [3, n0, _DR,\n 0,\n [_K],\n [() => Key], 1\n];\nexport var DeleteResourcePolicyInput$ = [3, n0, _DRPI,\n 0,\n [_RA, _ERI],\n [0, 0], 1\n];\nexport var DeleteResourcePolicyOutput$ = [3, n0, _DRPO,\n 0,\n [_RIe],\n [0]\n];\nexport var DeleteTableInput$ = [3, n0, _DTI,\n 0,\n [_TN],\n [0], 1\n];\nexport var DeleteTableOutput$ = [3, n0, _DTO,\n 0,\n [_TD],\n [() => TableDescription$]\n];\nexport var DescribeBackupInput$ = [3, n0, _DBIe,\n 0,\n [_BA],\n [0], 1\n];\nexport var DescribeBackupOutput$ = [3, n0, _DBOe,\n 0,\n [_BD],\n [() => BackupDescription$]\n];\nexport var DescribeContinuousBackupsInput$ = [3, n0, _DCBI,\n 0,\n [_TN],\n [0], 1\n];\nexport var DescribeContinuousBackupsOutput$ = [3, n0, _DCBO,\n 0,\n [_CBD],\n [() => ContinuousBackupsDescription$]\n];\nexport var DescribeContributorInsightsInput$ = [3, n0, _DCII,\n 0,\n [_TN, _IN],\n [0, 0], 1\n];\nexport var DescribeContributorInsightsOutput$ = [3, n0, _DCIO,\n 0,\n [_TN, _IN, _CIRL, _CISo, _LUDT, _FE, _CIM],\n [0, 0, 64 | 0, 0, 4, () => FailureException$, 0]\n];\nexport var DescribeEndpointsRequest$ = [3, n0, _DER,\n 0,\n [],\n []\n];\nexport var DescribeEndpointsResponse$ = [3, n0, _DERe,\n 0,\n [_En],\n [() => Endpoints], 1\n];\nexport var DescribeExportInput$ = [3, n0, _DEI,\n 0,\n [_EA],\n [0], 1\n];\nexport var DescribeExportOutput$ = [3, n0, _DEO,\n 0,\n [_ED],\n [() => ExportDescription$]\n];\nexport var DescribeGlobalTableInput$ = [3, n0, _DGTI,\n 0,\n [_GTN],\n [0], 1\n];\nexport var DescribeGlobalTableOutput$ = [3, n0, _DGTO,\n 0,\n [_GTD],\n [() => GlobalTableDescription$]\n];\nexport var DescribeGlobalTableSettingsInput$ = [3, n0, _DGTSI,\n 0,\n [_GTN],\n [0], 1\n];\nexport var DescribeGlobalTableSettingsOutput$ = [3, n0, _DGTSO,\n 0,\n [_GTN, _RS],\n [0, () => ReplicaSettingsDescriptionList]\n];\nexport var DescribeImportInput$ = [3, n0, _DIIe,\n 0,\n [_IA],\n [0], 1\n];\nexport var DescribeImportOutput$ = [3, n0, _DIOe,\n 0,\n [_ITD],\n [() => ImportTableDescription$], 1\n];\nexport var DescribeKinesisStreamingDestinationInput$ = [3, n0, _DKSDI,\n 0,\n [_TN],\n [0], 1\n];\nexport var DescribeKinesisStreamingDestinationOutput$ = [3, n0, _DKSDO,\n 0,\n [_TN, _KDSD],\n [0, () => KinesisDataStreamDestinations]\n];\nexport var DescribeLimitsInput$ = [3, n0, _DLI,\n 0,\n [],\n []\n];\nexport var DescribeLimitsOutput$ = [3, n0, _DLO,\n 0,\n [_AMRCU, _AMWCU, _TMRCU, _TMWCU],\n [1, 1, 1, 1]\n];\nexport var DescribeTableInput$ = [3, n0, _DTIe,\n 0,\n [_TN],\n [0], 1\n];\nexport var DescribeTableOutput$ = [3, n0, _DTOe,\n 0,\n [_T],\n [() => TableDescription$]\n];\nexport var DescribeTableReplicaAutoScalingInput$ = [3, n0, _DTRASI,\n 0,\n [_TN],\n [0], 1\n];\nexport var DescribeTableReplicaAutoScalingOutput$ = [3, n0, _DTRASO,\n 0,\n [_TASD],\n [() => TableAutoScalingDescription$]\n];\nexport var DescribeTimeToLiveInput$ = [3, n0, _DTTLI,\n 0,\n [_TN],\n [0], 1\n];\nexport var DescribeTimeToLiveOutput$ = [3, n0, _DTTLO,\n 0,\n [_TTLD],\n [() => TimeToLiveDescription$]\n];\nexport var EnableKinesisStreamingConfiguration$ = [3, n0, _EKSC,\n 0,\n [_ACDTP],\n [0]\n];\nexport var Endpoint$ = [3, n0, _End,\n 0,\n [_Ad, _CPIM],\n [0, 1], 2\n];\nexport var ExecuteStatementInput$ = [3, n0, _ESI,\n 0,\n [_St, _P, _CRo, _NT, _RCC, _L, _RVOCCF],\n [0, () => PreparedStatementParameters, 2, 0, 0, 1, 0], 1\n];\nexport var ExecuteStatementOutput$ = [3, n0, _ESO,\n 0,\n [_It, _NT, _CC, _LEK],\n [() => ItemList, 0, () => ConsumedCapacity$, () => Key]\n];\nexport var ExecuteTransactionInput$ = [3, n0, _ETI,\n 0,\n [_TS, _CRT, _RCC],\n [() => ParameterizedStatements, [0, 4], 0], 1\n];\nexport var ExecuteTransactionOutput$ = [3, n0, _ETO,\n 0,\n [_R, _CC],\n [() => ItemResponseList, () => ConsumedCapacityMultiple]\n];\nexport var ExpectedAttributeValue$ = [3, n0, _EAVx,\n 0,\n [_V, _Exi, _CO, _AVL],\n [() => AttributeValue$, 2, 0, () => AttributeValueList]\n];\nexport var ExportDescription$ = [3, n0, _ED,\n 0,\n [_EA, _ES, _ST, _ET, _EM, _TA, _TI, _ETx, _CT, _SB, _SBO, _SPr, _SSA, _SSKKI, _FC, _FM, _EF, _BSBi, _IC, _ETxp, _IES],\n [0, 0, 4, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, () => IncrementalExportSpecification$]\n];\nexport var ExportSummary$ = [3, n0, _ESx,\n 0,\n [_EA, _ES, _ETxp],\n [0, 0, 0]\n];\nexport var ExportTableToPointInTimeInput$ = [3, n0, _ETTPITI,\n 0,\n [_TA, _SB, _ETx, _CT, _SBO, _SPr, _SSA, _SSKKI, _EF, _ETxp, _IES],\n [0, 0, 4, [0, 4], 0, 0, 0, 0, 0, 0, () => IncrementalExportSpecification$], 2\n];\nexport var ExportTableToPointInTimeOutput$ = [3, n0, _ETTPITO,\n 0,\n [_ED],\n [() => ExportDescription$]\n];\nexport var FailureException$ = [3, n0, _FE,\n 0,\n [_EN, _EDx],\n [0, 0]\n];\nexport var Get$ = [3, n0, _G,\n 0,\n [_K, _TN, _PE, _EAN],\n [() => Key, 0, 0, 128 | 0], 2\n];\nexport var GetItemInput$ = [3, n0, _GII,\n 0,\n [_TN, _K, _ATG, _CRo, _RCC, _PE, _EAN],\n [0, () => Key, 64 | 0, 2, 0, 0, 128 | 0], 2\n];\nexport var GetItemOutput$ = [3, n0, _GIO,\n 0,\n [_I, _CC],\n [() => AttributeMap, () => ConsumedCapacity$]\n];\nexport var GetResourcePolicyInput$ = [3, n0, _GRPI,\n 0,\n [_RA],\n [0], 1\n];\nexport var GetResourcePolicyOutput$ = [3, n0, _GRPO,\n 0,\n [_Po, _RIe],\n [0, 0]\n];\nexport var GlobalSecondaryIndex$ = [3, n0, _GSIl,\n 0,\n [_IN, _KS, _Pr, _PT, _ODT, _WT],\n [0, () => KeySchema, () => Projection$, () => ProvisionedThroughput$, () => OnDemandThroughput$, () => WarmThroughput$], 3\n];\nexport var GlobalSecondaryIndexAutoScalingUpdate$ = [3, n0, _GSIASU,\n 0,\n [_IN, _PWCASU],\n [0, () => AutoScalingSettingsUpdate$]\n];\nexport var GlobalSecondaryIndexDescription$ = [3, n0, _GSID,\n 0,\n [_IN, _KS, _Pr, _IS, _B, _PT, _ISB, _IC, _IAn, _ODT, _WT],\n [0, () => KeySchema, () => Projection$, 0, 2, () => ProvisionedThroughputDescription$, 1, 1, 0, () => OnDemandThroughput$, () => GlobalSecondaryIndexWarmThroughputDescription$]\n];\nexport var GlobalSecondaryIndexInfo$ = [3, n0, _GSII,\n 0,\n [_IN, _KS, _Pr, _PT, _ODT],\n [0, () => KeySchema, () => Projection$, () => ProvisionedThroughput$, () => OnDemandThroughput$]\n];\nexport var GlobalSecondaryIndexUpdate$ = [3, n0, _GSIU,\n 0,\n [_U, _Cr, _De],\n [() => UpdateGlobalSecondaryIndexAction$, () => CreateGlobalSecondaryIndexAction$, () => DeleteGlobalSecondaryIndexAction$]\n];\nexport var GlobalSecondaryIndexWarmThroughputDescription$ = [3, n0, _GSIWTD,\n 0,\n [_RUPS, _WUPS, _Sta],\n [1, 1, 0]\n];\nexport var GlobalTable$ = [3, n0, _GT,\n 0,\n [_GTN, _RG],\n [0, () => ReplicaList]\n];\nexport var GlobalTableDescription$ = [3, n0, _GTD,\n 0,\n [_RG, _GTA, _CDT, _GTS, _GTN],\n [() => ReplicaDescriptionList, 0, 4, 0, 0]\n];\nexport var GlobalTableGlobalSecondaryIndexSettingsUpdate$ = [3, n0, _GTGSISU,\n 0,\n [_IN, _PWCU, _PWCASSU],\n [0, 1, () => AutoScalingSettingsUpdate$], 1\n];\nexport var GlobalTableWitnessDescription$ = [3, n0, _GTWD,\n 0,\n [_RN, _WS],\n [0, 0]\n];\nexport var GlobalTableWitnessGroupUpdate$ = [3, n0, _GTWGU,\n 0,\n [_Cr, _De],\n [() => CreateGlobalTableWitnessGroupMemberAction$, () => DeleteGlobalTableWitnessGroupMemberAction$]\n];\nexport var ImportSummary$ = [3, n0, _ISm,\n 0,\n [_IA, _ISmp, _TA, _SBS, _CWLGA, _IF, _ST, _ET],\n [0, 0, 0, () => S3BucketSource$, 0, 0, 4, 4]\n];\nexport var ImportTableDescription$ = [3, n0, _ITD,\n 0,\n [_IA, _ISmp, _TA, _TI, _CT, _SBS, _EC, _CWLGA, _IF, _IFO, _ICT, _TCP, _ST, _ET, _PSB, _PIC, _IIC, _FC, _FM],\n [0, 0, 0, 0, 0, () => S3BucketSource$, 1, 0, 0, () => InputFormatOptions$, 0, () => TableCreationParameters$, 4, 4, 1, 1, 1, 0, 0]\n];\nexport var ImportTableInput$ = [3, n0, _ITI,\n 0,\n [_SBS, _IF, _TCP, _CT, _IFO, _ICT],\n [() => S3BucketSource$, 0, () => TableCreationParameters$, [0, 4], () => InputFormatOptions$, 0], 3\n];\nexport var ImportTableOutput$ = [3, n0, _ITO,\n 0,\n [_ITD],\n [() => ImportTableDescription$], 1\n];\nexport var IncrementalExportSpecification$ = [3, n0, _IES,\n 0,\n [_EFT, _ETT, _EVT],\n [4, 4, 0]\n];\nexport var InputFormatOptions$ = [3, n0, _IFO,\n 0,\n [_Cs],\n [() => CsvOptions$]\n];\nexport var ItemCollectionMetrics$ = [3, n0, _ICM,\n 0,\n [_ICK, _SERGB],\n [() => ItemCollectionKeyAttributeMap, 64 | 1]\n];\nexport var ItemResponse$ = [3, n0, _IR,\n 0,\n [_I],\n [() => AttributeMap]\n];\nexport var KeysAndAttributes$ = [3, n0, _KAA,\n 0,\n [_Ke, _ATG, _CRo, _PE, _EAN],\n [() => KeyList, 64 | 0, 2, 0, 128 | 0], 1\n];\nexport var KeySchemaElement$ = [3, n0, _KSE,\n 0,\n [_AN, _KT],\n [0, 0], 2\n];\nexport var KinesisDataStreamDestination$ = [3, n0, _KDSDi,\n 0,\n [_SA, _DS, _DSD, _ACDTP],\n [0, 0, 0, 0]\n];\nexport var KinesisStreamingDestinationInput$ = [3, n0, _KSDI,\n 0,\n [_TN, _SA, _EKSC],\n [0, 0, () => EnableKinesisStreamingConfiguration$], 2\n];\nexport var KinesisStreamingDestinationOutput$ = [3, n0, _KSDO,\n 0,\n [_TN, _SA, _DS, _EKSC],\n [0, 0, 0, () => EnableKinesisStreamingConfiguration$]\n];\nexport var ListBackupsInput$ = [3, n0, _LBI,\n 0,\n [_TN, _L, _TRLB, _TRUB, _ESBA, _BT],\n [0, 1, 4, 4, 0, 0]\n];\nexport var ListBackupsOutput$ = [3, n0, _LBO,\n 0,\n [_BSac, _LEBA],\n [() => BackupSummaries, 0]\n];\nexport var ListContributorInsightsInput$ = [3, n0, _LCII,\n 0,\n [_TN, _NT, _MR],\n [0, 0, 1]\n];\nexport var ListContributorInsightsOutput$ = [3, n0, _LCIO,\n 0,\n [_CISon, _NT],\n [() => ContributorInsightsSummaries, 0]\n];\nexport var ListExportsInput$ = [3, n0, _LEI,\n 0,\n [_TA, _MR, _NT],\n [0, 1, 0]\n];\nexport var ListExportsOutput$ = [3, n0, _LEO,\n 0,\n [_ESxp, _NT],\n [() => ExportSummaries, 0]\n];\nexport var ListGlobalTablesInput$ = [3, n0, _LGTI,\n 0,\n [_ESGTN, _L, _RN],\n [0, 1, 0]\n];\nexport var ListGlobalTablesOutput$ = [3, n0, _LGTO,\n 0,\n [_GTl, _LEGTN],\n [() => GlobalTableList, 0]\n];\nexport var ListImportsInput$ = [3, n0, _LII,\n 0,\n [_TA, _PS, _NT],\n [0, 1, 0]\n];\nexport var ListImportsOutput$ = [3, n0, _LIO,\n 0,\n [_ISL, _NT],\n [() => ImportSummaryList, 0]\n];\nexport var ListTablesInput$ = [3, n0, _LTI,\n 0,\n [_ESTN, _L],\n [0, 1]\n];\nexport var ListTablesOutput$ = [3, n0, _LTO,\n 0,\n [_TNa, _LETN],\n [64 | 0, 0]\n];\nexport var ListTagsOfResourceInput$ = [3, n0, _LTORI,\n 0,\n [_RA, _NT],\n [0, 0], 1\n];\nexport var ListTagsOfResourceOutput$ = [3, n0, _LTORO,\n 0,\n [_Ta, _NT],\n [() => TagList, 0]\n];\nexport var LocalSecondaryIndex$ = [3, n0, _LSIo,\n 0,\n [_IN, _KS, _Pr],\n [0, () => KeySchema, () => Projection$], 3\n];\nexport var LocalSecondaryIndexDescription$ = [3, n0, _LSID,\n 0,\n [_IN, _KS, _Pr, _ISB, _IC, _IAn],\n [0, () => KeySchema, () => Projection$, 1, 1, 0]\n];\nexport var LocalSecondaryIndexInfo$ = [3, n0, _LSII,\n 0,\n [_IN, _KS, _Pr],\n [0, () => KeySchema, () => Projection$]\n];\nexport var OnDemandThroughput$ = [3, n0, _ODT,\n 0,\n [_MRRU, _MWRU],\n [1, 1]\n];\nexport var OnDemandThroughputOverride$ = [3, n0, _ODTO,\n 0,\n [_MRRU],\n [1]\n];\nexport var ParameterizedStatement$ = [3, n0, _PSa,\n 0,\n [_St, _P, _RVOCCF],\n [0, () => PreparedStatementParameters, 0], 1\n];\nexport var PointInTimeRecoveryDescription$ = [3, n0, _PITRD,\n 0,\n [_PITRS, _RPID, _ERDT, _LRDT],\n [0, 1, 4, 4]\n];\nexport var PointInTimeRecoverySpecification$ = [3, n0, _PITRSo,\n 0,\n [_PITRE, _RPID],\n [2, 1], 1\n];\nexport var Projection$ = [3, n0, _Pr,\n 0,\n [_PTr, _NKA],\n [0, 64 | 0]\n];\nexport var ProvisionedThroughput$ = [3, n0, _PT,\n 0,\n [_RCU, _WCU],\n [1, 1], 2\n];\nexport var ProvisionedThroughputDescription$ = [3, n0, _PTD,\n 0,\n [_LIDT, _LDDT, _NODT, _RCU, _WCU],\n [4, 4, 1, 1, 1]\n];\nexport var ProvisionedThroughputOverride$ = [3, n0, _PTO,\n 0,\n [_RCU],\n [1]\n];\nexport var Put$ = [3, n0, _Pu,\n 0,\n [_I, _TN, _CE, _EAN, _EAV, _RVOCCF],\n [() => PutItemInputAttributeMap, 0, 0, 128 | 0, () => ExpressionAttributeValueMap, 0], 2\n];\nexport var PutItemInput$ = [3, n0, _PII,\n 0,\n [_TN, _I, _Ex, _RV, _RCC, _RICM, _COo, _CE, _EAN, _EAV, _RVOCCF],\n [0, () => PutItemInputAttributeMap, () => ExpectedAttributeMap, 0, 0, 0, 0, 0, 128 | 0, () => ExpressionAttributeValueMap, 0], 2\n];\nexport var PutItemOutput$ = [3, n0, _PIO,\n 0,\n [_At, _CC, _ICM],\n [() => AttributeMap, () => ConsumedCapacity$, () => ItemCollectionMetrics$]\n];\nexport var PutRequest$ = [3, n0, _PR,\n 0,\n [_I],\n [() => PutItemInputAttributeMap], 1\n];\nexport var PutResourcePolicyInput$ = [3, n0, _PRPI,\n 0,\n [_RA, _Po, _ERI, _CRSRA],\n [0, 0, 0, [2, { [_hH]: _xacrsra }]], 2\n];\nexport var PutResourcePolicyOutput$ = [3, n0, _PRPO,\n 0,\n [_RIe],\n [0]\n];\nexport var QueryInput$ = [3, n0, _QI,\n 0,\n [_TN, _IN, _Se, _ATG, _L, _CRo, _KC, _QF, _COo, _SIF, _ESK, _RCC, _PE, _FEi, _KCE, _EAN, _EAV],\n [0, 0, 0, 64 | 0, 1, 2, () => KeyConditions, () => FilterConditionMap, 0, 2, () => Key, 0, 0, 0, 0, 128 | 0, () => ExpressionAttributeValueMap], 1\n];\nexport var QueryOutput$ = [3, n0, _QO,\n 0,\n [_It, _Cou, _SC, _LEK, _CC],\n [() => ItemList, 1, 1, () => Key, () => ConsumedCapacity$]\n];\nexport var Replica$ = [3, n0, _Re,\n 0,\n [_RN],\n [0]\n];\nexport var ReplicaAutoScalingDescription$ = [3, n0, _RASD,\n 0,\n [_RN, _GSI, _RPRCASS, _RPWCASS, _RSe],\n [0, () => ReplicaGlobalSecondaryIndexAutoScalingDescriptionList, () => AutoScalingSettingsDescription$, () => AutoScalingSettingsDescription$, 0]\n];\nexport var ReplicaAutoScalingUpdate$ = [3, n0, _RASU,\n 0,\n [_RN, _RGSIU, _RPRCASU],\n [0, () => ReplicaGlobalSecondaryIndexAutoScalingUpdateList, () => AutoScalingSettingsUpdate$], 1\n];\nexport var ReplicaDescription$ = [3, n0, _RD,\n 0,\n [_RN, _RSe, _RAe, _RSD, _RSPP, _KMSMKI, _PTO, _ODTO, _WT, _GSI, _RIDT, _RTCS, _GTSRM],\n [0, 0, 0, 0, 0, 0, () => ProvisionedThroughputOverride$, () => OnDemandThroughputOverride$, () => TableWarmThroughputDescription$, () => ReplicaGlobalSecondaryIndexDescriptionList, 4, () => TableClassSummary$, 0]\n];\nexport var ReplicaGlobalSecondaryIndex$ = [3, n0, _RGSI,\n 0,\n [_IN, _PTO, _ODTO],\n [0, () => ProvisionedThroughputOverride$, () => OnDemandThroughputOverride$], 1\n];\nexport var ReplicaGlobalSecondaryIndexAutoScalingDescription$ = [3, n0, _RGSIASD,\n 0,\n [_IN, _IS, _PRCASS, _PWCASS],\n [0, 0, () => AutoScalingSettingsDescription$, () => AutoScalingSettingsDescription$]\n];\nexport var ReplicaGlobalSecondaryIndexAutoScalingUpdate$ = [3, n0, _RGSIASU,\n 0,\n [_IN, _PRCASU],\n [0, () => AutoScalingSettingsUpdate$]\n];\nexport var ReplicaGlobalSecondaryIndexDescription$ = [3, n0, _RGSID,\n 0,\n [_IN, _PTO, _ODTO, _WT],\n [0, () => ProvisionedThroughputOverride$, () => OnDemandThroughputOverride$, () => GlobalSecondaryIndexWarmThroughputDescription$]\n];\nexport var ReplicaGlobalSecondaryIndexSettingsDescription$ = [3, n0, _RGSISD,\n 0,\n [_IN, _IS, _PRCU, _PRCASS, _PWCU, _PWCASS],\n [0, 0, 1, () => AutoScalingSettingsDescription$, 1, () => AutoScalingSettingsDescription$], 1\n];\nexport var ReplicaGlobalSecondaryIndexSettingsUpdate$ = [3, n0, _RGSISU,\n 0,\n [_IN, _PRCU, _PRCASSU],\n [0, 1, () => AutoScalingSettingsUpdate$], 1\n];\nexport var ReplicaSettingsDescription$ = [3, n0, _RSDe,\n 0,\n [_RN, _RSe, _RBMS, _RPRCU, _RPRCASS, _RPWCU, _RPWCASS, _RGSIS, _RTCS],\n [0, 0, () => BillingModeSummary$, 1, () => AutoScalingSettingsDescription$, 1, () => AutoScalingSettingsDescription$, () => ReplicaGlobalSecondaryIndexSettingsDescriptionList, () => TableClassSummary$], 1\n];\nexport var ReplicaSettingsUpdate$ = [3, n0, _RSU,\n 0,\n [_RN, _RPRCU, _RPRCASSU, _RGSISU, _RTC],\n [0, 1, () => AutoScalingSettingsUpdate$, () => ReplicaGlobalSecondaryIndexSettingsUpdateList, 0], 1\n];\nexport var ReplicationGroupUpdate$ = [3, n0, _RGU,\n 0,\n [_Cr, _U, _De],\n [() => CreateReplicationGroupMemberAction$, () => UpdateReplicationGroupMemberAction$, () => DeleteReplicationGroupMemberAction$]\n];\nexport var ReplicaUpdate$ = [3, n0, _RU,\n 0,\n [_Cr, _De],\n [() => CreateReplicaAction$, () => DeleteReplicaAction$]\n];\nexport var RestoreSummary$ = [3, n0, _RSes,\n 0,\n [_RDT, _RIP, _SBA, _STA],\n [4, 2, 0, 0], 2\n];\nexport var RestoreTableFromBackupInput$ = [3, n0, _RTFBI,\n 0,\n [_TTN, _BA, _BMO, _GSIO, _LSIO, _PTO, _ODTO, _SSESO],\n [0, 0, 0, () => GlobalSecondaryIndexList, () => LocalSecondaryIndexList, () => ProvisionedThroughput$, () => OnDemandThroughput$, () => SSESpecification$], 2\n];\nexport var RestoreTableFromBackupOutput$ = [3, n0, _RTFBO,\n 0,\n [_TD],\n [() => TableDescription$]\n];\nexport var RestoreTableToPointInTimeInput$ = [3, n0, _RTTPITI,\n 0,\n [_TTN, _STA, _STN, _ULRT, _RDT, _BMO, _GSIO, _LSIO, _PTO, _ODTO, _SSESO],\n [0, 0, 0, 2, 4, 0, () => GlobalSecondaryIndexList, () => LocalSecondaryIndexList, () => ProvisionedThroughput$, () => OnDemandThroughput$, () => SSESpecification$], 1\n];\nexport var RestoreTableToPointInTimeOutput$ = [3, n0, _RTTPITO,\n 0,\n [_TD],\n [() => TableDescription$]\n];\nexport var S3BucketSource$ = [3, n0, _SBS,\n 0,\n [_SB, _SBO, _SKP],\n [0, 0, 0], 1\n];\nexport var ScanInput$ = [3, n0, _SI,\n 0,\n [_TN, _IN, _ATG, _L, _Se, _SF, _COo, _ESK, _RCC, _TSo, _Seg, _PE, _FEi, _EAN, _EAV, _CRo],\n [0, 0, 64 | 0, 1, 0, () => FilterConditionMap, 0, () => Key, 0, 1, 1, 0, 0, 128 | 0, () => ExpressionAttributeValueMap, 2], 1\n];\nexport var ScanOutput$ = [3, n0, _SO,\n 0,\n [_It, _Cou, _SC, _LEK, _CC],\n [() => ItemList, 1, 1, () => Key, () => ConsumedCapacity$]\n];\nexport var SourceTableDetails$ = [3, n0, _STD,\n 0,\n [_TN, _TI, _KS, _TCDT, _PT, _TA, _TSB, _ODT, _IC, _BM],\n [0, 0, () => KeySchema, 4, () => ProvisionedThroughput$, 0, 1, () => OnDemandThroughput$, 1, 0], 5\n];\nexport var SourceTableFeatureDetails$ = [3, n0, _STFD,\n 0,\n [_LSI, _GSI, _SD, _TTLD, _SSED],\n [() => LocalSecondaryIndexes, () => GlobalSecondaryIndexes, () => StreamSpecification$, () => TimeToLiveDescription$, () => SSEDescription$]\n];\nexport var SSEDescription$ = [3, n0, _SSED,\n 0,\n [_Sta, _SSET, _KMSMKA, _IEDT],\n [0, 0, 0, 4]\n];\nexport var SSESpecification$ = [3, n0, _SSES,\n 0,\n [_Ena, _SSET, _KMSMKI],\n [2, 0, 0]\n];\nexport var StreamSpecification$ = [3, n0, _SS,\n 0,\n [_SE, _SVT],\n [2, 0], 1\n];\nexport var TableAutoScalingDescription$ = [3, n0, _TASD,\n 0,\n [_TN, _TSa, _Rep],\n [0, 0, () => ReplicaAutoScalingDescriptionList]\n];\nexport var TableClassSummary$ = [3, n0, _TCS,\n 0,\n [_TC, _LUDT],\n [0, 4]\n];\nexport var TableCreationParameters$ = [3, n0, _TCP,\n 0,\n [_TN, _ADt, _KS, _BM, _PT, _ODT, _SSES, _GSI],\n [0, () => AttributeDefinitions, () => KeySchema, 0, () => ProvisionedThroughput$, () => OnDemandThroughput$, () => SSESpecification$, () => GlobalSecondaryIndexList], 3\n];\nexport var TableDescription$ = [3, n0, _TD,\n 0,\n [_ADt, _TN, _KS, _TSa, _CDT, _PT, _TSB, _IC, _TA, _TI, _BMS, _LSI, _GSI, _SS, _LSL, _LSA, _GTV, _Rep, _GTW, _GTSRM, _RSes, _SSED, _AS, _TCS, _DPE, _ODT, _WT, _MRC],\n [() => AttributeDefinitions, 0, () => KeySchema, 0, 4, () => ProvisionedThroughputDescription$, 1, 1, 0, 0, () => BillingModeSummary$, () => LocalSecondaryIndexDescriptionList, () => GlobalSecondaryIndexDescriptionList, () => StreamSpecification$, 0, 0, 0, () => ReplicaDescriptionList, () => GlobalTableWitnessDescriptionList, 0, () => RestoreSummary$, () => SSEDescription$, () => ArchivalSummary$, () => TableClassSummary$, 2, () => OnDemandThroughput$, () => TableWarmThroughputDescription$, 0]\n];\nexport var TableWarmThroughputDescription$ = [3, n0, _TWTD,\n 0,\n [_RUPS, _WUPS, _Sta],\n [1, 1, 0]\n];\nexport var Tag$ = [3, n0, _Tag,\n 0,\n [_K, _V],\n [0, 0], 2\n];\nexport var TagResourceInput$ = [3, n0, _TRI,\n 0,\n [_RA, _Ta],\n [0, () => TagList], 2\n];\nexport var ThrottlingReason$ = [3, n0, _TRh,\n 0,\n [_r, _re],\n [0, 0]\n];\nexport var TimeToLiveDescription$ = [3, n0, _TTLD,\n 0,\n [_TTLS, _AN],\n [0, 0]\n];\nexport var TimeToLiveSpecification$ = [3, n0, _TTLSi,\n 0,\n [_Ena, _AN],\n [2, 0], 2\n];\nexport var TransactGetItem$ = [3, n0, _TGI,\n 0,\n [_G],\n [() => Get$], 1\n];\nexport var TransactGetItemsInput$ = [3, n0, _TGII,\n 0,\n [_TIr, _RCC],\n [() => TransactGetItemList, 0], 1\n];\nexport var TransactGetItemsOutput$ = [3, n0, _TGIO,\n 0,\n [_CC, _R],\n [() => ConsumedCapacityMultiple, () => ItemResponseList]\n];\nexport var TransactWriteItem$ = [3, n0, _TWI,\n 0,\n [_CCo, _Pu, _De, _U],\n [() => ConditionCheck$, () => Put$, () => Delete$, () => Update$]\n];\nexport var TransactWriteItemsInput$ = [3, n0, _TWII,\n 0,\n [_TIr, _RCC, _RICM, _CRT],\n [() => TransactWriteItemList, 0, 0, [0, 4]], 1\n];\nexport var TransactWriteItemsOutput$ = [3, n0, _TWIO,\n 0,\n [_CC, _ICM],\n [() => ConsumedCapacityMultiple, () => ItemCollectionMetricsPerTable]\n];\nexport var UntagResourceInput$ = [3, n0, _URI,\n 0,\n [_RA, _TK],\n [0, 64 | 0], 2\n];\nexport var Update$ = [3, n0, _U,\n 0,\n [_K, _UE, _TN, _CE, _EAN, _EAV, _RVOCCF],\n [() => Key, 0, 0, 0, 128 | 0, () => ExpressionAttributeValueMap, 0], 3\n];\nexport var UpdateContinuousBackupsInput$ = [3, n0, _UCBI,\n 0,\n [_TN, _PITRSo],\n [0, () => PointInTimeRecoverySpecification$], 2\n];\nexport var UpdateContinuousBackupsOutput$ = [3, n0, _UCBO,\n 0,\n [_CBD],\n [() => ContinuousBackupsDescription$]\n];\nexport var UpdateContributorInsightsInput$ = [3, n0, _UCII,\n 0,\n [_TN, _CIA, _IN, _CIM],\n [0, 0, 0, 0], 2\n];\nexport var UpdateContributorInsightsOutput$ = [3, n0, _UCIO,\n 0,\n [_TN, _IN, _CISo, _CIM],\n [0, 0, 0, 0]\n];\nexport var UpdateGlobalSecondaryIndexAction$ = [3, n0, _UGSIA,\n 0,\n [_IN, _PT, _ODT, _WT],\n [0, () => ProvisionedThroughput$, () => OnDemandThroughput$, () => WarmThroughput$], 1\n];\nexport var UpdateGlobalTableInput$ = [3, n0, _UGTI,\n 0,\n [_GTN, _RUe],\n [0, () => ReplicaUpdateList], 2\n];\nexport var UpdateGlobalTableOutput$ = [3, n0, _UGTO,\n 0,\n [_GTD],\n [() => GlobalTableDescription$]\n];\nexport var UpdateGlobalTableSettingsInput$ = [3, n0, _UGTSI,\n 0,\n [_GTN, _GTBM, _GTPWCU, _GTPWCASSU, _GTGSISU, _RSU],\n [0, 0, 1, () => AutoScalingSettingsUpdate$, () => GlobalTableGlobalSecondaryIndexSettingsUpdateList, () => ReplicaSettingsUpdateList], 1\n];\nexport var UpdateGlobalTableSettingsOutput$ = [3, n0, _UGTSO,\n 0,\n [_GTN, _RS],\n [0, () => ReplicaSettingsDescriptionList]\n];\nexport var UpdateItemInput$ = [3, n0, _UII,\n 0,\n [_TN, _K, _AU, _Ex, _COo, _RV, _RCC, _RICM, _UE, _CE, _EAN, _EAV, _RVOCCF],\n [0, () => Key, () => AttributeUpdates, () => ExpectedAttributeMap, 0, 0, 0, 0, 0, 0, 128 | 0, () => ExpressionAttributeValueMap, 0], 2\n];\nexport var UpdateItemOutput$ = [3, n0, _UIO,\n 0,\n [_At, _CC, _ICM],\n [() => AttributeMap, () => ConsumedCapacity$, () => ItemCollectionMetrics$]\n];\nexport var UpdateKinesisStreamingConfiguration$ = [3, n0, _UKSC,\n 0,\n [_ACDTP],\n [0]\n];\nexport var UpdateKinesisStreamingDestinationInput$ = [3, n0, _UKSDI,\n 0,\n [_TN, _SA, _UKSC],\n [0, 0, () => UpdateKinesisStreamingConfiguration$], 2\n];\nexport var UpdateKinesisStreamingDestinationOutput$ = [3, n0, _UKSDO,\n 0,\n [_TN, _SA, _DS, _UKSC],\n [0, 0, 0, () => UpdateKinesisStreamingConfiguration$]\n];\nexport var UpdateReplicationGroupMemberAction$ = [3, n0, _URGMA,\n 0,\n [_RN, _KMSMKI, _PTO, _ODTO, _GSI, _TCO],\n [0, 0, () => ProvisionedThroughputOverride$, () => OnDemandThroughputOverride$, () => ReplicaGlobalSecondaryIndexList, 0], 1\n];\nexport var UpdateTableInput$ = [3, n0, _UTI,\n 0,\n [_TN, _ADt, _BM, _PT, _GSIUl, _SS, _SSES, _RUe, _TC, _DPE, _MRC, _GTWU, _ODT, _WT, _GTSRM],\n [0, () => AttributeDefinitions, 0, () => ProvisionedThroughput$, () => GlobalSecondaryIndexUpdateList, () => StreamSpecification$, () => SSESpecification$, () => ReplicationGroupUpdateList, 0, 2, 0, () => GlobalTableWitnessGroupUpdateList, () => OnDemandThroughput$, () => WarmThroughput$, 0], 1\n];\nexport var UpdateTableOutput$ = [3, n0, _UTO,\n 0,\n [_TD],\n [() => TableDescription$]\n];\nexport var UpdateTableReplicaAutoScalingInput$ = [3, n0, _UTRASI,\n 0,\n [_TN, _GSIUl, _PWCASU, _RUe],\n [0, () => GlobalSecondaryIndexAutoScalingUpdateList, () => AutoScalingSettingsUpdate$, () => ReplicaAutoScalingUpdateList], 1\n];\nexport var UpdateTableReplicaAutoScalingOutput$ = [3, n0, _UTRASO,\n 0,\n [_TASD],\n [() => TableAutoScalingDescription$]\n];\nexport var UpdateTimeToLiveInput$ = [3, n0, _UTTLI,\n 0,\n [_TN, _TTLSi],\n [0, () => TimeToLiveSpecification$], 2\n];\nexport var UpdateTimeToLiveOutput$ = [3, n0, _UTTLO,\n 0,\n [_TTLSi],\n [() => TimeToLiveSpecification$]\n];\nexport var WarmThroughput$ = [3, n0, _WT,\n 0,\n [_RUPS, _WUPS],\n [1, 1]\n];\nexport var WriteRequest$ = [3, n0, _WR,\n 0,\n [_PR, _DR],\n [() => PutRequest$, () => DeleteRequest$]\n];\nvar __Unit = \"unit\";\nvar AttributeDefinitions = [1, n0, _ADt,\n 0, () => AttributeDefinition$\n];\nvar AttributeNameList = 64 | 0;\nvar AttributeValueList = [1, n0, _AVL,\n 0, () => AttributeValue$\n];\nvar AutoScalingPolicyDescriptionList = [1, n0, _ASPDL,\n 0, () => AutoScalingPolicyDescription$\n];\nvar BackupSummaries = [1, n0, _BSac,\n 0, () => BackupSummary$\n];\nvar BinarySetAttributeValue = 64 | 21;\nvar CancellationReasonList = [1, n0, _CRL,\n 0, () => CancellationReason$\n];\nvar ConsumedCapacityMultiple = [1, n0, _CCM,\n 0, () => ConsumedCapacity$\n];\nvar ContributorInsightsRuleList = 64 | 0;\nvar ContributorInsightsSummaries = [1, n0, _CISon,\n 0, () => ContributorInsightsSummary$\n];\nvar CsvHeaderList = 64 | 0;\nvar Endpoints = [1, n0, _En,\n 0, () => Endpoint$\n];\nvar ExportSummaries = [1, n0, _ESxp,\n 0, () => ExportSummary$\n];\nvar GlobalSecondaryIndexAutoScalingUpdateList = [1, n0, _GSIASUL,\n 0, () => GlobalSecondaryIndexAutoScalingUpdate$\n];\nvar GlobalSecondaryIndexDescriptionList = [1, n0, _GSIDL,\n 0, () => GlobalSecondaryIndexDescription$\n];\nvar GlobalSecondaryIndexes = [1, n0, _GSI,\n 0, () => GlobalSecondaryIndexInfo$\n];\nvar GlobalSecondaryIndexList = [1, n0, _GSIL,\n 0, () => GlobalSecondaryIndex$\n];\nvar GlobalSecondaryIndexUpdateList = [1, n0, _GSIUL,\n 0, () => GlobalSecondaryIndexUpdate$\n];\nvar GlobalTableGlobalSecondaryIndexSettingsUpdateList = [1, n0, _GTGSISUL,\n 0, () => GlobalTableGlobalSecondaryIndexSettingsUpdate$\n];\nvar GlobalTableList = [1, n0, _GTL,\n 0, () => GlobalTable$\n];\nvar GlobalTableWitnessDescriptionList = [1, n0, _GTWDL,\n 0, () => GlobalTableWitnessDescription$\n];\nvar GlobalTableWitnessGroupUpdateList = [1, n0, _GTWGUL,\n 0, () => GlobalTableWitnessGroupUpdate$\n];\nvar ImportSummaryList = [1, n0, _ISL,\n 0, () => ImportSummary$\n];\nvar ItemCollectionMetricsMultiple = [1, n0, _ICMM,\n 0, () => ItemCollectionMetrics$\n];\nvar ItemCollectionSizeEstimateRange = 64 | 1;\nvar ItemList = [1, n0, _IL,\n 0, () => AttributeMap\n];\nvar ItemResponseList = [1, n0, _IRL,\n 0, () => ItemResponse$\n];\nvar KeyList = [1, n0, _KL,\n 0, () => Key\n];\nvar KeySchema = [1, n0, _KS,\n 0, () => KeySchemaElement$\n];\nvar KinesisDataStreamDestinations = [1, n0, _KDSD,\n 0, () => KinesisDataStreamDestination$\n];\nvar ListAttributeValue = [1, n0, _LAV,\n 0, () => AttributeValue$\n];\nvar LocalSecondaryIndexDescriptionList = [1, n0, _LSIDL,\n 0, () => LocalSecondaryIndexDescription$\n];\nvar LocalSecondaryIndexes = [1, n0, _LSI,\n 0, () => LocalSecondaryIndexInfo$\n];\nvar LocalSecondaryIndexList = [1, n0, _LSIL,\n 0, () => LocalSecondaryIndex$\n];\nvar NonKeyAttributeNameList = 64 | 0;\nvar NumberSetAttributeValue = 64 | 0;\nvar ParameterizedStatements = [1, n0, _PSar,\n 0, () => ParameterizedStatement$\n];\nvar PartiQLBatchRequest = [1, n0, _PQLBR,\n 0, () => BatchStatementRequest$\n];\nvar PartiQLBatchResponse = [1, n0, _PQLBRa,\n 0, () => BatchStatementResponse$\n];\nvar PreparedStatementParameters = [1, n0, _PSP,\n 0, () => AttributeValue$\n];\nvar ReplicaAutoScalingDescriptionList = [1, n0, _RASDL,\n 0, () => ReplicaAutoScalingDescription$\n];\nvar ReplicaAutoScalingUpdateList = [1, n0, _RASUL,\n 0, () => ReplicaAutoScalingUpdate$\n];\nvar ReplicaDescriptionList = [1, n0, _RDL,\n 0, () => ReplicaDescription$\n];\nvar ReplicaGlobalSecondaryIndexAutoScalingDescriptionList = [1, n0, _RGSIASDL,\n 0, () => ReplicaGlobalSecondaryIndexAutoScalingDescription$\n];\nvar ReplicaGlobalSecondaryIndexAutoScalingUpdateList = [1, n0, _RGSIASUL,\n 0, () => ReplicaGlobalSecondaryIndexAutoScalingUpdate$\n];\nvar ReplicaGlobalSecondaryIndexDescriptionList = [1, n0, _RGSIDL,\n 0, () => ReplicaGlobalSecondaryIndexDescription$\n];\nvar ReplicaGlobalSecondaryIndexList = [1, n0, _RGSIL,\n 0, () => ReplicaGlobalSecondaryIndex$\n];\nvar ReplicaGlobalSecondaryIndexSettingsDescriptionList = [1, n0, _RGSISDL,\n 0, () => ReplicaGlobalSecondaryIndexSettingsDescription$\n];\nvar ReplicaGlobalSecondaryIndexSettingsUpdateList = [1, n0, _RGSISUL,\n 0, () => ReplicaGlobalSecondaryIndexSettingsUpdate$\n];\nvar ReplicaList = [1, n0, _RL,\n 0, () => Replica$\n];\nvar ReplicaSettingsDescriptionList = [1, n0, _RSDL,\n 0, () => ReplicaSettingsDescription$\n];\nvar ReplicaSettingsUpdateList = [1, n0, _RSUL,\n 0, () => ReplicaSettingsUpdate$\n];\nvar ReplicationGroupUpdateList = [1, n0, _RGUL,\n 0, () => ReplicationGroupUpdate$\n];\nvar ReplicaUpdateList = [1, n0, _RUL,\n 0, () => ReplicaUpdate$\n];\nvar StringSetAttributeValue = 64 | 0;\nvar TableNameList = 64 | 0;\nvar TagKeyList = 64 | 0;\nvar TagList = [1, n0, _TL,\n 0, () => Tag$\n];\nvar ThrottlingReasonList = [1, n0, _TRL,\n 0, () => ThrottlingReason$\n];\nvar TransactGetItemList = [1, n0, _TGIL,\n 0, () => TransactGetItem$\n];\nvar TransactWriteItemList = [1, n0, _TWIL,\n 0, () => TransactWriteItem$\n];\nvar WriteRequests = [1, n0, _WRr,\n 0, () => WriteRequest$\n];\nvar AttributeMap = [2, n0, _AM,\n 0, 0, () => AttributeValue$\n];\nvar AttributeUpdates = [2, n0, _AU,\n 0, 0, () => AttributeValueUpdate$\n];\nvar BatchGetRequestMap = [2, n0, _BGRMa,\n 0, 0, () => KeysAndAttributes$\n];\nvar BatchGetResponseMap = [2, n0, _BGRM,\n 0, 0, () => ItemList\n];\nvar BatchWriteItemRequestMap = [2, n0, _BWIRM,\n 0, 0, () => WriteRequests\n];\nvar ExpectedAttributeMap = [2, n0, _EAM,\n 0, 0, () => ExpectedAttributeValue$\n];\nvar ExpressionAttributeNameMap = 128 | 0;\nvar ExpressionAttributeValueMap = [2, n0, _EAVM,\n 0, 0, () => AttributeValue$\n];\nvar FilterConditionMap = [2, n0, _FCM,\n 0, 0, () => Condition$\n];\nvar ItemCollectionKeyAttributeMap = [2, n0, _ICKAM,\n 0, 0, () => AttributeValue$\n];\nvar ItemCollectionMetricsPerTable = [2, n0, _ICMPT,\n 0, 0, () => ItemCollectionMetricsMultiple\n];\nvar Key = [2, n0, _K,\n 0, 0, () => AttributeValue$\n];\nvar KeyConditions = [2, n0, _KC,\n 0, 0, () => Condition$\n];\nvar MapAttributeValue = [2, n0, _MAV,\n 0, 0, () => AttributeValue$\n];\nvar PutItemInputAttributeMap = [2, n0, _PIIAM,\n 0, 0, () => AttributeValue$\n];\nvar SecondaryIndexesCapacityMap = [2, n0, _SICM,\n 0, 0, () => Capacity$\n];\nexport var AttributeValue$ = [4, n0, _AV,\n 0,\n [_S_, _N, _B_, _SS_, _NS, _BS_, _M_, _L_, _NULL, _BOOL],\n [0, 0, 21, 64 | 0, 64 | 0, 64 | 21, () => MapAttributeValue, () => ListAttributeValue, 2, 2]\n];\nexport var BatchExecuteStatement$ = [9, n0, _BES,\n 0, () => BatchExecuteStatementInput$, () => BatchExecuteStatementOutput$\n];\nexport var BatchGetItem$ = [9, n0, _BGI,\n 0, () => BatchGetItemInput$, () => BatchGetItemOutput$\n];\nexport var BatchWriteItem$ = [9, n0, _BWI,\n 0, () => BatchWriteItemInput$, () => BatchWriteItemOutput$\n];\nexport var CreateBackup$ = [9, n0, _CB,\n 0, () => CreateBackupInput$, () => CreateBackupOutput$\n];\nexport var CreateGlobalTable$ = [9, n0, _CGT,\n 0, () => CreateGlobalTableInput$, () => CreateGlobalTableOutput$\n];\nexport var CreateTable$ = [9, n0, _CTr,\n 0, () => CreateTableInput$, () => CreateTableOutput$\n];\nexport var DeleteBackup$ = [9, n0, _DB,\n 0, () => DeleteBackupInput$, () => DeleteBackupOutput$\n];\nexport var DeleteItem$ = [9, n0, _DI,\n 0, () => DeleteItemInput$, () => DeleteItemOutput$\n];\nexport var DeleteResourcePolicy$ = [9, n0, _DRP,\n 0, () => DeleteResourcePolicyInput$, () => DeleteResourcePolicyOutput$\n];\nexport var DeleteTable$ = [9, n0, _DT,\n 0, () => DeleteTableInput$, () => DeleteTableOutput$\n];\nexport var DescribeBackup$ = [9, n0, _DBe,\n 0, () => DescribeBackupInput$, () => DescribeBackupOutput$\n];\nexport var DescribeContinuousBackups$ = [9, n0, _DCB,\n 0, () => DescribeContinuousBackupsInput$, () => DescribeContinuousBackupsOutput$\n];\nexport var DescribeContributorInsights$ = [9, n0, _DCI,\n 0, () => DescribeContributorInsightsInput$, () => DescribeContributorInsightsOutput$\n];\nexport var DescribeEndpoints$ = [9, n0, _DE,\n 0, () => DescribeEndpointsRequest$, () => DescribeEndpointsResponse$\n];\nexport var DescribeExport$ = [9, n0, _DEe,\n 0, () => DescribeExportInput$, () => DescribeExportOutput$\n];\nexport var DescribeGlobalTable$ = [9, n0, _DGT,\n 0, () => DescribeGlobalTableInput$, () => DescribeGlobalTableOutput$\n];\nexport var DescribeGlobalTableSettings$ = [9, n0, _DGTS,\n 0, () => DescribeGlobalTableSettingsInput$, () => DescribeGlobalTableSettingsOutput$\n];\nexport var DescribeImport$ = [9, n0, _DIe,\n 0, () => DescribeImportInput$, () => DescribeImportOutput$\n];\nexport var DescribeKinesisStreamingDestination$ = [9, n0, _DKSD,\n 0, () => DescribeKinesisStreamingDestinationInput$, () => DescribeKinesisStreamingDestinationOutput$\n];\nexport var DescribeLimits$ = [9, n0, _DL,\n 0, () => DescribeLimitsInput$, () => DescribeLimitsOutput$\n];\nexport var DescribeTable$ = [9, n0, _DTe,\n 0, () => DescribeTableInput$, () => DescribeTableOutput$\n];\nexport var DescribeTableReplicaAutoScaling$ = [9, n0, _DTRAS,\n 0, () => DescribeTableReplicaAutoScalingInput$, () => DescribeTableReplicaAutoScalingOutput$\n];\nexport var DescribeTimeToLive$ = [9, n0, _DTTL,\n 0, () => DescribeTimeToLiveInput$, () => DescribeTimeToLiveOutput$\n];\nexport var DisableKinesisStreamingDestination$ = [9, n0, _DKSDi,\n 0, () => KinesisStreamingDestinationInput$, () => KinesisStreamingDestinationOutput$\n];\nexport var EnableKinesisStreamingDestination$ = [9, n0, _EKSD,\n 0, () => KinesisStreamingDestinationInput$, () => KinesisStreamingDestinationOutput$\n];\nexport var ExecuteStatement$ = [9, n0, _ESxe,\n 0, () => ExecuteStatementInput$, () => ExecuteStatementOutput$\n];\nexport var ExecuteTransaction$ = [9, n0, _ETxe,\n 0, () => ExecuteTransactionInput$, () => ExecuteTransactionOutput$\n];\nexport var ExportTableToPointInTime$ = [9, n0, _ETTPIT,\n 0, () => ExportTableToPointInTimeInput$, () => ExportTableToPointInTimeOutput$\n];\nexport var GetItem$ = [9, n0, _GI,\n 0, () => GetItemInput$, () => GetItemOutput$\n];\nexport var GetResourcePolicy$ = [9, n0, _GRP,\n 0, () => GetResourcePolicyInput$, () => GetResourcePolicyOutput$\n];\nexport var ImportTable$ = [9, n0, _IT,\n 0, () => ImportTableInput$, () => ImportTableOutput$\n];\nexport var ListBackups$ = [9, n0, _LB,\n 0, () => ListBackupsInput$, () => ListBackupsOutput$\n];\nexport var ListContributorInsights$ = [9, n0, _LCI,\n 0, () => ListContributorInsightsInput$, () => ListContributorInsightsOutput$\n];\nexport var ListExports$ = [9, n0, _LE,\n 0, () => ListExportsInput$, () => ListExportsOutput$\n];\nexport var ListGlobalTables$ = [9, n0, _LGT,\n 0, () => ListGlobalTablesInput$, () => ListGlobalTablesOutput$\n];\nexport var ListImports$ = [9, n0, _LI,\n 0, () => ListImportsInput$, () => ListImportsOutput$\n];\nexport var ListTables$ = [9, n0, _LT,\n 0, () => ListTablesInput$, () => ListTablesOutput$\n];\nexport var ListTagsOfResource$ = [9, n0, _LTOR,\n 0, () => ListTagsOfResourceInput$, () => ListTagsOfResourceOutput$\n];\nexport var PutItem$ = [9, n0, _PI,\n 0, () => PutItemInput$, () => PutItemOutput$\n];\nexport var PutResourcePolicy$ = [9, n0, _PRP,\n 0, () => PutResourcePolicyInput$, () => PutResourcePolicyOutput$\n];\nexport var Query$ = [9, n0, _Q,\n 0, () => QueryInput$, () => QueryOutput$\n];\nexport var RestoreTableFromBackup$ = [9, n0, _RTFB,\n 0, () => RestoreTableFromBackupInput$, () => RestoreTableFromBackupOutput$\n];\nexport var RestoreTableToPointInTime$ = [9, n0, _RTTPIT,\n 0, () => RestoreTableToPointInTimeInput$, () => RestoreTableToPointInTimeOutput$\n];\nexport var Scan$ = [9, n0, _Sc,\n 0, () => ScanInput$, () => ScanOutput$\n];\nexport var TagResource$ = [9, n0, _TRa,\n 0, () => TagResourceInput$, () => __Unit\n];\nexport var TransactGetItems$ = [9, n0, _TGIr,\n 0, () => TransactGetItemsInput$, () => TransactGetItemsOutput$\n];\nexport var TransactWriteItems$ = [9, n0, _TWIr,\n 0, () => TransactWriteItemsInput$, () => TransactWriteItemsOutput$\n];\nexport var UntagResource$ = [9, n0, _UR,\n 0, () => UntagResourceInput$, () => __Unit\n];\nexport var UpdateContinuousBackups$ = [9, n0, _UCB,\n 0, () => UpdateContinuousBackupsInput$, () => UpdateContinuousBackupsOutput$\n];\nexport var UpdateContributorInsights$ = [9, n0, _UCI,\n 0, () => UpdateContributorInsightsInput$, () => UpdateContributorInsightsOutput$\n];\nexport var UpdateGlobalTable$ = [9, n0, _UGT,\n 0, () => UpdateGlobalTableInput$, () => UpdateGlobalTableOutput$\n];\nexport var UpdateGlobalTableSettings$ = [9, n0, _UGTS,\n 0, () => UpdateGlobalTableSettingsInput$, () => UpdateGlobalTableSettingsOutput$\n];\nexport var UpdateItem$ = [9, n0, _UIp,\n 0, () => UpdateItemInput$, () => UpdateItemOutput$\n];\nexport var UpdateKinesisStreamingDestination$ = [9, n0, _UKSD,\n 0, () => UpdateKinesisStreamingDestinationInput$, () => UpdateKinesisStreamingDestinationOutput$\n];\nexport var UpdateTable$ = [9, n0, _UT,\n 0, () => UpdateTableInput$, () => UpdateTableOutput$\n];\nexport var UpdateTableReplicaAutoScaling$ = [9, n0, _UTRAS,\n 0, () => UpdateTableReplicaAutoScalingInput$, () => UpdateTableReplicaAutoScalingOutput$\n];\nexport var UpdateTimeToLive$ = [9, n0, _UTTL,\n 0, () => UpdateTimeToLiveInput$, () => UpdateTimeToLiveOutput$\n];\n","import { chain, CredentialsProviderError } from \"@smithy/property-provider\";\nexport const ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nexport const remoteProvider = async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await import(\"@smithy/credential-provider-imds\");\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await import(\"@aws-sdk/credential-provider-http\");\n return chain(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n};\n","export function memoizeChain(providers, treatAsExpired) {\n const chain = internalCreateChain(providers);\n let activeLock;\n let passiveLock;\n let credentials;\n const provider = async (options) => {\n if (options?.forceRefresh) {\n return await chain(options);\n }\n if (credentials?.expiration) {\n if (credentials?.expiration?.getTime() < Date.now()) {\n credentials = undefined;\n }\n }\n if (activeLock) {\n await activeLock;\n }\n else if (!credentials || treatAsExpired?.(credentials)) {\n if (credentials) {\n if (!passiveLock) {\n passiveLock = chain(options)\n .then((c) => {\n credentials = c;\n })\n .finally(() => {\n passiveLock = undefined;\n });\n }\n }\n else {\n activeLock = chain(options)\n .then((c) => {\n credentials = c;\n })\n .finally(() => {\n activeLock = undefined;\n });\n return provider(options);\n }\n }\n return credentials;\n };\n return provider;\n}\nexport const internalCreateChain = (providers) => async (awsIdentityProperties) => {\n let lastProviderError;\n for (const provider of providers) {\n try {\n return await provider(awsIdentityProperties);\n }\n catch (err) {\n lastProviderError = err;\n if (err?.tryNextLink) {\n continue;\n }\n throw err;\n }\n }\n throw lastProviderError;\n};\n","import { ENV_KEY, ENV_SECRET, fromEnv } from \"@aws-sdk/credential-provider-env\";\nimport { CredentialsProviderError } from \"@smithy/property-provider\";\nimport { ENV_PROFILE } from \"@smithy/shared-ini-file-loader\";\nimport { remoteProvider } from \"./remoteProvider\";\nimport { memoizeChain } from \"./runtime/memoize-chain\";\nlet multipleCredentialSourceWarningEmitted = false;\nexport const defaultProvider = (init = {}) => memoizeChain([\n async () => {\n const profile = init.profile ?? process.env[ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[ENV_KEY] && process.env[ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\"\n ? init.logger.warn.bind(init.logger)\n : console.warn;\n warnFn(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`);\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true,\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return fromEnv(init)();\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new CredentialsProviderError(\"Skipping SSO provider in default chain (inputs do not include SSO fields).\", { logger: init.logger });\n }\n const { fromSSO } = await import(\"@aws-sdk/credential-provider-sso\");\n return fromSSO(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await import(\"@aws-sdk/credential-provider-ini\");\n return fromIni(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await import(\"@aws-sdk/credential-provider-process\");\n return fromProcess(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await import(\"@aws-sdk/credential-provider-web-identity\");\n return fromTokenFile(init)(awsIdentityProperties);\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger,\n });\n },\n], credentialsTreatedAsExpired);\nexport const credentialsWillNeedRefresh = (credentials) => credentials?.expiration !== undefined;\nexport const credentialsTreatedAsExpired = (credentials) => credentials?.expiration !== undefined && credentials.expiration.getTime() - Date.now() < 300000;\n","import { RpcProtocol } from \"@smithy/core/protocols\";\nimport { deref, NormalizedSchema } from \"@smithy/core/schema\";\nimport { ProtocolLib } from \"../ProtocolLib\";\nimport { JsonCodec } from \"./JsonCodec\";\nimport { loadRestJsonErrorCode } from \"./parseJsonBody\";\nexport class AwsJsonRpcProtocol extends RpcProtocol {\n serializer;\n deserializer;\n serviceTarget;\n codec;\n mixin;\n awsQueryCompatible;\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n });\n this.serviceTarget = serviceTarget;\n this.codec =\n jsonCodec ??\n new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: 7,\n },\n jsonName: false,\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n this.awsQueryCompatible = !!awsQueryCompatible;\n this.mixin = new ProtocolLib(this.awsQueryCompatible);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n request.headers[\"content-type\"] = `application/x-amz-json-${this.getJsonRpcVersion()}`;\n request.headers[\"x-amz-target\"] = `${this.serviceTarget}.${operationSchema.name}`;\n if (this.awsQueryCompatible) {\n request.headers[\"x-amzn-query-mode\"] = \"true\";\n }\n if (deref(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n if (this.awsQueryCompatible) {\n this.mixin.setQueryCompatError(dataObject, response);\n }\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata, this.awsQueryCompatible ? this.mixin.findQueryCompatibleError : undefined);\n const ns = NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {};\n const errorDeserializer = this.codec.createDeserializer();\n for (const [name, member] of ns.structIterator()) {\n if (dataObject[name] != null) {\n output[name] = errorDeserializer.readObject(member, dataObject[name]);\n }\n }\n if (this.awsQueryCompatible) {\n this.mixin.queryCompatOutput(dataObject, output);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n}\n","import { AwsJsonRpcProtocol } from \"./AwsJsonRpcProtocol\";\nexport class AwsJson1_1Protocol extends AwsJsonRpcProtocol {\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n serviceTarget,\n awsQueryCompatible,\n jsonCodec,\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n getDefaultContentType() {\n return \"application/x-amz-json-1.1\";\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { Query$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class QueryCommand extends $Command\n .classBuilder()\n .ep({\n ...commonParams,\n ResourceArn: { type: \"contextParams\", name: \"TableName\" },\n})\n .m(function (Command, cs, config, o) {\n return [getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"DynamoDB_20120810\", \"Query\", {})\n .n(\"DynamoDBClient\", \"QueryCommand\")\n .sc(Query$)\n .build() {\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { Scan$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class ScanCommand extends $Command\n .classBuilder()\n .ep({\n ...commonParams,\n ResourceArn: { type: \"contextParams\", name: \"TableName\" },\n})\n .m(function (Command, cs, config, o) {\n return [getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"DynamoDB_20120810\", \"Scan\", {})\n .n(\"DynamoDBClient\", \"ScanCommand\")\n .sc(Scan$)\n .build() {\n}\n","export class NumberValue {\n value;\n constructor(value) {\n if (typeof value === \"object\" && \"N\" in value) {\n this.value = String(value.N);\n }\n else {\n this.value = String(value);\n }\n const valueOf = typeof value.valueOf() === \"number\" ? value.valueOf() : 0;\n const imprecise = valueOf > Number.MAX_SAFE_INTEGER ||\n valueOf < Number.MIN_SAFE_INTEGER ||\n Math.abs(valueOf) === Infinity ||\n Number.isNaN(valueOf);\n if (imprecise) {\n throw new Error(`NumberValue should not be initialized with an imprecise number=${valueOf}. Use a string instead.`);\n }\n }\n static from(value) {\n return new NumberValue(value);\n }\n toAttributeValue() {\n return {\n N: this.toString(),\n };\n }\n toBigInt() {\n const stringValue = this.toString();\n return BigInt(stringValue);\n }\n toString() {\n return String(this.value);\n }\n valueOf() {\n return this.toString();\n }\n}\n","import { NumberValue } from \"./NumberValue\";\nexport const convertToAttr = (data, options) => {\n if (data === undefined) {\n throw new Error(`Pass options.removeUndefinedValues=true to remove undefined values from map/array/set.`);\n }\n else if (data === null && typeof data === \"object\") {\n return convertToNullAttr();\n }\n else if (Array.isArray(data)) {\n return convertToListAttr(data, options);\n }\n else if (data?.constructor?.name === \"Set\") {\n return convertToSetAttr(data, options);\n }\n else if (data?.constructor?.name === \"Map\") {\n return convertToMapAttrFromIterable(data, options);\n }\n else if (data?.constructor?.name === \"Object\" ||\n (!data.constructor && typeof data === \"object\")) {\n return convertToMapAttrFromEnumerableProps(data, options);\n }\n else if (isBinary(data)) {\n if (data.length === 0 && options?.convertEmptyValues) {\n return convertToNullAttr();\n }\n return convertToBinaryAttr(data);\n }\n else if (typeof data === \"boolean\" || data?.constructor?.name === \"Boolean\") {\n return { BOOL: data.valueOf() };\n }\n else if (typeof data === \"number\" || data?.constructor?.name === \"Number\") {\n return convertToNumberAttr(data, options);\n }\n else if (data instanceof NumberValue) {\n return data.toAttributeValue();\n }\n else if (typeof data === \"bigint\") {\n return convertToBigIntAttr(data);\n }\n else if (typeof data === \"string\" || data?.constructor?.name === \"String\") {\n if (data.length === 0 && options?.convertEmptyValues) {\n return convertToNullAttr();\n }\n return convertToStringAttr(data);\n }\n else if (options?.convertClassInstanceToMap && typeof data === \"object\") {\n return convertToMapAttrFromEnumerableProps(data, options);\n }\n throw new Error(`Unsupported type passed: ${data}. Pass options.convertClassInstanceToMap=true to marshall typeof object as map attribute.`);\n};\nconst convertToListAttr = (data, options) => ({\n L: data\n .filter((item) => typeof item !== \"function\" &&\n (!options?.removeUndefinedValues || (options?.removeUndefinedValues && item !== undefined)))\n .map((item) => convertToAttr(item, options)),\n});\nconst convertToSetAttr = (set, options) => {\n const setToOperate = options?.removeUndefinedValues ? new Set([...set].filter((value) => value !== undefined)) : set;\n if (!options?.removeUndefinedValues && setToOperate.has(undefined)) {\n throw new Error(`Pass options.removeUndefinedValues=true to remove undefined values from map/array/set.`);\n }\n if (setToOperate.size === 0) {\n if (options?.convertEmptyValues) {\n return convertToNullAttr();\n }\n throw new Error(`Pass a non-empty set, or options.convertEmptyValues=true.`);\n }\n const item = setToOperate.values().next().value;\n if (item instanceof NumberValue) {\n return {\n NS: Array.from(setToOperate).map((_) => _.toString()),\n };\n }\n else if (typeof item === \"number\") {\n return {\n NS: Array.from(setToOperate)\n .map((num) => convertToNumberAttr(num, options))\n .map((item) => item.N),\n };\n }\n else if (typeof item === \"bigint\") {\n return {\n NS: Array.from(setToOperate)\n .map(convertToBigIntAttr)\n .map((item) => item.N),\n };\n }\n else if (typeof item === \"string\") {\n return {\n SS: Array.from(setToOperate)\n .map(convertToStringAttr)\n .map((item) => item.S),\n };\n }\n else if (isBinary(item)) {\n return {\n BS: Array.from(setToOperate)\n .map(convertToBinaryAttr)\n .map((item) => item.B),\n };\n }\n else {\n throw new Error(`Only Number Set (NS), Binary Set (BS) or String Set (SS) are allowed.`);\n }\n};\nconst convertToMapAttrFromIterable = (data, options) => ({\n M: ((data) => {\n const map = {};\n for (const [key, value] of data) {\n if (typeof value !== \"function\" && (value !== undefined || !options?.removeUndefinedValues)) {\n map[key] = convertToAttr(value, options);\n }\n }\n return map;\n })(data),\n});\nconst convertToMapAttrFromEnumerableProps = (data, options) => ({\n M: ((data) => {\n const map = {};\n for (const key in data) {\n const value = data[key];\n if (typeof value !== \"function\" && (value !== undefined || !options?.removeUndefinedValues)) {\n map[key] = convertToAttr(value, options);\n }\n }\n return map;\n })(data),\n});\nconst convertToNullAttr = () => ({ NULL: true });\nconst convertToBinaryAttr = (data) => ({ B: data });\nconst convertToStringAttr = (data) => ({ S: data.toString() });\nconst convertToBigIntAttr = (data) => ({ N: data.toString() });\nconst validateBigIntAndThrow = (errorPrefix) => {\n throw new Error(`${errorPrefix} Use NumberValue from @aws-sdk/lib-dynamodb.`);\n};\nconst convertToNumberAttr = (num, options) => {\n if ([Number.NaN, Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY]\n .map((val) => val.toString())\n .includes(num.toString())) {\n throw new Error(`Special numeric value ${num.toString()} is not allowed`);\n }\n else if (!options?.allowImpreciseNumbers) {\n if (Number(num) > Number.MAX_SAFE_INTEGER) {\n validateBigIntAndThrow(`Number ${num.toString()} is greater than Number.MAX_SAFE_INTEGER.`);\n }\n else if (Number(num) < Number.MIN_SAFE_INTEGER) {\n validateBigIntAndThrow(`Number ${num.toString()} is lesser than Number.MIN_SAFE_INTEGER.`);\n }\n }\n return { N: num.toString() };\n};\nconst isBinary = (data) => {\n const binaryTypes = [\n \"ArrayBuffer\",\n \"Blob\",\n \"Buffer\",\n \"DataView\",\n \"File\",\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Uint16Array\",\n \"Int32Array\",\n \"Uint32Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n ];\n if (data?.constructor) {\n return binaryTypes.includes(data.constructor.name);\n }\n return false;\n};\n","import { NumberValue } from \"./NumberValue\";\nexport const convertToNative = (data, options) => {\n for (const [key, value] of Object.entries(data)) {\n if (value !== undefined) {\n switch (key) {\n case \"NULL\":\n return null;\n case \"BOOL\":\n return Boolean(value);\n case \"N\":\n return convertNumber(value, options);\n case \"B\":\n return convertBinary(value);\n case \"S\":\n return convertString(value);\n case \"L\":\n return convertList(value, options);\n case \"M\":\n return convertMap(value, options);\n case \"NS\":\n return new Set(value.map((item) => convertNumber(item, options)));\n case \"BS\":\n return new Set(value.map(convertBinary));\n case \"SS\":\n return new Set(value.map(convertString));\n default:\n throw new Error(`Unsupported type passed: ${key}`);\n }\n }\n }\n throw new Error(`No value defined: ${JSON.stringify(data)}`);\n};\nconst convertNumber = (numString, options) => {\n if (typeof options?.wrapNumbers === \"function\") {\n return options?.wrapNumbers(numString);\n }\n if (options?.wrapNumbers) {\n return NumberValue.from(numString);\n }\n const num = Number(numString);\n const infinityValues = [Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY];\n const isLargeFiniteNumber = (num > Number.MAX_SAFE_INTEGER || num < Number.MIN_SAFE_INTEGER) && !infinityValues.includes(num);\n if (isLargeFiniteNumber) {\n if (typeof BigInt === \"function\") {\n try {\n return BigInt(numString);\n }\n catch (error) {\n throw new Error(`${numString} can't be converted to BigInt. Set options.wrapNumbers to get string value.`);\n }\n }\n else {\n throw new Error(`${numString} is outside SAFE_INTEGER bounds. Set options.wrapNumbers to get string value.`);\n }\n }\n return num;\n};\nconst convertString = (stringValue) => stringValue;\nconst convertBinary = (binaryValue) => binaryValue;\nconst convertList = (list, options) => list.map((item) => convertToNative(item, options));\nconst convertMap = (map, options) => Object.entries(map).reduce((acc, [key, value]) => ((acc[key] = convertToNative(value, options)), acc), {});\n","import { convertToAttr } from \"./convertToAttr\";\nexport function marshall(data, options) {\n const attributeValue = convertToAttr(data, options);\n const [key, value] = Object.entries(attributeValue)[0];\n switch (key) {\n case \"M\":\n case \"L\":\n return options?.convertTopLevelContainer ? attributeValue : value;\n case \"SS\":\n case \"NS\":\n case \"BS\":\n case \"S\":\n case \"N\":\n case \"B\":\n case \"NULL\":\n case \"BOOL\":\n case \"$unknown\":\n default:\n return attributeValue;\n }\n}\n","import { convertToNative } from \"./convertToNative\";\nexport const unmarshall = (data, options) => {\n if (options?.convertWithoutMapWrapper) {\n return convertToNative(data, options);\n }\n return convertToNative({ M: data }, options);\n};\n","function createError(message) {\n const err = new Error(message);\n err.source = \"ulid\";\n return err;\n}\n// These values should NEVER change. If\n// they do, we're no longer making ulids!\nconst ENCODING = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\"; // Crockford's Base32\nconst ENCODING_LEN = ENCODING.length;\nconst TIME_MAX = Math.pow(2, 48) - 1;\nconst TIME_LEN = 10;\nconst RANDOM_LEN = 16;\nfunction replaceCharAt(str, index, char) {\n if (index > str.length - 1) {\n return str;\n }\n return str.substr(0, index) + char + str.substr(index + 1);\n}\nfunction incrementBase32(str) {\n let done = undefined;\n let index = str.length;\n let char;\n let charIndex;\n const maxCharIndex = ENCODING_LEN - 1;\n while (!done && index-- >= 0) {\n char = str[index];\n charIndex = ENCODING.indexOf(char);\n if (charIndex === -1) {\n throw createError(\"incorrectly encoded string\");\n }\n if (charIndex === maxCharIndex) {\n str = replaceCharAt(str, index, ENCODING[0]);\n continue;\n }\n done = replaceCharAt(str, index, ENCODING[charIndex + 1]);\n }\n if (typeof done === \"string\") {\n return done;\n }\n throw createError(\"cannot increment this string\");\n}\nfunction randomChar(prng) {\n let rand = Math.floor(prng() * ENCODING_LEN);\n if (rand === ENCODING_LEN) {\n rand = ENCODING_LEN - 1;\n }\n return ENCODING.charAt(rand);\n}\nfunction encodeTime(now, len) {\n if (isNaN(now)) {\n throw new Error(now + \" must be a number\");\n }\n if (now > TIME_MAX) {\n throw createError(\"cannot encode time greater than \" + TIME_MAX);\n }\n if (now < 0) {\n throw createError(\"time must be positive\");\n }\n if (Number.isInteger(Number(now)) === false) {\n throw createError(\"time must be an integer\");\n }\n let mod;\n let str = \"\";\n for (; len > 0; len--) {\n mod = now % ENCODING_LEN;\n str = ENCODING.charAt(mod) + str;\n now = (now - mod) / ENCODING_LEN;\n }\n return str;\n}\nfunction encodeRandom(len, prng) {\n let str = \"\";\n for (; len > 0; len--) {\n str = randomChar(prng) + str;\n }\n return str;\n}\nfunction decodeTime(id) {\n if (id.length !== TIME_LEN + RANDOM_LEN) {\n throw createError(\"malformed ulid\");\n }\n var time = id\n .substr(0, TIME_LEN)\n .split(\"\")\n .reverse()\n .reduce((carry, char, index) => {\n const encodingIndex = ENCODING.indexOf(char);\n if (encodingIndex === -1) {\n throw createError(\"invalid character found: \" + char);\n }\n return (carry += encodingIndex * Math.pow(ENCODING_LEN, index));\n }, 0);\n if (time > TIME_MAX) {\n throw createError(\"malformed ulid, timestamp too large\");\n }\n return time;\n}\nfunction detectPrng(allowInsecure = false, root) {\n if (!root) {\n root = typeof window !== \"undefined\" ? window : null;\n }\n const browserCrypto = root && (root.crypto || root.msCrypto);\n if (browserCrypto) {\n return () => {\n const buffer = new Uint8Array(1);\n browserCrypto.getRandomValues(buffer);\n return buffer[0] / 0xff;\n };\n }\n else {\n try {\n const nodeCrypto = require(\"crypto\");\n return () => nodeCrypto.randomBytes(1).readUInt8() / 0xff;\n }\n catch (e) { }\n }\n if (allowInsecure) {\n try {\n console.error(\"secure crypto unusable, falling back to insecure Math.random()!\");\n }\n catch (e) { }\n return () => Math.random();\n }\n throw createError(\"secure crypto unusable, insecure Math.random not allowed\");\n}\nfunction factory(currPrng) {\n if (!currPrng) {\n currPrng = detectPrng();\n }\n return function ulid(seedTime) {\n if (isNaN(seedTime)) {\n seedTime = Date.now();\n }\n return encodeTime(seedTime, TIME_LEN) + encodeRandom(RANDOM_LEN, currPrng);\n };\n}\nfunction monotonicFactory(currPrng) {\n if (!currPrng) {\n currPrng = detectPrng();\n }\n let lastTime = 0;\n let lastRandom;\n return function ulid(seedTime) {\n if (isNaN(seedTime)) {\n seedTime = Date.now();\n }\n if (seedTime <= lastTime) {\n const incrementedRandom = (lastRandom = incrementBase32(lastRandom));\n return encodeTime(lastTime, TIME_LEN) + incrementedRandom;\n }\n lastTime = seedTime;\n const newRandom = (lastRandom = encodeRandom(RANDOM_LEN, currPrng));\n return encodeTime(seedTime, TIME_LEN) + newRandom;\n };\n}\nconst ulid = factory();\n\nexport { decodeTime, detectPrng, encodeRandom, encodeTime, factory, incrementBase32, monotonicFactory, randomChar, replaceCharAt, ulid };\n","import { marshall, unmarshall } from \"@aws-sdk/util-dynamodb\";\nexport const SELF = null;\nexport const ALL_VALUES = {};\nexport const ALL_MEMBERS = [];\nconst NEXT_LEVEL = \"*\";\nconst processObj = (obj, processFunc, keyNodes) => {\n if (obj !== undefined) {\n if (keyNodes == null) {\n return processFunc(obj);\n }\n else {\n const keys = Object.keys(keyNodes);\n const goToNextLevel = keys.length === 1 && keys[0] === NEXT_LEVEL;\n const someChildren = keys.length >= 1 && !goToNextLevel;\n const allChildren = keys.length === 0;\n if (someChildren) {\n return processKeysInObj(obj, processFunc, keyNodes);\n }\n else if (allChildren) {\n return processAllKeysInObj(obj, processFunc, SELF);\n }\n else if (goToNextLevel) {\n return Object.entries(obj ?? {}).reduce((acc, [k, v]) => {\n if (typeof v !== \"function\") {\n acc[k] = processObj(v, processFunc, keyNodes[NEXT_LEVEL]);\n }\n return acc;\n }, (Array.isArray(obj) ? [] : {}));\n }\n }\n }\n return undefined;\n};\nconst processKeysInObj = (obj, processFunc, keyNodes) => {\n let accumulator;\n if (Array.isArray(obj)) {\n accumulator = obj.filter((item) => typeof item !== \"function\");\n }\n else {\n accumulator = {};\n for (const [k, v] of Object.entries(obj)) {\n if (typeof v !== \"function\") {\n accumulator[k] = v;\n }\n }\n }\n for (const [nodeKey, nodes] of Object.entries(keyNodes)) {\n if (typeof obj[nodeKey] === \"function\") {\n continue;\n }\n const processedValue = processObj(obj[nodeKey], processFunc, nodes);\n if (processedValue !== undefined && typeof processedValue !== \"function\") {\n accumulator[nodeKey] = processedValue;\n }\n }\n return accumulator;\n};\nconst processAllKeysInObj = (obj, processFunc, keyNodes) => {\n if (Array.isArray(obj)) {\n return obj.filter((item) => typeof item !== \"function\").map((item) => processObj(item, processFunc, keyNodes));\n }\n return Object.entries(obj).reduce((acc, [key, value]) => {\n if (typeof value === \"function\") {\n return acc;\n }\n const processedValue = processObj(value, processFunc, keyNodes);\n if (processedValue !== undefined && typeof processedValue !== \"function\") {\n acc[key] = processedValue;\n }\n return acc;\n }, {});\n};\nexport const marshallInput = (obj, keyNodes, options) => {\n const marshallFunc = (toMarshall) => marshall(toMarshall, options);\n return processKeysInObj(obj, marshallFunc, keyNodes);\n};\nexport const unmarshallOutput = (obj, keyNodes, options) => {\n const unmarshallFunc = (toMarshall) => unmarshall(toMarshall, options);\n return processKeysInObj(obj, unmarshallFunc, keyNodes);\n};\n","import { setFeature } from \"@aws-sdk/core\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { marshallInput, unmarshallOutput } from \"../commands/utils\";\nexport class DynamoDBDocumentClientCommand extends $Command {\n addMarshallingMiddleware(configuration) {\n const { marshallOptions = {}, unmarshallOptions = {} } = configuration.translateConfig || {};\n marshallOptions.convertTopLevelContainer = marshallOptions.convertTopLevelContainer ?? true;\n unmarshallOptions.convertWithoutMapWrapper = unmarshallOptions.convertWithoutMapWrapper ?? true;\n this.clientCommand.middlewareStack.addRelativeTo((next, context) => async (args) => {\n setFeature(context, \"DDB_MAPPER\", \"d\");\n return next({\n ...args,\n input: marshallInput(args.input, this.inputKeyNodes, marshallOptions),\n });\n }, {\n name: \"DocumentMarshall\",\n relation: \"before\",\n toMiddleware: \"serializerMiddleware\",\n override: true,\n });\n this.clientCommand.middlewareStack.addRelativeTo((next, context) => async (args) => {\n const deserialized = await next(args);\n deserialized.output = unmarshallOutput(deserialized.output, this.outputKeyNodes, unmarshallOptions);\n return deserialized;\n }, {\n name: \"DocumentUnmarshall\",\n relation: \"before\",\n toMiddleware: \"deserializerMiddleware\",\n override: true,\n });\n }\n}\n","import { Command as $Command } from \"@smithy/smithy-client\";\nimport { DynamoDBDocumentClientCommand } from \"../baseCommand/DynamoDBDocumentClientCommand\";\nimport { ALL_MEMBERS, ALL_VALUES } from \"../commands/utils\";\nimport { QueryCommand as __QueryCommand } from \"@aws-sdk/client-dynamodb\";\nexport { DynamoDBDocumentClientCommand, $Command };\nexport class QueryCommand extends DynamoDBDocumentClientCommand {\n input;\n inputKeyNodes = {\n 'KeyConditions': {\n '*': {\n 'AttributeValueList': ALL_MEMBERS,\n }\n },\n 'QueryFilter': {\n '*': {\n 'AttributeValueList': ALL_MEMBERS,\n }\n },\n 'ExclusiveStartKey': ALL_VALUES,\n 'ExpressionAttributeValues': ALL_VALUES,\n };\n outputKeyNodes = {\n 'Items': {\n '*': ALL_VALUES\n },\n 'LastEvaluatedKey': ALL_VALUES,\n };\n clientCommand;\n middlewareStack;\n constructor(input) {\n super();\n this.input = input;\n this.clientCommand = new __QueryCommand(this.input);\n this.middlewareStack = this.clientCommand.middlewareStack;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.addMarshallingMiddleware(configuration);\n const stack = clientStack.concat(this.middlewareStack);\n const handler = this.clientCommand.resolveMiddleware(stack, configuration, options);\n return async () => handler(this.clientCommand);\n }\n}\n","import { Command as $Command } from \"@smithy/smithy-client\";\nimport { DynamoDBDocumentClientCommand } from \"../baseCommand/DynamoDBDocumentClientCommand\";\nimport { ALL_MEMBERS, ALL_VALUES } from \"../commands/utils\";\nimport { ScanCommand as __ScanCommand } from \"@aws-sdk/client-dynamodb\";\nexport { DynamoDBDocumentClientCommand, $Command };\nexport class ScanCommand extends DynamoDBDocumentClientCommand {\n input;\n inputKeyNodes = {\n 'ScanFilter': {\n '*': {\n 'AttributeValueList': ALL_MEMBERS,\n }\n },\n 'ExclusiveStartKey': ALL_VALUES,\n 'ExpressionAttributeValues': ALL_VALUES,\n };\n outputKeyNodes = {\n 'Items': {\n '*': ALL_VALUES\n },\n 'LastEvaluatedKey': ALL_VALUES,\n };\n clientCommand;\n middlewareStack;\n constructor(input) {\n super();\n this.input = input;\n this.clientCommand = new __ScanCommand(this.input);\n this.middlewareStack = this.clientCommand.middlewareStack;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.addMarshallingMiddleware(configuration);\n const stack = clientStack.concat(this.middlewareStack);\n const handler = this.clientCommand.resolveMiddleware(stack, configuration, options);\n return async () => handler(this.clientCommand);\n }\n}\n","import { Client as __Client } from \"@smithy/smithy-client\";\nexport { __Client };\nexport class DynamoDBDocumentClient extends __Client {\n config;\n constructor(client, translateConfig) {\n super(client.config);\n this.config = client.config;\n this.config.translateConfig = translateConfig;\n this.middlewareStack = client.middlewareStack;\n if (this.config?.cacheMiddleware) {\n throw new Error(\"@aws-sdk/lib-dynamodb - cacheMiddleware=true is not compatible with the\"\n + \" DynamoDBDocumentClient. This option must be set to false.\");\n }\n }\n static from(client, translateConfig) {\n return new DynamoDBDocumentClient(client, translateConfig);\n }\n destroy() {\n }\n}\n","import { createPaginator } from \"@smithy/core\";\nimport { QueryCommand } from \"../commands/QueryCommand\";\nimport { DynamoDBDocumentClient } from \"../DynamoDBDocumentClient\";\nexport const paginateQuery = createPaginator(DynamoDBDocumentClient, QueryCommand, \"ExclusiveStartKey\", \"LastEvaluatedKey\", \"Limit\");\n","import { createPaginator } from \"@smithy/core\";\nimport { ScanCommand } from \"../commands/ScanCommand\";\nimport { DynamoDBDocumentClient } from \"../DynamoDBDocumentClient\";\nexport const paginateScan = createPaginator(DynamoDBDocumentClient, ScanCommand, \"ExclusiveStartKey\", \"LastEvaluatedKey\", \"Limit\");\n","// src/utils/encode.ts\nvar decodeBase64Url = (str) => {\n return decodeBase64(str.replace(/_|-/g, (m) => ({ _: \"/\", \"-\": \"+\" })[m] ?? m));\n};\nvar encodeBase64Url = (buf) => encodeBase64(buf).replace(/\\/|\\+/g, (m) => ({ \"/\": \"_\", \"+\": \"-\" })[m] ?? m);\nvar encodeBase64 = (buf) => {\n let binary = \"\";\n const bytes = new Uint8Array(buf);\n for (let i = 0, len = bytes.length; i < len; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary);\n};\nvar decodeBase64 = (str) => {\n const binary = atob(str);\n const bytes = new Uint8Array(new ArrayBuffer(binary.length));\n const half = binary.length / 2;\n for (let i = 0, j = binary.length - 1; i <= half; i++, j--) {\n bytes[i] = binary.charCodeAt(i);\n bytes[j] = binary.charCodeAt(j);\n }\n return bytes;\n};\nexport {\n decodeBase64,\n decodeBase64Url,\n encodeBase64,\n encodeBase64Url\n};\n","// src/adapter/aws-lambda/handler.ts\nimport { decodeBase64, encodeBase64 } from \"../../utils/encode.js\";\nfunction sanitizeHeaderValue(value) {\n const hasNonAscii = /[^\\x00-\\x7F]/.test(value);\n if (!hasNonAscii) {\n return value;\n }\n return encodeURIComponent(value);\n}\nvar getRequestContext = (event) => {\n return event.requestContext;\n};\nvar streamToNodeStream = async (reader, writer) => {\n let readResult = await reader.read();\n while (!readResult.done) {\n writer.write(readResult.value);\n readResult = await reader.read();\n }\n writer.end();\n};\nvar streamHandle = (app) => {\n return awslambda.streamifyResponse(\n async (event, responseStream, context) => {\n const processor = getProcessor(event);\n try {\n const req = processor.createRequest(event);\n const requestContext = getRequestContext(event);\n const res = await app.fetch(req, {\n event,\n requestContext,\n context\n });\n const headers = {};\n const cookies = [];\n res.headers.forEach((value, name) => {\n if (name === \"set-cookie\") {\n cookies.push(value);\n } else {\n headers[name] = value;\n }\n });\n const httpResponseMetadata = {\n statusCode: res.status,\n headers,\n cookies\n };\n responseStream = awslambda.HttpResponseStream.from(responseStream, httpResponseMetadata);\n if (res.body) {\n await streamToNodeStream(res.body.getReader(), responseStream);\n } else {\n responseStream.write(\"\");\n }\n } catch (error) {\n console.error(\"Error processing request:\", error);\n responseStream.write(\"Internal Server Error\");\n } finally {\n responseStream.end();\n }\n }\n );\n};\nvar handle = (app, { isContentTypeBinary } = { isContentTypeBinary: void 0 }) => {\n return async (event, lambdaContext) => {\n const processor = getProcessor(event);\n const req = processor.createRequest(event);\n const requestContext = getRequestContext(event);\n const res = await app.fetch(req, {\n event,\n requestContext,\n lambdaContext\n });\n return processor.createResult(event, res, { isContentTypeBinary });\n };\n};\nvar EventProcessor = class {\n getHeaderValue(headers, key) {\n const value = headers ? Array.isArray(headers[key]) ? headers[key][0] : headers[key] : void 0;\n return value;\n }\n getDomainName(event) {\n if (event.requestContext && \"domainName\" in event.requestContext) {\n return event.requestContext.domainName;\n }\n const hostFromHeaders = this.getHeaderValue(event.headers, \"host\");\n if (hostFromHeaders) {\n return hostFromHeaders;\n }\n const multiValueHeaders = \"multiValueHeaders\" in event ? event.multiValueHeaders : {};\n const hostFromMultiValueHeaders = this.getHeaderValue(multiValueHeaders, \"host\");\n return hostFromMultiValueHeaders;\n }\n createRequest(event) {\n const queryString = this.getQueryString(event);\n const domainName = this.getDomainName(event);\n const path = this.getPath(event);\n const urlPath = `https://${domainName}${path}`;\n const url = queryString ? `${urlPath}?${queryString}` : urlPath;\n const headers = this.getHeaders(event);\n const method = this.getMethod(event);\n const requestInit = {\n headers,\n method\n };\n if (event.body) {\n requestInit.body = event.isBase64Encoded ? decodeBase64(event.body) : event.body;\n }\n return new Request(url, requestInit);\n }\n async createResult(event, res, options) {\n const contentType = res.headers.get(\"content-type\");\n const isContentTypeBinary = options.isContentTypeBinary ?? defaultIsContentTypeBinary;\n let isBase64Encoded = contentType && isContentTypeBinary(contentType) ? true : false;\n if (!isBase64Encoded) {\n const contentEncoding = res.headers.get(\"content-encoding\");\n isBase64Encoded = isContentEncodingBinary(contentEncoding);\n }\n const body = isBase64Encoded ? encodeBase64(await res.arrayBuffer()) : await res.text();\n const result = {\n body,\n statusCode: res.status,\n isBase64Encoded,\n ...\"multiValueHeaders\" in event && event.multiValueHeaders ? {\n multiValueHeaders: {}\n } : {\n headers: {}\n }\n };\n this.setCookies(event, res, result);\n if (result.multiValueHeaders) {\n res.headers.forEach((value, key) => {\n result.multiValueHeaders[key] = [value];\n });\n } else {\n res.headers.forEach((value, key) => {\n result.headers[key] = value;\n });\n }\n return result;\n }\n setCookies(_event, res, result) {\n if (res.headers.has(\"set-cookie\")) {\n const cookies = res.headers.getSetCookie ? res.headers.getSetCookie() : Array.from(res.headers.entries()).filter(([k]) => k === \"set-cookie\").map(([, v]) => v);\n if (Array.isArray(cookies)) {\n this.setCookiesToResult(result, cookies);\n res.headers.delete(\"set-cookie\");\n }\n }\n }\n};\nvar EventV2Processor = class extends EventProcessor {\n getPath(event) {\n return event.rawPath;\n }\n getMethod(event) {\n return event.requestContext.http.method;\n }\n getQueryString(event) {\n return event.rawQueryString;\n }\n getCookies(event, headers) {\n if (Array.isArray(event.cookies)) {\n headers.set(\"Cookie\", event.cookies.join(\"; \"));\n }\n }\n setCookiesToResult(result, cookies) {\n result.cookies = cookies;\n }\n getHeaders(event) {\n const headers = new Headers();\n this.getCookies(event, headers);\n if (event.headers) {\n for (const [k, v] of Object.entries(event.headers)) {\n if (v) {\n headers.set(k, v);\n }\n }\n }\n return headers;\n }\n};\nvar v2Processor = new EventV2Processor();\nvar EventV1Processor = class extends EventProcessor {\n getPath(event) {\n return event.path;\n }\n getMethod(event) {\n return event.httpMethod;\n }\n getQueryString(event) {\n if (event.multiValueQueryStringParameters) {\n return Object.entries(event.multiValueQueryStringParameters || {}).filter(([, value]) => value).map(\n ([key, values]) => values.map((value) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`).join(\"&\")\n ).join(\"&\");\n } else {\n return Object.entries(event.queryStringParameters || {}).filter(([, value]) => value).map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value || \"\")}`).join(\"&\");\n }\n }\n getCookies(_event, _headers) {\n }\n getHeaders(event) {\n const headers = new Headers();\n this.getCookies(event, headers);\n if (event.headers) {\n for (const [k, v] of Object.entries(event.headers)) {\n if (v) {\n headers.set(k, sanitizeHeaderValue(v));\n }\n }\n }\n if (event.multiValueHeaders) {\n for (const [k, values] of Object.entries(event.multiValueHeaders)) {\n if (values) {\n const foundK = headers.get(k);\n values.forEach((v) => {\n const sanitizedValue = sanitizeHeaderValue(v);\n return (!foundK || !foundK.includes(sanitizedValue)) && headers.append(k, sanitizedValue);\n });\n }\n }\n }\n return headers;\n }\n setCookiesToResult(result, cookies) {\n result.multiValueHeaders = {\n \"set-cookie\": cookies\n };\n }\n};\nvar v1Processor = new EventV1Processor();\nvar ALBProcessor = class extends EventProcessor {\n getHeaders(event) {\n const headers = new Headers();\n if (event.multiValueHeaders) {\n for (const [key, values] of Object.entries(event.multiValueHeaders)) {\n if (values && Array.isArray(values)) {\n const sanitizedValue = sanitizeHeaderValue(values.join(\"; \"));\n headers.set(key, sanitizedValue);\n }\n }\n } else {\n for (const [key, value] of Object.entries(event.headers ?? {})) {\n if (value) {\n headers.set(key, sanitizeHeaderValue(value));\n }\n }\n }\n return headers;\n }\n getPath(event) {\n return event.path;\n }\n getMethod(event) {\n return event.httpMethod;\n }\n getQueryString(event) {\n if (event.multiValueQueryStringParameters) {\n return Object.entries(event.multiValueQueryStringParameters || {}).filter(([, value]) => value).map(([key, value]) => `${key}=${value.join(`&${key}=`)}`).join(\"&\");\n } else {\n return Object.entries(event.queryStringParameters || {}).filter(([, value]) => value).map(([key, value]) => `${key}=${value}`).join(\"&\");\n }\n }\n getCookies(event, headers) {\n let cookie;\n if (event.multiValueHeaders) {\n cookie = event.multiValueHeaders[\"cookie\"]?.join(\"; \");\n } else {\n cookie = event.headers ? event.headers[\"cookie\"] : void 0;\n }\n if (cookie) {\n headers.append(\"Cookie\", cookie);\n }\n }\n setCookiesToResult(result, cookies) {\n if (result.multiValueHeaders) {\n result.multiValueHeaders[\"set-cookie\"] = cookies;\n } else {\n result.headers[\"set-cookie\"] = cookies.join(\", \");\n }\n }\n};\nvar albProcessor = new ALBProcessor();\nvar LatticeV2Processor = class extends EventProcessor {\n getPath(event) {\n return event.path;\n }\n getMethod(event) {\n return event.method;\n }\n getQueryString() {\n return \"\";\n }\n getHeaders(event) {\n const headers = new Headers();\n if (event.headers) {\n for (const [k, values] of Object.entries(event.headers)) {\n if (values) {\n const foundK = headers.get(k);\n values.forEach((v) => {\n const sanitizedValue = sanitizeHeaderValue(v);\n return (!foundK || !foundK.includes(sanitizedValue)) && headers.append(k, sanitizedValue);\n });\n }\n }\n }\n return headers;\n }\n getCookies() {\n }\n setCookiesToResult(result, cookies) {\n result.headers = {\n ...result.headers,\n \"set-cookie\": cookies.join(\", \")\n };\n }\n};\nvar latticeV2Processor = new LatticeV2Processor();\nvar getProcessor = (event) => {\n if (isProxyEventALB(event)) {\n return albProcessor;\n }\n if (isProxyEventV2(event)) {\n return v2Processor;\n }\n if (isLatticeEventV2(event)) {\n return latticeV2Processor;\n }\n return v1Processor;\n};\nvar isProxyEventALB = (event) => {\n if (event.requestContext) {\n return Object.hasOwn(event.requestContext, \"elb\");\n }\n return false;\n};\nvar isProxyEventV2 = (event) => {\n return Object.hasOwn(event, \"rawPath\");\n};\nvar isLatticeEventV2 = (event) => {\n if (event.requestContext) {\n return Object.hasOwn(event.requestContext, \"serviceArn\");\n }\n return false;\n};\nvar defaultIsContentTypeBinary = (contentType) => {\n return !/^text\\/(?:plain|html|css|javascript|csv)|(?:\\/|\\+)(?:json|xml)\\s*(?:;|$)/.test(\n contentType\n );\n};\nvar isContentEncodingBinary = (contentEncoding) => {\n if (contentEncoding === null) {\n return false;\n }\n return /^(gzip|deflate|compress|br)/.test(contentEncoding);\n};\nexport {\n ALBProcessor,\n EventProcessor,\n EventV1Processor,\n EventV2Processor,\n LatticeV2Processor,\n defaultIsContentTypeBinary,\n getProcessor,\n handle,\n isContentEncodingBinary,\n streamHandle\n};\n","import { createFactory } from 'hono/factory';\nimport httpStatus from 'http-status';\n\nconst factory = createFactory();\n\nconst API_KEYS: string[] = process.env.API_KEYS\n ? JSON.parse(process.env.API_KEYS as string)\n : [];\n\nconst apiKeyAuth = factory.createMiddleware(async (c, next) => {\n const xApiKey = c.req.header('x-api-key');\n\n // check if its public url\n if (c.req.url.match(/^\\/core\\/public\\//)) {\n return await next();\n }\n\n if (!xApiKey || Array.isArray(xApiKey) || !API_KEYS.includes(xApiKey)) {\n c.status(httpStatus.UNAUTHORIZED);\n return c.json({\n status: httpStatus.UNAUTHORIZED,\n message: httpStatus['401_MESSAGE'],\n });\n }\n\n return await next();\n});\n\nexport default apiKeyAuth;\n","import { nanoid } from 'nanoid';\nimport { publishErrorEvent, publishEvent } from './event';\n\nexport const getDependencies = () => {\n return {\n nanoid,\n publishEvent,\n publishErrorEvent,\n };\n};\n","const E = \"required\", F = \"type\", G = \"fn\", H = \"argv\", I = \"ref\";\nconst a = false, b = true, c = \"isSet\", d = \"stringEquals\", e = \"getAttr\", f = \"booleanEquals\", g = \"endpoint\", h = \"tree\", i = \"error\", j = { [E]: false, [F]: \"string\" }, k = { [E]: true, \"default\": false, [F]: \"boolean\" }, l = { [I]: \"Endpoint\" }, m = { [G]: c, [H]: [{ [I]: \"Region\" }] }, n = { [I]: \"Region\" }, o = { [G]: \"aws.partition\", [H]: [n], \"assign\": \"PartitionResult\" }, p = { [I]: \"PartitionResult\" }, q = { [G]: f, [H]: [{ [I]: \"UseFIPS\" }, true] }, r = { [I]: \"UseFIPS\" }, s = { [G]: f, [H]: [{ [I]: \"UseDualStack\" }, true] }, t = { \"url\": \"https://events.{Region}.{PartitionResult#dualStackDnsSuffix}\", \"properties\": {}, \"headers\": {} }, u = {}, v = { [I]: \"EndpointId\" }, w = { \"authSchemes\": [{ \"name\": \"sigv4a\", \"signingName\": \"events\", \"signingRegionSet\": [\"*\"] }] }, x = { [G]: f, [H]: [true, { [G]: e, [H]: [p, \"supportsDualStack\"] }] }, y = { [i]: \"DualStack is enabled but this partition does not support DualStack\", [F]: i }, z = { [G]: e, [H]: [p, \"supportsFIPS\"] }, A = [{ [G]: c, [H]: [l] }], B = [s], C = [x], D = [q];\nconst _data = { version: \"1.0\", parameters: { Region: j, UseDualStack: k, UseFIPS: k, Endpoint: j, EndpointId: j }, rules: [{ conditions: [{ [G]: \"not\", [H]: A }, m, o, { [G]: d, [H]: [{ [G]: e, [H]: [p, \"name\"] }, \"aws-us-gov\"] }, q, s], endpoint: t, [F]: g }, { conditions: [{ [G]: c, [H]: [v] }, m, o], rules: [{ conditions: [{ [G]: \"isValidHostLabel\", [H]: [v, b] }], rules: [{ conditions: [{ [G]: f, [H]: [r, a] }], rules: [{ conditions: A, endpoint: { url: l, properties: w, headers: u }, [F]: g }, { conditions: B, rules: [{ conditions: C, rules: [{ endpoint: { url: \"https://{EndpointId}.endpoint.events.{PartitionResult#dualStackDnsSuffix}\", properties: w, headers: u }, [F]: g }], [F]: h }, y], [F]: h }, { endpoint: { url: \"https://{EndpointId}.endpoint.events.{PartitionResult#dnsSuffix}\", properties: w, headers: u }, [F]: g }], [F]: h }, { error: \"Invalid Configuration: FIPS is not supported with EventBridge multi-region endpoints.\", [F]: i }], [F]: h }, { error: \"EndpointId must be a valid host label.\", [F]: i }], [F]: h }, { conditions: A, rules: [{ conditions: D, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [F]: i }, { conditions: B, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [F]: i }, { endpoint: { url: l, properties: u, headers: u }, [F]: g }], [F]: h }, { conditions: [m], rules: [{ conditions: [o], rules: [{ conditions: [q, s], rules: [{ conditions: [{ [G]: f, [H]: [b, z] }, x], rules: [{ endpoint: { url: \"https://events-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: u, headers: u }, [F]: g }], [F]: h }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [F]: i }], [F]: h }, { conditions: D, rules: [{ conditions: [{ [G]: f, [H]: [z, b] }], rules: [{ conditions: [{ [G]: d, [H]: [n, \"us-gov-east-1\"] }], endpoint: { url: \"https://events.us-gov-east-1.amazonaws.com\", properties: u, headers: u }, [F]: g }, { conditions: [{ [G]: d, [H]: [n, \"us-gov-west-1\"] }], endpoint: { url: \"https://events.us-gov-west-1.amazonaws.com\", properties: u, headers: u }, [F]: g }, { endpoint: { url: \"https://events-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: u, headers: u }, [F]: g }], [F]: h }, { error: \"FIPS is enabled but this partition does not support FIPS\", [F]: i }], [F]: h }, { conditions: B, rules: [{ conditions: C, rules: [{ endpoint: t, [F]: g }], [F]: h }, y], [F]: h }, { endpoint: { url: \"https://events.{Region}.{PartitionResult#dnsSuffix}\", properties: u, headers: u }, [F]: g }], [F]: h }], [F]: h }, { error: \"Invalid Configuration: Missing Region\", [F]: i }] };\nexport const ruleSet = _data;\n","import { awsEndpointFunctions } from \"@aws-sdk/util-endpoints\";\nimport { customEndpointFunctions, EndpointCache, resolveEndpoint } from \"@smithy/util-endpoints\";\nimport { ruleSet } from \"./ruleset\";\nconst cache = new EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"EndpointId\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nexport const defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => resolveEndpoint(ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\ncustomEndpointFunctions.aws = awsEndpointFunctions;\n","import { resolveAwsSdkSigV4AConfig, resolveAwsSdkSigV4Config, } from \"@aws-sdk/core\";\nimport { SignatureV4MultiRegion } from \"@aws-sdk/signature-v4-multi-region\";\nimport { resolveParams } from \"@smithy/middleware-endpoint\";\nimport { getSmithyContext, normalizeProvider } from \"@smithy/util-middleware\";\nimport { defaultEndpointResolver } from \"../endpoint/endpointResolver\";\nconst createEndpointRuleSetHttpAuthSchemeParametersProvider = (defaultHttpAuthSchemeParametersProvider) => async (config, context, input) => {\n if (!input) {\n throw new Error(\"Could not find `input` for `defaultEndpointRuleSetHttpAuthSchemeParametersProvider`\");\n }\n const defaultParameters = await defaultHttpAuthSchemeParametersProvider(config, context, input);\n const instructionsFn = getSmithyContext(context)?.commandInstance?.constructor\n ?.getEndpointParameterInstructions;\n if (!instructionsFn) {\n throw new Error(`getEndpointParameterInstructions() is not defined on '${context.commandName}'`);\n }\n const endpointParameters = await resolveParams(input, { getEndpointParameterInstructions: instructionsFn }, config);\n return Object.assign(defaultParameters, endpointParameters);\n};\nconst _defaultEventBridgeHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: getSmithyContext(context).operation,\n region: await normalizeProvider(config.region)() || (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexport const defaultEventBridgeHttpAuthSchemeParametersProvider = createEndpointRuleSetHttpAuthSchemeParametersProvider(_defaultEventBridgeHttpAuthSchemeParametersProvider);\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"events\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createAwsAuthSigv4aHttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4a\",\n signingProperties: {\n name: \"events\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst createEndpointRuleSetHttpAuthSchemeProvider = (defaultEndpointResolver, defaultHttpAuthSchemeResolver, createHttpAuthOptionFunctions) => {\n const endpointRuleSetHttpAuthSchemeProvider = (authParameters) => {\n const endpoint = defaultEndpointResolver(authParameters);\n const authSchemes = endpoint.properties?.authSchemes;\n if (!authSchemes) {\n return defaultHttpAuthSchemeResolver(authParameters);\n }\n const options = [];\n for (const scheme of authSchemes) {\n const { name: resolvedName, properties = {}, ...rest } = scheme;\n const name = resolvedName.toLowerCase();\n if (resolvedName !== name) {\n console.warn(`HttpAuthScheme has been normalized with lowercasing: '${resolvedName}' to '${name}'`);\n }\n let schemeId;\n if (name === \"sigv4a\") {\n schemeId = \"aws.auth#sigv4a\";\n const sigv4Present = authSchemes.find((s) => {\n const name = s.name.toLowerCase();\n return name !== \"sigv4a\" && name.startsWith(\"sigv4\");\n });\n if (SignatureV4MultiRegion.sigv4aDependency() === \"none\" && sigv4Present) {\n continue;\n }\n }\n else if (name.startsWith(\"sigv4\")) {\n schemeId = \"aws.auth#sigv4\";\n }\n else {\n throw new Error(`Unknown HttpAuthScheme found in '@smithy.rules#endpointRuleSet': '${name}'`);\n }\n const createOption = createHttpAuthOptionFunctions[schemeId];\n if (!createOption) {\n throw new Error(`Could not find HttpAuthOption create function for '${schemeId}'`);\n }\n const option = createOption(authParameters);\n option.schemeId = schemeId;\n option.signingProperties = { ...(option.signingProperties || {}), ...rest, ...properties };\n options.push(option);\n }\n return options;\n };\n return endpointRuleSetHttpAuthSchemeProvider;\n};\nconst _defaultEventBridgeHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n options.push(createAwsAuthSigv4aHttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexport const defaultEventBridgeHttpAuthSchemeProvider = createEndpointRuleSetHttpAuthSchemeProvider(defaultEndpointResolver, _defaultEventBridgeHttpAuthSchemeProvider, {\n \"aws.auth#sigv4\": createAwsAuthSigv4HttpAuthOption,\n \"aws.auth#sigv4a\": createAwsAuthSigv4aHttpAuthOption,\n});\nexport const resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = resolveAwsSdkSigV4Config(config);\n const config_1 = resolveAwsSdkSigV4AConfig(config_0);\n return Object.assign(config_1, {\n authSchemePreference: normalizeProvider(config.authSchemePreference ?? []),\n });\n};\n","export const resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"events\",\n });\n};\nexport const commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","{\n \"name\": \"@aws-sdk/client-eventbridge\",\n \"description\": \"AWS SDK for JavaScript Eventbridge Client for Node.js, Browser and React Native\",\n \"version\": \"3.1015.0\",\n \"scripts\": {\n \"build\": \"concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs\",\n \"build:cjs\": \"node ../../scripts/compilation/inline client-eventbridge\",\n \"build:es\": \"tsc -p tsconfig.es.json\",\n \"build:include:deps\": \"yarn g:turbo run build -F=\\\"$npm_package_name\\\"\",\n \"build:types\": \"tsc -p tsconfig.types.json\",\n \"build:types:downlevel\": \"downlevel-dts dist-types dist-types/ts3.4\",\n \"clean\": \"premove dist-cjs dist-es dist-types tsconfig.cjs.tsbuildinfo tsconfig.es.tsbuildinfo tsconfig.types.tsbuildinfo\",\n \"extract:docs\": \"api-extractor run --local\",\n \"generate:client\": \"node ../../scripts/generate-clients/single-service --solo eventbridge\",\n \"test\": \"yarn g:vitest run\",\n \"test:index\": \"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs\",\n \"test:watch\": \"yarn g:vitest watch\"\n },\n \"main\": \"./dist-cjs/index.js\",\n \"types\": \"./dist-types/index.d.ts\",\n \"module\": \"./dist-es/index.js\",\n \"sideEffects\": false,\n \"dependencies\": {\n \"@aws-crypto/sha256-browser\": \"5.2.0\",\n \"@aws-crypto/sha256-js\": \"5.2.0\",\n \"@aws-sdk/core\": \"^3.973.24\",\n \"@aws-sdk/credential-provider-node\": \"^3.972.25\",\n \"@aws-sdk/middleware-host-header\": \"^3.972.8\",\n \"@aws-sdk/middleware-logger\": \"^3.972.8\",\n \"@aws-sdk/middleware-recursion-detection\": \"^3.972.8\",\n \"@aws-sdk/middleware-user-agent\": \"^3.972.25\",\n \"@aws-sdk/region-config-resolver\": \"^3.972.9\",\n \"@aws-sdk/signature-v4-multi-region\": \"^3.996.12\",\n \"@aws-sdk/types\": \"^3.973.6\",\n \"@aws-sdk/util-endpoints\": \"^3.996.5\",\n \"@aws-sdk/util-user-agent-browser\": \"^3.972.8\",\n \"@aws-sdk/util-user-agent-node\": \"^3.973.11\",\n \"@smithy/config-resolver\": \"^4.4.13\",\n \"@smithy/core\": \"^3.23.12\",\n \"@smithy/fetch-http-handler\": \"^5.3.15\",\n \"@smithy/hash-node\": \"^4.2.12\",\n \"@smithy/invalid-dependency\": \"^4.2.12\",\n \"@smithy/middleware-content-length\": \"^4.2.12\",\n \"@smithy/middleware-endpoint\": \"^4.4.27\",\n \"@smithy/middleware-retry\": \"^4.4.44\",\n \"@smithy/middleware-serde\": \"^4.2.15\",\n \"@smithy/middleware-stack\": \"^4.2.12\",\n \"@smithy/node-config-provider\": \"^4.3.12\",\n \"@smithy/node-http-handler\": \"^4.5.0\",\n \"@smithy/protocol-http\": \"^5.3.12\",\n \"@smithy/smithy-client\": \"^4.12.7\",\n \"@smithy/types\": \"^4.13.1\",\n \"@smithy/url-parser\": \"^4.2.12\",\n \"@smithy/util-base64\": \"^4.3.2\",\n \"@smithy/util-body-length-browser\": \"^4.2.2\",\n \"@smithy/util-body-length-node\": \"^4.2.3\",\n \"@smithy/util-defaults-mode-browser\": \"^4.3.43\",\n \"@smithy/util-defaults-mode-node\": \"^4.2.47\",\n \"@smithy/util-endpoints\": \"^3.3.3\",\n \"@smithy/util-middleware\": \"^4.2.12\",\n \"@smithy/util-retry\": \"^4.2.12\",\n \"@smithy/util-utf8\": \"^4.2.2\",\n \"tslib\": \"^2.6.2\"\n },\n \"devDependencies\": {\n \"@aws-sdk/signature-v4-crt\": \"3.1015.0\",\n \"@tsconfig/node20\": \"20.1.8\",\n \"@types/node\": \"^20.14.8\",\n \"concurrently\": \"7.0.0\",\n \"downlevel-dts\": \"0.10.1\",\n \"premove\": \"4.0.0\",\n \"typescript\": \"~5.8.3\"\n },\n \"engines\": {\n \"node\": \">=20.0.0\"\n },\n \"typesVersions\": {\n \"<4.5\": {\n \"dist-types/*\": [\n \"dist-types/ts3.4/*\"\n ]\n }\n },\n \"files\": [\n \"dist-*/**\"\n ],\n \"author\": {\n \"name\": \"AWS SDK for JavaScript Team\",\n \"url\": \"https://aws.amazon.com/javascript/\"\n },\n \"license\": \"Apache-2.0\",\n \"browser\": {\n \"./dist-es/runtimeConfig\": \"./dist-es/runtimeConfig.browser\"\n },\n \"react-native\": {\n \"./dist-es/runtimeConfig\": \"./dist-es/runtimeConfig.native\"\n },\n \"homepage\": \"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-eventbridge\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/aws/aws-sdk-js-v3.git\",\n \"directory\": \"clients/client-eventbridge\"\n }\n}\n","import { ServiceException as __ServiceException, } from \"@smithy/smithy-client\";\nexport { __ServiceException };\nexport class EventBridgeServiceException extends __ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, EventBridgeServiceException.prototype);\n }\n}\n","import { EventBridgeServiceException as __BaseException } from \"./EventBridgeServiceException\";\nexport class AccessDeniedException extends __BaseException {\n name = \"AccessDeniedException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, AccessDeniedException.prototype);\n }\n}\nexport class ConcurrentModificationException extends __BaseException {\n name = \"ConcurrentModificationException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ConcurrentModificationException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ConcurrentModificationException.prototype);\n }\n}\nexport class InternalException extends __BaseException {\n name = \"InternalException\";\n $fault = \"server\";\n constructor(opts) {\n super({\n name: \"InternalException\",\n $fault: \"server\",\n ...opts,\n });\n Object.setPrototypeOf(this, InternalException.prototype);\n }\n}\nexport class InvalidStateException extends __BaseException {\n name = \"InvalidStateException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"InvalidStateException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidStateException.prototype);\n }\n}\nexport class OperationDisabledException extends __BaseException {\n name = \"OperationDisabledException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"OperationDisabledException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, OperationDisabledException.prototype);\n }\n}\nexport class ResourceNotFoundException extends __BaseException {\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceNotFoundException.prototype);\n }\n}\nexport class IllegalStatusException extends __BaseException {\n name = \"IllegalStatusException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"IllegalStatusException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, IllegalStatusException.prototype);\n }\n}\nexport class LimitExceededException extends __BaseException {\n name = \"LimitExceededException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, LimitExceededException.prototype);\n }\n}\nexport class ResourceAlreadyExistsException extends __BaseException {\n name = \"ResourceAlreadyExistsException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ResourceAlreadyExistsException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceAlreadyExistsException.prototype);\n }\n}\nexport class InvalidEventPatternException extends __BaseException {\n name = \"InvalidEventPatternException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"InvalidEventPatternException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidEventPatternException.prototype);\n }\n}\nexport class ThrottlingException extends __BaseException {\n name = \"ThrottlingException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ThrottlingException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ThrottlingException.prototype);\n }\n}\nexport class ManagedRuleException extends __BaseException {\n name = \"ManagedRuleException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ManagedRuleException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ManagedRuleException.prototype);\n }\n}\nexport class PolicyLengthExceededException extends __BaseException {\n name = \"PolicyLengthExceededException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"PolicyLengthExceededException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, PolicyLengthExceededException.prototype);\n }\n}\n","const _A = \"Archive\";\nconst _AA = \"ArchiveArn\";\nconst _AD = \"ApiDestination\";\nconst _ADA = \"ApiDestinationArn\";\nconst _ADE = \"AccessDeniedException\";\nconst _ADRL = \"ApiDestinationResponseList\";\nconst _ADS = \"ApiDestinationState\";\nconst _ADp = \"ApiDestinations\";\nconst _AE = \"AuthorizationEndpoint\";\nconst _AES = \"ActivateEventSource\";\nconst _AESR = \"ActivateEventSourceRequest\";\nconst _AHPS = \"AuthHeaderParametersSensitive\";\nconst _AKAP = \"ApiKeyAuthParameters\";\nconst _AKN = \"ApiKeyName\";\nconst _AKV = \"ApiKeyValue\";\nconst _AN = \"ArchiveName\";\nconst _AP = \"ArrayProperties\";\nconst _API = \"AssignPublicIp\";\nconst _APu = \"AuthParameters\";\nconst _ARL = \"ArchiveResponseList\";\nconst _ASP = \"AppSyncParameters\";\nconst _AT = \"AuthorizationType\";\nconst _AVC = \"AwsVpcConfiguration\";\nconst _Ac = \"Account\";\nconst _Act = \"Action\";\nconst _Ar = \"Arn\";\nconst _Arc = \"Archives\";\nconst _At = \"Attempts\";\nconst _BAP = \"BatchArrayProperties\";\nconst _BAPa = \"BasicAuthParameters\";\nconst _BP = \"BatchParameters\";\nconst _BPo = \"BodyParameters\";\nconst _BRS = \"BatchRetryStrategy\";\nconst _C = \"Condition\";\nconst _CA = \"ConnectionArn\";\nconst _CAD = \"CreateApiDestination\";\nconst _CADR = \"CreateApiDestinationRequest\";\nconst _CADRr = \"CreateApiDestinationResponse\";\nconst _CAKARP = \"ConnectionApiKeyAuthResponseParameters\";\nconst _CAR = \"CreateArchiveRequest\";\nconst _CARP = \"ConnectionAuthResponseParameters\";\nconst _CARr = \"CreateArchiveResponse\";\nconst _CAr = \"CreateArchive\";\nconst _CB = \"CreatedBy\";\nconst _CBARP = \"ConnectionBasicAuthResponseParameters\";\nconst _CBP = \"ConnectionBodyParameter\";\nconst _CBPL = \"ConnectionBodyParametersList\";\nconst _CC = \"CreateConnection\";\nconst _CCAKARP = \"CreateConnectionApiKeyAuthRequestParameters\";\nconst _CCARP = \"CreateConnectionAuthRequestParameters\";\nconst _CCBARP = \"CreateConnectionBasicAuthRequestParameters\";\nconst _CCOACRP = \"CreateConnectionOAuthClientRequestParameters\";\nconst _CCOARP = \"CreateConnectionOAuthRequestParameters\";\nconst _CCR = \"CreateConnectionRequest\";\nconst _CCRr = \"CreateConnectionResponse\";\nconst _CE = \"CreateEndpoint\";\nconst _CEB = \"CreateEventBus\";\nconst _CEBR = \"CreateEventBusRequest\";\nconst _CEBRr = \"CreateEventBusResponse\";\nconst _CER = \"CreateEndpointRequest\";\nconst _CERr = \"CreateEndpointResponse\";\nconst _CHP = \"ConnectionHeaderParameter\";\nconst _CHPL = \"ConnectionHeaderParametersList\";\nconst _CHPo = \"ConnectionHttpParameters\";\nconst _CID = \"ClientID\";\nconst _CME = \"ConcurrentModificationException\";\nconst _COACRP = \"ConnectionOAuthClientResponseParameters\";\nconst _COARP = \"ConnectionOAuthResponseParameters\";\nconst _CP = \"ConnectivityParameters\";\nconst _CPES = \"CreatePartnerEventSource\";\nconst _CPESR = \"CreatePartnerEventSourceRequest\";\nconst _CPESRr = \"CreatePartnerEventSourceResponse\";\nconst _CPS = \"CapacityProviderStrategy\";\nconst _CPSI = \"CapacityProviderStrategyItem\";\nconst _CPl = \"ClientParameters\";\nconst _CQSP = \"ConnectionQueryStringParameter\";\nconst _CQSPL = \"ConnectionQueryStringParametersList\";\nconst _CR = \"CancelReplay\";\nconst _CRCA = \"ConnectivityResourceConfigurationArn\";\nconst _CRL = \"ConnectionResponseList\";\nconst _CRP = \"ConnectivityResourceParameters\";\nconst _CRR = \"CancelReplayRequest\";\nconst _CRRa = \"CancelReplayResponse\";\nconst _CS = \"ConnectionState\";\nconst _CSl = \"ClientSecret\";\nconst _CT = \"CreationTime\";\nconst _Co = \"Connection\";\nconst _Con = \"Connections\";\nconst _D = \"Description\";\nconst _DA = \"DeleteArchive\";\nconst _DAD = \"DeleteApiDestination\";\nconst _DADR = \"DeleteApiDestinationRequest\";\nconst _DADRe = \"DeleteApiDestinationResponse\";\nconst _DADRes = \"DescribeApiDestinationRequest\";\nconst _DADResc = \"DescribeApiDestinationResponse\";\nconst _DADe = \"DescribeApiDestination\";\nconst _DAR = \"DeleteArchiveRequest\";\nconst _DARe = \"DeleteArchiveResponse\";\nconst _DARes = \"DescribeArchiveRequest\";\nconst _DAResc = \"DescribeArchiveResponse\";\nconst _DAe = \"DescribeArchive\";\nconst _DC = \"DeauthorizeConnection\";\nconst _DCCP = \"DescribeConnectionConnectivityParameters\";\nconst _DCR = \"DeauthorizeConnectionRequest\";\nconst _DCRP = \"DescribeConnectionResourceParameters\";\nconst _DCRe = \"DeauthorizeConnectionResponse\";\nconst _DCRel = \"DeleteConnectionRequest\";\nconst _DCRele = \"DeleteConnectionResponse\";\nconst _DCRes = \"DescribeConnectionRequest\";\nconst _DCResc = \"DescribeConnectionResponse\";\nconst _DCe = \"DeleteConnection\";\nconst _DCes = \"DescribeConnection\";\nconst _DE = \"DeleteEndpoint\";\nconst _DEB = \"DeleteEventBus\";\nconst _DEBR = \"DeleteEventBusRequest\";\nconst _DEBRe = \"DescribeEventBusRequest\";\nconst _DEBRes = \"DescribeEventBusResponse\";\nconst _DEBe = \"DescribeEventBus\";\nconst _DER = \"DeleteEndpointRequest\";\nconst _DERe = \"DeleteEndpointResponse\";\nconst _DERes = \"DescribeEndpointRequest\";\nconst _DEResc = \"DescribeEndpointResponse\";\nconst _DES = \"DeactivateEventSource\";\nconst _DESR = \"DeactivateEventSourceRequest\";\nconst _DESRe = \"DescribeEventSourceRequest\";\nconst _DESRes = \"DescribeEventSourceResponse\";\nconst _DESe = \"DescribeEventSource\";\nconst _DEe = \"DescribeEndpoint\";\nconst _DLC = \"DeadLetterConfig\";\nconst _DPES = \"DeletePartnerEventSource\";\nconst _DPESR = \"DeletePartnerEventSourceRequest\";\nconst _DPESRe = \"DescribePartnerEventSourceRequest\";\nconst _DPESRes = \"DescribePartnerEventSourceResponse\";\nconst _DPESe = \"DescribePartnerEventSource\";\nconst _DR = \"DeleteRule\";\nconst _DRR = \"DeleteRuleRequest\";\nconst _DRRe = \"DescribeReplayRequest\";\nconst _DRRes = \"DescribeReplayResponse\";\nconst _DRResc = \"DescribeRuleRequest\";\nconst _DRRescr = \"DescribeRuleResponse\";\nconst _DRRi = \"DisableRuleRequest\";\nconst _DRe = \"DescribeReplay\";\nconst _DRes = \"DescribeRule\";\nconst _DRi = \"DisableRule\";\nconst _DT = \"DetailType\";\nconst _DU = \"DbUser\";\nconst _Da = \"Database\";\nconst _De = \"Destination\";\nconst _Det = \"Detail\";\nconst _E = \"Endpoint\";\nconst _EB = \"EventBuses\";\nconst _EBA = \"EventBusArn\";\nconst _EBL = \"EventBusList\";\nconst _EBN = \"EventBusName\";\nconst _EBv = \"EventBus\";\nconst _EC = \"EventCount\";\nconst _ECr = \"ErrorCode\";\nconst _EEB = \"EndpointEventBus\";\nconst _EEBL = \"EndpointEventBusList\";\nconst _EEC = \"EnableExecuteCommand\";\nconst _EECSMT = \"EnableECSManagedTags\";\nconst _EET = \"EventEndTime\";\nconst _EI = \"EndpointId\";\nconst _EIv = \"EventId\";\nconst _EL = \"EndpointList\";\nconst _ELRT = \"EventLastReplayedTime\";\nconst _EM = \"ErrorMessage\";\nconst _EP = \"EventPattern\";\nconst _EPc = \"EcsParameters\";\nconst _ER = \"EnableRule\";\nconst _ERR = \"EnableRuleRequest\";\nconst _ES = \"EventSource\";\nconst _ESA = \"EventSourceArn\";\nconst _ESL = \"EventSourceList\";\nconst _ESN = \"EventSourceName\";\nconst _EST = \"EventStartTime\";\nconst _ESv = \"EventSources\";\nconst _ET = \"ExpirationTime\";\nconst _EU = \"EndpointUrl\";\nconst _En = \"Endpoints\";\nconst _Ent = \"Entries\";\nconst _Ev = \"Event\";\nconst _F = \"Force\";\nconst _FA = \"FilterArns\";\nconst _FC = \"FailoverConfig\";\nconst _FE = \"FailedEntries\";\nconst _FEC = \"FailedEntryCount\";\nconst _G = \"Group\";\nconst _GQLO = \"GraphQLOperation\";\nconst _HC = \"HealthCheck\";\nconst _HM = \"HttpMethod\";\nconst _HP = \"HeaderParameters\";\nconst _HPt = \"HttpParameters\";\nconst _HR = \"HomeRegion\";\nconst _HVS = \"HeaderValueSensitive\";\nconst _I = \"Ids\";\nconst _ICP = \"InvocationConnectivityParameters\";\nconst _ID = \"IncludeDetail\";\nconst _IE = \"InternalException\";\nconst _IEPE = \"InvalidEventPatternException\";\nconst _IEn = \"InvocationEndpoint\";\nconst _IHP = \"InvocationHttpParameters\";\nconst _IP = \"InputPath\";\nconst _IPM = \"InputPathsMap\";\nconst _IRLPS = \"InvocationRateLimitPerSecond\";\nconst _ISE = \"IllegalStatusException\";\nconst _ISEn = \"InvalidStateException\";\nconst _IT = \"InputTransformer\";\nconst _ITn = \"InputTemplate\";\nconst _IVS = \"IsValueSecret\";\nconst _Id = \"Id\";\nconst _In = \"Input\";\nconst _JD = \"JobDefinition\";\nconst _JN = \"JobName\";\nconst _K = \"Key\";\nconst _KKI = \"KmsKeyIdentifier\";\nconst _KP = \"KinesisParameters\";\nconst _L = \"Limit\";\nconst _LA = \"ListArchives\";\nconst _LAD = \"ListApiDestinations\";\nconst _LADR = \"ListApiDestinationsRequest\";\nconst _LADRi = \"ListApiDestinationsResponse\";\nconst _LAR = \"ListArchivesRequest\";\nconst _LARi = \"ListArchivesResponse\";\nconst _LAT = \"LastAuthorizedTime\";\nconst _LC = \"LogConfig\";\nconst _LCR = \"ListConnectionsRequest\";\nconst _LCRi = \"ListConnectionsResponse\";\nconst _LCi = \"ListConnections\";\nconst _LE = \"ListEndpoints\";\nconst _LEB = \"ListEventBuses\";\nconst _LEBR = \"ListEventBusesRequest\";\nconst _LEBRi = \"ListEventBusesResponse\";\nconst _LEE = \"LimitExceededException\";\nconst _LER = \"ListEndpointsRequest\";\nconst _LERi = \"ListEndpointsResponse\";\nconst _LES = \"ListEventSources\";\nconst _LESR = \"ListEventSourcesRequest\";\nconst _LESRi = \"ListEventSourcesResponse\";\nconst _LMT = \"LastModifiedTime\";\nconst _LPES = \"ListPartnerEventSources\";\nconst _LPESA = \"ListPartnerEventSourceAccounts\";\nconst _LPESAR = \"ListPartnerEventSourceAccountsRequest\";\nconst _LPESARi = \"ListPartnerEventSourceAccountsResponse\";\nconst _LPESR = \"ListPartnerEventSourcesRequest\";\nconst _LPESRi = \"ListPartnerEventSourcesResponse\";\nconst _LR = \"ListReplays\";\nconst _LRNBT = \"ListRuleNamesByTarget\";\nconst _LRNBTR = \"ListRuleNamesByTargetRequest\";\nconst _LRNBTRi = \"ListRuleNamesByTargetResponse\";\nconst _LRR = \"ListReplaysRequest\";\nconst _LRRi = \"ListReplaysResponse\";\nconst _LRRis = \"ListRulesRequest\";\nconst _LRRist = \"ListRulesResponse\";\nconst _LRi = \"ListRules\";\nconst _LT = \"LaunchType\";\nconst _LTBR = \"ListTargetsByRule\";\nconst _LTBRR = \"ListTargetsByRuleRequest\";\nconst _LTBRRi = \"ListTargetsByRuleResponse\";\nconst _LTFR = \"ListTagsForResource\";\nconst _LTFRR = \"ListTagsForResourceRequest\";\nconst _LTFRRi = \"ListTagsForResourceResponse\";\nconst _Le = \"Level\";\nconst _MB = \"ManagedBy\";\nconst _MEAIS = \"MaximumEventAgeInSeconds\";\nconst _MGI = \"MessageGroupId\";\nconst _MR = \"MaxResults\";\nconst _MRA = \"MaximumRetryAttempts\";\nconst _MRE = \"ManagedRuleException\";\nconst _N = \"Name\";\nconst _NC = \"NetworkConfiguration\";\nconst _NP = \"NamePrefix\";\nconst _NT = \"NextToken\";\nconst _OAHP = \"OAuthHttpParameters\";\nconst _OAP = \"OAuthParameters\";\nconst _ODE = \"OperationDisabledException\";\nconst _P = \"Password\";\nconst _PC = \"PlacementConstraints\";\nconst _PCl = \"PlacementConstraint\";\nconst _PE = \"PutEvents\";\nconst _PER = \"PutEventsRequest\";\nconst _PERE = \"PutEventsRequestEntry\";\nconst _PEREL = \"PutEventsRequestEntryList\";\nconst _PERELu = \"PutEventsResultEntryList\";\nconst _PEREu = \"PutEventsResultEntry\";\nconst _PERu = \"PutEventsResponse\";\nconst _PES = \"PartnerEventSources\";\nconst _PESA = \"PartnerEventSourceAccounts\";\nconst _PESAL = \"PartnerEventSourceAccountList\";\nconst _PESAa = \"PartnerEventSourceAccount\";\nconst _PESL = \"PartnerEventSourceList\";\nconst _PESa = \"PartnerEventSource\";\nconst _PKP = \"PartitionKeyPath\";\nconst _PLEE = \"PolicyLengthExceededException\";\nconst _PP = \"PutPermission\";\nconst _PPE = \"PutPartnerEvents\";\nconst _PPER = \"PutPartnerEventsRequest\";\nconst _PPERE = \"PutPartnerEventsRequestEntry\";\nconst _PPEREL = \"PutPartnerEventsRequestEntryList\";\nconst _PPERELu = \"PutPartnerEventsResultEntryList\";\nconst _PPEREu = \"PutPartnerEventsResultEntry\";\nconst _PPERu = \"PutPartnerEventsResponse\";\nconst _PPL = \"PipelineParameterList\";\nconst _PPR = \"PutPermissionRequest\";\nconst _PPV = \"PathParameterValues\";\nconst _PR = \"PutRule\";\nconst _PRR = \"PutRuleRequest\";\nconst _PRRu = \"PutRuleResponse\";\nconst _PS = \"PlacementStrategy\";\nconst _PSl = \"PlacementStrategies\";\nconst _PT = \"PropagateTags\";\nconst _PTR = \"PutTargetsRequest\";\nconst _PTRE = \"PutTargetsResultEntry\";\nconst _PTREL = \"PutTargetsResultEntryList\";\nconst _PTRu = \"PutTargetsResponse\";\nconst _PTu = \"PutTargets\";\nconst _PV = \"PlatformVersion\";\nconst _Po = \"Policy\";\nconst _Pr = \"Primary\";\nconst _Pri = \"Principal\";\nconst _QSP = \"QueryStringParameters\";\nconst _QSVS = \"QueryStringValueSensitive\";\nconst _R = \"Replays\";\nconst _RA = \"ReplayArn\";\nconst _RAA = \"ResourceAssociationArn\";\nconst _RAEE = \"ResourceAlreadyExistsException\";\nconst _RAP = \"RemoveAllPermissions\";\nconst _RARN = \"ResourceARN\";\nconst _RAo = \"RoleArn\";\nconst _RAu = \"RuleArn\";\nconst _RC = \"RoutingConfig\";\nconst _RCA = \"ResourceConfigurationArn\";\nconst _RCP = \"RunCommandParameters\";\nconst _RCT = \"RunCommandTargets\";\nconst _RCTu = \"RunCommandTarget\";\nconst _RCe = \"ReplicationConfig\";\nconst _RD = \"RetentionDays\";\nconst _RDP = \"RedshiftDataParameters\";\nconst _RDe = \"ReplayDestination\";\nconst _RET = \"ReplayEndTime\";\nconst _RI = \"ReferenceId\";\nconst _RL = \"ReplayList\";\nconst _RN = \"ReplayName\";\nconst _RNFE = \"ResourceNotFoundException\";\nconst _RNu = \"RuleNames\";\nconst _RP = \"ResourceParameters\";\nconst _RPR = \"RemovePermissionRequest\";\nconst _RPe = \"RetryPolicy\";\nconst _RPem = \"RemovePermission\";\nconst _RRL = \"RuleResponseList\";\nconst _RS = \"RetryStrategy\";\nconst _RST = \"ReplayStartTime\";\nconst _RT = \"RemoveTargets\";\nconst _RTR = \"RemoveTargetsRequest\";\nconst _RTRE = \"RemoveTargetsResultEntry\";\nconst _RTREL = \"RemoveTargetsResultEntryList\";\nconst _RTRe = \"RemoveTargetsResponse\";\nconst _Re = \"Resources\";\nconst _Rep = \"Replay\";\nconst _Res = \"Result\";\nconst _Ro = \"Route\";\nconst _Ru = \"Rules\";\nconst _Rul = \"Rule\";\nconst _S = \"Sql\";\nconst _SA = \"SecretArn\";\nconst _SB = \"SizeBytes\";\nconst _SE = \"ScheduleExpression\";\nconst _SG = \"SecurityGroups\";\nconst _SI = \"StatementId\";\nconst _SMA = \"SecretManagerArn\";\nconst _SMPP = \"SageMakerPipelineParameter\";\nconst _SMPPL = \"SageMakerPipelineParameterList\";\nconst _SMPPa = \"SageMakerPipelineParameters\";\nconst _SN = \"StatementName\";\nconst _SP = \"SqsParameters\";\nconst _SR = \"StateReason\";\nconst _SRR = \"StartReplayRequest\";\nconst _SRRt = \"StartReplayResponse\";\nconst _SRt = \"StartReplay\";\nconst _SS = \"SensitiveString\";\nconst _Se = \"Secondary\";\nconst _Si = \"Size\";\nconst _So = \"Source\";\nconst _Sq = \"Sqls\";\nconst _St = \"State\";\nconst _Su = \"Subnets\";\nconst _T = \"Type\";\nconst _TA = \"TargetArn\";\nconst _TC = \"TaskCount\";\nconst _TDA = \"TaskDefinitionArn\";\nconst _TE = \"ThrottlingException\";\nconst _TEP = \"TestEventPattern\";\nconst _TEPR = \"TestEventPatternRequest\";\nconst _TEPRe = \"TestEventPatternResponse\";\nconst _TH = \"TraceHeader\";\nconst _TI = \"TargetId\";\nconst _TK = \"TagKeys\";\nconst _TL = \"TagList\";\nconst _TLa = \"TargetList\";\nconst _TR = \"TagResource\";\nconst _TRR = \"TagResourceRequest\";\nconst _TRRa = \"TagResourceResponse\";\nconst _Ta = \"Tags\";\nconst _Tag = \"Tag\";\nconst _Tar = \"Targets\";\nconst _Targ = \"Target\";\nconst _Ti = \"Time\";\nconst _U = \"Username\";\nconst _UA = \"UpdateArchive\";\nconst _UAD = \"UpdateApiDestination\";\nconst _UADR = \"UpdateApiDestinationRequest\";\nconst _UADRp = \"UpdateApiDestinationResponse\";\nconst _UAR = \"UpdateArchiveRequest\";\nconst _UARp = \"UpdateArchiveResponse\";\nconst _UC = \"UpdateConnection\";\nconst _UCAKARP = \"UpdateConnectionApiKeyAuthRequestParameters\";\nconst _UCARP = \"UpdateConnectionAuthRequestParameters\";\nconst _UCBARP = \"UpdateConnectionBasicAuthRequestParameters\";\nconst _UCOACRP = \"UpdateConnectionOAuthClientRequestParameters\";\nconst _UCOARP = \"UpdateConnectionOAuthRequestParameters\";\nconst _UCR = \"UpdateConnectionRequest\";\nconst _UCRp = \"UpdateConnectionResponse\";\nconst _UE = \"UpdateEndpoint\";\nconst _UEB = \"UpdateEventBus\";\nconst _UEBR = \"UpdateEventBusRequest\";\nconst _UEBRp = \"UpdateEventBusResponse\";\nconst _UER = \"UpdateEndpointRequest\";\nconst _UERp = \"UpdateEndpointResponse\";\nconst _UR = \"UntagResource\";\nconst _URR = \"UntagResourceRequest\";\nconst _URRn = \"UntagResourceResponse\";\nconst _V = \"Value\";\nconst _Va = \"Values\";\nconst _WE = \"WithEvent\";\nconst _aC = \"awsvpcConfiguration\";\nconst _b = \"base\";\nconst _c = \"client\";\nconst _cP = \"capacityProvider\";\nconst _e = \"error\";\nconst _ex = \"expression\";\nconst _f = \"field\";\nconst _m = \"message\";\nconst _s = \"smithy.ts.sdk.synthetic.com.amazonaws.eventbridge\";\nconst _se = \"server\";\nconst _t = \"type\";\nconst _w = \"weight\";\nconst n0 = \"com.amazonaws.eventbridge\";\nimport { TypeRegistry } from \"@smithy/core/schema\";\nimport { AccessDeniedException, ConcurrentModificationException, IllegalStatusException, InternalException, InvalidEventPatternException, InvalidStateException, LimitExceededException, ManagedRuleException, OperationDisabledException, PolicyLengthExceededException, ResourceAlreadyExistsException, ResourceNotFoundException, ThrottlingException, } from \"../models/errors\";\nimport { EventBridgeServiceException } from \"../models/EventBridgeServiceException\";\nconst _s_registry = TypeRegistry.for(_s);\nexport var EventBridgeServiceException$ = [-3, _s, \"EventBridgeServiceException\", 0, [], []];\n_s_registry.registerError(EventBridgeServiceException$, EventBridgeServiceException);\nconst n0_registry = TypeRegistry.for(n0);\nexport var AccessDeniedException$ = [-3, n0, _ADE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(AccessDeniedException$, AccessDeniedException);\nexport var ConcurrentModificationException$ = [-3, n0, _CME,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(ConcurrentModificationException$, ConcurrentModificationException);\nexport var IllegalStatusException$ = [-3, n0, _ISE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(IllegalStatusException$, IllegalStatusException);\nexport var InternalException$ = [-3, n0, _IE,\n { [_e]: _se },\n [_m],\n [0]\n];\nn0_registry.registerError(InternalException$, InternalException);\nexport var InvalidEventPatternException$ = [-3, n0, _IEPE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(InvalidEventPatternException$, InvalidEventPatternException);\nexport var InvalidStateException$ = [-3, n0, _ISEn,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(InvalidStateException$, InvalidStateException);\nexport var LimitExceededException$ = [-3, n0, _LEE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(LimitExceededException$, LimitExceededException);\nexport var ManagedRuleException$ = [-3, n0, _MRE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(ManagedRuleException$, ManagedRuleException);\nexport var OperationDisabledException$ = [-3, n0, _ODE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(OperationDisabledException$, OperationDisabledException);\nexport var PolicyLengthExceededException$ = [-3, n0, _PLEE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(PolicyLengthExceededException$, PolicyLengthExceededException);\nexport var ResourceAlreadyExistsException$ = [-3, n0, _RAEE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(ResourceAlreadyExistsException$, ResourceAlreadyExistsException);\nexport var ResourceNotFoundException$ = [-3, n0, _RNFE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(ResourceNotFoundException$, ResourceNotFoundException);\nexport var ThrottlingException$ = [-3, n0, _TE,\n { [_e]: _c },\n [_m],\n [0]\n];\nn0_registry.registerError(ThrottlingException$, ThrottlingException);\nexport const errorTypeRegistries = [\n _s_registry,\n n0_registry,\n];\nvar AuthHeaderParametersSensitive = [0, n0, _AHPS, 8, 0];\nvar GraphQLOperation = [0, n0, _GQLO, 8, 0];\nvar HeaderValueSensitive = [0, n0, _HVS, 8, 0];\nvar QueryStringValueSensitive = [0, n0, _QSVS, 8, 0];\nvar SensitiveString = [0, n0, _SS, 8, 0];\nvar Sql = [0, n0, _S, 8, 0];\nexport var ActivateEventSourceRequest$ = [3, n0, _AESR,\n 0,\n [_N],\n [0], 1\n];\nexport var ApiDestination$ = [3, n0, _AD,\n 0,\n [_ADA, _N, _ADS, _CA, _IEn, _HM, _IRLPS, _CT, _LMT],\n [0, 0, 0, 0, 0, 0, 1, 4, 4]\n];\nexport var AppSyncParameters$ = [3, n0, _ASP,\n 0,\n [_GQLO],\n [[() => GraphQLOperation, 0]]\n];\nexport var Archive$ = [3, n0, _A,\n 0,\n [_AN, _ESA, _St, _SR, _RD, _SB, _EC, _CT],\n [0, 0, 0, 0, 1, 1, 1, 4]\n];\nexport var AwsVpcConfiguration$ = [3, n0, _AVC,\n 0,\n [_Su, _SG, _API],\n [64 | 0, 64 | 0, 0], 1\n];\nexport var BatchArrayProperties$ = [3, n0, _BAP,\n 0,\n [_Si],\n [1]\n];\nexport var BatchParameters$ = [3, n0, _BP,\n 0,\n [_JD, _JN, _AP, _RS],\n [0, 0, () => BatchArrayProperties$, () => BatchRetryStrategy$], 2\n];\nexport var BatchRetryStrategy$ = [3, n0, _BRS,\n 0,\n [_At],\n [1]\n];\nexport var CancelReplayRequest$ = [3, n0, _CRR,\n 0,\n [_RN],\n [0], 1\n];\nexport var CancelReplayResponse$ = [3, n0, _CRRa,\n 0,\n [_RA, _St, _SR],\n [0, 0, 0]\n];\nexport var CapacityProviderStrategyItem$ = [3, n0, _CPSI,\n 0,\n [_cP, _w, _b],\n [0, 1, 1], 1\n];\nexport var Condition$ = [3, n0, _C,\n 0,\n [_T, _K, _V],\n [0, 0, 0], 3\n];\nexport var Connection$ = [3, n0, _Co,\n 0,\n [_CA, _N, _CS, _SR, _AT, _CT, _LMT, _LAT],\n [0, 0, 0, 0, 0, 4, 4, 4]\n];\nexport var ConnectionApiKeyAuthResponseParameters$ = [3, n0, _CAKARP,\n 0,\n [_AKN],\n [0]\n];\nexport var ConnectionAuthResponseParameters$ = [3, n0, _CARP,\n 0,\n [_BAPa, _OAP, _AKAP, _IHP, _CP],\n [() => ConnectionBasicAuthResponseParameters$, [() => ConnectionOAuthResponseParameters$, 0], () => ConnectionApiKeyAuthResponseParameters$, [() => ConnectionHttpParameters$, 0], () => DescribeConnectionConnectivityParameters$]\n];\nexport var ConnectionBasicAuthResponseParameters$ = [3, n0, _CBARP,\n 0,\n [_U],\n [0]\n];\nexport var ConnectionBodyParameter$ = [3, n0, _CBP,\n 0,\n [_K, _V, _IVS],\n [0, [() => SensitiveString, 0], 2]\n];\nexport var ConnectionHeaderParameter$ = [3, n0, _CHP,\n 0,\n [_K, _V, _IVS],\n [0, [() => HeaderValueSensitive, 0], 2]\n];\nexport var ConnectionHttpParameters$ = [3, n0, _CHPo,\n 0,\n [_HP, _QSP, _BPo],\n [[() => ConnectionHeaderParametersList, 0], [() => ConnectionQueryStringParametersList, 0], [() => ConnectionBodyParametersList, 0]]\n];\nexport var ConnectionOAuthClientResponseParameters$ = [3, n0, _COACRP,\n 0,\n [_CID],\n [0]\n];\nexport var ConnectionOAuthResponseParameters$ = [3, n0, _COARP,\n 0,\n [_CPl, _AE, _HM, _OAHP],\n [() => ConnectionOAuthClientResponseParameters$, 0, 0, [() => ConnectionHttpParameters$, 0]]\n];\nexport var ConnectionQueryStringParameter$ = [3, n0, _CQSP,\n 0,\n [_K, _V, _IVS],\n [0, [() => QueryStringValueSensitive, 0], 2]\n];\nexport var ConnectivityResourceConfigurationArn$ = [3, n0, _CRCA,\n 0,\n [_RCA],\n [0], 1\n];\nexport var ConnectivityResourceParameters$ = [3, n0, _CRP,\n 0,\n [_RP],\n [() => ConnectivityResourceConfigurationArn$], 1\n];\nexport var CreateApiDestinationRequest$ = [3, n0, _CADR,\n 0,\n [_N, _CA, _IEn, _HM, _D, _IRLPS],\n [0, 0, 0, 0, 0, 1], 4\n];\nexport var CreateApiDestinationResponse$ = [3, n0, _CADRr,\n 0,\n [_ADA, _ADS, _CT, _LMT],\n [0, 0, 4, 4]\n];\nexport var CreateArchiveRequest$ = [3, n0, _CAR,\n 0,\n [_AN, _ESA, _D, _EP, _RD, _KKI],\n [0, 0, 0, 0, 1, 0], 2\n];\nexport var CreateArchiveResponse$ = [3, n0, _CARr,\n 0,\n [_AA, _St, _SR, _CT],\n [0, 0, 0, 4]\n];\nexport var CreateConnectionApiKeyAuthRequestParameters$ = [3, n0, _CCAKARP,\n 0,\n [_AKN, _AKV],\n [0, [() => AuthHeaderParametersSensitive, 0]], 2\n];\nexport var CreateConnectionAuthRequestParameters$ = [3, n0, _CCARP,\n 0,\n [_BAPa, _OAP, _AKAP, _IHP, _CP],\n [[() => CreateConnectionBasicAuthRequestParameters$, 0], [() => CreateConnectionOAuthRequestParameters$, 0], [() => CreateConnectionApiKeyAuthRequestParameters$, 0], [() => ConnectionHttpParameters$, 0], () => ConnectivityResourceParameters$]\n];\nexport var CreateConnectionBasicAuthRequestParameters$ = [3, n0, _CCBARP,\n 0,\n [_U, _P],\n [0, [() => AuthHeaderParametersSensitive, 0]], 2\n];\nexport var CreateConnectionOAuthClientRequestParameters$ = [3, n0, _CCOACRP,\n 0,\n [_CID, _CSl],\n [0, [() => AuthHeaderParametersSensitive, 0]], 2\n];\nexport var CreateConnectionOAuthRequestParameters$ = [3, n0, _CCOARP,\n 0,\n [_CPl, _AE, _HM, _OAHP],\n [[() => CreateConnectionOAuthClientRequestParameters$, 0], 0, 0, [() => ConnectionHttpParameters$, 0]], 3\n];\nexport var CreateConnectionRequest$ = [3, n0, _CCR,\n 0,\n [_N, _AT, _APu, _D, _ICP, _KKI],\n [0, 0, [() => CreateConnectionAuthRequestParameters$, 0], 0, () => ConnectivityResourceParameters$, 0], 3\n];\nexport var CreateConnectionResponse$ = [3, n0, _CCRr,\n 0,\n [_CA, _CS, _CT, _LMT],\n [0, 0, 4, 4]\n];\nexport var CreateEndpointRequest$ = [3, n0, _CER,\n 0,\n [_N, _RC, _EB, _D, _RCe, _RAo],\n [0, () => RoutingConfig$, () => EndpointEventBusList, 0, () => ReplicationConfig$, 0], 3\n];\nexport var CreateEndpointResponse$ = [3, n0, _CERr,\n 0,\n [_N, _Ar, _RC, _RCe, _EB, _RAo, _St],\n [0, 0, () => RoutingConfig$, () => ReplicationConfig$, () => EndpointEventBusList, 0, 0]\n];\nexport var CreateEventBusRequest$ = [3, n0, _CEBR,\n 0,\n [_N, _ESN, _D, _KKI, _DLC, _LC, _Ta],\n [0, 0, 0, 0, () => DeadLetterConfig$, () => LogConfig$, () => TagList], 1\n];\nexport var CreateEventBusResponse$ = [3, n0, _CEBRr,\n 0,\n [_EBA, _D, _KKI, _DLC, _LC],\n [0, 0, 0, () => DeadLetterConfig$, () => LogConfig$]\n];\nexport var CreatePartnerEventSourceRequest$ = [3, n0, _CPESR,\n 0,\n [_N, _Ac],\n [0, 0], 2\n];\nexport var CreatePartnerEventSourceResponse$ = [3, n0, _CPESRr,\n 0,\n [_ESA],\n [0]\n];\nexport var DeactivateEventSourceRequest$ = [3, n0, _DESR,\n 0,\n [_N],\n [0], 1\n];\nexport var DeadLetterConfig$ = [3, n0, _DLC,\n 0,\n [_Ar],\n [0]\n];\nexport var DeauthorizeConnectionRequest$ = [3, n0, _DCR,\n 0,\n [_N],\n [0], 1\n];\nexport var DeauthorizeConnectionResponse$ = [3, n0, _DCRe,\n 0,\n [_CA, _CS, _CT, _LMT, _LAT],\n [0, 0, 4, 4, 4]\n];\nexport var DeleteApiDestinationRequest$ = [3, n0, _DADR,\n 0,\n [_N],\n [0], 1\n];\nexport var DeleteApiDestinationResponse$ = [3, n0, _DADRe,\n 0,\n [],\n []\n];\nexport var DeleteArchiveRequest$ = [3, n0, _DAR,\n 0,\n [_AN],\n [0], 1\n];\nexport var DeleteArchiveResponse$ = [3, n0, _DARe,\n 0,\n [],\n []\n];\nexport var DeleteConnectionRequest$ = [3, n0, _DCRel,\n 0,\n [_N],\n [0], 1\n];\nexport var DeleteConnectionResponse$ = [3, n0, _DCRele,\n 0,\n [_CA, _CS, _CT, _LMT, _LAT],\n [0, 0, 4, 4, 4]\n];\nexport var DeleteEndpointRequest$ = [3, n0, _DER,\n 0,\n [_N],\n [0], 1\n];\nexport var DeleteEndpointResponse$ = [3, n0, _DERe,\n 0,\n [],\n []\n];\nexport var DeleteEventBusRequest$ = [3, n0, _DEBR,\n 0,\n [_N],\n [0], 1\n];\nexport var DeletePartnerEventSourceRequest$ = [3, n0, _DPESR,\n 0,\n [_N, _Ac],\n [0, 0], 2\n];\nexport var DeleteRuleRequest$ = [3, n0, _DRR,\n 0,\n [_N, _EBN, _F],\n [0, 0, 2], 1\n];\nexport var DescribeApiDestinationRequest$ = [3, n0, _DADRes,\n 0,\n [_N],\n [0], 1\n];\nexport var DescribeApiDestinationResponse$ = [3, n0, _DADResc,\n 0,\n [_ADA, _N, _D, _ADS, _CA, _IEn, _HM, _IRLPS, _CT, _LMT],\n [0, 0, 0, 0, 0, 0, 0, 1, 4, 4]\n];\nexport var DescribeArchiveRequest$ = [3, n0, _DARes,\n 0,\n [_AN],\n [0], 1\n];\nexport var DescribeArchiveResponse$ = [3, n0, _DAResc,\n 0,\n [_AA, _AN, _ESA, _D, _EP, _St, _SR, _KKI, _RD, _SB, _EC, _CT],\n [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 4]\n];\nexport var DescribeConnectionConnectivityParameters$ = [3, n0, _DCCP,\n 0,\n [_RP],\n [() => DescribeConnectionResourceParameters$], 1\n];\nexport var DescribeConnectionRequest$ = [3, n0, _DCRes,\n 0,\n [_N],\n [0], 1\n];\nexport var DescribeConnectionResourceParameters$ = [3, n0, _DCRP,\n 0,\n [_RCA, _RAA],\n [0, 0], 2\n];\nexport var DescribeConnectionResponse$ = [3, n0, _DCResc,\n 0,\n [_CA, _N, _D, _ICP, _CS, _SR, _AT, _SA, _KKI, _APu, _CT, _LMT, _LAT],\n [0, 0, 0, () => DescribeConnectionConnectivityParameters$, 0, 0, 0, 0, 0, [() => ConnectionAuthResponseParameters$, 0], 4, 4, 4]\n];\nexport var DescribeEndpointRequest$ = [3, n0, _DERes,\n 0,\n [_N, _HR],\n [0, 0], 1\n];\nexport var DescribeEndpointResponse$ = [3, n0, _DEResc,\n 0,\n [_N, _D, _Ar, _RC, _RCe, _EB, _RAo, _EI, _EU, _St, _SR, _CT, _LMT],\n [0, 0, 0, () => RoutingConfig$, () => ReplicationConfig$, () => EndpointEventBusList, 0, 0, 0, 0, 0, 4, 4]\n];\nexport var DescribeEventBusRequest$ = [3, n0, _DEBRe,\n 0,\n [_N],\n [0]\n];\nexport var DescribeEventBusResponse$ = [3, n0, _DEBRes,\n 0,\n [_N, _Ar, _D, _KKI, _DLC, _Po, _LC, _CT, _LMT],\n [0, 0, 0, 0, () => DeadLetterConfig$, 0, () => LogConfig$, 4, 4]\n];\nexport var DescribeEventSourceRequest$ = [3, n0, _DESRe,\n 0,\n [_N],\n [0], 1\n];\nexport var DescribeEventSourceResponse$ = [3, n0, _DESRes,\n 0,\n [_Ar, _CB, _CT, _ET, _N, _St],\n [0, 0, 4, 4, 0, 0]\n];\nexport var DescribePartnerEventSourceRequest$ = [3, n0, _DPESRe,\n 0,\n [_N],\n [0], 1\n];\nexport var DescribePartnerEventSourceResponse$ = [3, n0, _DPESRes,\n 0,\n [_Ar, _N],\n [0, 0]\n];\nexport var DescribeReplayRequest$ = [3, n0, _DRRe,\n 0,\n [_RN],\n [0], 1\n];\nexport var DescribeReplayResponse$ = [3, n0, _DRRes,\n 0,\n [_RN, _RA, _D, _St, _SR, _ESA, _De, _EST, _EET, _ELRT, _RST, _RET],\n [0, 0, 0, 0, 0, 0, () => ReplayDestination$, 4, 4, 4, 4, 4]\n];\nexport var DescribeRuleRequest$ = [3, n0, _DRResc,\n 0,\n [_N, _EBN],\n [0, 0], 1\n];\nexport var DescribeRuleResponse$ = [3, n0, _DRRescr,\n 0,\n [_N, _Ar, _EP, _SE, _St, _D, _RAo, _MB, _EBN, _CB],\n [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n];\nexport var DisableRuleRequest$ = [3, n0, _DRRi,\n 0,\n [_N, _EBN],\n [0, 0], 1\n];\nexport var EcsParameters$ = [3, n0, _EPc,\n 0,\n [_TDA, _TC, _LT, _NC, _PV, _G, _CPS, _EECSMT, _EEC, _PC, _PS, _PT, _RI, _Ta],\n [0, 1, 0, () => NetworkConfiguration$, 0, 0, () => CapacityProviderStrategy, 2, 2, () => PlacementConstraints, () => PlacementStrategies, 0, 0, () => TagList], 1\n];\nexport var EnableRuleRequest$ = [3, n0, _ERR,\n 0,\n [_N, _EBN],\n [0, 0], 1\n];\nexport var Endpoint$ = [3, n0, _E,\n 0,\n [_N, _D, _Ar, _RC, _RCe, _EB, _RAo, _EI, _EU, _St, _SR, _CT, _LMT],\n [0, 0, 0, () => RoutingConfig$, () => ReplicationConfig$, () => EndpointEventBusList, 0, 0, 0, 0, 0, 4, 4]\n];\nexport var EndpointEventBus$ = [3, n0, _EEB,\n 0,\n [_EBA],\n [0], 1\n];\nexport var EventBus$ = [3, n0, _EBv,\n 0,\n [_N, _Ar, _D, _Po, _CT, _LMT],\n [0, 0, 0, 0, 4, 4]\n];\nexport var EventSource$ = [3, n0, _ES,\n 0,\n [_Ar, _CB, _CT, _ET, _N, _St],\n [0, 0, 4, 4, 0, 0]\n];\nexport var FailoverConfig$ = [3, n0, _FC,\n 0,\n [_Pr, _Se],\n [() => Primary$, () => Secondary$], 2\n];\nexport var HttpParameters$ = [3, n0, _HPt,\n 0,\n [_PPV, _HP, _QSP],\n [64 | 0, 128 | 0, 128 | 0]\n];\nexport var InputTransformer$ = [3, n0, _IT,\n 0,\n [_ITn, _IPM],\n [0, 128 | 0], 1\n];\nexport var KinesisParameters$ = [3, n0, _KP,\n 0,\n [_PKP],\n [0], 1\n];\nexport var ListApiDestinationsRequest$ = [3, n0, _LADR,\n 0,\n [_NP, _CA, _NT, _L],\n [0, 0, 0, 1]\n];\nexport var ListApiDestinationsResponse$ = [3, n0, _LADRi,\n 0,\n [_ADp, _NT],\n [() => ApiDestinationResponseList, 0]\n];\nexport var ListArchivesRequest$ = [3, n0, _LAR,\n 0,\n [_NP, _ESA, _St, _NT, _L],\n [0, 0, 0, 0, 1]\n];\nexport var ListArchivesResponse$ = [3, n0, _LARi,\n 0,\n [_Arc, _NT],\n [() => ArchiveResponseList, 0]\n];\nexport var ListConnectionsRequest$ = [3, n0, _LCR,\n 0,\n [_NP, _CS, _NT, _L],\n [0, 0, 0, 1]\n];\nexport var ListConnectionsResponse$ = [3, n0, _LCRi,\n 0,\n [_Con, _NT],\n [() => ConnectionResponseList, 0]\n];\nexport var ListEndpointsRequest$ = [3, n0, _LER,\n 0,\n [_NP, _HR, _NT, _MR],\n [0, 0, 0, 1]\n];\nexport var ListEndpointsResponse$ = [3, n0, _LERi,\n 0,\n [_En, _NT],\n [() => EndpointList, 0]\n];\nexport var ListEventBusesRequest$ = [3, n0, _LEBR,\n 0,\n [_NP, _NT, _L],\n [0, 0, 1]\n];\nexport var ListEventBusesResponse$ = [3, n0, _LEBRi,\n 0,\n [_EB, _NT],\n [() => EventBusList, 0]\n];\nexport var ListEventSourcesRequest$ = [3, n0, _LESR,\n 0,\n [_NP, _NT, _L],\n [0, 0, 1]\n];\nexport var ListEventSourcesResponse$ = [3, n0, _LESRi,\n 0,\n [_ESv, _NT],\n [() => EventSourceList, 0]\n];\nexport var ListPartnerEventSourceAccountsRequest$ = [3, n0, _LPESAR,\n 0,\n [_ESN, _NT, _L],\n [0, 0, 1], 1\n];\nexport var ListPartnerEventSourceAccountsResponse$ = [3, n0, _LPESARi,\n 0,\n [_PESA, _NT],\n [() => PartnerEventSourceAccountList, 0]\n];\nexport var ListPartnerEventSourcesRequest$ = [3, n0, _LPESR,\n 0,\n [_NP, _NT, _L],\n [0, 0, 1], 1\n];\nexport var ListPartnerEventSourcesResponse$ = [3, n0, _LPESRi,\n 0,\n [_PES, _NT],\n [() => PartnerEventSourceList, 0]\n];\nexport var ListReplaysRequest$ = [3, n0, _LRR,\n 0,\n [_NP, _St, _ESA, _NT, _L],\n [0, 0, 0, 0, 1]\n];\nexport var ListReplaysResponse$ = [3, n0, _LRRi,\n 0,\n [_R, _NT],\n [() => ReplayList, 0]\n];\nexport var ListRuleNamesByTargetRequest$ = [3, n0, _LRNBTR,\n 0,\n [_TA, _EBN, _NT, _L],\n [0, 0, 0, 1], 1\n];\nexport var ListRuleNamesByTargetResponse$ = [3, n0, _LRNBTRi,\n 0,\n [_RNu, _NT],\n [64 | 0, 0]\n];\nexport var ListRulesRequest$ = [3, n0, _LRRis,\n 0,\n [_NP, _EBN, _NT, _L],\n [0, 0, 0, 1]\n];\nexport var ListRulesResponse$ = [3, n0, _LRRist,\n 0,\n [_Ru, _NT],\n [() => RuleResponseList, 0]\n];\nexport var ListTagsForResourceRequest$ = [3, n0, _LTFRR,\n 0,\n [_RARN],\n [0], 1\n];\nexport var ListTagsForResourceResponse$ = [3, n0, _LTFRRi,\n 0,\n [_Ta],\n [() => TagList]\n];\nexport var ListTargetsByRuleRequest$ = [3, n0, _LTBRR,\n 0,\n [_Rul, _EBN, _NT, _L],\n [0, 0, 0, 1], 1\n];\nexport var ListTargetsByRuleResponse$ = [3, n0, _LTBRRi,\n 0,\n [_Tar, _NT],\n [[() => TargetList, 0], 0]\n];\nexport var LogConfig$ = [3, n0, _LC,\n 0,\n [_ID, _Le],\n [0, 0]\n];\nexport var NetworkConfiguration$ = [3, n0, _NC,\n 0,\n [_aC],\n [() => AwsVpcConfiguration$]\n];\nexport var PartnerEventSource$ = [3, n0, _PESa,\n 0,\n [_Ar, _N],\n [0, 0]\n];\nexport var PartnerEventSourceAccount$ = [3, n0, _PESAa,\n 0,\n [_Ac, _CT, _ET, _St],\n [0, 4, 4, 0]\n];\nexport var PlacementConstraint$ = [3, n0, _PCl,\n 0,\n [_t, _ex],\n [0, 0]\n];\nexport var PlacementStrategy$ = [3, n0, _PS,\n 0,\n [_t, _f],\n [0, 0]\n];\nexport var Primary$ = [3, n0, _Pr,\n 0,\n [_HC],\n [0], 1\n];\nexport var PutEventsRequest$ = [3, n0, _PER,\n 0,\n [_Ent, _EI],\n [() => PutEventsRequestEntryList, 0], 1\n];\nexport var PutEventsRequestEntry$ = [3, n0, _PERE,\n 0,\n [_Ti, _So, _Re, _DT, _Det, _EBN, _TH],\n [4, 0, 64 | 0, 0, 0, 0, 0]\n];\nexport var PutEventsResponse$ = [3, n0, _PERu,\n 0,\n [_FEC, _Ent],\n [1, () => PutEventsResultEntryList]\n];\nexport var PutEventsResultEntry$ = [3, n0, _PEREu,\n 0,\n [_EIv, _ECr, _EM],\n [0, 0, 0]\n];\nexport var PutPartnerEventsRequest$ = [3, n0, _PPER,\n 0,\n [_Ent],\n [() => PutPartnerEventsRequestEntryList], 1\n];\nexport var PutPartnerEventsRequestEntry$ = [3, n0, _PPERE,\n 0,\n [_Ti, _So, _Re, _DT, _Det],\n [4, 0, 64 | 0, 0, 0]\n];\nexport var PutPartnerEventsResponse$ = [3, n0, _PPERu,\n 0,\n [_FEC, _Ent],\n [1, () => PutPartnerEventsResultEntryList]\n];\nexport var PutPartnerEventsResultEntry$ = [3, n0, _PPEREu,\n 0,\n [_EIv, _ECr, _EM],\n [0, 0, 0]\n];\nexport var PutPermissionRequest$ = [3, n0, _PPR,\n 0,\n [_EBN, _Act, _Pri, _SI, _C, _Po],\n [0, 0, 0, 0, () => Condition$, 0]\n];\nexport var PutRuleRequest$ = [3, n0, _PRR,\n 0,\n [_N, _SE, _EP, _St, _D, _RAo, _Ta, _EBN],\n [0, 0, 0, 0, 0, 0, () => TagList, 0], 1\n];\nexport var PutRuleResponse$ = [3, n0, _PRRu,\n 0,\n [_RAu],\n [0]\n];\nexport var PutTargetsRequest$ = [3, n0, _PTR,\n 0,\n [_Rul, _Tar, _EBN],\n [0, [() => TargetList, 0], 0], 2\n];\nexport var PutTargetsResponse$ = [3, n0, _PTRu,\n 0,\n [_FEC, _FE],\n [1, () => PutTargetsResultEntryList]\n];\nexport var PutTargetsResultEntry$ = [3, n0, _PTRE,\n 0,\n [_TI, _ECr, _EM],\n [0, 0, 0]\n];\nexport var RedshiftDataParameters$ = [3, n0, _RDP,\n 0,\n [_Da, _SMA, _DU, _S, _SN, _WE, _Sq],\n [0, 0, 0, [() => Sql, 0], 0, 2, [() => Sqls, 0]], 1\n];\nexport var RemovePermissionRequest$ = [3, n0, _RPR,\n 0,\n [_SI, _RAP, _EBN],\n [0, 2, 0]\n];\nexport var RemoveTargetsRequest$ = [3, n0, _RTR,\n 0,\n [_Rul, _I, _EBN, _F],\n [0, 64 | 0, 0, 2], 2\n];\nexport var RemoveTargetsResponse$ = [3, n0, _RTRe,\n 0,\n [_FEC, _FE],\n [1, () => RemoveTargetsResultEntryList]\n];\nexport var RemoveTargetsResultEntry$ = [3, n0, _RTRE,\n 0,\n [_TI, _ECr, _EM],\n [0, 0, 0]\n];\nexport var Replay$ = [3, n0, _Rep,\n 0,\n [_RN, _ESA, _St, _SR, _EST, _EET, _ELRT, _RST, _RET],\n [0, 0, 0, 0, 4, 4, 4, 4, 4]\n];\nexport var ReplayDestination$ = [3, n0, _RDe,\n 0,\n [_Ar, _FA],\n [0, 64 | 0], 1\n];\nexport var ReplicationConfig$ = [3, n0, _RCe,\n 0,\n [_St],\n [0]\n];\nexport var RetryPolicy$ = [3, n0, _RPe,\n 0,\n [_MRA, _MEAIS],\n [1, 1]\n];\nexport var RoutingConfig$ = [3, n0, _RC,\n 0,\n [_FC],\n [() => FailoverConfig$], 1\n];\nexport var Rule$ = [3, n0, _Rul,\n 0,\n [_N, _Ar, _EP, _St, _D, _SE, _RAo, _MB, _EBN],\n [0, 0, 0, 0, 0, 0, 0, 0, 0]\n];\nexport var RunCommandParameters$ = [3, n0, _RCP,\n 0,\n [_RCT],\n [() => RunCommandTargets], 1\n];\nexport var RunCommandTarget$ = [3, n0, _RCTu,\n 0,\n [_K, _Va],\n [0, 64 | 0], 2\n];\nexport var SageMakerPipelineParameter$ = [3, n0, _SMPP,\n 0,\n [_N, _V],\n [0, 0], 2\n];\nexport var SageMakerPipelineParameters$ = [3, n0, _SMPPa,\n 0,\n [_PPL],\n [() => SageMakerPipelineParameterList]\n];\nexport var Secondary$ = [3, n0, _Se,\n 0,\n [_Ro],\n [0], 1\n];\nexport var SqsParameters$ = [3, n0, _SP,\n 0,\n [_MGI],\n [0]\n];\nexport var StartReplayRequest$ = [3, n0, _SRR,\n 0,\n [_RN, _ESA, _EST, _EET, _De, _D],\n [0, 0, 4, 4, () => ReplayDestination$, 0], 5\n];\nexport var StartReplayResponse$ = [3, n0, _SRRt,\n 0,\n [_RA, _St, _SR, _RST],\n [0, 0, 0, 4]\n];\nexport var Tag$ = [3, n0, _Tag,\n 0,\n [_K, _V],\n [0, 0], 2\n];\nexport var TagResourceRequest$ = [3, n0, _TRR,\n 0,\n [_RARN, _Ta],\n [0, () => TagList], 2\n];\nexport var TagResourceResponse$ = [3, n0, _TRRa,\n 0,\n [],\n []\n];\nexport var Target$ = [3, n0, _Targ,\n 0,\n [_Id, _Ar, _RAo, _In, _IP, _IT, _KP, _RCP, _EPc, _BP, _SP, _HPt, _RDP, _SMPPa, _DLC, _RPe, _ASP],\n [0, 0, 0, 0, 0, () => InputTransformer$, () => KinesisParameters$, () => RunCommandParameters$, () => EcsParameters$, () => BatchParameters$, () => SqsParameters$, () => HttpParameters$, [() => RedshiftDataParameters$, 0], () => SageMakerPipelineParameters$, () => DeadLetterConfig$, () => RetryPolicy$, [() => AppSyncParameters$, 0]], 2\n];\nexport var TestEventPatternRequest$ = [3, n0, _TEPR,\n 0,\n [_EP, _Ev],\n [0, 0], 2\n];\nexport var TestEventPatternResponse$ = [3, n0, _TEPRe,\n 0,\n [_Res],\n [2]\n];\nexport var UntagResourceRequest$ = [3, n0, _URR,\n 0,\n [_RARN, _TK],\n [0, 64 | 0], 2\n];\nexport var UntagResourceResponse$ = [3, n0, _URRn,\n 0,\n [],\n []\n];\nexport var UpdateApiDestinationRequest$ = [3, n0, _UADR,\n 0,\n [_N, _D, _CA, _IEn, _HM, _IRLPS],\n [0, 0, 0, 0, 0, 1], 1\n];\nexport var UpdateApiDestinationResponse$ = [3, n0, _UADRp,\n 0,\n [_ADA, _ADS, _CT, _LMT],\n [0, 0, 4, 4]\n];\nexport var UpdateArchiveRequest$ = [3, n0, _UAR,\n 0,\n [_AN, _D, _EP, _RD, _KKI],\n [0, 0, 0, 1, 0], 1\n];\nexport var UpdateArchiveResponse$ = [3, n0, _UARp,\n 0,\n [_AA, _St, _SR, _CT],\n [0, 0, 0, 4]\n];\nexport var UpdateConnectionApiKeyAuthRequestParameters$ = [3, n0, _UCAKARP,\n 0,\n [_AKN, _AKV],\n [0, [() => AuthHeaderParametersSensitive, 0]]\n];\nexport var UpdateConnectionAuthRequestParameters$ = [3, n0, _UCARP,\n 0,\n [_BAPa, _OAP, _AKAP, _IHP, _CP],\n [[() => UpdateConnectionBasicAuthRequestParameters$, 0], [() => UpdateConnectionOAuthRequestParameters$, 0], [() => UpdateConnectionApiKeyAuthRequestParameters$, 0], [() => ConnectionHttpParameters$, 0], () => ConnectivityResourceParameters$]\n];\nexport var UpdateConnectionBasicAuthRequestParameters$ = [3, n0, _UCBARP,\n 0,\n [_U, _P],\n [0, [() => AuthHeaderParametersSensitive, 0]]\n];\nexport var UpdateConnectionOAuthClientRequestParameters$ = [3, n0, _UCOACRP,\n 0,\n [_CID, _CSl],\n [0, [() => AuthHeaderParametersSensitive, 0]]\n];\nexport var UpdateConnectionOAuthRequestParameters$ = [3, n0, _UCOARP,\n 0,\n [_CPl, _AE, _HM, _OAHP],\n [[() => UpdateConnectionOAuthClientRequestParameters$, 0], 0, 0, [() => ConnectionHttpParameters$, 0]]\n];\nexport var UpdateConnectionRequest$ = [3, n0, _UCR,\n 0,\n [_N, _D, _AT, _APu, _ICP, _KKI],\n [0, 0, 0, [() => UpdateConnectionAuthRequestParameters$, 0], () => ConnectivityResourceParameters$, 0], 1\n];\nexport var UpdateConnectionResponse$ = [3, n0, _UCRp,\n 0,\n [_CA, _CS, _CT, _LMT, _LAT],\n [0, 0, 4, 4, 4]\n];\nexport var UpdateEndpointRequest$ = [3, n0, _UER,\n 0,\n [_N, _D, _RC, _RCe, _EB, _RAo],\n [0, 0, () => RoutingConfig$, () => ReplicationConfig$, () => EndpointEventBusList, 0], 1\n];\nexport var UpdateEndpointResponse$ = [3, n0, _UERp,\n 0,\n [_N, _Ar, _RC, _RCe, _EB, _RAo, _EI, _EU, _St],\n [0, 0, () => RoutingConfig$, () => ReplicationConfig$, () => EndpointEventBusList, 0, 0, 0, 0]\n];\nexport var UpdateEventBusRequest$ = [3, n0, _UEBR,\n 0,\n [_N, _KKI, _D, _DLC, _LC],\n [0, 0, 0, () => DeadLetterConfig$, () => LogConfig$]\n];\nexport var UpdateEventBusResponse$ = [3, n0, _UEBRp,\n 0,\n [_Ar, _N, _KKI, _D, _DLC, _LC],\n [0, 0, 0, 0, () => DeadLetterConfig$, () => LogConfig$]\n];\nvar __Unit = \"unit\";\nvar ApiDestinationResponseList = [1, n0, _ADRL,\n 0, () => ApiDestination$\n];\nvar ArchiveResponseList = [1, n0, _ARL,\n 0, () => Archive$\n];\nvar CapacityProviderStrategy = [1, n0, _CPS,\n 0, () => CapacityProviderStrategyItem$\n];\nvar ConnectionBodyParametersList = [1, n0, _CBPL,\n 0, [() => ConnectionBodyParameter$,\n 0]\n];\nvar ConnectionHeaderParametersList = [1, n0, _CHPL,\n 0, [() => ConnectionHeaderParameter$,\n 0]\n];\nvar ConnectionQueryStringParametersList = [1, n0, _CQSPL,\n 0, [() => ConnectionQueryStringParameter$,\n 0]\n];\nvar ConnectionResponseList = [1, n0, _CRL,\n 0, () => Connection$\n];\nvar EndpointEventBusList = [1, n0, _EEBL,\n 0, () => EndpointEventBus$\n];\nvar EndpointList = [1, n0, _EL,\n 0, () => Endpoint$\n];\nvar EventBusList = [1, n0, _EBL,\n 0, () => EventBus$\n];\nvar EventResourceList = 64 | 0;\nvar EventSourceList = [1, n0, _ESL,\n 0, () => EventSource$\n];\nvar PartnerEventSourceAccountList = [1, n0, _PESAL,\n 0, () => PartnerEventSourceAccount$\n];\nvar PartnerEventSourceList = [1, n0, _PESL,\n 0, () => PartnerEventSource$\n];\nvar PathParameterList = 64 | 0;\nvar PlacementConstraints = [1, n0, _PC,\n 0, () => PlacementConstraint$\n];\nvar PlacementStrategies = [1, n0, _PSl,\n 0, () => PlacementStrategy$\n];\nvar PutEventsRequestEntryList = [1, n0, _PEREL,\n 0, () => PutEventsRequestEntry$\n];\nvar PutEventsResultEntryList = [1, n0, _PERELu,\n 0, () => PutEventsResultEntry$\n];\nvar PutPartnerEventsRequestEntryList = [1, n0, _PPEREL,\n 0, () => PutPartnerEventsRequestEntry$\n];\nvar PutPartnerEventsResultEntryList = [1, n0, _PPERELu,\n 0, () => PutPartnerEventsResultEntry$\n];\nvar PutTargetsResultEntryList = [1, n0, _PTREL,\n 0, () => PutTargetsResultEntry$\n];\nvar RemoveTargetsResultEntryList = [1, n0, _RTREL,\n 0, () => RemoveTargetsResultEntry$\n];\nvar ReplayDestinationFilters = 64 | 0;\nvar ReplayList = [1, n0, _RL,\n 0, () => Replay$\n];\nvar RuleNameList = 64 | 0;\nvar RuleResponseList = [1, n0, _RRL,\n 0, () => Rule$\n];\nvar RunCommandTargets = [1, n0, _RCT,\n 0, () => RunCommandTarget$\n];\nvar RunCommandTargetValues = 64 | 0;\nvar SageMakerPipelineParameterList = [1, n0, _SMPPL,\n 0, () => SageMakerPipelineParameter$\n];\nvar Sqls = [1, n0, _Sq,\n 8, [() => Sql,\n 0]\n];\nvar StringList = 64 | 0;\nvar TagKeyList = 64 | 0;\nvar TagList = [1, n0, _TL,\n 0, () => Tag$\n];\nvar TargetIdList = 64 | 0;\nvar TargetList = [1, n0, _TLa,\n 0, [() => Target$,\n 0]\n];\nvar HeaderParametersMap = 128 | 0;\nvar QueryStringParametersMap = 128 | 0;\nvar TransformerPaths = 128 | 0;\nexport var ActivateEventSource$ = [9, n0, _AES,\n 0, () => ActivateEventSourceRequest$, () => __Unit\n];\nexport var CancelReplay$ = [9, n0, _CR,\n 0, () => CancelReplayRequest$, () => CancelReplayResponse$\n];\nexport var CreateApiDestination$ = [9, n0, _CAD,\n 0, () => CreateApiDestinationRequest$, () => CreateApiDestinationResponse$\n];\nexport var CreateArchive$ = [9, n0, _CAr,\n 0, () => CreateArchiveRequest$, () => CreateArchiveResponse$\n];\nexport var CreateConnection$ = [9, n0, _CC,\n 0, () => CreateConnectionRequest$, () => CreateConnectionResponse$\n];\nexport var CreateEndpoint$ = [9, n0, _CE,\n 0, () => CreateEndpointRequest$, () => CreateEndpointResponse$\n];\nexport var CreateEventBus$ = [9, n0, _CEB,\n 0, () => CreateEventBusRequest$, () => CreateEventBusResponse$\n];\nexport var CreatePartnerEventSource$ = [9, n0, _CPES,\n 0, () => CreatePartnerEventSourceRequest$, () => CreatePartnerEventSourceResponse$\n];\nexport var DeactivateEventSource$ = [9, n0, _DES,\n 0, () => DeactivateEventSourceRequest$, () => __Unit\n];\nexport var DeauthorizeConnection$ = [9, n0, _DC,\n 0, () => DeauthorizeConnectionRequest$, () => DeauthorizeConnectionResponse$\n];\nexport var DeleteApiDestination$ = [9, n0, _DAD,\n 0, () => DeleteApiDestinationRequest$, () => DeleteApiDestinationResponse$\n];\nexport var DeleteArchive$ = [9, n0, _DA,\n 0, () => DeleteArchiveRequest$, () => DeleteArchiveResponse$\n];\nexport var DeleteConnection$ = [9, n0, _DCe,\n 0, () => DeleteConnectionRequest$, () => DeleteConnectionResponse$\n];\nexport var DeleteEndpoint$ = [9, n0, _DE,\n 0, () => DeleteEndpointRequest$, () => DeleteEndpointResponse$\n];\nexport var DeleteEventBus$ = [9, n0, _DEB,\n 0, () => DeleteEventBusRequest$, () => __Unit\n];\nexport var DeletePartnerEventSource$ = [9, n0, _DPES,\n 0, () => DeletePartnerEventSourceRequest$, () => __Unit\n];\nexport var DeleteRule$ = [9, n0, _DR,\n 0, () => DeleteRuleRequest$, () => __Unit\n];\nexport var DescribeApiDestination$ = [9, n0, _DADe,\n 0, () => DescribeApiDestinationRequest$, () => DescribeApiDestinationResponse$\n];\nexport var DescribeArchive$ = [9, n0, _DAe,\n 0, () => DescribeArchiveRequest$, () => DescribeArchiveResponse$\n];\nexport var DescribeConnection$ = [9, n0, _DCes,\n 0, () => DescribeConnectionRequest$, () => DescribeConnectionResponse$\n];\nexport var DescribeEndpoint$ = [9, n0, _DEe,\n 0, () => DescribeEndpointRequest$, () => DescribeEndpointResponse$\n];\nexport var DescribeEventBus$ = [9, n0, _DEBe,\n 0, () => DescribeEventBusRequest$, () => DescribeEventBusResponse$\n];\nexport var DescribeEventSource$ = [9, n0, _DESe,\n 0, () => DescribeEventSourceRequest$, () => DescribeEventSourceResponse$\n];\nexport var DescribePartnerEventSource$ = [9, n0, _DPESe,\n 0, () => DescribePartnerEventSourceRequest$, () => DescribePartnerEventSourceResponse$\n];\nexport var DescribeReplay$ = [9, n0, _DRe,\n 0, () => DescribeReplayRequest$, () => DescribeReplayResponse$\n];\nexport var DescribeRule$ = [9, n0, _DRes,\n 0, () => DescribeRuleRequest$, () => DescribeRuleResponse$\n];\nexport var DisableRule$ = [9, n0, _DRi,\n 0, () => DisableRuleRequest$, () => __Unit\n];\nexport var EnableRule$ = [9, n0, _ER,\n 0, () => EnableRuleRequest$, () => __Unit\n];\nexport var ListApiDestinations$ = [9, n0, _LAD,\n 0, () => ListApiDestinationsRequest$, () => ListApiDestinationsResponse$\n];\nexport var ListArchives$ = [9, n0, _LA,\n 0, () => ListArchivesRequest$, () => ListArchivesResponse$\n];\nexport var ListConnections$ = [9, n0, _LCi,\n 0, () => ListConnectionsRequest$, () => ListConnectionsResponse$\n];\nexport var ListEndpoints$ = [9, n0, _LE,\n 0, () => ListEndpointsRequest$, () => ListEndpointsResponse$\n];\nexport var ListEventBuses$ = [9, n0, _LEB,\n 0, () => ListEventBusesRequest$, () => ListEventBusesResponse$\n];\nexport var ListEventSources$ = [9, n0, _LES,\n 0, () => ListEventSourcesRequest$, () => ListEventSourcesResponse$\n];\nexport var ListPartnerEventSourceAccounts$ = [9, n0, _LPESA,\n 0, () => ListPartnerEventSourceAccountsRequest$, () => ListPartnerEventSourceAccountsResponse$\n];\nexport var ListPartnerEventSources$ = [9, n0, _LPES,\n 0, () => ListPartnerEventSourcesRequest$, () => ListPartnerEventSourcesResponse$\n];\nexport var ListReplays$ = [9, n0, _LR,\n 0, () => ListReplaysRequest$, () => ListReplaysResponse$\n];\nexport var ListRuleNamesByTarget$ = [9, n0, _LRNBT,\n 0, () => ListRuleNamesByTargetRequest$, () => ListRuleNamesByTargetResponse$\n];\nexport var ListRules$ = [9, n0, _LRi,\n 0, () => ListRulesRequest$, () => ListRulesResponse$\n];\nexport var ListTagsForResource$ = [9, n0, _LTFR,\n 0, () => ListTagsForResourceRequest$, () => ListTagsForResourceResponse$\n];\nexport var ListTargetsByRule$ = [9, n0, _LTBR,\n 0, () => ListTargetsByRuleRequest$, () => ListTargetsByRuleResponse$\n];\nexport var PutEvents$ = [9, n0, _PE,\n 0, () => PutEventsRequest$, () => PutEventsResponse$\n];\nexport var PutPartnerEvents$ = [9, n0, _PPE,\n 0, () => PutPartnerEventsRequest$, () => PutPartnerEventsResponse$\n];\nexport var PutPermission$ = [9, n0, _PP,\n 0, () => PutPermissionRequest$, () => __Unit\n];\nexport var PutRule$ = [9, n0, _PR,\n 0, () => PutRuleRequest$, () => PutRuleResponse$\n];\nexport var PutTargets$ = [9, n0, _PTu,\n 0, () => PutTargetsRequest$, () => PutTargetsResponse$\n];\nexport var RemovePermission$ = [9, n0, _RPem,\n 0, () => RemovePermissionRequest$, () => __Unit\n];\nexport var RemoveTargets$ = [9, n0, _RT,\n 0, () => RemoveTargetsRequest$, () => RemoveTargetsResponse$\n];\nexport var StartReplay$ = [9, n0, _SRt,\n 0, () => StartReplayRequest$, () => StartReplayResponse$\n];\nexport var TagResource$ = [9, n0, _TR,\n 0, () => TagResourceRequest$, () => TagResourceResponse$\n];\nexport var TestEventPattern$ = [9, n0, _TEP,\n 0, () => TestEventPatternRequest$, () => TestEventPatternResponse$\n];\nexport var UntagResource$ = [9, n0, _UR,\n 0, () => UntagResourceRequest$, () => UntagResourceResponse$\n];\nexport var UpdateApiDestination$ = [9, n0, _UAD,\n 0, () => UpdateApiDestinationRequest$, () => UpdateApiDestinationResponse$\n];\nexport var UpdateArchive$ = [9, n0, _UA,\n 0, () => UpdateArchiveRequest$, () => UpdateArchiveResponse$\n];\nexport var UpdateConnection$ = [9, n0, _UC,\n 0, () => UpdateConnectionRequest$, () => UpdateConnectionResponse$\n];\nexport var UpdateEndpoint$ = [9, n0, _UE,\n 0, () => UpdateEndpointRequest$, () => UpdateEndpointResponse$\n];\nexport var UpdateEventBus$ = [9, n0, _UEB,\n 0, () => UpdateEventBusRequest$, () => UpdateEventBusResponse$\n];\n","import { AwsSdkSigV4ASigner, AwsSdkSigV4Signer } from \"@aws-sdk/core\";\nimport { AwsJson1_1Protocol } from \"@aws-sdk/core/protocols\";\nimport { SignatureV4MultiRegion } from \"@aws-sdk/signature-v4-multi-region\";\nimport { NoOpLogger } from \"@smithy/smithy-client\";\nimport { parseUrl } from \"@smithy/url-parser\";\nimport { fromBase64, toBase64 } from \"@smithy/util-base64\";\nimport { fromUtf8, toUtf8 } from \"@smithy/util-utf8\";\nimport { defaultEventBridgeHttpAuthSchemeProvider } from \"./auth/httpAuthSchemeProvider\";\nimport { defaultEndpointResolver } from \"./endpoint/endpointResolver\";\nimport { errorTypeRegistries } from \"./schemas/schemas_0\";\nexport const getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2015-10-07\",\n base64Decoder: config?.base64Decoder ?? fromBase64,\n base64Encoder: config?.base64Encoder ?? toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultEventBridgeHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"aws.auth#sigv4a\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4a\"),\n signer: new AwsSdkSigV4ASigner(),\n },\n ],\n logger: config?.logger ?? new NoOpLogger(),\n protocol: config?.protocol ?? AwsJson1_1Protocol,\n protocolSettings: config?.protocolSettings ?? {\n defaultNamespace: \"com.amazonaws.eventbridge\",\n errorTypeRegistries,\n xmlNamespace: \"http://events.amazonaws.com/doc/2015-10-07\",\n version: \"2015-10-07\",\n serviceTarget: \"AWSEvents\",\n },\n serviceId: config?.serviceId ?? \"EventBridge\",\n signerConstructor: config?.signerConstructor ?? SignatureV4MultiRegion,\n urlParser: config?.urlParser ?? parseUrl,\n utf8Decoder: config?.utf8Decoder ?? fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? toUtf8,\n };\n};\n","import packageInfo from \"../package.json\";\nimport { emitWarningIfUnsupportedVersion as awsCheckVersion, NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, NODE_SIGV4A_CONFIG_OPTIONS, } from \"@aws-sdk/core\";\nimport { defaultProvider as credentialDefaultProvider } from \"@aws-sdk/credential-provider-node\";\nimport { createDefaultUserAgentProvider, NODE_APP_ID_CONFIG_OPTIONS } from \"@aws-sdk/util-user-agent-node\";\nimport { NODE_REGION_CONFIG_FILE_OPTIONS, NODE_REGION_CONFIG_OPTIONS, NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, } from \"@smithy/config-resolver\";\nimport { Hash } from \"@smithy/hash-node\";\nimport { NODE_MAX_ATTEMPT_CONFIG_OPTIONS, NODE_RETRY_MODE_CONFIG_OPTIONS } from \"@smithy/middleware-retry\";\nimport { loadConfig as loadNodeConfig } from \"@smithy/node-config-provider\";\nimport { NodeHttpHandler as RequestHandler, streamCollector } from \"@smithy/node-http-handler\";\nimport { emitWarningIfUnsupportedVersion, loadConfigsForDefaultMode } from \"@smithy/smithy-client\";\nimport { calculateBodyLength } from \"@smithy/util-body-length-node\";\nimport { resolveDefaultsModeConfig } from \"@smithy/util-defaults-mode-node\";\nimport { DEFAULT_RETRY_MODE } from \"@smithy/util-retry\";\nimport { getRuntimeConfig as getSharedRuntimeConfig } from \"./runtimeConfig.shared\";\nexport const getRuntimeConfig = (config) => {\n emitWarningIfUnsupportedVersion(process.version);\n const defaultsMode = resolveDefaultsModeConfig(config);\n const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode);\n const clientSharedValues = getSharedRuntimeConfig(config);\n awsCheckVersion(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? loadNodeConfig(NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credentialDefaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ?? createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),\n maxAttempts: config?.maxAttempts ?? loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ?? loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, { ...NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: RequestHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n loadNodeConfig({\n ...NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? Hash.bind(null, \"sha256\"),\n sigv4aSigningRegionSet: config?.sigv4aSigningRegionSet ?? loadNodeConfig(NODE_SIGV4A_CONFIG_OPTIONS, loaderConfig),\n streamCollector: config?.streamCollector ?? streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? loadNodeConfig(NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? loadNodeConfig(NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? loadNodeConfig(NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\n","export const getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexport const resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\n","import { getAwsRegionExtensionConfiguration, resolveAwsRegionExtensionConfiguration, } from \"@aws-sdk/region-config-resolver\";\nimport { getHttpHandlerExtensionConfiguration, resolveHttpHandlerRuntimeConfig } from \"@smithy/protocol-http\";\nimport { getDefaultExtensionConfiguration, resolveDefaultRuntimeConfig } from \"@smithy/smithy-client\";\nimport { getHttpAuthExtensionConfiguration, resolveHttpAuthRuntimeConfig } from \"./auth/httpAuthExtensionConfiguration\";\nexport const resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(getAwsRegionExtensionConfiguration(runtimeConfig), getDefaultExtensionConfiguration(runtimeConfig), getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, resolveAwsRegionExtensionConfiguration(extensionConfiguration), resolveDefaultRuntimeConfig(extensionConfiguration), resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration));\n};\n","import { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRecursionDetectionPlugin } from \"@aws-sdk/middleware-recursion-detection\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { resolveRegionConfig } from \"@smithy/config-resolver\";\nimport { DefaultIdentityProviderConfig, getHttpAuthSchemeEndpointRuleSetPlugin, getHttpSigningPlugin, } from \"@smithy/core\";\nimport { getSchemaSerdePlugin } from \"@smithy/core/schema\";\nimport { getContentLengthPlugin } from \"@smithy/middleware-content-length\";\nimport { resolveEndpointConfig, } from \"@smithy/middleware-endpoint\";\nimport { getRetryPlugin, resolveRetryConfig, } from \"@smithy/middleware-retry\";\nimport { Client as __Client, } from \"@smithy/smithy-client\";\nimport { defaultEventBridgeHttpAuthSchemeParametersProvider, resolveHttpAuthSchemeConfig, } from \"./auth/httpAuthSchemeProvider\";\nimport { resolveClientEndpointParameters, } from \"./endpoint/EndpointParameters\";\nimport { getRuntimeConfig as __getRuntimeConfig } from \"./runtimeConfig\";\nimport { resolveRuntimeExtensions } from \"./runtimeExtensions\";\nexport { __Client };\nexport class EventBridgeClient extends __Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = __getRuntimeConfig(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = resolveUserAgentConfig(_config_1);\n const _config_3 = resolveRetryConfig(_config_2);\n const _config_4 = resolveRegionConfig(_config_3);\n const _config_5 = resolveHostHeaderConfig(_config_4);\n const _config_6 = resolveEndpointConfig(_config_5);\n const _config_7 = resolveHttpAuthSchemeConfig(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use(getSchemaSerdePlugin(this.config));\n this.middlewareStack.use(getUserAgentPlugin(this.config));\n this.middlewareStack.use(getRetryPlugin(this.config));\n this.middlewareStack.use(getContentLengthPlugin(this.config));\n this.middlewareStack.use(getHostHeaderPlugin(this.config));\n this.middlewareStack.use(getLoggerPlugin(this.config));\n this.middlewareStack.use(getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {\n httpAuthSchemeParametersProvider: defaultEventBridgeHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n \"aws.auth#sigv4a\": config.credentials,\n }),\n }));\n this.middlewareStack.use(getHttpSigningPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n","import type { Entity as EntityType } from '@monorise/base';\n\nconst SOURCE = {\n CORE: 'core-service',\n GENERAL: 'general',\n};\n\nexport type EventDetail = {\n Source: string;\n DetailType: string;\n};\n\nconst EVENT = {\n CORE: {\n LOGIN_EMAIL_REQUESTED: {\n Source: SOURCE.CORE,\n DetailType: 'login-email-requested',\n },\n\n /*\n * Entity\n */\n ENTITY_CREATED: {\n Source: SOURCE.CORE,\n DetailType: 'entity-created',\n },\n ENTITY_UPSERTED: {\n Source: SOURCE.CORE,\n DetailType: 'entity-upserted',\n },\n ENTITY_UPDATED: {\n Source: SOURCE.CORE,\n DetailType: 'entity-updated',\n },\n ENTITY_DELETED: {\n Source: SOURCE.CORE,\n DetailType: 'entity-deleted',\n },\n ENTITY_MUTUAL_TO_CREATE: {\n Source: SOURCE.CORE,\n DetailType: 'entity-mutual-to-create',\n },\n ENTITY_MUTUAL_TO_UPDATE: {\n Source: SOURCE.CORE,\n DetailType: 'entity-mutual-to-update',\n },\n ENTITY_MUTUAL_PROCESSED: {\n Source: SOURCE.CORE,\n DetailType: 'entity-mutual-processed',\n },\n\n CREATE_ENTITY: {\n Source: SOURCE.CORE,\n DetailType: 'create-entity',\n },\n\n /*\n * Mutual\n */\n MUTUAL_CREATED: (byEntityType: EntityType, entityType: EntityType) => ({\n Source: SOURCE.CORE,\n DetailType: `mutual-created:${byEntityType}:${entityType}`,\n }),\n MUTUAL_UPDATED: (byEntityType: EntityType, entityType: EntityType) => ({\n Source: SOURCE.CORE,\n DetailType: `mutual-updated:${byEntityType}:${entityType}`,\n }),\n MUTUAL_DELETED: (byEntityType: EntityType, entityType: EntityType) => ({\n Source: SOURCE.CORE,\n DetailType: `mutual-deleted:${byEntityType}:${entityType}`,\n }),\n PREJOIN_RELATIONSHIP_SYNC: {\n Source: SOURCE.CORE,\n DetailType: 'prejoin-relationship-sync',\n },\n },\n\n GENERAL: {\n ENDPOINT_ERROR: {\n Source: SOURCE.GENERAL,\n DetailType: 'endpoint-error',\n },\n },\n};\n\nexport { SOURCE, EVENT };\n","import {\n EventBridgeClient,\n PutEventsCommand,\n} from '@aws-sdk/client-eventbridge';\nimport { CORE_EVENT_BUS } from '../configs/service.config';\nimport { EVENT, type EventDetail } from '../types/event';\n\nconst eventBridge = new EventBridgeClient();\n\ntype PublishEventProps<T> = {\n payload: T;\n event: EventDetail;\n};\n\ntype ParsedSQSBusEvent<T = Record<string, any>> = {\n event: EventDetail;\n detail: T;\n};\n\nexport function parseSQSBusEvent<T>(\n evRecordBody: string,\n): ParsedSQSBusEvent<T> {\n const body = JSON.parse(evRecordBody);\n return {\n ...body,\n detail: body.detail,\n event: {\n Source: body.source,\n DetailType: body['detail-type'],\n },\n };\n}\n\nexport async function publishEvent<T extends Record<string, any>>({\n payload,\n event,\n}: PublishEventProps<T>) {\n const params = {\n Entries: [\n {\n ...event,\n Detail: JSON.stringify(payload),\n EventBusName: CORE_EVENT_BUS,\n },\n ],\n };\n\n await eventBridge.send(new PutEventsCommand(params));\n}\n\ntype PublishErrorEventPayload = {\n id: string;\n serviceName: string;\n method: string;\n path: string;\n body?: Record<string, any>;\n error: Error;\n};\n\nexport async function publishErrorEvent({\n id,\n serviceName,\n method,\n path,\n body,\n error,\n}: PublishErrorEventPayload) {\n await publishEvent({\n event: EVENT.GENERAL.ENDPOINT_ERROR,\n payload: {\n id,\n serviceName,\n method,\n path,\n ...(body ? { requestBody: body } : {}),\n error: {\n name: error.name,\n message: error.message,\n // @ts-ignore\n cause: error.cause,\n stack: error.stack,\n },\n },\n });\n}\n","import { createFactory } from 'hono/factory';\nimport { getDependencies } from '../helpers/dependencies';\n\nconst factory = createFactory();\n\nconst generalErrorHandler = (dependencies = getDependencies()) =>\n factory.createMiddleware(async (c) => {\n if (c.error) {\n const { nanoid, publishErrorEvent } = dependencies;\n\n const errorId = nanoid();\n\n const body = await c.req.json();\n\n await publishErrorEvent({\n serviceName: 'monorise-core',\n method: c.req.method,\n path: c.req.path,\n id: errorId,\n body,\n error: c.error,\n });\n\n console.warn(\n JSON.stringify({\n message: 'INTERNAL_SERVER_EXCEPTION',\n details: c.error,\n }),\n );\n\n c.status(500);\n c.json({\n code: 'INTERNAL_SERVER_EXCEPTION',\n id: errorId,\n });\n\n // so lambda monitor able to track error rate\n throw new Error(\n `INTERNAL_SERVER_EXCEPTION: ${errorId}: ${c.req.method} ${c.req.path}: ${c.error}`,\n );\n }\n });\n\nexport default generalErrorHandler;\n","import type { Entity } from '@monorise/base';\nimport { createMiddleware } from 'hono/factory';\nimport httpStatus from 'http-status';\nimport type { ZodError } from 'zod';\nimport { StandardError, StandardErrorCode } from '../../errors/standard-error';\nimport type { EntityService } from '../../services/entity.service';\n\nexport class CreateEntityController {\n constructor(private entityService: EntityService) {}\n\n controller = createMiddleware(async (c) => {\n const accountId = c.req.header('account-id');\n const { entityType } = c.req.param() as {\n entityType: Entity;\n };\n\n const body = await c.req.json();\n\n try {\n const entity = await this.entityService.createEntity({\n entityType,\n entityPayload: body,\n entityId: body.entityId,\n accountId,\n options: {\n createAndUpdateDatetime: body.createdAt,\n },\n });\n\n c.status(httpStatus.OK);\n return c.json(entity);\n } catch (err) {\n if ((err as ZodError).constructor?.name === 'ZodError') {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n code: 'API_VALIDATION_ERROR',\n message: 'API validation failed',\n details: (err as ZodError).flatten(),\n });\n }\n\n if (\n err instanceof StandardError &&\n err.code === StandardErrorCode.EMAIL_EXISTS\n ) {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n ...err.toJSON(),\n });\n }\n\n if (\n err instanceof StandardError &&\n err.code === StandardErrorCode.UNIQUE_VALUE_EXISTS\n ) {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n ...err.toJSON(),\n });\n }\n\n console.log('===create-entity error:', {\n err,\n errorContext: JSON.stringify({\n body,\n headers: c.req.header(),\n }),\n });\n\n throw err;\n }\n });\n}\n","import type { Entity } from '@monorise/base';\nimport { createMiddleware } from 'hono/factory';\nimport httpStatus from 'http-status';\nimport { StandardError, StandardErrorCode } from '../../errors/standard-error';\nimport type { EntityService } from '../../services/entity.service';\n\nexport class DeleteEntityController {\n constructor(private readonly entityService: EntityService) {}\n\n controller = createMiddleware(async (c) => {\n const accountId = c.req.header('account-id');\n const { entityType, entityId } = c.req.param() as {\n entityType: Entity;\n entityId: string;\n };\n\n try {\n await this.entityService.deleteEntity({\n entityType,\n entityId,\n accountId,\n });\n\n return c.json({ message: 'entity deleted' });\n } catch (err) {\n if (\n err instanceof StandardError &&\n err.code === StandardErrorCode.ENTITY_NOT_FOUND\n ) {\n c.status(httpStatus.NOT_FOUND);\n return c.json({\n ...err.toJSON(),\n });\n }\n\n throw err;\n }\n });\n}\n","import type { Entity } from '@monorise/base';\nimport { createMiddleware } from 'hono/factory';\nimport httpStatus from 'http-status';\nimport type { EntityRepository } from '../../data/Entity';\nimport { StandardError, StandardErrorCode } from '../../errors/standard-error';\n\nexport class GetEntityByUniqueFieldValueController {\n constructor(private entityRepository: EntityRepository) {}\n\n controller = createMiddleware(async (c) => {\n const { entityType, uniqueField, uniqueFieldValue } = c.req.param() as {\n entityType: Entity;\n uniqueField: string;\n uniqueFieldValue: string;\n };\n\n try {\n const entity = await this.entityRepository.getEntityByUniqueField(\n entityType,\n uniqueField,\n uniqueFieldValue,\n );\n\n return c.json(entity);\n } catch (err) {\n if (\n err instanceof StandardError &&\n err.code === StandardErrorCode.ENTITY_IS_UNDEFINED\n ) {\n c.status(httpStatus.NOT_FOUND);\n return c.json({\n code: 'ENTITY_NOT_FOUND',\n message: 'Entity not found',\n });\n }\n\n throw err;\n }\n });\n}\n","import type { Entity } from '@monorise/base';\nimport { createMiddleware } from 'hono/factory';\nimport httpStatus from 'http-status';\nimport type { EntityRepository } from '../../data/Entity';\nimport { StandardError, StandardErrorCode } from '../../errors/standard-error';\n\nexport class GetEntityController {\n constructor(private entityRepository: EntityRepository) {}\n\n controller = createMiddleware(async (c) => {\n const { entityType, entityId } = c.req.param() as {\n entityType: Entity;\n entityId: string;\n };\n\n try {\n const entity = await this.entityRepository.getEntity(\n entityType,\n entityId,\n );\n\n c.status(httpStatus.OK);\n return c.json(entity);\n } catch (err) {\n if (\n err instanceof StandardError &&\n err.code === StandardErrorCode.ENTITY_IS_UNDEFINED\n ) {\n c.status(httpStatus.NOT_FOUND);\n return c.json({\n code: 'ENTITY_NOT_FOUND',\n message: 'Entity not found',\n });\n }\n\n throw err;\n }\n });\n}\n","export * from \"./errors.js\";\nexport * from \"./helpers/parseUtil.js\";\nexport * from \"./helpers/typeAliases.js\";\nexport * from \"./helpers/util.js\";\nexport * from \"./types.js\";\nexport * from \"./ZodError.js\";\n","export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n","import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n","import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n","import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n","import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n","export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n","import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n","import type { Entity } from '@monorise/base';\nimport { createMiddleware } from 'hono/factory';\nimport { z } from 'zod';\nimport type { EntityRepository } from '../../data/Entity';\n\nconst querySchema = z.object({\n limit: z.string().optional(),\n lastKey: z.string().optional(),\n query: z.string().trim().optional(),\n start: z.string().optional(),\n end: z.string().optional(),\n});\n\nexport class ListEntitiesController {\n constructor(private entityRepository: EntityRepository) {}\n\n controller = createMiddleware(async (c) => {\n const errorContext: { [key: string]: any } = {};\n try {\n const accountId = c.req.header('account-id') || '';\n if (Array.isArray(accountId)) {\n throw new Error('multiple account-id detected');\n }\n\n const params = c.req.param();\n const queries = c.req.query();\n\n errorContext.accountId = accountId;\n errorContext.params = params;\n errorContext.query = queries;\n\n const { entityType } = params as {\n entityType: Entity;\n };\n\n const { lastKey, query, limit, start, end } = querySchema.parse(queries);\n if (query) {\n const results = await this.entityRepository.queryEntities(\n entityType,\n query,\n );\n\n return c.json({\n data: results.items.map((item) => item.toJSON()),\n totalCount: results.totalCount,\n filteredCount: results.filteredCount,\n lastKey: undefined as string | undefined,\n });\n }\n\n const results = await this.entityRepository.listEntities({\n entityType,\n limit: limit ? Number(limit) : undefined,\n options: {\n lastKey,\n },\n ...(start && end ? { between: { start, end } } : {}),\n });\n return c.json({\n data: results.items.map((item) => item.toJSON()),\n totalCount: results.totalCount,\n filteredCount: undefined as number | undefined,\n lastKey: results.lastKey,\n });\n } catch (error) {\n console.log({ error, errorContext });\n throw error;\n }\n });\n}\n","import type { Entity } from '@monorise/base';\nimport { createMiddleware } from 'hono/factory';\nimport httpStatus from 'http-status';\nimport type { ZodError } from 'zod';\nimport { StandardError, StandardErrorCode } from '../../errors/standard-error';\nimport type { EntityService } from '../../services/entity.service';\n\nexport class UpdateEntityController {\n constructor(private entityService: EntityService) {}\n\n controller = createMiddleware(async (c) => {\n const accountId = c.req.header('account-id');\n const { entityType, entityId } = c.req.param() as {\n entityType: Entity;\n entityId: string;\n };\n\n const body = await c.req.json();\n const { $condition: condition, $where: where, ...entityPayload } = body;\n\n if (condition !== undefined) {\n if (typeof condition !== 'string' || condition.trim().length === 0) {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n code: 'API_VALIDATION_ERROR',\n message: '$condition must be a non-empty string',\n });\n }\n }\n\n const errorContext: any = {\n accountId,\n 'req.params': c.req.param(),\n 'req.body': body,\n };\n\n try {\n const entity = await this.entityService.updateEntity({\n entityType,\n entityId,\n entityPayload,\n accountId,\n condition,\n where,\n });\n errorContext.entity = entity;\n\n c.status(httpStatus.OK);\n return c.json(entity);\n } catch (err) {\n if ((err as ZodError).constructor?.name === 'ZodError') {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n code: 'API_VALIDATION_ERROR',\n message: 'API validation failed',\n details: (err as ZodError).flatten(),\n });\n }\n\n if (\n err instanceof StandardError &&\n err.code === StandardErrorCode.ENTITY_NOT_FOUND\n ) {\n c.status(httpStatus.NOT_FOUND);\n return c.json({\n ...err.toJSON(),\n });\n }\n\n if (\n err instanceof StandardError &&\n err.code === StandardErrorCode.INVALID_CONDITION\n ) {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n ...err.toJSON(),\n });\n }\n\n if (\n err instanceof StandardError &&\n err.code === StandardErrorCode.UNIQUE_VALUE_EXISTS\n ) {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n ...err.toJSON(),\n });\n }\n\n if (\n err instanceof StandardError &&\n err.code === StandardErrorCode.CONDITIONAL_CHECK_FAILED\n ) {\n c.status(httpStatus.CONFLICT);\n return c.json({\n ...err.toJSON(),\n });\n }\n\n console.log(\n '====UPDATE_ENTITY_CONTROLLER_ERROR',\n err,\n JSON.stringify({ errorContext }, null, 2),\n );\n throw err;\n }\n });\n}\n","import type { Entity } from '@monorise/base';\nimport { createMiddleware } from 'hono/factory';\nimport httpStatus from 'http-status';\nimport { StandardError, StandardErrorCode } from '../../errors/standard-error';\nimport type { EntityService } from '../../services/entity.service';\n\nexport class AdjustEntityController {\n constructor(private entityService: EntityService) {}\n\n controller = createMiddleware(async (c) => {\n const accountId = c.req.header('account-id') || '';\n const { entityType, entityId } = c.req.param() as {\n entityType: Entity;\n entityId: string;\n };\n\n const body = await c.req.json();\n const { $condition: condition, ...adjustments } = body;\n\n // Validate $condition is a non-empty string if provided\n if (condition !== undefined) {\n if (typeof condition !== 'string' || condition.trim().length === 0) {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n code: 'API_VALIDATION_ERROR',\n message: '$condition must be a non-empty string',\n });\n }\n }\n\n // Validate all adjustment values are numbers\n for (const [key, value] of Object.entries(adjustments)) {\n if (typeof value !== 'number') {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n code: 'API_VALIDATION_ERROR',\n message: `Field \"${key}\" must be a number, got ${typeof value}`,\n });\n }\n }\n\n try {\n const entity = await this.entityService.adjustEntity({\n entityType,\n entityId,\n adjustments,\n accountId,\n condition,\n });\n\n c.status(httpStatus.OK);\n return c.json(entity.toJSON());\n } catch (err: any) {\n if (\n err instanceof StandardError &&\n err.code === StandardErrorCode.ENTITY_IS_UNDEFINED\n ) {\n c.status(httpStatus.NOT_FOUND);\n return c.json({ ...err.toJSON() });\n }\n\n if (\n err instanceof StandardError &&\n err.code === StandardErrorCode.INVALID_CONDITION\n ) {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({ ...err.toJSON() });\n }\n\n // DynamoDB ConditionalCheckFailedException — constraint violated\n if (\n err?.name === 'ConditionalCheckFailedException' ||\n err?.__type?.includes('ConditionalCheckFailed')\n ) {\n c.status(httpStatus.CONFLICT);\n return c.json({\n code: 'ADJUSTMENT_CONSTRAINT_VIOLATED',\n message: 'Adjustment would violate entity constraints',\n });\n }\n\n console.log('====ADJUST_ENTITY_CONTROLLER_ERROR', err);\n throw err;\n }\n });\n}\n","import type { Entity, createEntityConfig } from '@monorise/base';\nimport { createMiddleware } from 'hono/factory';\nimport httpStatus from 'http-status';\nimport { ZodError } from 'zod';\nimport type { EntityRepository } from '../../data/Entity';\nimport { StandardError, StandardErrorCode } from '../../errors/standard-error';\nimport type { publishEvent as publishEventType } from '../../helpers/event';\nimport { EVENT } from '../../types/event';\n\nexport class UpsertEntityController {\n constructor(\n private EntityConfig: Record<Entity, ReturnType<typeof createEntityConfig>>,\n private entityRepository: EntityRepository,\n private publishEvent: typeof publishEventType,\n ) {}\n\n controller = createMiddleware(async (c) => {\n const accountId = c.req.header('account-id');\n const { entityType, entityId } = c.req.param() as {\n entityType: Entity;\n entityId: string;\n };\n\n try {\n const entitySchema =\n this.EntityConfig[entityType].createSchema ||\n this.EntityConfig[entityType].baseSchema;\n const mutualSchema = this.EntityConfig[entityType].mutual?.mutualSchema;\n\n if (!entitySchema || !mutualSchema) {\n throw new StandardError(\n StandardErrorCode.INVALID_ENTITY_TYPE,\n 'Invalid entity type',\n );\n }\n\n const body = await c.req.json();\n\n const parsedEntityPayload = entitySchema.parse(body);\n const parsedMutualPayload = mutualSchema.parse(body);\n\n const entity = await this.entityRepository.upsertEntity(\n entityType,\n entityId,\n parsedEntityPayload,\n );\n\n if (parsedMutualPayload) {\n const byEntityType = entityType;\n const byEntityId = entity.entityId;\n const publishEventPromises = [];\n\n for (const [fieldKey, config] of Object.entries(\n this.EntityConfig[entityType].mutual?.mutualFields || {},\n )) {\n publishEventPromises.push(\n this.publishEvent({\n event: EVENT.CORE.ENTITY_MUTUAL_TO_UPDATE,\n payload: {\n byEntityType,\n byEntityId,\n entityType: config.entityType,\n field: fieldKey,\n mutualIds: (parsedMutualPayload as any)[fieldKey],\n publishedAt: entity.updatedAt || new Date().toISOString(),\n },\n }),\n );\n }\n await Promise.allSettled(publishEventPromises);\n }\n\n await this.publishEvent({\n event: EVENT.CORE.ENTITY_UPSERTED,\n payload: {\n entityType,\n entityId: entity.entityId,\n payload: body,\n createdByAccountId: accountId,\n },\n });\n\n return c.json(entity);\n } catch (err) {\n if (err instanceof ZodError) {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n code: 'API_VALIDATION_ERROR',\n message: 'API validation failed',\n details: err.flatten(),\n });\n }\n\n if (\n err instanceof StandardError &&\n err.code === StandardErrorCode.EMAIL_EXISTS\n ) {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n ...err.toJSON(),\n });\n }\n\n throw err;\n }\n });\n}\n","import type { Entity as EntityType } from '@monorise/base';\nimport { createMiddleware } from 'hono/factory';\nimport httpStatus from 'http-status';\nimport { ZodError } from 'zod';\nimport { StandardError, StandardErrorCode } from '../../errors/standard-error';\nimport type { MutualService } from '../../services/mutual.service';\n\nexport class CreateMutualController {\n constructor(private mutualService: MutualService) {}\n\n controller = createMiddleware(async (c) => {\n const accountId = c.req.header('account-id');\n const { byEntityType, byEntityId, entityType, entityId } =\n c.req.param() as {\n byEntityType: EntityType;\n byEntityId: string;\n entityType: EntityType;\n entityId: string;\n };\n\n const asEntity = c.req.query('asEntity');\n const body = await c.req.json();\n\n try {\n const { mutual } = await this.mutualService.createMutual({\n byEntityType,\n byEntityId,\n entityType,\n entityId,\n mutualPayload: body,\n accountId,\n options: {\n asEntity: asEntity as unknown as EntityType,\n },\n });\n\n return c.json(mutual);\n } catch (err) {\n if (err instanceof ZodError) {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n code: 'API_VALIDATION_ERROR',\n message: 'API validation failed',\n details: err.flatten(),\n });\n }\n\n if (\n err instanceof StandardError &&\n err.code === StandardErrorCode.MUTUAL_EXISTS\n ) {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n ...err.toJSON(),\n });\n }\n\n if (\n err instanceof StandardError &&\n err.code === StandardErrorCode.ENTITY_IS_UNDEFINED\n ) {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n ...err.toJSON(),\n });\n }\n\n throw err;\n }\n });\n}\n","import type { Entity } from '@monorise/base';\nimport { createMiddleware } from 'hono/factory';\nimport httpStatus from 'http-status';\nimport { StandardError, StandardErrorCode } from '../../errors/standard-error';\nimport type { MutualService } from '../../services/mutual.service';\n\nexport class DeleteMutualController {\n constructor(private mutualService: MutualService) {}\n\n controller = createMiddleware(async (c) => {\n const accountId = c.req.header('account-id');\n const { byEntityType, byEntityId, entityType, entityId } =\n c.req.param() as {\n byEntityType: Entity;\n byEntityId: string;\n entityType: Entity;\n entityId: string;\n };\n\n try {\n const mutual = await this.mutualService.deleteMutual({\n byEntityType,\n byEntityId,\n entityType,\n entityId,\n accountId,\n });\n\n return c.json(mutual);\n } catch (err) {\n if (\n err instanceof StandardError &&\n err.code === StandardErrorCode.MUTUAL_NOT_FOUND\n ) {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n ...err.toJSON(),\n });\n }\n\n throw err;\n }\n });\n}\n","import type { Entity } from '@monorise/base';\nimport { createMiddleware } from 'hono/factory';\nimport httpStatus from 'http-status';\nimport type { MutualRepository } from '../../data/Mutual';\nimport { StandardError, StandardErrorCode } from '../../errors/standard-error';\n\nexport class GetMutualController {\n constructor(private associateRepository: MutualRepository) {}\n\n controller = createMiddleware(async (c) => {\n const { byEntityType, byEntityId, entityType, entityId } =\n c.req.param() as {\n byEntityType: Entity;\n byEntityId: string;\n entityType: Entity;\n entityId: string;\n };\n\n try {\n const associate = await this.associateRepository.getMutual(\n byEntityType,\n byEntityId,\n entityType,\n entityId,\n );\n\n return c.json(associate);\n } catch (err) {\n if (\n err instanceof StandardError &&\n err.code === StandardErrorCode.MUTUAL_IS_UNDEFINED\n ) {\n c.status(httpStatus.NOT_FOUND);\n return c.json({\n code: 'MUTUAL_NOT_FOUND',\n message: 'Mutual not found',\n });\n }\n\n throw err;\n }\n });\n}\n","import type { Entity } from '@monorise/base';\nimport { createMiddleware } from 'hono/factory';\nimport httpStatus from 'http-status';\nimport { ZodError } from 'zod';\nimport { StandardError, StandardErrorCode } from '../../errors/standard-error';\nimport type { MutualService } from '../../services/mutual.service';\n\nexport class UpdateMutualController {\n constructor(private mutualService: MutualService) {}\n\n controller = createMiddleware(async (c) => {\n const accountId = c.req.header('account-id');\n const { byEntityType, byEntityId, entityType, entityId } =\n c.req.param() as {\n byEntityType: Entity;\n byEntityId: string;\n entityType: Entity;\n entityId: string;\n };\n\n const body = await c.req.json();\n\n try {\n const mutual = await this.mutualService.updateMutual({\n byEntityType,\n byEntityId,\n entityType,\n entityId,\n mutualPayload: body,\n accountId,\n options: {\n returnUpdatedValue: true,\n },\n });\n\n return c.json(mutual);\n } catch (err) {\n if (err instanceof ZodError) {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n code: 'API_VALIDATION_ERROR',\n message: 'API validation failed',\n details: err.flatten(),\n });\n }\n\n if (\n err instanceof StandardError &&\n err.code === StandardErrorCode.MUTUAL_NOT_FOUND\n ) {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n ...err.toJSON(),\n });\n }\n\n throw err;\n }\n });\n}\n","import type { Entity } from '@monorise/base';\nimport { createMiddleware } from 'hono/factory';\nimport httpStatus from 'http-status';\nimport { z } from 'zod';\nimport type { TagRepository } from '../../data/Tag';\n\nconst querySchema = z.object({\n group: z.string().optional(),\n query: z.string().optional(),\n start: z.string().optional(),\n end: z.string().optional(),\n limit: z.string().optional(),\n lastKey: z.string().optional(),\n});\n\nexport class ListTagsController {\n constructor(private tagRepository: TagRepository) {}\n\n controller = createMiddleware(async (c) => {\n const errorContext: Record<string, unknown> = {};\n try {\n errorContext.params = c.req.param();\n errorContext.query = c.req.query();\n\n const { entityType, tagName } = c.req.param() as {\n entityType: Entity;\n tagName: string;\n };\n\n const { lastKey, query, limit, start, end, group } = querySchema.parse(\n c.req.query(),\n );\n\n const results = await this.tagRepository.listTags({\n entityType,\n tagName,\n limit: limit ? Number(limit) : undefined,\n options: {\n lastKey,\n },\n query,\n group,\n start,\n end,\n });\n return c.json({\n entities: results.items.map((item) => item.toJSON()),\n totalCount: results.totalCount,\n lastKey: results.lastKey,\n });\n } catch (error) {\n console.log({ error, errorContext });\n throw error;\n }\n });\n}\n","import { createMiddleware } from 'hono/factory';\nimport httpStatus from 'http-status';\nimport type { ZodError } from 'zod';\nimport { StandardError, StandardErrorCode } from '../../errors/standard-error';\nimport type { TransactionService } from '../../services/transaction.service';\n\nexport class ExecuteTransactionController {\n constructor(private transactionService: TransactionService) {}\n\n // biome-ignore lint/suspicious/noExplicitAny: Hono createMiddleware requires consistent return types\n controller = createMiddleware(async (c): Promise<any> => {\n const accountId = c.req.header('account-id') || '';\n const body = await c.req.json();\n\n if (!body.operations || !Array.isArray(body.operations)) {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n code: 'API_VALIDATION_ERROR',\n message: 'Request body must contain an \"operations\" array',\n });\n }\n\n try {\n const result = await this.transactionService.executeTransaction(\n body.operations,\n accountId,\n );\n\n c.status(httpStatus.OK);\n return c.json(result);\n } catch (err) {\n if ((err as ZodError).constructor?.name === 'ZodError') {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({\n code: 'API_VALIDATION_ERROR',\n message: 'Validation failed',\n details: (err as ZodError).flatten(),\n });\n }\n\n if (err instanceof StandardError) {\n const code = err.code;\n if (\n code === StandardErrorCode.TRANSACTION_EMPTY ||\n code === StandardErrorCode.TRANSACTION_ITEM_LIMIT_EXCEEDED ||\n code === StandardErrorCode.TRANSACTION_UNIQUE_FIELD_UPDATE ||\n code === StandardErrorCode.INVALID_ENTITY_TYPE ||\n code === StandardErrorCode.INVALID_CONDITION ||\n code === StandardErrorCode.INVALID_UNIQUE_VALUE_TYPE\n ) {\n c.status(httpStatus.BAD_REQUEST);\n return c.json({ ...err.toJSON() });\n }\n\n if (\n code === StandardErrorCode.TRANSACTION_FAILED ||\n code === StandardErrorCode.CONDITIONAL_CHECK_FAILED ||\n code === StandardErrorCode.UNIQUE_VALUE_EXISTS\n ) {\n c.status(httpStatus.CONFLICT);\n return c.json({ ...err.toJSON() });\n }\n }\n\n throw err;\n }\n });\n}\n","import { createMiddleware } from 'hono/factory';\nimport { ulid } from 'ulid';\nimport type { DependencyContainer } from '../../services/DependencyContainer';\n\nconst TICKET_TTL_SECONDS = 30 * 60; // 30 minutes\n\nexport class CreateTicketController {\n constructor(private container: DependencyContainer) {}\n\n controller = createMiddleware(async (c) => {\n const { entityType, entityId } = c.req.param() as {\n entityType: string;\n entityId: string;\n };\n\n let feedTypes: string[] | undefined;\n try {\n const body = await c.req.json();\n feedTypes = body.feedTypes;\n } catch {\n // No body or invalid JSON — use default (all mutual types)\n }\n\n // If no feedTypes specified, resolve all reachable entity types from config\n // Traverses the mutual graph transitively: user → channel → message\n if (!feedTypes || feedTypes.length === 0) {\n const allConfigs = this.container.config.EntityConfig;\n const visited = new Set<string>();\n const queue: string[] = [entityType];\n\n while (queue.length > 0) {\n const current = queue.shift();\n if (!current) continue;\n if (visited.has(current)) continue;\n visited.add(current);\n\n const config =\n allConfigs[current as unknown as keyof typeof allConfigs];\n if (config?.mutual?.mutualFields) {\n for (const field of Object.values(\n config.mutual.mutualFields,\n ) as unknown as {\n entityType: string;\n }[]) {\n if (!visited.has(field.entityType)) {\n queue.push(field.entityType);\n }\n }\n }\n }\n\n // Remove the root entity itself — feedTypes is about related types\n visited.delete(entityType);\n feedTypes = Array.from(visited);\n }\n\n const ticket = ulid();\n const now = Math.floor(Date.now() / 1000);\n const expiresAt = now + TICKET_TTL_SECONDS;\n\n await this.container.websocketRepository.createTicket(\n ticket,\n entityType,\n entityId,\n feedTypes,\n expiresAt,\n );\n\n const wsEndpoint = process.env.WEBSOCKET_URL || '';\n\n return c.json({\n ticket,\n wsUrl: wsEndpoint,\n expiresIn: TICKET_TTL_SECONDS,\n });\n });\n}\n","import type { Entity as EntityType, EntitySchemaMap } from '@monorise/base';\nimport type {\n TransactionAdjustEntity,\n TransactionCreateEntity,\n TransactionDeleteEntity,\n TransactionOperation,\n TransactionUpdateEntity,\n} from '../types/transaction';\n\nexport const transactional = {\n createEntity: <T extends EntityType>(\n entityType: T,\n payload: EntitySchemaMap[T] & { entityId?: string },\n ): TransactionCreateEntity<T> => {\n const { entityId, ...rest } = payload as EntitySchemaMap[T] & {\n entityId?: string;\n };\n return {\n operation: 'createEntity',\n entityType,\n payload: rest as EntitySchemaMap[T],\n ...(entityId && { entityId }),\n };\n },\n\n updateEntity: <T extends EntityType>(\n entityType: T,\n entityId: string,\n payload: Partial<EntitySchemaMap[T]> & { $condition?: string },\n ): TransactionUpdateEntity<T> => {\n const { $condition, ...rest } = payload as Partial<EntitySchemaMap[T]> & {\n $condition?: string;\n };\n return {\n operation: 'updateEntity',\n entityType,\n entityId,\n payload: rest as Partial<EntitySchemaMap[T]>,\n ...($condition && { condition: $condition }),\n };\n },\n\n adjustEntity: <T extends EntityType>(\n entityType: T,\n entityId: string,\n adjustments: Record<string, number> & { $condition?: string },\n ): TransactionAdjustEntity<T> => {\n const { $condition, ...rest } = adjustments;\n return {\n operation: 'adjustEntity',\n entityType,\n entityId,\n adjustments: rest,\n ...($condition && { condition: $condition }),\n };\n },\n\n deleteEntity: <T extends EntityType>(\n entityType: T,\n entityId: string,\n ): TransactionDeleteEntity<T> => ({\n operation: 'deleteEntity',\n entityType,\n entityId,\n }),\n};\n\nexport type { TransactionOperation };\n","import type { Entity, MonoriseEntityConfig } from '@monorise/base';\nimport type { AxiosResponse } from 'axios';\nimport { initAppActions } from './actions/app.action';\nimport { initAuthActions } from './actions/auth.action';\nimport { initConfigActions } from './actions/config.action';\nimport { initCoreActions } from './actions/core.action';\nimport {\n initWebSocketActions,\n initializeWebSocketManager,\n getWebSocketManager,\n} from './actions/websocket.action';\nimport {\n WebSocketManager,\n type ConnectionState,\n type ClientMessage,\n type ServerMessage,\n} from './websocket';\nimport { initAxiosInterceptor, injectAxiosInterceptor } from './lib/api';\nimport {\n getEntityRequestKey,\n getMutualRequestKey,\n getTagRequestKey,\n getUniqueFieldRequestKey,\n} from './lib/utils';\nimport initAuthService from './services/auth.service';\nimport initCoreService from './services/core.service';\nimport initFilestoreService from './services/filestore.service';\nimport { initMonoriseStore } from './store/monorise.store';\nimport {\n Mutual,\n MutualData,\n MutualDataMapping,\n MutualDataWithIndex,\n} from './types/mutual.type';\n\ntype Options<T extends Record<string, React.ComponentType<any>>> = {\n authBaseUrl?: string;\n filestoreBaseUrl?: string;\n entityBaseUrl?: string;\n mutualBaseUrl?: string;\n tagBaseUrl?: string;\n modals?: T;\n entityConfig: Record<Entity, MonoriseEntityConfig>;\n onApiSuccess?: <T>(\n response: AxiosResponse<T>,\n feedbackSuccess:\n | ((data: AxiosResponse<T>['data']) => React.ReactNode)\n | string\n | boolean,\n ) => void;\n};\n\nconst initMonorise = () => {\n const { monoriseStore: store, setOptions: setMonoriseOptions } =\n initMonoriseStore();\n const appActions = initAppActions(store);\n const configActions = initConfigActions(store);\n const axios = initAxiosInterceptor(store, appActions);\n\n const authService = initAuthService(axios);\n const filestoreService = initFilestoreService(axios);\n const coreService = initCoreService(store, axios);\n\n const authActions = initAuthActions(store, authService);\n const coreActions = initCoreActions(store, appActions, coreService);\n const websocketActions = initWebSocketActions(store);\n\n const axiosInterceptor = injectAxiosInterceptor(\n appActions,\n authActions,\n axios,\n );\n\n const config = <T extends Record<string, React.ComponentType<any>>>(\n opts: Options<T>,\n ) => {\n setMonoriseOptions({\n modals: opts.modals,\n });\n configActions.setConfig(opts.entityConfig);\n authService.setOptions({\n apiBaseUrl: opts.authBaseUrl,\n });\n filestoreService.setOptions({\n apiBaseUrl: opts.filestoreBaseUrl,\n });\n coreService.setOptions({\n entityApiBaseUrl: opts.entityBaseUrl,\n mutualApiBaseUrl: opts.mutualBaseUrl,\n tagApiBaseUrl: opts.tagBaseUrl,\n });\n axiosInterceptor.setOptions({\n onApiSuccess: opts.onApiSuccess,\n });\n };\n\n return {\n config,\n store,\n axios,\n authService,\n filestoreService,\n coreService,\n ...configActions,\n ...appActions,\n ...authActions,\n ...coreActions,\n ...websocketActions,\n };\n};\n\nconst Monorise = initMonorise();\n\nconst {\n store,\n axios,\n authService,\n filestoreService,\n coreService,\n setConfig,\n getConfig,\n useConfig,\n startLoading,\n endLoading,\n setError,\n getError,\n clearError,\n openModal,\n closeModal,\n useLoadStore,\n useInterruptiveLoadStore,\n useErrorStore,\n useModalStore,\n requestLogin,\n useProfile,\n getProfile,\n useIsUnauthorized,\n setIsUnauthorized,\n logout,\n listMoreEntities,\n createEntity,\n upsertEntity,\n editEntity,\n adjustEntity,\n updateLocalEntity,\n deleteEntity,\n getMutual,\n createMutual,\n createLocalMutual,\n upsertLocalMutual,\n editMutual,\n deleteMutual,\n deleteLocalMutual,\n useEntity,\n useEntityByUniqueField,\n useEntities,\n useMutual,\n useMutuals,\n useTaggedEntities,\n useEntityState,\n getEntity,\n updateLocalTaggedEntity,\n deleteLocalTaggedEntity,\n useEntitySocket,\n useMutualSocket,\n useEphemeralSocket,\n useEntityFeed,\n} = Monorise;\n\nexport {\n store,\n axios,\n authService,\n filestoreService,\n coreService,\n setConfig,\n getConfig,\n useConfig,\n startLoading,\n endLoading,\n setError,\n getError,\n clearError,\n openModal,\n closeModal,\n useLoadStore,\n useInterruptiveLoadStore,\n useErrorStore,\n useModalStore,\n requestLogin,\n useProfile,\n getProfile,\n useIsUnauthorized,\n setIsUnauthorized,\n logout,\n listMoreEntities,\n createEntity,\n upsertEntity,\n editEntity,\n adjustEntity,\n updateLocalEntity,\n deleteEntity,\n getMutual,\n createMutual,\n createLocalMutual,\n upsertLocalMutual,\n editMutual,\n deleteMutual,\n deleteLocalMutual,\n useEntity,\n useEntityByUniqueField,\n useEntities,\n useMutual,\n useMutuals,\n useTaggedEntities,\n useEntityState,\n getEntityRequestKey,\n getMutualRequestKey,\n getTagRequestKey,\n getUniqueFieldRequestKey,\n getEntity,\n updateLocalTaggedEntity,\n deleteLocalTaggedEntity,\n useEntitySocket,\n useMutualSocket,\n useEphemeralSocket,\n useEntityFeed,\n initializeWebSocketManager,\n getWebSocketManager,\n WebSocketManager,\n type ConnectionState,\n type ClientMessage,\n type ServerMessage,\n};\n\nexport default Monorise;\n\nexport { transactional } from '@monorise/core';\nexport { MutualDataWithIndex, MutualDataMapping, MutualData, Mutual };\n\nexport type {\n CreatedEntity,\n DraftEntity,\n Entity,\n EntitySchemaMap,\n NumericFields,\n} from '@monorise/base';\n"],"mappings":"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","names":["store","startLoading","request","endLoading","setError","getError","clearError","openModal","closeModal","useLoadStore","useInterruptiveLoadStore","useErrorStore","useModalStore","produce","store","authService","requestLogin","useProfile","getProfile","_a","produce","e","useIsUnauthorized","setIsUnauthorized","logout","produce","store","setConfig","getConfig","useConfig","produce","useEffect","useState","byEntityId","a","b","i","byEntityId","_a","coreService","getError","useLoadStore","useErrorStore","_a","store","produce","error","listMoreEntities","i","state","getEntity","createEntity","_c","byEntityId","upsertEntity","editEntity","adjustEntity","_b","deleteEntity","k","v","getMutual","createMutual","createLocalMutual","updateLocalEntity","upsertLocalMutual","editMutual","deleteMutual","deleteLocalMutual","useEntity","useEffect","useEntityByUniqueField","useEntities","useState","useMutual","useMutuals","useTaggedEntities","useEntityState","updateLocalTaggedEntity","deleteLocalTaggedEntity","useEffect","useState","produce","useEntitySocket","setError","_a","useMutualSocket","byEntityId","e","useEphemeralSocket","useEntityFeed","r","store","startLoading","axios","endLoading","setError","clearError","setIsUnauthorized","_a","_c","_e","opts","axios","logout","axios","opts","getEntity","createEntity","_a","upsertEntity","editEntity","adjustEntity","deleteEntity","byEntityId","getMutual","createMutual","editMutual","deleteMutual","axios","_a","i","handler","request","match","i","j","e","request","request","v","i","a","_a","request","raw","_a","c","_matchResult","_a","_res","k","v","v2","c","_path","_notFoundHandler","_a","handler","request","p","m","r","e","a","b","_a","k","c","_a","i","m","j","_a","i","j","h","e","k","a","b","handler","p","m","r","_routes","_a","handler","i","i2","e","_children","_a","Node","handler","m","i","p","v","a","j","k","b","i2","_a","Node","handler","i","Hono","_a","_a","Hono","handler","import_http_status","_a","chain","_a","c","_a","_c","_e","errorTypeRegistries","request","_a","_c","errorTypeRegistries","Command","o","Command","o","_a","_c","_e","item","data","e","ulid","k","v","_a","QueryCommand","handler","ScanCommand","handler","_a","QueryCommand","ScanCommand","i","j","_a","k","v","import_http_status","factory","c","httpStatus","_a","_c","defaultEndpointResolver","s","name","_a","ResourceNotFoundException","LimitExceededException","ThrottlingException","_I","_ISE","_K","_LEE","_RAEE","_RNFE","_TE","_TK","_c","_e","_m","_s","_se","n0","_s_registry","_s","n0_registry","_e","_c","_m","_ISE","_se","LimitExceededException$","_LEE","LimitExceededException","_RAEE","ResourceNotFoundException$","_RNFE","ResourceNotFoundException","ThrottlingException$","_TE","ThrottlingException","n0","n0","n0","n0","n0","n0","_I","n0","n0","_K","n0","_TK","TagKeyList","_a","_c","_e","_m","getRuntimeConfig","_a","_c","_e","_m","emitWarningIfUnsupportedVersion","getRuntimeConfig","factory","import_http_status","import_http_status","import_http_status","import_http_status","util","k","e","objectUtil","t","i","m","x","s","errorUtil","errorMap","_a","setError","e","ctx","i","result","_c","issues","a","b","x","elements","processed","result","a","b","p","p2","_params","_a","r","_b","ZodFirstPartyTypeKind","import_http_status","import_http_status","import_http_status","import_http_status","import_http_status","import_http_status","import_http_status","querySchema","import_http_status","_a","store","axios","authService","filestoreService","coreService"]}