@hot-updater/server 0.33.0 → 0.33.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/drizzle.cjs +1 -1
- package/dist/adapters/drizzle.d.cts +1 -1
- package/dist/adapters/drizzle.d.mts +1 -1
- package/dist/adapters/drizzle.mjs +1 -1
- package/dist/adapters/kysely.cjs +2 -2
- package/dist/adapters/kysely.d.cts +1 -1
- package/dist/adapters/kysely.d.mts +1 -1
- package/dist/adapters/kysely.mjs +2 -2
- package/dist/adapters/prisma.cjs +1 -1
- package/dist/adapters/prisma.d.cts +1 -1
- package/dist/adapters/prisma.d.mts +1 -1
- package/dist/adapters/prisma.mjs +1 -1
- package/dist/db/ormCore.cjs +1 -1
- package/dist/db/ormCore.d.cts +2 -2
- package/dist/db/ormCore.d.mts +2 -2
- package/dist/db/ormCore.mjs +1 -1
- package/dist/db/pluginCore.cjs +103 -136
- package/dist/db/pluginCore.mjs +104 -137
- package/dist/db/types.cjs +1 -1
- package/dist/db/types.d.cts +2 -3
- package/dist/db/types.d.mts +2 -3
- package/dist/db/types.mjs +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7 → drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579}/node_modules/drizzle-orm/column.cjs +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7 → drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579}/node_modules/drizzle-orm/column.mjs +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7 → drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579}/node_modules/drizzle-orm/entity.cjs +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7 → drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579}/node_modules/drizzle-orm/entity.mjs +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7 → drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579}/node_modules/drizzle-orm/pg-core/columns/enum.cjs +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7 → drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579}/node_modules/drizzle-orm/pg-core/columns/enum.mjs +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7 → drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579}/node_modules/drizzle-orm/sql/expressions/conditions.cjs +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7 → drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579}/node_modules/drizzle-orm/sql/expressions/conditions.mjs +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7 → drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579}/node_modules/drizzle-orm/sql/expressions/select.cjs +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7 → drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579}/node_modules/drizzle-orm/sql/expressions/select.mjs +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7 → drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579}/node_modules/drizzle-orm/sql/sql.cjs +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7 → drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579}/node_modules/drizzle-orm/sql/sql.mjs +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7 → drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579}/node_modules/drizzle-orm/subquery.cjs +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7 → drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579}/node_modules/drizzle-orm/subquery.mjs +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7 → drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579}/node_modules/drizzle-orm/table.cjs +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7 → drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579}/node_modules/drizzle-orm/table.mjs +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/table.utils.cjs +4 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/table.utils.mjs +4 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/tracing.cjs +6 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/tracing.mjs +6 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/view-common.cjs +4 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/view-common.mjs +4 -0
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/adapters/drizzle/index.cjs +4 -4
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/adapters/drizzle/index.d.cts +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/adapters/drizzle/index.d.mts +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/adapters/drizzle/index.mjs +4 -4
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/adapters/prisma/index.cjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/adapters/prisma/index.d.cts +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/adapters/prisma/index.d.mts +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/adapters/prisma/index.mjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-7PZK4ONR.cjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-7PZK4ONR.mjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-C6OTUURW.cjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-C6OTUURW.mjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-CHTIKPQU.cjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-CHTIKPQU.mjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-GUE4GMNC.cjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-GUE4GMNC.mjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-LHHP6UVP.cjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-LHHP6UVP.mjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-LVCPMTAT.cjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-LVCPMTAT.mjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-PK2W2SQ7.cjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-PK2W2SQ7.mjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-ZEQMAIFI.cjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-ZEQMAIFI.mjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-ZOCGSAWS.cjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/chunk-ZOCGSAWS.mjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/create-tg0451Y_.d.cts +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/create-tg0451Y_.d.mts +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/index-CMqePMTF.d.cts +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/index-CMqePMTF.d.mts +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/index.cjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/index.d.cts +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/index.d.mts +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/index.mjs +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/query/index.d.cts +1 -1
- package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/query/index.d.mts +1 -1
- package/dist/packages/server/package.cjs +1 -1
- package/dist/packages/server/package.mjs +1 -1
- package/dist/schema/v0_21_0.cjs +2 -2
- package/dist/schema/v0_21_0.mjs +2 -2
- package/dist/schema/v0_29_0.cjs +2 -2
- package/dist/schema/v0_29_0.mjs +2 -2
- package/dist/schema/v0_31_0.cjs +2 -2
- package/dist/schema/v0_31_0.mjs +2 -2
- package/package.json +14 -11
- package/src/db/index.spec.ts +1 -5
- package/src/db/pluginCore.spec.ts +89 -0
- package/src/db/pluginCore.ts +9 -51
- package/src/db/types.ts +0 -2
- package/src/runtime.spec.ts +1 -5
- package/dist/db/requestBundleIdentityMap.cjs +0 -29
- package/dist/db/requestBundleIdentityMap.mjs +0 -29
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7/node_modules/drizzle-orm/table.utils.cjs +0 -4
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7/node_modules/drizzle-orm/table.utils.mjs +0 -4
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7/node_modules/drizzle-orm/tracing.cjs +0 -6
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7/node_modules/drizzle-orm/tracing.mjs +0 -6
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7/node_modules/drizzle-orm/view-common.cjs +0 -4
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7/node_modules/drizzle-orm/view-common.mjs +0 -4
- package/src/db/requestBundleIdentityMap.spec.ts +0 -56
- package/src/db/requestBundleIdentityMap.ts +0 -61
- /package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/adapters/kysely/index.cjs +0 -0
- /package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/adapters/kysely/index.mjs +0 -0
- /package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/schema/index.cjs +0 -0
- /package/dist/node_modules/.pnpm/{fumadb@0.2.2_drizzle-orm@0.44.7_@cloudflare_workers-types@4.20260313.1_@electric-sql_pg_c72c8c754becd21f6d6662e8fbd28e7f → fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73}/node_modules/fumadb/dist/schema/index.mjs +0 -0
package/src/db/pluginCore.ts
CHANGED
|
@@ -13,12 +13,11 @@ import {
|
|
|
13
13
|
type DatabaseBundleQueryOrder,
|
|
14
14
|
type DatabaseBundleQueryWhere,
|
|
15
15
|
type DatabasePlugin,
|
|
16
|
-
|
|
16
|
+
createRequestUpdateBundleResolver,
|
|
17
17
|
type HotUpdaterContext,
|
|
18
18
|
semverSatisfies,
|
|
19
19
|
} from "@hot-updater/plugin-core";
|
|
20
20
|
|
|
21
|
-
import { createRequestBundleIdentityMap } from "./requestBundleIdentityMap";
|
|
22
21
|
import { assertBundlePersistenceConstraints } from "./schemaEnhancements";
|
|
23
22
|
import type { DatabaseAPI } from "./types";
|
|
24
23
|
import { resolveManifestArtifacts } from "./updateArtifacts";
|
|
@@ -358,28 +357,26 @@ export function createPluginDatabaseCore<TContext = unknown>(
|
|
|
358
357
|
return baseResponse;
|
|
359
358
|
}
|
|
360
359
|
|
|
361
|
-
const
|
|
362
|
-
const requestBundles = createRequestBundleIdentityMap({
|
|
363
|
-
context,
|
|
364
|
-
loadBundleById: (bundleId, requestContext) =>
|
|
365
|
-
getPlugin().getBundleById(bundleId, requestContext),
|
|
366
|
-
seeds: requestBundleSeeds,
|
|
367
|
-
});
|
|
360
|
+
const requestBundles = createRequestUpdateBundleResolver(context);
|
|
368
361
|
const getCurrentBundle = () => {
|
|
369
362
|
if (args.bundleId === NIL_UUID) {
|
|
370
363
|
return null;
|
|
371
364
|
}
|
|
372
365
|
|
|
373
366
|
const seededCurrentBundle = requestBundles.peek(args.bundleId);
|
|
374
|
-
if (seededCurrentBundle ||
|
|
367
|
+
if (seededCurrentBundle || requestBundles.hasSeededBundles()) {
|
|
375
368
|
return seededCurrentBundle;
|
|
376
369
|
}
|
|
377
370
|
|
|
378
|
-
return requestBundles.
|
|
371
|
+
return requestBundles.getById(args.bundleId, () =>
|
|
372
|
+
getPlugin().getBundleById(args.bundleId, context),
|
|
373
|
+
);
|
|
379
374
|
};
|
|
380
375
|
const [fileUrl, targetBundle, currentBundle] = await Promise.all([
|
|
381
376
|
resolveFileUrl(storageUri ?? null, context),
|
|
382
|
-
requestBundles.
|
|
377
|
+
requestBundles.getById(info.id, () =>
|
|
378
|
+
getPlugin().getBundleById(info.id, context),
|
|
379
|
+
),
|
|
383
380
|
getCurrentBundle(),
|
|
384
381
|
]);
|
|
385
382
|
const baseResponse: AppUpdateAvailableInfo = { ...rest, fileUrl };
|
|
@@ -452,45 +449,6 @@ export function createPluginDatabaseCore<TContext = unknown>(
|
|
|
452
449
|
},
|
|
453
450
|
};
|
|
454
451
|
|
|
455
|
-
Object.defineProperty(api, "diagnostics", {
|
|
456
|
-
configurable: true,
|
|
457
|
-
enumerable: true,
|
|
458
|
-
get(this: DatabaseAPI<TContext>) {
|
|
459
|
-
const diagnostics = getPlugin().diagnostics;
|
|
460
|
-
if (!diagnostics) {
|
|
461
|
-
Object.defineProperty(this, "diagnostics", {
|
|
462
|
-
configurable: true,
|
|
463
|
-
enumerable: true,
|
|
464
|
-
value: undefined,
|
|
465
|
-
});
|
|
466
|
-
return undefined;
|
|
467
|
-
}
|
|
468
|
-
|
|
469
|
-
const wrappedDiagnostics: NonNullable<
|
|
470
|
-
DatabaseAPI<TContext>["diagnostics"]
|
|
471
|
-
> = {};
|
|
472
|
-
if (diagnostics.bundleIndex) {
|
|
473
|
-
wrappedDiagnostics.bundleIndex = {
|
|
474
|
-
check: (context?: HotUpdaterContext<TContext>) =>
|
|
475
|
-
getPlugin().diagnostics!.bundleIndex!.check(context),
|
|
476
|
-
...(diagnostics.bundleIndex.repair
|
|
477
|
-
? {
|
|
478
|
-
repair: (context?: HotUpdaterContext<TContext>) =>
|
|
479
|
-
getPlugin().diagnostics!.bundleIndex!.repair!(context),
|
|
480
|
-
}
|
|
481
|
-
: {}),
|
|
482
|
-
};
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
Object.defineProperty(this, "diagnostics", {
|
|
486
|
-
configurable: true,
|
|
487
|
-
enumerable: true,
|
|
488
|
-
value: wrappedDiagnostics,
|
|
489
|
-
});
|
|
490
|
-
return wrappedDiagnostics;
|
|
491
|
-
},
|
|
492
|
-
});
|
|
493
|
-
|
|
494
452
|
return {
|
|
495
453
|
api,
|
|
496
454
|
adapterName: getPlugin().name,
|
package/src/db/types.ts
CHANGED
|
@@ -5,7 +5,6 @@ import type {
|
|
|
5
5
|
UpdateInfo,
|
|
6
6
|
} from "@hot-updater/core";
|
|
7
7
|
import type {
|
|
8
|
-
DatabaseDiagnostics,
|
|
9
8
|
DatabaseBundleQueryOptions,
|
|
10
9
|
DatabasePlugin,
|
|
11
10
|
HotUpdaterContext,
|
|
@@ -109,7 +108,6 @@ export interface DatabaseAPI<TContext = unknown> {
|
|
|
109
108
|
bundleId: string,
|
|
110
109
|
context?: HotUpdaterContext<TContext>,
|
|
111
110
|
): Promise<void>;
|
|
112
|
-
diagnostics?: DatabaseDiagnostics<TContext>;
|
|
113
111
|
}
|
|
114
112
|
|
|
115
113
|
export type StoragePluginFactory<TContext = unknown> =
|
package/src/runtime.spec.ts
CHANGED
|
@@ -733,16 +733,12 @@ describe("runtime createHotUpdater", () => {
|
|
|
733
733
|
factory,
|
|
734
734
|
})({});
|
|
735
735
|
|
|
736
|
-
|
|
736
|
+
createHotUpdater({
|
|
737
737
|
database,
|
|
738
738
|
basePath: "/api/check-update",
|
|
739
739
|
});
|
|
740
740
|
|
|
741
741
|
expect(factory).not.toHaveBeenCalled();
|
|
742
|
-
expect(hotUpdater.diagnostics).toBeUndefined();
|
|
743
|
-
expect(factory).not.toHaveBeenCalled();
|
|
744
|
-
expect(hotUpdater.diagnostics).toBeUndefined();
|
|
745
|
-
expect(factory).not.toHaveBeenCalled();
|
|
746
742
|
});
|
|
747
743
|
|
|
748
744
|
it("clears pending plugin changes after a failed mutation commit", async () => {
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
//#region src/db/requestBundleIdentityMap.ts
|
|
2
|
-
const createRequestBundleIdentityMap = ({ context, loadBundleById, seeds }) => {
|
|
3
|
-
const bundles = /* @__PURE__ */ new Map();
|
|
4
|
-
const pendingBundles = /* @__PURE__ */ new Map();
|
|
5
|
-
for (const seed of seeds) if (seed) bundles.set(seed.id, seed);
|
|
6
|
-
const get = async (bundleId) => {
|
|
7
|
-
const cachedBundle = bundles.get(bundleId);
|
|
8
|
-
if (cachedBundle) return cachedBundle;
|
|
9
|
-
const pendingBundle = pendingBundles.get(bundleId);
|
|
10
|
-
if (pendingBundle) return pendingBundle;
|
|
11
|
-
const lookup = loadBundleById(bundleId, context).then((bundle) => {
|
|
12
|
-
pendingBundles.delete(bundleId);
|
|
13
|
-
if (bundle) bundles.set(bundle.id, bundle);
|
|
14
|
-
return bundle;
|
|
15
|
-
}, (error) => {
|
|
16
|
-
pendingBundles.delete(bundleId);
|
|
17
|
-
throw error;
|
|
18
|
-
});
|
|
19
|
-
pendingBundles.set(bundleId, lookup);
|
|
20
|
-
return lookup;
|
|
21
|
-
};
|
|
22
|
-
const peek = (bundleId) => bundles.get(bundleId) ?? null;
|
|
23
|
-
return {
|
|
24
|
-
get,
|
|
25
|
-
peek
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
//#endregion
|
|
29
|
-
exports.createRequestBundleIdentityMap = createRequestBundleIdentityMap;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
//#region src/db/requestBundleIdentityMap.ts
|
|
2
|
-
const createRequestBundleIdentityMap = ({ context, loadBundleById, seeds }) => {
|
|
3
|
-
const bundles = /* @__PURE__ */ new Map();
|
|
4
|
-
const pendingBundles = /* @__PURE__ */ new Map();
|
|
5
|
-
for (const seed of seeds) if (seed) bundles.set(seed.id, seed);
|
|
6
|
-
const get = async (bundleId) => {
|
|
7
|
-
const cachedBundle = bundles.get(bundleId);
|
|
8
|
-
if (cachedBundle) return cachedBundle;
|
|
9
|
-
const pendingBundle = pendingBundles.get(bundleId);
|
|
10
|
-
if (pendingBundle) return pendingBundle;
|
|
11
|
-
const lookup = loadBundleById(bundleId, context).then((bundle) => {
|
|
12
|
-
pendingBundles.delete(bundleId);
|
|
13
|
-
if (bundle) bundles.set(bundle.id, bundle);
|
|
14
|
-
return bundle;
|
|
15
|
-
}, (error) => {
|
|
16
|
-
pendingBundles.delete(bundleId);
|
|
17
|
-
throw error;
|
|
18
|
-
});
|
|
19
|
-
pendingBundles.set(bundleId, lookup);
|
|
20
|
-
return lookup;
|
|
21
|
-
};
|
|
22
|
-
const peek = (bundleId) => bundles.get(bundleId) ?? null;
|
|
23
|
-
return {
|
|
24
|
-
get,
|
|
25
|
-
peek
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
//#endregion
|
|
29
|
-
export { createRequestBundleIdentityMap };
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@cloudflare+workers-types@4.20260313.1_@electric-sql+pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7/node_modules/drizzle-orm/table.utils.js
|
|
2
|
-
const TableName = Symbol.for("drizzle:Name");
|
|
3
|
-
//#endregion
|
|
4
|
-
exports.TableName = TableName;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@cloudflare+workers-types@4.20260313.1_@electric-sql+pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7/node_modules/drizzle-orm/table.utils.js
|
|
2
|
-
const TableName = Symbol.for("drizzle:Name");
|
|
3
|
-
//#endregion
|
|
4
|
-
export { TableName };
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@cloudflare+workers-types@4.20260313.1_@electric-sql+pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7/node_modules/drizzle-orm/tracing.js
|
|
2
|
-
const tracer = { startActiveSpan(name, fn) {
|
|
3
|
-
return fn();
|
|
4
|
-
} };
|
|
5
|
-
//#endregion
|
|
6
|
-
exports.tracer = tracer;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@cloudflare+workers-types@4.20260313.1_@electric-sql+pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7/node_modules/drizzle-orm/tracing.js
|
|
2
|
-
const tracer = { startActiveSpan(name, fn) {
|
|
3
|
-
return fn();
|
|
4
|
-
} };
|
|
5
|
-
//#endregion
|
|
6
|
-
export { tracer };
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@cloudflare+workers-types@4.20260313.1_@electric-sql+pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7/node_modules/drizzle-orm/view-common.js
|
|
2
|
-
const ViewBaseConfig = Symbol.for("drizzle:ViewBaseConfig");
|
|
3
|
-
//#endregion
|
|
4
|
-
exports.ViewBaseConfig = ViewBaseConfig;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@cloudflare+workers-types@4.20260313.1_@electric-sql+pglite@0.2.17_@_31f44b782f9321d71f3ce9d35aa1edf7/node_modules/drizzle-orm/view-common.js
|
|
2
|
-
const ViewBaseConfig = Symbol.for("drizzle:ViewBaseConfig");
|
|
3
|
-
//#endregion
|
|
4
|
-
export { ViewBaseConfig };
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import type { Bundle } from "@hot-updater/core";
|
|
2
|
-
import { describe, expect, it, vi } from "vitest";
|
|
3
|
-
|
|
4
|
-
import { createRequestBundleIdentityMap } from "./requestBundleIdentityMap";
|
|
5
|
-
|
|
6
|
-
const baseBundle: Bundle = {
|
|
7
|
-
channel: "production",
|
|
8
|
-
enabled: true,
|
|
9
|
-
fileHash: "file-hash",
|
|
10
|
-
fingerprintHash: null,
|
|
11
|
-
gitCommitHash: null,
|
|
12
|
-
id: "00000000-0000-0000-0000-000000000001",
|
|
13
|
-
message: "bundle",
|
|
14
|
-
platform: "ios",
|
|
15
|
-
shouldForceUpdate: false,
|
|
16
|
-
storageUri: "s3://bucket/bundle.zip",
|
|
17
|
-
targetAppVersion: "1.0.0",
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
describe("createRequestBundleIdentityMap", () => {
|
|
21
|
-
it("returns seeded bundles without loading them again", async () => {
|
|
22
|
-
const loadBundleById = vi.fn(async () => null);
|
|
23
|
-
const identityMap = createRequestBundleIdentityMap({
|
|
24
|
-
loadBundleById,
|
|
25
|
-
seeds: [baseBundle],
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
await expect(identityMap.get(baseBundle.id)).resolves.toBe(baseBundle);
|
|
29
|
-
expect(loadBundleById).not.toHaveBeenCalled();
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
it("shares one fallback lookup for repeated bundle reads", async () => {
|
|
33
|
-
const loadedBundle: Bundle = {
|
|
34
|
-
...baseBundle,
|
|
35
|
-
id: "00000000-0000-0000-0000-000000000002",
|
|
36
|
-
message: "loaded",
|
|
37
|
-
};
|
|
38
|
-
const loadBundleById = vi.fn(async () => loadedBundle);
|
|
39
|
-
const identityMap = createRequestBundleIdentityMap({
|
|
40
|
-
loadBundleById,
|
|
41
|
-
seeds: [],
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
const [first, second] = await Promise.all([
|
|
45
|
-
identityMap.get(loadedBundle.id),
|
|
46
|
-
identityMap.get(loadedBundle.id),
|
|
47
|
-
]);
|
|
48
|
-
const third = await identityMap.get(loadedBundle.id);
|
|
49
|
-
|
|
50
|
-
expect(first).toBe(loadedBundle);
|
|
51
|
-
expect(second).toBe(loadedBundle);
|
|
52
|
-
expect(third).toBe(loadedBundle);
|
|
53
|
-
expect(loadBundleById).toHaveBeenCalledTimes(1);
|
|
54
|
-
expect(loadBundleById).toHaveBeenCalledWith(loadedBundle.id, undefined);
|
|
55
|
-
});
|
|
56
|
-
});
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import type { Bundle } from "@hot-updater/core";
|
|
2
|
-
import type { HotUpdaterContext } from "@hot-updater/plugin-core";
|
|
3
|
-
|
|
4
|
-
type LoadBundleById<TContext> = (
|
|
5
|
-
bundleId: string,
|
|
6
|
-
context?: HotUpdaterContext<TContext>,
|
|
7
|
-
) => Promise<Bundle | null>;
|
|
8
|
-
|
|
9
|
-
type RequestBundleIdentityMapOptions<TContext> = {
|
|
10
|
-
readonly context?: HotUpdaterContext<TContext>;
|
|
11
|
-
readonly loadBundleById: LoadBundleById<TContext>;
|
|
12
|
-
readonly seeds: readonly (Bundle | null | undefined)[];
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export const createRequestBundleIdentityMap = <TContext = unknown>({
|
|
16
|
-
context,
|
|
17
|
-
loadBundleById,
|
|
18
|
-
seeds,
|
|
19
|
-
}: RequestBundleIdentityMapOptions<TContext>) => {
|
|
20
|
-
const bundles = new Map<string, Bundle>();
|
|
21
|
-
const pendingBundles = new Map<string, Promise<Bundle | null>>();
|
|
22
|
-
|
|
23
|
-
for (const seed of seeds) {
|
|
24
|
-
if (seed) {
|
|
25
|
-
bundles.set(seed.id, seed);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const get = async (bundleId: string): Promise<Bundle | null> => {
|
|
30
|
-
const cachedBundle = bundles.get(bundleId);
|
|
31
|
-
if (cachedBundle) {
|
|
32
|
-
return cachedBundle;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const pendingBundle = pendingBundles.get(bundleId);
|
|
36
|
-
if (pendingBundle) {
|
|
37
|
-
return pendingBundle;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const lookup = loadBundleById(bundleId, context).then(
|
|
41
|
-
(bundle) => {
|
|
42
|
-
pendingBundles.delete(bundleId);
|
|
43
|
-
if (bundle) {
|
|
44
|
-
bundles.set(bundle.id, bundle);
|
|
45
|
-
}
|
|
46
|
-
return bundle;
|
|
47
|
-
},
|
|
48
|
-
(error: unknown) => {
|
|
49
|
-
pendingBundles.delete(bundleId);
|
|
50
|
-
throw error;
|
|
51
|
-
},
|
|
52
|
-
);
|
|
53
|
-
pendingBundles.set(bundleId, lookup);
|
|
54
|
-
return lookup;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
const peek = (bundleId: string): Bundle | null =>
|
|
58
|
-
bundles.get(bundleId) ?? null;
|
|
59
|
-
|
|
60
|
-
return { get, peek };
|
|
61
|
-
};
|