{
  "version": 3,
  "sources": ["../../src/providers/index.ts"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { applyFilters } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { createHttpPollingProvider } from './http-polling/http-polling-provider';\nimport type { ProviderCreator } from '../types';\n\nlet providerCreators: ProviderCreator[] | null = null;\n\n/**\n * Returns the defeault provider creators. HTTP polling is the current default\n * provider.\n *\n * @return {ProviderCreator[]} Creator functions for Yjs providers.\n */\nexport function getDefaultProviderCreators(): ProviderCreator[] {\n\treturn [ createHttpPollingProvider() ];\n}\n\n/**\n * Type guard to ensure filter return values are functions.\n *\n * @param {unknown} creator\n * @return {boolean} Whether the argument is a function\n */\nfunction isProviderCreator( creator: unknown ): creator is ProviderCreator {\n\treturn 'function' === typeof creator;\n}\n\n/**\n * Get the current Yjs provider creators, allowing plugins to filter the array.\n *\n * @return {ProviderCreator[]} Creator functions for Yjs providers.\n */\nexport function getProviderCreators(): ProviderCreator[] {\n\tif ( providerCreators ) {\n\t\treturn providerCreators;\n\t}\n\n\t// Check if real-time collaboration is enabled via WordPress setting.\n\tif ( ! window._wpCollaborationEnabled ) {\n\t\treturn [];\n\t}\n\n\t/**\n\t * Filter the available provider creators.\n\t */\n\tconst filteredProviderCreators: unknown = applyFilters(\n\t\t'sync.providers',\n\t\tgetDefaultProviderCreators()\n\t);\n\n\t// If the returned value is not an array, ignore and set to empty array.\n\tif ( ! Array.isArray( filteredProviderCreators ) ) {\n\t\tproviderCreators = [];\n\t\treturn providerCreators;\n\t}\n\n\tproviderCreators = filteredProviderCreators.filter( isProviderCreator );\n\n\treturn providerCreators;\n}\n"],
  "mappings": ";AAGA,SAAS,oBAAoB;AAK7B,SAAS,iCAAiC;AAG1C,IAAI,mBAA6C;AAQ1C,SAAS,6BAAgD;AAC/D,SAAO,CAAE,0BAA0B,CAAE;AACtC;AAQA,SAAS,kBAAmB,SAA+C;AAC1E,SAAO,eAAe,OAAO;AAC9B;AAOO,SAAS,sBAAyC;AACxD,MAAK,kBAAmB;AACvB,WAAO;AAAA,EACR;AAGA,MAAK,CAAE,OAAO,yBAA0B;AACvC,WAAO,CAAC;AAAA,EACT;AAKA,QAAM,2BAAoC;AAAA,IACzC;AAAA,IACA,2BAA2B;AAAA,EAC5B;AAGA,MAAK,CAAE,MAAM,QAAS,wBAAyB,GAAI;AAClD,uBAAmB,CAAC;AACpB,WAAO;AAAA,EACR;AAEA,qBAAmB,yBAAyB,OAAQ,iBAAkB;AAEtE,SAAO;AACR;",
  "names": []
}
