@baseplate-dev/plugin-auth 3.0.4 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/dist/auth0/generators/fastify/auth0-module/auth0-module.generator.d.ts +39 -25
  2. package/dist/auth0/generators/fastify/auth0-module/auth0-module.generator.d.ts.map +1 -1
  3. package/dist/auth0/generators/fastify/auth0-module/auth0-module.generator.js +18 -24
  4. package/dist/auth0/generators/fastify/auth0-module/auth0-module.generator.js.map +1 -1
  5. package/dist/auth0/generators/fastify/auth0-module/generated/index.d.ts +16 -0
  6. package/dist/auth0/generators/fastify/auth0-module/generated/index.d.ts.map +1 -1
  7. package/dist/auth0/generators/fastify/auth0-module/generated/template-paths.d.ts +1 -0
  8. package/dist/auth0/generators/fastify/auth0-module/generated/template-paths.d.ts.map +1 -1
  9. package/dist/auth0/generators/fastify/auth0-module/generated/template-paths.js +1 -0
  10. package/dist/auth0/generators/fastify/auth0-module/generated/template-paths.js.map +1 -1
  11. package/dist/auth0/generators/fastify/auth0-module/generated/template-renderers.d.ts +9 -0
  12. package/dist/auth0/generators/fastify/auth0-module/generated/template-renderers.d.ts.map +1 -1
  13. package/dist/auth0/generators/fastify/auth0-module/generated/template-renderers.js +15 -2
  14. package/dist/auth0/generators/fastify/auth0-module/generated/template-renderers.js.map +1 -1
  15. package/dist/auth0/generators/fastify/auth0-module/generated/typed-templates.d.ts +10 -0
  16. package/dist/auth0/generators/fastify/auth0-module/generated/typed-templates.d.ts.map +1 -1
  17. package/dist/auth0/generators/fastify/auth0-module/generated/typed-templates.js +18 -2
  18. package/dist/auth0/generators/fastify/auth0-module/generated/typed-templates.js.map +1 -1
  19. package/dist/auth0/generators/fastify/auth0-module/templates/module/schema/user-session.queries.ts +22 -0
  20. package/dist/auth0/generators/react/auth0-hooks/auth0-hooks.generator.d.ts +0 -5
  21. package/dist/auth0/generators/react/auth0-hooks/auth0-hooks.generator.d.ts.map +1 -1
  22. package/dist/auth0/generators/react/auth0-hooks/auth0-hooks.generator.js +1 -10
  23. package/dist/auth0/generators/react/auth0-hooks/auth0-hooks.generator.js.map +1 -1
  24. package/dist/auth0/generators/react/auth0-hooks/generated/index.d.ts +0 -18
  25. package/dist/auth0/generators/react/auth0-hooks/generated/index.d.ts.map +1 -1
  26. package/dist/auth0/generators/react/auth0-hooks/generated/template-paths.d.ts +0 -2
  27. package/dist/auth0/generators/react/auth0-hooks/generated/template-paths.d.ts.map +1 -1
  28. package/dist/auth0/generators/react/auth0-hooks/generated/template-paths.js +0 -2
  29. package/dist/auth0/generators/react/auth0-hooks/generated/template-paths.js.map +1 -1
  30. package/dist/auth0/generators/react/auth0-hooks/generated/template-renderers.d.ts +1 -7
  31. package/dist/auth0/generators/react/auth0-hooks/generated/template-renderers.d.ts.map +1 -1
  32. package/dist/auth0/generators/react/auth0-hooks/generated/template-renderers.js +3 -12
  33. package/dist/auth0/generators/react/auth0-hooks/generated/template-renderers.js.map +1 -1
  34. package/dist/auth0/generators/react/auth0-hooks/generated/ts-import-providers.d.ts +0 -1
  35. package/dist/auth0/generators/react/auth0-hooks/generated/ts-import-providers.d.ts.map +1 -1
  36. package/dist/auth0/generators/react/auth0-hooks/generated/ts-import-providers.js +0 -1
  37. package/dist/auth0/generators/react/auth0-hooks/generated/ts-import-providers.js.map +1 -1
  38. package/dist/auth0/generators/react/auth0-hooks/generated/typed-templates.d.ts +0 -23
  39. package/dist/auth0/generators/react/auth0-hooks/generated/typed-templates.d.ts.map +1 -1
  40. package/dist/auth0/generators/react/auth0-hooks/generated/typed-templates.js +4 -33
  41. package/dist/auth0/generators/react/auth0-hooks/generated/typed-templates.js.map +1 -1
  42. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/admin-crud-manage-roles-action.generator.d.ts +25 -4
  43. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/admin-crud-manage-roles-action.generator.d.ts.map +1 -1
  44. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/admin-crud-manage-roles-action.generator.js +16 -13
  45. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/admin-crud-manage-roles-action.generator.js.map +1 -1
  46. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/index.d.ts +24 -7
  47. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/index.d.ts.map +1 -1
  48. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/template-paths.d.ts +0 -1
  49. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/template-paths.d.ts.map +1 -1
  50. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/template-paths.js +0 -1
  51. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/template-paths.js.map +1 -1
  52. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/template-renderers.d.ts +13 -6
  53. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/template-renderers.d.ts.map +1 -1
  54. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/template-renderers.js +5 -12
  55. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/template-renderers.js.map +1 -1
  56. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/typed-templates.d.ts +12 -5
  57. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/typed-templates.d.ts.map +1 -1
  58. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/typed-templates.js +3 -12
  59. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/typed-templates.js.map +1 -1
  60. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.d.ts +3 -2
  61. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.d.ts.map +1 -1
  62. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.js +26 -7
  63. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.js.map +1 -1
  64. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.tsx +34 -12
  65. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/admin-crud-reset-password-action.generator.d.ts +25 -4
  66. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/admin-crud-reset-password-action.generator.d.ts.map +1 -1
  67. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/admin-crud-reset-password-action.generator.js +35 -25
  68. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/admin-crud-reset-password-action.generator.js.map +1 -1
  69. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/index.d.ts +24 -7
  70. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/index.d.ts.map +1 -1
  71. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/template-paths.d.ts +0 -1
  72. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/template-paths.d.ts.map +1 -1
  73. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/template-paths.js +0 -1
  74. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/template-paths.js.map +1 -1
  75. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/template-renderers.d.ts +13 -6
  76. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/template-renderers.d.ts.map +1 -1
  77. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/template-renderers.js +5 -12
  78. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/template-renderers.js.map +1 -1
  79. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/typed-templates.d.ts +24 -7
  80. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/typed-templates.d.ts.map +1 -1
  81. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/typed-templates.js +3 -12
  82. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/typed-templates.js.map +1 -1
  83. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.d.ts +3 -2
  84. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.d.ts.map +1 -1
  85. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.js +22 -6
  86. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.js.map +1 -1
  87. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.tsx +30 -11
  88. package/dist/local-auth/admin/generators/admin-crud-roles-column/admin-crud-roles-column.generator.d.ts.map +1 -1
  89. package/dist/local-auth/admin/generators/admin-crud-roles-column/admin-crud-roles-column.generator.js +7 -11
  90. package/dist/local-auth/admin/generators/admin-crud-roles-column/admin-crud-roles-column.generator.js.map +1 -1
  91. package/dist/local-auth/admin/node.d.ts.map +1 -1
  92. package/dist/local-auth/admin/node.js +2 -6
  93. package/dist/local-auth/admin/node.js.map +1 -1
  94. package/dist/local-auth/core/generators/auth-hooks/auth-hooks.generator.d.ts +12 -3
  95. package/dist/local-auth/core/generators/auth-hooks/auth-hooks.generator.d.ts.map +1 -1
  96. package/dist/local-auth/core/generators/auth-hooks/auth-hooks.generator.js +0 -1
  97. package/dist/local-auth/core/generators/auth-hooks/auth-hooks.generator.js.map +1 -1
  98. package/dist/local-auth/core/generators/auth-hooks/generated/index.d.ts +36 -18
  99. package/dist/local-auth/core/generators/auth-hooks/generated/index.d.ts.map +1 -1
  100. package/dist/local-auth/core/generators/auth-hooks/generated/template-paths.d.ts +0 -3
  101. package/dist/local-auth/core/generators/auth-hooks/generated/template-paths.d.ts.map +1 -1
  102. package/dist/local-auth/core/generators/auth-hooks/generated/template-paths.js +0 -3
  103. package/dist/local-auth/core/generators/auth-hooks/generated/template-paths.js.map +1 -1
  104. package/dist/local-auth/core/generators/auth-hooks/generated/template-renderers.d.ts +13 -6
  105. package/dist/local-auth/core/generators/auth-hooks/generated/template-renderers.d.ts.map +1 -1
  106. package/dist/local-auth/core/generators/auth-hooks/generated/template-renderers.js +5 -12
  107. package/dist/local-auth/core/generators/auth-hooks/generated/template-renderers.js.map +1 -1
  108. package/dist/local-auth/core/generators/auth-hooks/generated/ts-import-providers.d.ts +0 -1
  109. package/dist/local-auth/core/generators/auth-hooks/generated/ts-import-providers.d.ts.map +1 -1
  110. package/dist/local-auth/core/generators/auth-hooks/generated/ts-import-providers.js +0 -1
  111. package/dist/local-auth/core/generators/auth-hooks/generated/ts-import-providers.js.map +1 -1
  112. package/dist/local-auth/core/generators/auth-hooks/generated/typed-templates.d.ts +48 -30
  113. package/dist/local-auth/core/generators/auth-hooks/generated/typed-templates.d.ts.map +1 -1
  114. package/dist/local-auth/core/generators/auth-hooks/generated/typed-templates.js +6 -49
  115. package/dist/local-auth/core/generators/auth-hooks/generated/typed-templates.js.map +1 -1
  116. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-log-out.d.ts +1 -0
  117. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-log-out.d.ts.map +1 -1
  118. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-log-out.js +9 -2
  119. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-log-out.js.map +1 -1
  120. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-log-out.ts +10 -2
  121. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-session.d.ts +2 -2
  122. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-session.d.ts.map +1 -1
  123. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-session.js +0 -1
  124. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-session.js.map +1 -1
  125. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-session.ts +2 -2
  126. package/dist/local-auth/core/generators/auth-module/auth-module.generator.d.ts.map +1 -1
  127. package/dist/local-auth/core/generators/auth-module/auth-module.generator.js +3 -0
  128. package/dist/local-auth/core/generators/auth-module/auth-module.generator.js.map +1 -1
  129. package/dist/local-auth/core/generators/auth-module/generated/index.d.ts +6 -1
  130. package/dist/local-auth/core/generators/auth-module/generated/index.d.ts.map +1 -1
  131. package/dist/local-auth/core/generators/auth-module/generated/typed-templates.d.ts +12 -2
  132. package/dist/local-auth/core/generators/auth-module/generated/typed-templates.d.ts.map +1 -1
  133. package/dist/local-auth/core/generators/auth-module/generated/typed-templates.js +5 -2
  134. package/dist/local-auth/core/generators/auth-module/generated/typed-templates.js.map +1 -1
  135. package/dist/local-auth/core/generators/auth-module/templates/module/schema/user-session.queries.js +16 -0
  136. package/dist/local-auth/core/generators/auth-module/templates/module/schema/user-session.queries.js.map +1 -1
  137. package/dist/local-auth/core/generators/auth-module/templates/module/schema/user-session.queries.ts +19 -0
  138. package/dist/local-auth/core/generators/auth-routes/auth-routes.generator.d.ts +12 -3
  139. package/dist/local-auth/core/generators/auth-routes/auth-routes.generator.d.ts.map +1 -1
  140. package/dist/local-auth/core/generators/auth-routes/auth-routes.generator.js +1 -8
  141. package/dist/local-auth/core/generators/auth-routes/auth-routes.generator.js.map +1 -1
  142. package/dist/local-auth/core/generators/auth-routes/generated/index.d.ts +36 -7
  143. package/dist/local-auth/core/generators/auth-routes/generated/index.d.ts.map +1 -1
  144. package/dist/local-auth/core/generators/auth-routes/generated/template-paths.d.ts +0 -1
  145. package/dist/local-auth/core/generators/auth-routes/generated/template-paths.d.ts.map +1 -1
  146. package/dist/local-auth/core/generators/auth-routes/generated/template-paths.js +0 -1
  147. package/dist/local-auth/core/generators/auth-routes/generated/template-paths.js.map +1 -1
  148. package/dist/local-auth/core/generators/auth-routes/generated/template-renderers.d.ts +13 -6
  149. package/dist/local-auth/core/generators/auth-routes/generated/template-renderers.d.ts.map +1 -1
  150. package/dist/local-auth/core/generators/auth-routes/generated/template-renderers.js +5 -12
  151. package/dist/local-auth/core/generators/auth-routes/generated/template-renderers.js.map +1 -1
  152. package/dist/local-auth/core/generators/auth-routes/generated/typed-templates.d.ts +48 -9
  153. package/dist/local-auth/core/generators/auth-routes/generated/typed-templates.d.ts.map +1 -1
  154. package/dist/local-auth/core/generators/auth-routes/generated/typed-templates.js +5 -13
  155. package/dist/local-auth/core/generators/auth-routes/generated/typed-templates.js.map +1 -1
  156. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/login.js +11 -2
  157. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/login.js.map +1 -1
  158. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/login.tsx +12 -2
  159. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/register.js +11 -2
  160. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/register.js.map +1 -1
  161. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/register.tsx +12 -2
  162. package/dist/local-auth/core/generators/react-session/generated/index.d.ts +24 -7
  163. package/dist/local-auth/core/generators/react-session/generated/index.d.ts.map +1 -1
  164. package/dist/local-auth/core/generators/react-session/generated/template-paths.d.ts +0 -1
  165. package/dist/local-auth/core/generators/react-session/generated/template-paths.d.ts.map +1 -1
  166. package/dist/local-auth/core/generators/react-session/generated/template-paths.js +0 -1
  167. package/dist/local-auth/core/generators/react-session/generated/template-paths.js.map +1 -1
  168. package/dist/local-auth/core/generators/react-session/generated/template-renderers.d.ts +13 -7
  169. package/dist/local-auth/core/generators/react-session/generated/template-renderers.d.ts.map +1 -1
  170. package/dist/local-auth/core/generators/react-session/generated/template-renderers.js +5 -12
  171. package/dist/local-auth/core/generators/react-session/generated/template-renderers.js.map +1 -1
  172. package/dist/local-auth/core/generators/react-session/generated/typed-templates.d.ts +24 -7
  173. package/dist/local-auth/core/generators/react-session/generated/typed-templates.d.ts.map +1 -1
  174. package/dist/local-auth/core/generators/react-session/generated/typed-templates.js +4 -15
  175. package/dist/local-auth/core/generators/react-session/generated/typed-templates.js.map +1 -1
  176. package/dist/local-auth/core/generators/react-session/react-session.generator.d.ts +12 -3
  177. package/dist/local-auth/core/generators/react-session/react-session.generator.d.ts.map +1 -1
  178. package/dist/local-auth/core/generators/react-session/react-session.generator.js +0 -1
  179. package/dist/local-auth/core/generators/react-session/react-session.generator.js.map +1 -1
  180. package/dist/local-auth/core/generators/react-session/templates/src/app/user-session-provider.d.ts.map +1 -1
  181. package/dist/local-auth/core/generators/react-session/templates/src/app/user-session-provider.js +10 -2
  182. package/dist/local-auth/core/generators/react-session/templates/src/app/user-session-provider.js.map +1 -1
  183. package/dist/local-auth/core/generators/react-session/templates/src/app/user-session-provider.tsx +11 -2
  184. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/index.d.ts +0 -12
  185. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/index.d.ts.map +1 -1
  186. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/template-paths.d.ts +0 -2
  187. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/template-paths.d.ts.map +1 -1
  188. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/template-paths.js +0 -2
  189. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/template-paths.js.map +1 -1
  190. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/template-renderers.d.ts +1 -7
  191. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/template-renderers.d.ts.map +1 -1
  192. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/template-renderers.js +2 -14
  193. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/template-renderers.js.map +1 -1
  194. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/ts-import-providers.d.ts +0 -1
  195. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/ts-import-providers.d.ts.map +1 -1
  196. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/ts-import-providers.js +0 -1
  197. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/ts-import-providers.js.map +1 -1
  198. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/typed-templates.d.ts +0 -15
  199. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/typed-templates.d.ts.map +1 -1
  200. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/typed-templates.js +2 -31
  201. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/typed-templates.js.map +1 -1
  202. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/placeholder-auth-hooks.generator.d.ts +0 -5
  203. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/placeholder-auth-hooks.generator.d.ts.map +1 -1
  204. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/placeholder-auth-hooks.generator.js +1 -7
  205. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/placeholder-auth-hooks.generator.js.map +1 -1
  206. package/dist/web/assets/{__federation_expose_auth0CoreCommon-DxPG_Wc0.js → __federation_expose_auth0CoreCommon-Ga9LD3d6.js} +3 -3
  207. package/dist/web/assets/{__federation_expose_auth0CoreCommon-DxPG_Wc0.js.map → __federation_expose_auth0CoreCommon-Ga9LD3d6.js.map} +1 -1
  208. package/dist/web/assets/{__federation_expose_auth0CoreWeb-B9jV1EyN.js → __federation_expose_auth0CoreWeb-CZueDXPK.js} +5 -5
  209. package/dist/web/assets/{__federation_expose_auth0CoreWeb-B9jV1EyN.js.map → __federation_expose_auth0CoreWeb-CZueDXPK.js.map} +1 -1
  210. package/dist/web/assets/{__federation_expose_authCoreCommon-Cxa_7fkO.js → __federation_expose_authCoreCommon-BrTLsuJC.js} +3 -3
  211. package/dist/web/assets/{__federation_expose_authCoreCommon-Cxa_7fkO.js.map → __federation_expose_authCoreCommon-BrTLsuJC.js.map} +1 -1
  212. package/dist/web/assets/{__federation_expose_authCoreWeb-CTQI1rXb.js → __federation_expose_authCoreWeb-C8rgnA2v.js} +6 -6
  213. package/dist/web/assets/{__federation_expose_authCoreWeb-CTQI1rXb.js.map → __federation_expose_authCoreWeb-C8rgnA2v.js.map} +1 -1
  214. package/dist/web/assets/{__federation_expose_local-authAdminCommon-C0_ovnDb.js → __federation_expose_local-authAdminCommon-C75-DAzO.js} +2 -2
  215. package/dist/web/assets/{__federation_expose_local-authAdminCommon-C0_ovnDb.js.map → __federation_expose_local-authAdminCommon-C75-DAzO.js.map} +1 -1
  216. package/dist/web/assets/{__federation_expose_local-authAdminWeb-GqHU6av7.js → __federation_expose_local-authAdminWeb-D2xGvwyL.js} +2 -2
  217. package/dist/web/assets/{__federation_expose_local-authAdminWeb-GqHU6av7.js.map → __federation_expose_local-authAdminWeb-D2xGvwyL.js.map} +1 -1
  218. package/dist/web/assets/{__federation_expose_local-authCoreCommon-PHXPCKoj.js → __federation_expose_local-authCoreCommon-BFUbyPYg.js} +3 -3
  219. package/dist/web/assets/{__federation_expose_local-authCoreCommon-PHXPCKoj.js.map → __federation_expose_local-authCoreCommon-BFUbyPYg.js.map} +1 -1
  220. package/dist/web/assets/{__federation_expose_local-authCoreWeb-Dz4oU0uP.js → __federation_expose_local-authCoreWeb-ChyvdsRq.js} +5 -5
  221. package/dist/web/assets/{__federation_expose_local-authCoreWeb-Dz4oU0uP.js.map → __federation_expose_local-authCoreWeb-ChyvdsRq.js.map} +1 -1
  222. package/dist/web/assets/{__federation_expose_placeholder-authCoreCommon-CrB_sJO_.js → __federation_expose_placeholder-authCoreCommon-DrFV9FSW.js} +3 -3
  223. package/dist/web/assets/{__federation_expose_placeholder-authCoreCommon-CrB_sJO_.js.map → __federation_expose_placeholder-authCoreCommon-DrFV9FSW.js.map} +1 -1
  224. package/dist/web/assets/{__federation_expose_placeholder-authCoreWeb-KJ8YuuIQ.js → __federation_expose_placeholder-authCoreWeb-CT8JKYLB.js} +5 -5
  225. package/dist/web/assets/{__federation_expose_placeholder-authCoreWeb-KJ8YuuIQ.js.map → __federation_expose_placeholder-authCoreWeb-CT8JKYLB.js.map} +1 -1
  226. package/dist/web/assets/{__federation_fn_import-CVjKjdRb.js → __federation_fn_import-C_QCk5FX.js} +2 -2
  227. package/dist/web/assets/{__federation_fn_import-CVjKjdRb.js.map → __federation_fn_import-C_QCk5FX.js.map} +1 -1
  228. package/dist/web/assets/__federation_shared_@baseplate-dev/project-builder-lib/{web-BTmJxb08.js → web-DtztAtUw.js} +5 -5
  229. package/dist/web/assets/__federation_shared_@baseplate-dev/project-builder-lib/{web-BTmJxb08.js.map → web-DtztAtUw.js.map} +1 -1
  230. package/dist/web/assets/__federation_shared_@baseplate-dev/{project-builder-lib-FK4Jv94w.js → project-builder-lib-CcNtL_U6.js} +293 -216
  231. package/dist/web/assets/__federation_shared_@baseplate-dev/project-builder-lib-CcNtL_U6.js.map +1 -0
  232. package/dist/web/assets/__federation_shared_@baseplate-dev/{ui-components-jZLf5m_y.js → ui-components-DA_4I2Vy.js} +5 -5
  233. package/dist/web/assets/__federation_shared_@baseplate-dev/{ui-components-jZLf5m_y.js.map → ui-components-DA_4I2Vy.js.map} +1 -1
  234. package/dist/web/assets/__federation_shared_@baseplate-dev/{utils-CAgM5SRt.js → utils-Bxy-1ETU.js} +34 -3
  235. package/dist/web/assets/__federation_shared_@baseplate-dev/utils-Bxy-1ETU.js.map +1 -0
  236. package/dist/web/assets/__federation_shared_@tanstack/{react-router-DynsSbJG.js → react-router-DooFj-IS.js} +2 -2
  237. package/dist/web/assets/__federation_shared_@tanstack/{react-router-DynsSbJG.js.map → react-router-DooFj-IS.js.map} +1 -1
  238. package/dist/web/assets/{get-auth-plugin-definition-DqZ2Eg7c.js → get-auth-plugin-definition-D2XMaoy7.js} +2 -2
  239. package/dist/web/assets/{get-auth-plugin-definition-DqZ2Eg7c.js.map → get-auth-plugin-definition-D2XMaoy7.js.map} +1 -1
  240. package/dist/web/assets/{index-Dccn3WBN.js → index-DwJT6_Wn.js} +2 -2
  241. package/dist/web/assets/{index-Dccn3WBN.js.map → index-DwJT6_Wn.js.map} +1 -1
  242. package/dist/web/assets/{index.esm-DeCjXqFv.js → index.esm-ChwWPPiL.js} +2 -2
  243. package/dist/web/assets/{index.esm-DeCjXqFv.js.map → index.esm-ChwWPPiL.js.map} +1 -1
  244. package/dist/web/assets/{model-merger-kOQ_dmiE.js → model-merger-gGkFnyaY.js} +7 -2
  245. package/dist/web/assets/model-merger-gGkFnyaY.js.map +1 -0
  246. package/dist/web/assets/{plugin-definition-qkkt1X28.js → plugin-definition-QRBMcFiG.js} +2 -2
  247. package/dist/web/assets/{plugin-definition-qkkt1X28.js.map → plugin-definition-QRBMcFiG.js.map} +1 -1
  248. package/dist/web/assets/{plugin-definition-CxKhFkmJ.js → plugin-definition-_slrOM0G.js} +2 -2
  249. package/dist/web/assets/{plugin-definition-CxKhFkmJ.js.map → plugin-definition-_slrOM0G.js.map} +1 -1
  250. package/dist/web/assets/{plugin-definition-JFxKP18O.js → plugin-definition-hAzbWO7b.js} +2 -2
  251. package/dist/web/assets/{plugin-definition-JFxKP18O.js.map → plugin-definition-hAzbWO7b.js.map} +1 -1
  252. package/dist/web/assets/{plugin-definition-DKygiFuR.js → plugin-definition-rpMj4pr8.js} +2 -2
  253. package/dist/web/assets/{plugin-definition-DKygiFuR.js.map → plugin-definition-rpMj4pr8.js.map} +1 -1
  254. package/dist/web/assets/{react-DA5A88WZ.js → react-DbX1FP85.js} +2 -2
  255. package/dist/web/assets/{react-DA5A88WZ.js.map → react-DbX1FP85.js.map} +1 -1
  256. package/dist/web/assets/remoteEntry.js +10 -10
  257. package/dist/web/assets/{styles-CfTjrsB-.js → styles-DqLt1Blm.js} +3 -3
  258. package/dist/web/assets/{styles-CfTjrsB-.js.map → styles-DqLt1Blm.js.map} +1 -1
  259. package/package.json +12 -12
  260. package/dist/auth0/generators/react/auth0-hooks/templates/src/hooks/use-current-user.gql +0 -10
  261. package/dist/auth0/generators/react/auth0-hooks/templates/src/hooks/use-current-user.ts +0 -30
  262. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.gql +0 -7
  263. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.gql +0 -7
  264. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-current-user.d.ts +0 -18
  265. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-current-user.d.ts.map +0 -1
  266. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-current-user.gql +0 -10
  267. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-current-user.js +0 -22
  268. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-current-user.js.map +0 -1
  269. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-current-user.ts +0 -39
  270. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-log-out.gql +0 -5
  271. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/queries.gql +0 -17
  272. package/dist/local-auth/core/generators/react-session/templates/src/app/user-session-provider.gql +0 -7
  273. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/templates/src/hooks/use-current-user.d.ts +0 -14
  274. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/templates/src/hooks/use-current-user.d.ts.map +0 -1
  275. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/templates/src/hooks/use-current-user.gql +0 -10
  276. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/templates/src/hooks/use-current-user.js +0 -23
  277. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/templates/src/hooks/use-current-user.js.map +0 -1
  278. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/templates/src/hooks/use-current-user.ts +0 -35
  279. package/dist/web/assets/__federation_shared_@baseplate-dev/project-builder-lib-FK4Jv94w.js.map +0 -1
  280. package/dist/web/assets/__federation_shared_@baseplate-dev/utils-CAgM5SRt.js.map +0 -1
  281. package/dist/web/assets/model-merger-kOQ_dmiE.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-builder-lib-FK4Jv94w.js","sources":["../../../../../../packages/project-builder-lib/dist/compiler/admin-crud-action-spec.js","../../../../../../packages/project-builder-lib/dist/compiler/admin-crud-column-compiler-spec.js","../../../../../../packages/project-builder-lib/dist/compiler/admin-crud-input-spec.js","../../../../../../node_modules/.pnpm/es-toolkit@1.31.0/node_modules/es-toolkit/dist/array/groupBy.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.31.0/node_modules/es-toolkit/dist/array/keyBy.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.31.0/node_modules/es-toolkit/dist/array/uniq.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.31.0/node_modules/es-toolkit/dist/function/flow.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.31.0/node_modules/es-toolkit/dist/object/pickBy.mjs","../../../../../../packages/project-builder-lib/dist/utils/strip.js","../../../../../../packages/project-builder-lib/dist/plugins/schema/store.js","../../../../../../packages/project-builder-lib/dist/plugins/imports/loader.js","../../../../../../packages/project-builder-lib/dist/plugins/imports/types.js","../../../../../../packages/project-builder-lib/dist/plugins/imports/utils.js","../../../../../../packages/project-builder-lib/dist/plugins/metadata/types.js","../../../../../../node_modules/.pnpm/immer@10.1.1/node_modules/immer/dist/immer.mjs","../../../../../../packages/project-builder-lib/dist/schema/plugins/entity-types.js","../../../../../../packages/project-builder-lib/dist/plugins/spec/config-spec.js","../../../../../../packages/project-builder-lib/dist/plugins/migrations/run-migrations.js","../../../../../../packages/project-builder-lib/dist/plugins/spec/auth-config-spec.js","../../../../../../packages/project-builder-lib/dist/plugins/spec/auth-model-config-spec.js","../../../../../../packages/project-builder-lib/dist/plugins/spec/web-config-spec.js","../../../../../../packages/project-builder-lib/dist/compiler/app-compiler-spec.js","../../../../../../packages/project-builder-lib/dist/compiler/model-transformer-compiler-spec.js","../../../../../../packages/project-builder-lib/dist/constants/colors.js","../../../../../../packages/project-builder-lib/dist/constants/theme-colors.js","../../../../../../packages/project-builder-lib/dist/utils/path.js","../../../../../../packages/project-builder-lib/dist/definition/apps/app-utils.js","../../../../../../packages/project-builder-lib/dist/schema/apps/types.js","../../../../../../packages/project-builder-lib/dist/schema/apps/base.js","../../../../../../packages/project-builder-lib/dist/schema/apps/backend/index.js","../../../../../../packages/project-builder-lib/dist/schema/auth/index.js","../../../../../../packages/project-builder-lib/dist/references/definition-ref-builder.js","../../../../../../packages/project-builder-lib/dist/references/collect-refs.js","../../../../../../packages/project-builder-lib/dist/references/resolve-slots.js","../../../../../../packages/project-builder-lib/dist/references/extract-definition-refs.js","../../../../../../packages/project-builder-lib/dist/references/resolve-zod-ref-payload-names.js","../../../../../../packages/project-builder-lib/dist/references/parse-schema-with-references.js","../../../../../../packages/project-builder-lib/dist/references/deserialize-schema.js","../../../../../../packages/project-builder-lib/dist/references/fix-ref-deletions.js","../../../../../../packages/project-builder-lib/dist/references/serialize-schema.js","../../../../../../packages/project-builder-lib/dist/types/field-types.js","../../../../../../packages/project-builder-lib/dist/schema/utils/validation.js","../../../../../../packages/project-builder-lib/dist/schema/models/graphql.js","../../../../../../packages/project-builder-lib/dist/schema/models/transformers/types.js","../../../../../../packages/project-builder-lib/dist/schema/models/transformers/built-in-transformers.js","../../../../../../packages/project-builder-lib/dist/schema/models/transformers/model-transformer-spec.js","../../../../../../packages/project-builder-lib/dist/schema/models/transformers/transformers.js","../../../../../../packages/project-builder-lib/dist/schema/models/enums.js","../../../../../../packages/project-builder-lib/dist/schema/models/index.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/types.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/base.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-actions/types.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-actions/built-in-actions.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-actions/admin-action-spec.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-actions/admin-crud-action.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-columns/types.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-columns/built-in-columns.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-columns/admin-column-spec.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-columns/admin-crud-column.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-form/types.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-form/built-in-input.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-form/admin-input-spec.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-form/admin-crud-input.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/admin.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/web-app.js","../../../../../../packages/project-builder-lib/dist/schema/plugins/definition.js","../../../../../../packages/project-builder-lib/dist/schema/settings/general.js","../../../../../../packages/project-builder-lib/dist/schema/settings/infrastructure.js","../../../../../../packages/project-builder-lib/dist/schema/settings/monorepo.js","../../../../../../packages/project-builder-lib/dist/schema/settings/template-extractor.js","../../../../../../packages/project-builder-lib/dist/schema/settings/theme.js","../../../../../../packages/project-builder-lib/dist/schema/settings/settings.js","../../../../../../packages/project-builder-lib/dist/schema/project-definition.js","../../../../../../packages/project-builder-lib/dist/definition/model/enum-utils.js","../../../../../../packages/project-builder-lib/dist/definition/model/model-field-utils.js","../../../../../../packages/project-builder-lib/dist/definition/model/model-transformer-utils.js","../../../../../../packages/project-builder-lib/dist/parser/parser.js","../../../../../../packages/project-builder-lib/dist/definition/plugins/plugin-utils.js","../../../../../../packages/project-builder-lib/dist/definition/project-definition-container.js","../../../../../../packages/project-builder-lib/dist/migrations/types.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-005-primary-unique-refs.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-006-individual-service-controllers.js","../../../../../../packages/project-builder-lib/dist/migrations/utils.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-007-model-graphql.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-008-anonymous-public-role.js","../../../../../../packages/project-builder-lib/dist/migrations/transform-json-path.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-009-rename-refs.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rgb/parseNumber.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/colors/named.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rgb/parseNamed.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rgb/parseHex.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/util/regex.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rgb/parseRgbLegacy.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/_prepare.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/converter.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/modes.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/parse.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rgb/parseRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rgb/parseTransparent.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/interpolate/lerp.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/interpolate/piecewise.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/interpolate/linear.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/fixup/alpha.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rgb/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/a98/convertA98ToXyz65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/a98/convertXyz65ToA98.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lrgb/convertRgbToLrgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz65/convertRgbToXyz65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lrgb/convertLrgbToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz65/convertXyz65ToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/a98/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/util/normalizeHue.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/fixup/hue.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/cubehelix/constants.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/cubehelix/convertRgbToCubehelix.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/cubehelix/convertCubehelixToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/difference.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/average.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/cubehelix/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lch/convertLabToLch.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lch/convertLchToLab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz65/constants.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/constants.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab65/convertLab65ToXyz65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab65/convertLab65ToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab65/convertXyz65ToLab65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab65/convertRgbToLab65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/dlch/constants.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/dlch/convertDlchToLab65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/dlch/convertLab65ToDlch.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/dlab/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/dlch/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsi/convertHsiToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsi/convertRgbToHsi.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsi/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsl/convertHslToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsl/convertRgbToHsl.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/util/hue.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsl/parseHslLegacy.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsl/parseHsl.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsl/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsv/convertHsvToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsv/convertRgbToHsv.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsv/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hwb/convertHwbToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hwb/convertRgbToHwb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hwb/parseHwb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hwb/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hdr/constants.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hdr/transfer.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/itp/convertItpToXyz65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/itp/convertXyz65ToItp.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/itp/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/jab/convertXyz65ToJab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/jab/convertJabToXyz65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/jab/convertRgbToJab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/jab/convertJabToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/jab/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/jch/convertJabToJch.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/jch/convertJchToJab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/jch/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz50/constants.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab/convertLabToXyz50.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz50/convertXyz50ToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab/convertLabToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz50/convertRgbToXyz50.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab/convertXyz50ToLab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab/convertRgbToLab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab/parseLab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab65/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lch/parseLch.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lch/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lch65/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lchuv/convertLuvToLchuv.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lchuv/convertLchuvToLuv.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/luv/convertXyz50ToLuv.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/luv/convertLuvToXyz50.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lchuv/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lrgb/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/luv/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/oklab/convertLrgbToOklab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/oklab/convertRgbToOklab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/oklab/convertOklabToLrgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/oklab/convertOklabToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsl/helpers.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsl/convertOklabToOkhsl.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsl/convertOkhslToOklab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsl/modeOkhsl.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsv/convertOklabToOkhsv.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsv/convertOkhsvToOklab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsv/modeOkhsv.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/oklab/parseOklab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/oklab/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/oklch/parseOklch.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/oklch/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/p3/convertP3ToXyz65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/p3/convertXyz65ToP3.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/p3/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/prophoto/convertXyz50ToProphoto.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/prophoto/convertProphotoToXyz50.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/prophoto/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rec2020/convertXyz65ToRec2020.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rec2020/convertRec2020ToXyz65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rec2020/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyb/constants.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyb/convertRgbToXyb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyb/convertXybToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyb/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz50/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz65/convertXyz65ToXyz50.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz65/convertXyz50ToXyz65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz65/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/yiq/convertRgbToYiq.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/yiq/convertYiqToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/yiq/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/formatter.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/index.js","../../../../../../packages/project-builder-lib/dist/utils/color-conversions.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-010-hex-to-oklch.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-011-plugin-id.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-012-migrate-auth-config.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-013-move-general-settings.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-014-migrate-plugin-ids.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-015-null-parent-refs.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-016-web-admin-config.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-017-rename-auth-plugin.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-018-crud-name-field-ref.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-019-column-type-based.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-020-move-redis-to-infrastructure.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-021-migrate-bullmq-to-plugin.js","../../../../../../packages/project-builder-lib/dist/migrations/index.js","../../../../../../packages/project-builder-lib/dist/definition/project-definition-container.test-utils.js","../../../../../../packages/project-builder-lib/dist/feature-flags/flags.js","../../../../../../packages/project-builder-lib/dist/utils/color-names.js","../../../../../../node_modules/.pnpm/inflection@3.0.0/node_modules/inflection/lib/inflection.js","../../../../../../packages/project-builder-lib/dist/utils/theme.js"],"sourcesContent":["import { createPluginSpec } from '#src/plugins/spec/types.js';\nexport function createAdminCrudActionCompilerImplementation() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const actions = new Map();\n return {\n registerCompiler(action) {\n if (actions.has(action.name)) {\n throw new Error(`Admin CRUD action with name ${action.name} is already registered`);\n }\n actions.set(action.name, action);\n },\n getCompiler(name, builtInActions = []) {\n const builtInAction = builtInActions.find((b) => b.name === name);\n if (builtInAction) {\n return builtInAction;\n }\n const action = actions.get(name);\n if (!action) {\n throw new Error(`Unable to find action with name ${name}`);\n }\n return action;\n },\n };\n}\n/**\n * Spec for adding config component for plugin\n */\nexport const adminCrudActionCompilerSpec = createPluginSpec('core/admin-crud-action-compiler', { defaultInitializer: createAdminCrudActionCompilerImplementation });\n//# sourceMappingURL=admin-crud-action-spec.js.map","import { createPluginSpec } from '#src/plugins/spec/types.js';\nexport function createAdminCrudColumnCompiler(input) {\n return input;\n}\nexport function createAdminCrudColumnCompilerImplementation() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const columns = new Map();\n return {\n registerCompiler(column) {\n if (columns.has(column.name)) {\n throw new Error(`Admin CRUD column with name ${column.name} is already registered`);\n }\n columns.set(column.name, column);\n },\n getCompiler(type, builtInColumns = []) {\n const builtInColumn = builtInColumns.find((b) => b.name === type);\n if (builtInColumn) {\n return builtInColumn;\n }\n const column = columns.get(type);\n if (!column) {\n throw new Error(`Unable to find column with type ${type}`);\n }\n return column;\n },\n getColumnCompilers() {\n return columns;\n },\n };\n}\n/**\n * Spec for adding column compilers\n */\nexport const adminCrudColumnCompilerSpec = createPluginSpec('core/admin-crud-column-compiler', { defaultInitializer: createAdminCrudColumnCompilerImplementation });\n//# sourceMappingURL=admin-crud-column-compiler-spec.js.map","import { createPluginSpec } from '#src/plugins/spec/types.js';\nexport function createAdminCrudInputCompilerImplementation() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const inputs = new Map();\n return {\n registerCompiler(input) {\n if (inputs.has(input.name)) {\n throw new Error(`Admin CRUD input with name ${input.name} is already registered`);\n }\n inputs.set(input.name, input);\n },\n getCompiler(name, builtInInputs = []) {\n const builtInInput = builtInInputs.find((b) => b.name === name);\n if (builtInInput) {\n return builtInInput;\n }\n const input = inputs.get(name);\n if (!input) {\n throw new Error(`Unable to find input with name ${name}`);\n }\n return input;\n },\n };\n}\n/**\n * Spec for adding config component for plugin\n */\nexport const adminCrudInputCompilerSpec = createPluginSpec('core/admin-crud-input-compiler', { defaultInitializer: createAdminCrudInputCompilerImplementation });\n//# sourceMappingURL=admin-crud-input-spec.js.map","function groupBy(arr, getKeyFromItem) {\n const result = {};\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n const key = getKeyFromItem(item);\n if (!Object.hasOwn(result, key)) {\n result[key] = [];\n }\n result[key].push(item);\n }\n return result;\n}\n\nexport { groupBy };\n","function keyBy(arr, getKeyFromItem) {\n const result = {};\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n const key = getKeyFromItem(item);\n result[key] = item;\n }\n return result;\n}\n\nexport { keyBy };\n","function uniq(arr) {\n return Array.from(new Set(arr));\n}\n\nexport { uniq };\n","function flow(...funcs) {\n return function (...args) {\n let result = funcs.length ? funcs[0].apply(this, args) : args[0];\n for (let i = 1; i < funcs.length; i++) {\n result = funcs[i].call(this, result);\n }\n return result;\n };\n}\n\nexport { flow };\n","function pickBy(obj, shouldPick) {\n const result = {};\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = obj[key];\n if (shouldPick(value, key)) {\n result[key] = value;\n }\n }\n return result;\n}\n\nexport { pickBy };\n","import { pickBy } from 'es-toolkit';\n/**\n * Strip object of any values that are empty arrays, empty objects, null, or undefined\n */\nexport function stripEmptyGeneratorChildren(children) {\n return pickBy(children, (value) => value !== undefined && !(Array.isArray(value) && value.length === 0));\n}\n/**\n * Strip object of any values that are undefined\n */\nexport function stripUndefinedValues(obj) {\n return pickBy(obj, (value) => value !== undefined);\n}\n/**\n * Returns undefined if the value is an empty object (as defined by all values are undefined)/array/null, otherwise return value.\n */\nexport function undefinedIfEmpty(value) {\n if (value === null)\n return undefined;\n if (Array.isArray(value) && value.length === 0) {\n return undefined;\n }\n if (typeof value === 'object' &&\n Object.keys(value).every((key) => value[key] === undefined)) {\n return undefined;\n }\n return value;\n}\n/**\n * Returns undefined if the value is falsy, otherwise return value.\n */\nexport function undefinedIfFalsy(value) {\n if (!value)\n return undefined;\n return value;\n}\n//# sourceMappingURL=strip.js.map","export class PluginImplementationStore {\n implementations;\n constructor(implementations) {\n this.implementations = implementations;\n }\n getPluginSpec(spec) {\n const implementation = this.implementations[spec.name];\n if (!implementation) {\n throw new Error(`Unable to find implementation for spec ${spec.name}`);\n }\n return implementation;\n }\n getPluginSpecOptional(spec) {\n return this.implementations[spec.name];\n }\n}\n//# sourceMappingURL=store.js.map","import { toposortOrdered } from '@baseplate-dev/utils';\nimport { keyBy, mapValues } from 'es-toolkit';\nimport { stripUndefinedValues } from '#src/utils/strip.js';\nimport { PluginImplementationStore } from '../schema/store.js';\nexport function extractPlatformModulesFromPlugins(plugins) {\n return plugins.flatMap((plugin) => plugin.pluginModules.map((m) => ({\n ...m,\n id: `${plugin.key}/${m.key}`,\n name: `${plugin.name}/${m.key}`,\n pluginKey: plugin.key,\n pluginName: plugin.name,\n })));\n}\nexport function getOrderedPluginModuleInitializationSteps(pluginModules, initialSpecImplementations) {\n const pluginModulesById = keyBy(pluginModules, (p) => p.id);\n // create export map of plugin ID to export spec name\n const pluginModuleIdByExport = mapValues(initialSpecImplementations, () => 'built-in');\n for (const { name, module, id } of pluginModules) {\n for (const m of Object.values(module.exports ?? {})) {\n const exportName = m.name;\n if (exportName in pluginModuleIdByExport) {\n const existingPlugin = pluginModulesById[pluginModuleIdByExport[exportName]];\n throw new Error(`Duplicate export from plugins found ${exportName} (${name} and ${existingPlugin.name})`);\n }\n pluginModuleIdByExport[exportName] = id;\n }\n }\n // create list of plugin to plugin dependencies\n const edges = pluginModules.flatMap(({ module, name, id }) => Object.values(module.dependencies ?? {})\n .map((m) => {\n const resolvedDep = pluginModuleIdByExport[m.name];\n if (!resolvedDep) {\n if (m.isOptional) {\n return undefined;\n }\n throw new Error(`Cannot resolve plugin dependency for ${name} (${m.name})`);\n }\n if (resolvedDep === 'built-in') {\n return undefined;\n }\n return [resolvedDep, id];\n })\n .filter((x) => x !== undefined));\n const nodes = pluginModules.map((p) => p.id);\n return toposortOrdered(nodes, edges);\n}\nexport function initializeOrderedPluginModules(orderedPluginModules, initialSpecImplementations) {\n const specImplementations = { ...initialSpecImplementations };\n for (const { name, module, pluginKey } of orderedPluginModules) {\n const dependencies = module.dependencies\n ? stripUndefinedValues(mapValues(module.dependencies, (dep) => {\n const implementation = specImplementations[dep.name];\n if (!implementation && !dep.isOptional) {\n throw new Error(`Plugin ${name} missing dependency ${dep.name}`);\n }\n return implementation;\n }))\n : {};\n const context = { pluginKey };\n const exports = module.initialize(dependencies, context);\n Object.entries(module.exports ?? {}).map(([key, spec]) => {\n const exportedImplementation = exports[key];\n if (!exportedImplementation) {\n throw new Error(`Plugin ${name} did not return required export ${key}`);\n }\n specImplementations[spec.name] = exportedImplementation;\n });\n }\n return specImplementations;\n}\n/**\n * Initialize the plugins based on their interdependencies and creates a store of the plugin implementations\n */\nexport function initializePlugins(plugins, initialSpecImplementations) {\n const pluginModules = extractPlatformModulesFromPlugins(plugins);\n const pluginModulesById = keyBy(pluginModules, (p) => p.id);\n const orderedModuleIds = getOrderedPluginModuleInitializationSteps(pluginModules, initialSpecImplementations);\n const specImplementations = initializeOrderedPluginModules(orderedModuleIds.map((p) => pluginModulesById[p]), initialSpecImplementations);\n return new PluginImplementationStore(specImplementations);\n}\n//# sourceMappingURL=loader.js.map","export function createPlatformPluginExport(config) {\n return config;\n}\n//# sourceMappingURL=types.js.map","/**\n * Gets a plugin metadata object by its key.\n *\n * @param pluginStore The plugin store to use\n * @param key The key of the plugin to get\n * @returns The plugin metadata object or undefined if the plugin is not found\n */\nexport function getPluginMetadataByKey(pluginStore, key) {\n return pluginStore.availablePlugins.find((p) => p.metadata.key === key)\n ?.metadata;\n}\n/**\n * Gets a plugin metadata object by its key.\n *\n * @param pluginStore The plugin store to use\n * @param key The key of the plugin to get\n * @returns The plugin metadata object\n * @throws An error if the plugin is not found\n */\nexport function getPluginMetadataByKeyOrThrow(pluginStore, key) {\n const metadata = getPluginMetadataByKey(pluginStore, key);\n if (!metadata) {\n throw new Error(`Could not find plugin with key ${key}`);\n }\n return metadata;\n}\nexport function getManagedPluginsForPlugin(pluginStore, pluginKey) {\n const plugin = getPluginMetadataByKeyOrThrow(pluginStore, pluginKey);\n return pluginStore.availablePlugins\n .filter((p) => p.metadata.managedBy === plugin.fullyQualifiedName)\n .map((p) => p.metadata);\n}\n//# sourceMappingURL=utils.js.map","import { z } from 'zod';\n// matches semver\nconst versionSchema = z.string().regex(/^(\\d+\\.\\d+\\.\\d+)$/);\nexport const pluginSpecSupportSchema = z.object({\n spec: z.string().min(1),\n version: z.string().min(1),\n});\nexport const pluginSpecDependencySchema = z.object({\n spec: z.string(),\n version: z.string(),\n});\n/**\n * Schema for the plugin's metadata (plugin.json)\n */\nexport const pluginMetadataSchema = z.object({\n /**\n * The name of the plugin - must be lowercase and contain only letters, numbers, and hyphens\n */\n name: z\n .string()\n .min(1)\n .regex(/^[a-z0-9-]+$/),\n /**\n * A list of directories with entrypoints in them. Defaults to ['.']\n */\n moduleDirectories: z.array(z.string()).optional(),\n /**\n * The display name of the plugin\n */\n displayName: z.string().min(1),\n /**\n * The icon to display for the plugin as a pointer to the icon in the plugin's static folder\n */\n icon: z.string().optional(),\n /**\n * A description of the plugin\n */\n description: z.string(),\n /**\n * The fully qualified name of the plugin that manages this plugin,\n * e.g. \"@baseplate-dev/plugin-auth:auth0\" would be managed by the \"@baseplate-dev/plugin-auth:auth\" plugin.\n *\n * Managed plugins do not appear in the plugin list but are managed by the base plugin. If the base\n * plugin is disabled, the managed plugins will also be disabled.\n */\n managedBy: z.string().optional(),\n /**\n * The version of the plugin using semver\n */\n version: versionSchema,\n /**\n * Configuration for the specs that the plugin exports/depends on\n */\n specs: z\n .object({\n /**\n * The specs that the plugin exports\n */\n exports: z.array(pluginSpecSupportSchema).optional(),\n /**\n * The specs that the plugin depends on\n */\n dependencies: z.array(pluginSpecDependencySchema).optional(),\n })\n .optional(),\n /**\n * Whether the plugin should be hidden in the project builder UI\n *\n * (It can be used once in the definition but cannot be added)\n */\n hidden: z.boolean().optional(),\n});\n//# sourceMappingURL=types.js.map","// src/utils/env.ts\nvar NOTHING = Symbol.for(\"immer-nothing\");\nvar DRAFTABLE = Symbol.for(\"immer-draftable\");\nvar DRAFT_STATE = Symbol.for(\"immer-state\");\n\n// src/utils/errors.ts\nvar errors = process.env.NODE_ENV !== \"production\" ? [\n // All error codes, starting by 0:\n function(plugin) {\n return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`;\n },\n function(thing) {\n return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;\n },\n \"This object has been frozen and should not be mutated\",\n function(data) {\n return \"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" + data;\n },\n \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n \"Immer forbids circular references\",\n \"The first or second argument to `produce` must be a function\",\n \"The third argument to `produce` must be a function or undefined\",\n \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n function(thing) {\n return `'current' expects a draft, got: ${thing}`;\n },\n \"Object.defineProperty() cannot be used on an Immer draft\",\n \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n \"Immer only supports deleting array indices\",\n \"Immer only supports setting array indices and the 'length' property\",\n function(thing) {\n return `'original' expects a draft, got: ${thing}`;\n }\n // Note: if more errors are added, the errorOffset in Patches.ts should be increased\n // See Patches.ts for additional errors\n] : [];\nfunction die(error, ...args) {\n if (process.env.NODE_ENV !== \"production\") {\n const e = errors[error];\n const msg = typeof e === \"function\" ? e.apply(null, args) : e;\n throw new Error(`[Immer] ${msg}`);\n }\n throw new Error(\n `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n );\n}\n\n// src/utils/common.ts\nvar getPrototypeOf = Object.getPrototypeOf;\nfunction isDraft(value) {\n return !!value && !!value[DRAFT_STATE];\n}\nfunction isDraftable(value) {\n if (!value)\n return false;\n return isPlainObject(value) || Array.isArray(value) || !!value[DRAFTABLE] || !!value.constructor?.[DRAFTABLE] || isMap(value) || isSet(value);\n}\nvar objectCtorString = Object.prototype.constructor.toString();\nfunction isPlainObject(value) {\n if (!value || typeof value !== \"object\")\n return false;\n const proto = getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n const Ctor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n if (Ctor === Object)\n return true;\n return typeof Ctor == \"function\" && Function.toString.call(Ctor) === objectCtorString;\n}\nfunction original(value) {\n if (!isDraft(value))\n die(15, value);\n return value[DRAFT_STATE].base_;\n}\nfunction each(obj, iter) {\n if (getArchtype(obj) === 0 /* Object */) {\n Reflect.ownKeys(obj).forEach((key) => {\n iter(key, obj[key], obj);\n });\n } else {\n obj.forEach((entry, index) => iter(index, entry, obj));\n }\n}\nfunction getArchtype(thing) {\n const state = thing[DRAFT_STATE];\n return state ? state.type_ : Array.isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;\n}\nfunction has(thing, prop) {\n return getArchtype(thing) === 2 /* Map */ ? thing.has(prop) : Object.prototype.hasOwnProperty.call(thing, prop);\n}\nfunction get(thing, prop) {\n return getArchtype(thing) === 2 /* Map */ ? thing.get(prop) : thing[prop];\n}\nfunction set(thing, propOrOldValue, value) {\n const t = getArchtype(thing);\n if (t === 2 /* Map */)\n thing.set(propOrOldValue, value);\n else if (t === 3 /* Set */) {\n thing.add(value);\n } else\n thing[propOrOldValue] = value;\n}\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nfunction isMap(target) {\n return target instanceof Map;\n}\nfunction isSet(target) {\n return target instanceof Set;\n}\nfunction latest(state) {\n return state.copy_ || state.base_;\n}\nfunction shallowCopy(base, strict) {\n if (isMap(base)) {\n return new Map(base);\n }\n if (isSet(base)) {\n return new Set(base);\n }\n if (Array.isArray(base))\n return Array.prototype.slice.call(base);\n const isPlain = isPlainObject(base);\n if (strict === true || strict === \"class_only\" && !isPlain) {\n const descriptors = Object.getOwnPropertyDescriptors(base);\n delete descriptors[DRAFT_STATE];\n let keys = Reflect.ownKeys(descriptors);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const desc = descriptors[key];\n if (desc.writable === false) {\n desc.writable = true;\n desc.configurable = true;\n }\n if (desc.get || desc.set)\n descriptors[key] = {\n configurable: true,\n writable: true,\n // could live with !!desc.set as well here...\n enumerable: desc.enumerable,\n value: base[key]\n };\n }\n return Object.create(getPrototypeOf(base), descriptors);\n } else {\n const proto = getPrototypeOf(base);\n if (proto !== null && isPlain) {\n return { ...base };\n }\n const obj = Object.create(proto);\n return Object.assign(obj, base);\n }\n}\nfunction freeze(obj, deep = false) {\n if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))\n return obj;\n if (getArchtype(obj) > 1) {\n obj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections;\n }\n Object.freeze(obj);\n if (deep)\n Object.entries(obj).forEach(([key, value]) => freeze(value, true));\n return obj;\n}\nfunction dontMutateFrozenCollections() {\n die(2);\n}\nfunction isFrozen(obj) {\n return Object.isFrozen(obj);\n}\n\n// src/utils/plugins.ts\nvar plugins = {};\nfunction getPlugin(pluginKey) {\n const plugin = plugins[pluginKey];\n if (!plugin) {\n die(0, pluginKey);\n }\n return plugin;\n}\nfunction loadPlugin(pluginKey, implementation) {\n if (!plugins[pluginKey])\n plugins[pluginKey] = implementation;\n}\n\n// src/core/scope.ts\nvar currentScope;\nfunction getCurrentScope() {\n return currentScope;\n}\nfunction createScope(parent_, immer_) {\n return {\n drafts_: [],\n parent_,\n immer_,\n // Whenever the modified draft contains a draft from another scope, we\n // need to prevent auto-freezing so the unowned draft can be finalized.\n canAutoFreeze_: true,\n unfinalizedDrafts_: 0\n };\n}\nfunction usePatchesInScope(scope, patchListener) {\n if (patchListener) {\n getPlugin(\"Patches\");\n scope.patches_ = [];\n scope.inversePatches_ = [];\n scope.patchListener_ = patchListener;\n }\n}\nfunction revokeScope(scope) {\n leaveScope(scope);\n scope.drafts_.forEach(revokeDraft);\n scope.drafts_ = null;\n}\nfunction leaveScope(scope) {\n if (scope === currentScope) {\n currentScope = scope.parent_;\n }\n}\nfunction enterScope(immer2) {\n return currentScope = createScope(currentScope, immer2);\n}\nfunction revokeDraft(draft) {\n const state = draft[DRAFT_STATE];\n if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)\n state.revoke_();\n else\n state.revoked_ = true;\n}\n\n// src/core/finalize.ts\nfunction processResult(result, scope) {\n scope.unfinalizedDrafts_ = scope.drafts_.length;\n const baseDraft = scope.drafts_[0];\n const isReplaced = result !== void 0 && result !== baseDraft;\n if (isReplaced) {\n if (baseDraft[DRAFT_STATE].modified_) {\n revokeScope(scope);\n die(4);\n }\n if (isDraftable(result)) {\n result = finalize(scope, result);\n if (!scope.parent_)\n maybeFreeze(scope, result);\n }\n if (scope.patches_) {\n getPlugin(\"Patches\").generateReplacementPatches_(\n baseDraft[DRAFT_STATE].base_,\n result,\n scope.patches_,\n scope.inversePatches_\n );\n }\n } else {\n result = finalize(scope, baseDraft, []);\n }\n revokeScope(scope);\n if (scope.patches_) {\n scope.patchListener_(scope.patches_, scope.inversePatches_);\n }\n return result !== NOTHING ? result : void 0;\n}\nfunction finalize(rootScope, value, path) {\n if (isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n if (!state) {\n each(\n value,\n (key, childValue) => finalizeProperty(rootScope, state, value, key, childValue, path)\n );\n return value;\n }\n if (state.scope_ !== rootScope)\n return value;\n if (!state.modified_) {\n maybeFreeze(rootScope, state.base_, true);\n return state.base_;\n }\n if (!state.finalized_) {\n state.finalized_ = true;\n state.scope_.unfinalizedDrafts_--;\n const result = state.copy_;\n let resultEach = result;\n let isSet2 = false;\n if (state.type_ === 3 /* Set */) {\n resultEach = new Set(result);\n result.clear();\n isSet2 = true;\n }\n each(\n resultEach,\n (key, childValue) => finalizeProperty(rootScope, state, result, key, childValue, path, isSet2)\n );\n maybeFreeze(rootScope, result, false);\n if (path && rootScope.patches_) {\n getPlugin(\"Patches\").generatePatches_(\n state,\n path,\n rootScope.patches_,\n rootScope.inversePatches_\n );\n }\n }\n return state.copy_;\n}\nfunction finalizeProperty(rootScope, parentState, targetObject, prop, childValue, rootPath, targetIsSet) {\n if (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n die(5);\n if (isDraft(childValue)) {\n const path = rootPath && parentState && parentState.type_ !== 3 /* Set */ && // Set objects are atomic since they have no keys.\n !has(parentState.assigned_, prop) ? rootPath.concat(prop) : void 0;\n const res = finalize(rootScope, childValue, path);\n set(targetObject, prop, res);\n if (isDraft(res)) {\n rootScope.canAutoFreeze_ = false;\n } else\n return;\n } else if (targetIsSet) {\n targetObject.add(childValue);\n }\n if (isDraftable(childValue) && !isFrozen(childValue)) {\n if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n return;\n }\n finalize(rootScope, childValue);\n if ((!parentState || !parentState.scope_.parent_) && typeof prop !== \"symbol\" && Object.prototype.propertyIsEnumerable.call(targetObject, prop))\n maybeFreeze(rootScope, childValue);\n }\n}\nfunction maybeFreeze(scope, value, deep = false) {\n if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n freeze(value, deep);\n }\n}\n\n// src/core/proxy.ts\nfunction createProxyProxy(base, parent) {\n const isArray = Array.isArray(base);\n const state = {\n type_: isArray ? 1 /* Array */ : 0 /* Object */,\n // Track which produce call this is associated with.\n scope_: parent ? parent.scope_ : getCurrentScope(),\n // True for both shallow and deep changes.\n modified_: false,\n // Used during finalization.\n finalized_: false,\n // Track which properties have been assigned (true) or deleted (false).\n assigned_: {},\n // The parent draft state.\n parent_: parent,\n // The base state.\n base_: base,\n // The base proxy.\n draft_: null,\n // set below\n // The base copy with any updated values.\n copy_: null,\n // Called by the `produce` function.\n revoke_: null,\n isManual_: false\n };\n let target = state;\n let traps = objectTraps;\n if (isArray) {\n target = [state];\n traps = arrayTraps;\n }\n const { revoke, proxy } = Proxy.revocable(target, traps);\n state.draft_ = proxy;\n state.revoke_ = revoke;\n return proxy;\n}\nvar objectTraps = {\n get(state, prop) {\n if (prop === DRAFT_STATE)\n return state;\n const source = latest(state);\n if (!has(source, prop)) {\n return readPropFromProto(state, source, prop);\n }\n const value = source[prop];\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value === peek(state.base_, prop)) {\n prepareCopy(state);\n return state.copy_[prop] = createProxy(value, state);\n }\n return value;\n },\n has(state, prop) {\n return prop in latest(state);\n },\n ownKeys(state) {\n return Reflect.ownKeys(latest(state));\n },\n set(state, prop, value) {\n const desc = getDescriptorFromProto(latest(state), prop);\n if (desc?.set) {\n desc.set.call(state.draft_, value);\n return true;\n }\n if (!state.modified_) {\n const current2 = peek(latest(state), prop);\n const currentState = current2?.[DRAFT_STATE];\n if (currentState && currentState.base_ === value) {\n state.copy_[prop] = value;\n state.assigned_[prop] = false;\n return true;\n }\n if (is(value, current2) && (value !== void 0 || has(state.base_, prop)))\n return true;\n prepareCopy(state);\n markChanged(state);\n }\n if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'\n (value !== void 0 || prop in state.copy_) || // special case: NaN\n Number.isNaN(value) && Number.isNaN(state.copy_[prop]))\n return true;\n state.copy_[prop] = value;\n state.assigned_[prop] = true;\n return true;\n },\n deleteProperty(state, prop) {\n if (peek(state.base_, prop) !== void 0 || prop in state.base_) {\n state.assigned_[prop] = false;\n prepareCopy(state);\n markChanged(state);\n } else {\n delete state.assigned_[prop];\n }\n if (state.copy_) {\n delete state.copy_[prop];\n }\n return true;\n },\n // Note: We never coerce `desc.value` into an Immer draft, because we can't make\n // the same guarantee in ES5 mode.\n getOwnPropertyDescriptor(state, prop) {\n const owner = latest(state);\n const desc = Reflect.getOwnPropertyDescriptor(owner, prop);\n if (!desc)\n return desc;\n return {\n writable: true,\n configurable: state.type_ !== 1 /* Array */ || prop !== \"length\",\n enumerable: desc.enumerable,\n value: owner[prop]\n };\n },\n defineProperty() {\n die(11);\n },\n getPrototypeOf(state) {\n return getPrototypeOf(state.base_);\n },\n setPrototypeOf() {\n die(12);\n }\n};\nvar arrayTraps = {};\neach(objectTraps, (key, fn) => {\n arrayTraps[key] = function() {\n arguments[0] = arguments[0][0];\n return fn.apply(this, arguments);\n };\n});\narrayTraps.deleteProperty = function(state, prop) {\n if (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop)))\n die(13);\n return arrayTraps.set.call(this, state, prop, void 0);\n};\narrayTraps.set = function(state, prop, value) {\n if (process.env.NODE_ENV !== \"production\" && prop !== \"length\" && isNaN(parseInt(prop)))\n die(14);\n return objectTraps.set.call(this, state[0], prop, value, state[0]);\n};\nfunction peek(draft, prop) {\n const state = draft[DRAFT_STATE];\n const source = state ? latest(state) : draft;\n return source[prop];\n}\nfunction readPropFromProto(state, source, prop) {\n const desc = getDescriptorFromProto(source, prop);\n return desc ? `value` in desc ? desc.value : (\n // This is a very special case, if the prop is a getter defined by the\n // prototype, we should invoke it with the draft as context!\n desc.get?.call(state.draft_)\n ) : void 0;\n}\nfunction getDescriptorFromProto(source, prop) {\n if (!(prop in source))\n return void 0;\n let proto = getPrototypeOf(source);\n while (proto) {\n const desc = Object.getOwnPropertyDescriptor(proto, prop);\n if (desc)\n return desc;\n proto = getPrototypeOf(proto);\n }\n return void 0;\n}\nfunction markChanged(state) {\n if (!state.modified_) {\n state.modified_ = true;\n if (state.parent_) {\n markChanged(state.parent_);\n }\n }\n}\nfunction prepareCopy(state) {\n if (!state.copy_) {\n state.copy_ = shallowCopy(\n state.base_,\n state.scope_.immer_.useStrictShallowCopy_\n );\n }\n}\n\n// src/core/immerClass.ts\nvar Immer2 = class {\n constructor(config) {\n this.autoFreeze_ = true;\n this.useStrictShallowCopy_ = false;\n /**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\n this.produce = (base, recipe, patchListener) => {\n if (typeof base === \"function\" && typeof recipe !== \"function\") {\n const defaultBase = recipe;\n recipe = base;\n const self = this;\n return function curriedProduce(base2 = defaultBase, ...args) {\n return self.produce(base2, (draft) => recipe.call(this, draft, ...args));\n };\n }\n if (typeof recipe !== \"function\")\n die(6);\n if (patchListener !== void 0 && typeof patchListener !== \"function\")\n die(7);\n let result;\n if (isDraftable(base)) {\n const scope = enterScope(this);\n const proxy = createProxy(base, void 0);\n let hasError = true;\n try {\n result = recipe(proxy);\n hasError = false;\n } finally {\n if (hasError)\n revokeScope(scope);\n else\n leaveScope(scope);\n }\n usePatchesInScope(scope, patchListener);\n return processResult(result, scope);\n } else if (!base || typeof base !== \"object\") {\n result = recipe(base);\n if (result === void 0)\n result = base;\n if (result === NOTHING)\n result = void 0;\n if (this.autoFreeze_)\n freeze(result, true);\n if (patchListener) {\n const p = [];\n const ip = [];\n getPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip);\n patchListener(p, ip);\n }\n return result;\n } else\n die(1, base);\n };\n this.produceWithPatches = (base, recipe) => {\n if (typeof base === \"function\") {\n return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));\n }\n let patches, inversePatches;\n const result = this.produce(base, recipe, (p, ip) => {\n patches = p;\n inversePatches = ip;\n });\n return [result, patches, inversePatches];\n };\n if (typeof config?.autoFreeze === \"boolean\")\n this.setAutoFreeze(config.autoFreeze);\n if (typeof config?.useStrictShallowCopy === \"boolean\")\n this.setUseStrictShallowCopy(config.useStrictShallowCopy);\n }\n createDraft(base) {\n if (!isDraftable(base))\n die(8);\n if (isDraft(base))\n base = current(base);\n const scope = enterScope(this);\n const proxy = createProxy(base, void 0);\n proxy[DRAFT_STATE].isManual_ = true;\n leaveScope(scope);\n return proxy;\n }\n finishDraft(draft, patchListener) {\n const state = draft && draft[DRAFT_STATE];\n if (!state || !state.isManual_)\n die(9);\n const { scope_: scope } = state;\n usePatchesInScope(scope, patchListener);\n return processResult(void 0, scope);\n }\n /**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * By default, auto-freezing is enabled.\n */\n setAutoFreeze(value) {\n this.autoFreeze_ = value;\n }\n /**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\n setUseStrictShallowCopy(value) {\n this.useStrictShallowCopy_ = value;\n }\n applyPatches(base, patches) {\n let i;\n for (i = patches.length - 1; i >= 0; i--) {\n const patch = patches[i];\n if (patch.path.length === 0 && patch.op === \"replace\") {\n base = patch.value;\n break;\n }\n }\n if (i > -1) {\n patches = patches.slice(i + 1);\n }\n const applyPatchesImpl = getPlugin(\"Patches\").applyPatches_;\n if (isDraft(base)) {\n return applyPatchesImpl(base, patches);\n }\n return this.produce(\n base,\n (draft) => applyPatchesImpl(draft, patches)\n );\n }\n};\nfunction createProxy(value, parent) {\n const draft = isMap(value) ? getPlugin(\"MapSet\").proxyMap_(value, parent) : isSet(value) ? getPlugin(\"MapSet\").proxySet_(value, parent) : createProxyProxy(value, parent);\n const scope = parent ? parent.scope_ : getCurrentScope();\n scope.drafts_.push(draft);\n return draft;\n}\n\n// src/core/current.ts\nfunction current(value) {\n if (!isDraft(value))\n die(10, value);\n return currentImpl(value);\n}\nfunction currentImpl(value) {\n if (!isDraftable(value) || isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n let copy;\n if (state) {\n if (!state.modified_)\n return state.base_;\n state.finalized_ = true;\n copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);\n } else {\n copy = shallowCopy(value, true);\n }\n each(copy, (key, childValue) => {\n set(copy, key, currentImpl(childValue));\n });\n if (state) {\n state.finalized_ = false;\n }\n return copy;\n}\n\n// src/plugins/patches.ts\nfunction enablePatches() {\n const errorOffset = 16;\n if (process.env.NODE_ENV !== \"production\") {\n errors.push(\n 'Sets cannot have \"replace\" patches.',\n function(op) {\n return \"Unsupported patch operation: \" + op;\n },\n function(path) {\n return \"Cannot apply patch, path doesn't resolve: \" + path;\n },\n \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n );\n }\n const REPLACE = \"replace\";\n const ADD = \"add\";\n const REMOVE = \"remove\";\n function generatePatches_(state, basePath, patches, inversePatches) {\n switch (state.type_) {\n case 0 /* Object */:\n case 2 /* Map */:\n return generatePatchesFromAssigned(\n state,\n basePath,\n patches,\n inversePatches\n );\n case 1 /* Array */:\n return generateArrayPatches(state, basePath, patches, inversePatches);\n case 3 /* Set */:\n return generateSetPatches(\n state,\n basePath,\n patches,\n inversePatches\n );\n }\n }\n function generateArrayPatches(state, basePath, patches, inversePatches) {\n let { base_, assigned_ } = state;\n let copy_ = state.copy_;\n if (copy_.length < base_.length) {\n ;\n [base_, copy_] = [copy_, base_];\n [patches, inversePatches] = [inversePatches, patches];\n }\n for (let i = 0; i < base_.length; i++) {\n if (assigned_[i] && copy_[i] !== base_[i]) {\n const path = basePath.concat([i]);\n patches.push({\n op: REPLACE,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n inversePatches.push({\n op: REPLACE,\n path,\n value: clonePatchValueIfNeeded(base_[i])\n });\n }\n }\n for (let i = base_.length; i < copy_.length; i++) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n }\n for (let i = copy_.length - 1; base_.length <= i; --i) {\n const path = basePath.concat([i]);\n inversePatches.push({\n op: REMOVE,\n path\n });\n }\n }\n function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {\n const { base_, copy_ } = state;\n each(state.assigned_, (key, assignedValue) => {\n const origValue = get(base_, key);\n const value = get(copy_, key);\n const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;\n if (origValue === value && op === REPLACE)\n return;\n const path = basePath.concat(key);\n patches.push(op === REMOVE ? { op, path } : { op, path, value });\n inversePatches.push(\n op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }\n );\n });\n }\n function generateSetPatches(state, basePath, patches, inversePatches) {\n let { base_, copy_ } = state;\n let i = 0;\n base_.forEach((value) => {\n if (!copy_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: REMOVE,\n path,\n value\n });\n inversePatches.unshift({\n op: ADD,\n path,\n value\n });\n }\n i++;\n });\n i = 0;\n copy_.forEach((value) => {\n if (!base_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n value\n });\n inversePatches.unshift({\n op: REMOVE,\n path,\n value\n });\n }\n i++;\n });\n }\n function generateReplacementPatches_(baseValue, replacement, patches, inversePatches) {\n patches.push({\n op: REPLACE,\n path: [],\n value: replacement === NOTHING ? void 0 : replacement\n });\n inversePatches.push({\n op: REPLACE,\n path: [],\n value: baseValue\n });\n }\n function applyPatches_(draft, patches) {\n patches.forEach((patch) => {\n const { path, op } = patch;\n let base = draft;\n for (let i = 0; i < path.length - 1; i++) {\n const parentType = getArchtype(base);\n let p = path[i];\n if (typeof p !== \"string\" && typeof p !== \"number\") {\n p = \"\" + p;\n }\n if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === \"__proto__\" || p === \"constructor\"))\n die(errorOffset + 3);\n if (typeof base === \"function\" && p === \"prototype\")\n die(errorOffset + 3);\n base = get(base, p);\n if (typeof base !== \"object\")\n die(errorOffset + 2, path.join(\"/\"));\n }\n const type = getArchtype(base);\n const value = deepClonePatchValue(patch.value);\n const key = path[path.length - 1];\n switch (op) {\n case REPLACE:\n switch (type) {\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n die(errorOffset);\n default:\n return base[key] = value;\n }\n case ADD:\n switch (type) {\n case 1 /* Array */:\n return key === \"-\" ? base.push(value) : base.splice(key, 0, value);\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n return base.add(value);\n default:\n return base[key] = value;\n }\n case REMOVE:\n switch (type) {\n case 1 /* Array */:\n return base.splice(key, 1);\n case 2 /* Map */:\n return base.delete(key);\n case 3 /* Set */:\n return base.delete(patch.value);\n default:\n return delete base[key];\n }\n default:\n die(errorOffset + 1, op);\n }\n });\n return draft;\n }\n function deepClonePatchValue(obj) {\n if (!isDraftable(obj))\n return obj;\n if (Array.isArray(obj))\n return obj.map(deepClonePatchValue);\n if (isMap(obj))\n return new Map(\n Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n );\n if (isSet(obj))\n return new Set(Array.from(obj).map(deepClonePatchValue));\n const cloned = Object.create(getPrototypeOf(obj));\n for (const key in obj)\n cloned[key] = deepClonePatchValue(obj[key]);\n if (has(obj, DRAFTABLE))\n cloned[DRAFTABLE] = obj[DRAFTABLE];\n return cloned;\n }\n function clonePatchValueIfNeeded(obj) {\n if (isDraft(obj)) {\n return deepClonePatchValue(obj);\n } else\n return obj;\n }\n loadPlugin(\"Patches\", {\n applyPatches_,\n generatePatches_,\n generateReplacementPatches_\n });\n}\n\n// src/plugins/mapset.ts\nfunction enableMapSet() {\n class DraftMap extends Map {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 2 /* Map */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n assigned_: void 0,\n base_: target,\n draft_: this,\n isManual_: false,\n revoked_: false\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(key) {\n return latest(this[DRAFT_STATE]).has(key);\n }\n set(key, value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!latest(state).has(key) || latest(state).get(key) !== value) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_.set(key, true);\n state.copy_.set(key, value);\n state.assigned_.set(key, true);\n }\n return this;\n }\n delete(key) {\n if (!this.has(key)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareMapCopy(state);\n markChanged(state);\n if (state.base_.has(key)) {\n state.assigned_.set(key, false);\n } else {\n state.assigned_.delete(key);\n }\n state.copy_.delete(key);\n return true;\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_ = /* @__PURE__ */ new Map();\n each(state.base_, (key) => {\n state.assigned_.set(key, false);\n });\n state.copy_.clear();\n }\n }\n forEach(cb, thisArg) {\n const state = this[DRAFT_STATE];\n latest(state).forEach((_value, key, _map) => {\n cb.call(thisArg, this.get(key), key, this);\n });\n }\n get(key) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n const value = latest(state).get(key);\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value !== state.base_.get(key)) {\n return value;\n }\n const draft = createProxy(value, state);\n prepareMapCopy(state);\n state.copy_.set(key, draft);\n return draft;\n }\n keys() {\n return latest(this[DRAFT_STATE]).keys();\n }\n values() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.values(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value\n };\n }\n };\n }\n entries() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.entries(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value: [r.value, value]\n };\n }\n };\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.entries();\n }\n }\n function proxyMap_(target, parent) {\n return new DraftMap(target, parent);\n }\n function prepareMapCopy(state) {\n if (!state.copy_) {\n state.assigned_ = /* @__PURE__ */ new Map();\n state.copy_ = new Map(state.base_);\n }\n }\n class DraftSet extends Set {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 3 /* Set */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n base_: target,\n draft_: this,\n drafts_: /* @__PURE__ */ new Map(),\n revoked_: false,\n isManual_: false\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!state.copy_) {\n return state.base_.has(value);\n }\n if (state.copy_.has(value))\n return true;\n if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n return true;\n return false;\n }\n add(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!this.has(value)) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.add(value);\n }\n return this;\n }\n delete(value) {\n if (!this.has(value)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n markChanged(state);\n return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (\n /* istanbul ignore next */\n false\n ));\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.clear();\n }\n }\n values() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.values();\n }\n entries() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.entries();\n }\n keys() {\n return this.values();\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.values();\n }\n forEach(cb, thisArg) {\n const iterator = this.values();\n let result = iterator.next();\n while (!result.done) {\n cb.call(thisArg, result.value, result.value, this);\n result = iterator.next();\n }\n }\n }\n function proxySet_(target, parent) {\n return new DraftSet(target, parent);\n }\n function prepareSetCopy(state) {\n if (!state.copy_) {\n state.copy_ = /* @__PURE__ */ new Set();\n state.base_.forEach((value) => {\n if (isDraftable(value)) {\n const draft = createProxy(value, state);\n state.drafts_.set(value, draft);\n state.copy_.add(draft);\n } else {\n state.copy_.add(value);\n }\n });\n }\n }\n function assertUnrevoked(state) {\n if (state.revoked_)\n die(3, JSON.stringify(latest(state)));\n }\n loadPlugin(\"MapSet\", { proxyMap_, proxySet_ });\n}\n\n// src/immer.ts\nvar immer = new Immer2();\nvar produce = immer.produce;\nvar produceWithPatches = immer.produceWithPatches.bind(\n immer\n);\nvar setAutoFreeze = immer.setAutoFreeze.bind(immer);\nvar setUseStrictShallowCopy = immer.setUseStrictShallowCopy.bind(immer);\nvar applyPatches = immer.applyPatches.bind(immer);\nvar createDraft = immer.createDraft.bind(immer);\nvar finishDraft = immer.finishDraft.bind(immer);\nfunction castDraft(value) {\n return value;\n}\nfunction castImmutable(value) {\n return value;\n}\nexport {\n Immer2 as Immer,\n applyPatches,\n castDraft,\n castImmutable,\n createDraft,\n current,\n enableMapSet,\n enablePatches,\n finishDraft,\n freeze,\n DRAFTABLE as immerable,\n isDraft,\n isDraftable,\n NOTHING as nothing,\n original,\n produce,\n produceWithPatches,\n setAutoFreeze,\n setUseStrictShallowCopy\n};\n//# sourceMappingURL=immer.mjs.map","import { createEntityType } from '#src/references/types.js';\nexport const pluginEntityType = createEntityType('plugin');\n//# sourceMappingURL=entity-types.js.map","import { createPluginSpec } from './types.js';\nfunction sortAndValidateMigrations(migrations) {\n // make sure migrations are sorted by version and they are all unique\n const sortedMigrations = [...migrations].sort((a, b) => a.version - b.version);\n if (sortedMigrations.some((m) => m.version <= 0)) {\n throw new Error(`Migration version must be a positive integer`);\n }\n for (let i = 0; i < sortedMigrations.length - 1; i++) {\n if (sortedMigrations[i].version === sortedMigrations[i + 1].version) {\n throw new Error(`Migration versions must be unique`);\n }\n }\n return sortedMigrations;\n}\nexport function createPluginConfigImplementation() {\n const schemas = new Map();\n const migrationsMap = new Map();\n return {\n registerSchemaCreator(pluginKey, schemaCreator) {\n if (schemas.has(pluginKey)) {\n throw new Error(`Schema for plugin ${pluginKey} is already registered`);\n }\n schemas.set(pluginKey, schemaCreator);\n },\n registerMigrations(pluginKey, migrations) {\n if (migrationsMap.has(pluginKey)) {\n throw new Error(`Migrations for plugin ${pluginKey} are already registered`);\n }\n const sortedMigrations = sortAndValidateMigrations(migrations);\n migrationsMap.set(pluginKey, sortedMigrations);\n },\n getSchemaCreator(pluginKey) {\n return schemas.get(pluginKey);\n },\n getMigrations(pluginKey) {\n return migrationsMap.get(pluginKey);\n },\n getLastMigrationVersion(pluginKey) {\n const migrations = migrationsMap.get(pluginKey);\n return migrations?.[migrations.length - 1]?.version;\n },\n };\n}\n/**\n * Spec for adding config for the plugin in the core plugin e.g.\n * {\n * \"plugins\": [{\n * \"id\": \"...\",\n * \"config\": {\n * ...PluginConfig schema\n * }\n * }]\n * }\n */\nexport const pluginConfigSpec = createPluginSpec('core/plugin-config', {\n defaultInitializer: createPluginConfigImplementation,\n});\n//# sourceMappingURL=config-spec.js.map","import { produce } from 'immer';\nimport { pluginEntityType } from '#src/schema/plugins/entity-types.js';\nimport { pluginConfigSpec } from '../spec/config-spec.js';\nexport function runPluginMigrations(projectDefinition, pluginImplementationStore) {\n const pluginConfigService = pluginImplementationStore.getPluginSpec(pluginConfigSpec);\n return produce(projectDefinition, (draft) => {\n for (const pluginDefinition of draft.plugins ?? []) {\n const pluginMigrations = pluginConfigService.getMigrations(pluginEntityType.keyFromId(pluginDefinition.id));\n const currentSchemaVersion = pluginDefinition.configSchemaVersion ?? -1;\n if (!pluginMigrations)\n continue;\n const lastPluginMigration = pluginMigrations.at(-1);\n if (!lastPluginMigration)\n continue;\n for (const migration of pluginMigrations) {\n if (migration.version > currentSchemaVersion) {\n try {\n const migrationResult = migration.migrate(pluginDefinition.config, draft);\n if (migrationResult.updatedConfig !== undefined) {\n pluginDefinition.config = migrationResult.updatedConfig;\n }\n if (migrationResult.updateProjectDefinition) {\n migrationResult.updateProjectDefinition(draft);\n }\n }\n catch (error) {\n throw new Error(`Error migrating plugin ${pluginDefinition.id} to version ${migration.version}: ${String(error)}`);\n }\n }\n }\n pluginDefinition.configSchemaVersion = lastPluginMigration.version;\n }\n });\n}\n//# sourceMappingURL=run-migrations.js.map","import { createPluginSpec } from './types.js';\n/**\n * Spec for adding config component for plugin\n */\nexport const authConfigSpec = createPluginSpec('core/auth-config', {});\n//# sourceMappingURL=auth-config-spec.js.map","import { createPluginSpec } from './types.js';\n/**\n * Spec for adding user model config component for plugin\n */\nexport const authModelConfigSpec = createPluginSpec('core/auth-model-config', {});\n//# sourceMappingURL=auth-model-config-spec.js.map","import { createPluginSpec } from './types.js';\nexport function createWebConfigImplementation() {\n const components = new Map();\n return {\n registerWebConfigComponent(pluginKey, ConfigComponent) {\n if (components.has(pluginKey)) {\n throw new Error(`Web config component for plugin ${pluginKey} is already registered`);\n }\n components.set(pluginKey, ConfigComponent);\n },\n getWebConfigComponent(pluginKey) {\n return components.get(pluginKey);\n },\n };\n}\n/**\n * Spec for adding config component for plugin\n */\nexport const webConfigSpec = createPluginSpec('core/web-config', {\n platforms: 'web',\n defaultInitializer: createWebConfigImplementation,\n});\n//# sourceMappingURL=web-config-spec.js.map","import { safeMerge } from '@baseplate-dev/utils';\nimport { createPluginSpec } from '#src/plugins/index.js';\nexport function createAppCompiler() {\n const children = {};\n let rootChildren = {};\n return {\n addChildrenToFeature(featureId, newChildren) {\n children[featureId] = safeMerge(children[featureId] ?? {}, newChildren);\n },\n getChildrenForFeature(featureId) {\n return children[featureId] ?? {};\n },\n addRootChildren(newChildren) {\n rootChildren = safeMerge(rootChildren, newChildren);\n },\n getRootChildren() {\n return rootChildren;\n },\n };\n}\nexport function createAppCompilerPlugin() {\n const compilers = new Map();\n return {\n registerAppCompiler(compiler) {\n const appCompilers = compilers.get(compiler.appType) ?? [];\n if (!compilers.has(compiler.appType)) {\n compilers.set(compiler.appType, appCompilers);\n }\n appCompilers.push(compiler);\n },\n getAppCompilers(appType) {\n return compilers.get(appType) ?? [];\n },\n };\n}\n/**\n * Spec for modifying the app compiler\n */\nexport const appCompilerSpec = createPluginSpec('AppCompiler', {\n defaultInitializer: createAppCompilerPlugin,\n});\n//# sourceMappingURL=app-compiler-spec.js.map","import { createPluginSpec } from '#src/plugins/spec/types.js';\nexport function createModelTransformerCompilerImplementation() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const transformers = new Map();\n return {\n registerTransformerCompiler(transformer) {\n if (transformers.has(transformer.name)) {\n throw new Error(`Model transformer with name ${transformer.name} is already registered`);\n }\n transformers.set(transformer.name, transformer);\n },\n getModelTransformerCompiler(name, builtInTransformers = []) {\n const builtInTransformer = builtInTransformers.find((b) => b.name === name);\n if (builtInTransformer) {\n return builtInTransformer;\n }\n const transformer = transformers.get(name);\n if (!transformer) {\n throw new Error(`Unable to find transformer with name ${name}`);\n }\n return transformer;\n },\n };\n}\n/**\n * Spec for adding config component for plugin\n */\nexport const modelTransformerCompilerSpec = createPluginSpec('core/model-transformer-compiler', { defaultInitializer: createModelTransformerCompilerImplementation });\n//# sourceMappingURL=model-transformer-compiler-spec.js.map","// obtained from Tailwind (https://github.com/tailwindlabs/tailwindcss/blob/master/src/public/colors.js)\nexport const PALETTE_SHADES = [\n '50',\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n '950',\n];\nexport const FIXED_COLOR_MAPPINGS = {\n white: 'oklch(1 0 0)',\n black: 'oklch(0 0 0)',\n};\nexport const COLOR_PALETTES = {\n red: {\n '50': 'oklch(0.971 0.013 17.38)',\n '100': 'oklch(0.936 0.032 17.717)',\n '200': 'oklch(0.885 0.062 18.334)',\n '300': 'oklch(0.808 0.114 19.571)',\n '400': 'oklch(0.704 0.191 22.216)',\n '500': 'oklch(0.637 0.237 25.331)',\n '600': 'oklch(0.577 0.245 27.325)',\n '700': 'oklch(0.505 0.213 27.518)',\n '800': 'oklch(0.444 0.177 26.899)',\n '900': 'oklch(0.396 0.141 25.723)',\n '950': 'oklch(0.258 0.092 26.042)',\n },\n orange: {\n '50': 'oklch(0.98 0.016 73.684)',\n '100': 'oklch(0.954 0.038 75.164)',\n '200': 'oklch(0.901 0.076 70.697)',\n '300': 'oklch(0.837 0.128 66.29)',\n '400': 'oklch(0.75 0.183 55.934)',\n '500': 'oklch(0.705 0.213 47.604)',\n '600': 'oklch(0.646 0.222 41.116)',\n '700': 'oklch(0.553 0.195 38.402)',\n '800': 'oklch(0.47 0.157 37.304)',\n '900': 'oklch(0.408 0.123 38.172)',\n '950': 'oklch(0.266 0.079 36.259)',\n },\n amber: {\n '50': 'oklch(0.987 0.022 95.277)',\n '100': 'oklch(0.962 0.059 95.617)',\n '200': 'oklch(0.924 0.12 95.746)',\n '300': 'oklch(0.879 0.169 91.605)',\n '400': 'oklch(0.828 0.189 84.429)',\n '500': 'oklch(0.769 0.188 70.08)',\n '600': 'oklch(0.666 0.179 58.318)',\n '700': 'oklch(0.555 0.163 48.998)',\n '800': 'oklch(0.473 0.137 46.201)',\n '900': 'oklch(0.414 0.112 45.904)',\n '950': 'oklch(0.279 0.077 45.635)',\n },\n yellow: {\n '50': 'oklch(0.987 0.026 102.212)',\n '100': 'oklch(0.973 0.071 103.193)',\n '200': 'oklch(0.945 0.129 101.54)',\n '300': 'oklch(0.905 0.182 98.111)',\n '400': 'oklch(0.852 0.199 91.936)',\n '500': 'oklch(0.795 0.184 86.047)',\n '600': 'oklch(0.681 0.162 75.834)',\n '700': 'oklch(0.554 0.135 66.442)',\n '800': 'oklch(0.476 0.114 61.907)',\n '900': 'oklch(0.421 0.095 57.708)',\n '950': 'oklch(0.286 0.066 53.813)',\n },\n lime: {\n '50': 'oklch(0.986 0.031 120.757)',\n '100': 'oklch(0.967 0.067 122.328)',\n '200': 'oklch(0.938 0.127 124.321)',\n '300': 'oklch(0.897 0.196 126.665)',\n '400': 'oklch(0.841 0.238 128.85)',\n '500': 'oklch(0.768 0.233 130.85)',\n '600': 'oklch(0.648 0.2 131.684)',\n '700': 'oklch(0.532 0.157 131.589)',\n '800': 'oklch(0.453 0.124 130.933)',\n '900': 'oklch(0.405 0.101 131.063)',\n '950': 'oklch(0.274 0.072 132.109)',\n },\n green: {\n '50': 'oklch(0.982 0.018 155.826)',\n '100': 'oklch(0.962 0.044 156.743)',\n '200': 'oklch(0.925 0.084 155.995)',\n '300': 'oklch(0.871 0.15 154.449)',\n '400': 'oklch(0.792 0.209 151.711)',\n '500': 'oklch(0.723 0.219 149.579)',\n '600': 'oklch(0.627 0.194 149.214)',\n '700': 'oklch(0.527 0.154 150.069)',\n '800': 'oklch(0.448 0.119 151.328)',\n '900': 'oklch(0.393 0.095 152.535)',\n '950': 'oklch(0.266 0.065 152.934)',\n },\n emerald: {\n '50': 'oklch(0.979 0.021 166.113)',\n '100': 'oklch(0.95 0.052 163.051)',\n '200': 'oklch(0.905 0.093 164.15)',\n '300': 'oklch(0.845 0.143 164.978)',\n '400': 'oklch(0.765 0.177 163.223)',\n '500': 'oklch(0.696 0.17 162.48)',\n '600': 'oklch(0.596 0.145 163.225)',\n '700': 'oklch(0.508 0.118 165.612)',\n '800': 'oklch(0.432 0.095 166.913)',\n '900': 'oklch(0.378 0.077 168.94)',\n '950': 'oklch(0.262 0.051 172.552)',\n },\n teal: {\n '50': 'oklch(0.984 0.014 180.72)',\n '100': 'oklch(0.953 0.051 180.801)',\n '200': 'oklch(0.91 0.096 180.426)',\n '300': 'oklch(0.855 0.138 181.071)',\n '400': 'oklch(0.777 0.152 181.912)',\n '500': 'oklch(0.704 0.14 182.503)',\n '600': 'oklch(0.6 0.118 184.704)',\n '700': 'oklch(0.511 0.096 186.391)',\n '800': 'oklch(0.437 0.078 188.216)',\n '900': 'oklch(0.386 0.063 188.416)',\n '950': 'oklch(0.277 0.046 192.524)',\n },\n cyan: {\n '50': 'oklch(0.984 0.019 200.873)',\n '100': 'oklch(0.956 0.045 203.388)',\n '200': 'oklch(0.917 0.08 205.041)',\n '300': 'oklch(0.865 0.127 207.078)',\n '400': 'oklch(0.789 0.154 211.53)',\n '500': 'oklch(0.715 0.143 215.221)',\n '600': 'oklch(0.609 0.126 221.723)',\n '700': 'oklch(0.52 0.105 223.128)',\n '800': 'oklch(0.45 0.085 224.283)',\n '900': 'oklch(0.398 0.07 227.392)',\n '950': 'oklch(0.302 0.056 229.695)',\n },\n sky: {\n '50': 'oklch(0.977 0.013 236.62)',\n '100': 'oklch(0.951 0.026 236.824)',\n '200': 'oklch(0.901 0.058 230.902)',\n '300': 'oklch(0.828 0.111 230.318)',\n '400': 'oklch(0.746 0.16 232.661)',\n '500': 'oklch(0.685 0.169 237.323)',\n '600': 'oklch(0.588 0.158 241.966)',\n '700': 'oklch(0.5 0.134 242.749)',\n '800': 'oklch(0.443 0.11 240.79)',\n '900': 'oklch(0.391 0.09 240.876)',\n '950': 'oklch(0.293 0.066 243.157)',\n },\n blue: {\n '50': 'oklch(0.97 0.014 254.604)',\n '100': 'oklch(0.932 0.032 255.585)',\n '200': 'oklch(0.882 0.059 254.128)',\n '300': 'oklch(0.809 0.105 251.813)',\n '400': 'oklch(0.707 0.165 254.624)',\n '500': 'oklch(0.623 0.214 259.815)',\n '600': 'oklch(0.546 0.245 262.881)',\n '700': 'oklch(0.488 0.243 264.376)',\n '800': 'oklch(0.424 0.199 265.638)',\n '900': 'oklch(0.379 0.146 265.522)',\n '950': 'oklch(0.282 0.091 267.935)',\n },\n indigo: {\n '50': 'oklch(0.962 0.018 272.314)',\n '100': 'oklch(0.93 0.034 272.788)',\n '200': 'oklch(0.87 0.065 274.039)',\n '300': 'oklch(0.785 0.115 274.713)',\n '400': 'oklch(0.673 0.182 276.935)',\n '500': 'oklch(0.585 0.233 277.117)',\n '600': 'oklch(0.511 0.262 276.966)',\n '700': 'oklch(0.457 0.24 277.023)',\n '800': 'oklch(0.398 0.195 277.366)',\n '900': 'oklch(0.359 0.144 278.697)',\n '950': 'oklch(0.257 0.09 281.288)',\n },\n violet: {\n '50': 'oklch(0.969 0.016 293.756)',\n '100': 'oklch(0.943 0.029 294.588)',\n '200': 'oklch(0.894 0.057 293.283)',\n '300': 'oklch(0.811 0.111 293.571)',\n '400': 'oklch(0.702 0.183 293.541)',\n '500': 'oklch(0.606 0.25 292.717)',\n '600': 'oklch(0.541 0.281 293.009)',\n '700': 'oklch(0.491 0.27 292.581)',\n '800': 'oklch(0.432 0.232 292.759)',\n '900': 'oklch(0.38 0.189 293.745)',\n '950': 'oklch(0.283 0.141 291.089)',\n },\n purple: {\n '50': 'oklch(0.977 0.014 308.299)',\n '100': 'oklch(0.946 0.033 307.174)',\n '200': 'oklch(0.902 0.063 306.703)',\n '300': 'oklch(0.827 0.119 306.383)',\n '400': 'oklch(0.714 0.203 305.504)',\n '500': 'oklch(0.627 0.265 303.9)',\n '600': 'oklch(0.558 0.288 302.321)',\n '700': 'oklch(0.496 0.265 301.924)',\n '800': 'oklch(0.438 0.218 303.724)',\n '900': 'oklch(0.381 0.176 304.987)',\n '950': 'oklch(0.291 0.149 302.717)',\n },\n fuchsia: {\n '50': 'oklch(0.977 0.017 320.058)',\n '100': 'oklch(0.952 0.037 318.852)',\n '200': 'oklch(0.903 0.076 319.62)',\n '300': 'oklch(0.833 0.145 321.434)',\n '400': 'oklch(0.74 0.238 322.16)',\n '500': 'oklch(0.667 0.295 322.15)',\n '600': 'oklch(0.591 0.293 322.896)',\n '700': 'oklch(0.518 0.253 323.949)',\n '800': 'oklch(0.452 0.211 324.591)',\n '900': 'oklch(0.401 0.17 325.612)',\n '950': 'oklch(0.293 0.136 325.661)',\n },\n pink: {\n '50': 'oklch(0.971 0.014 343.198)',\n '100': 'oklch(0.948 0.028 342.258)',\n '200': 'oklch(0.899 0.061 343.231)',\n '300': 'oklch(0.823 0.12 346.018)',\n '400': 'oklch(0.718 0.202 349.761)',\n '500': 'oklch(0.656 0.241 354.308)',\n '600': 'oklch(0.592 0.249 0.584)',\n '700': 'oklch(0.525 0.223 3.958)',\n '800': 'oklch(0.459 0.187 3.815)',\n '900': 'oklch(0.408 0.153 2.432)',\n '950': 'oklch(0.284 0.109 3.907)',\n },\n rose: {\n '50': 'oklch(0.969 0.015 12.422)',\n '100': 'oklch(0.941 0.03 12.58)',\n '200': 'oklch(0.892 0.058 10.001)',\n '300': 'oklch(0.81 0.117 11.638)',\n '400': 'oklch(0.712 0.194 13.428)',\n '500': 'oklch(0.645 0.246 16.439)',\n '600': 'oklch(0.586 0.253 17.585)',\n '700': 'oklch(0.514 0.222 16.935)',\n '800': 'oklch(0.455 0.188 13.697)',\n '900': 'oklch(0.41 0.159 10.272)',\n '950': 'oklch(0.271 0.105 12.094)',\n },\n slate: {\n '50': 'oklch(0.984 0.003 247.858)',\n '100': 'oklch(0.968 0.007 247.896)',\n '200': 'oklch(0.929 0.013 255.508)',\n '300': 'oklch(0.869 0.022 252.894)',\n '400': 'oklch(0.704 0.04 256.788)',\n '500': 'oklch(0.554 0.046 257.417)',\n '600': 'oklch(0.446 0.043 257.281)',\n '700': 'oklch(0.372 0.044 257.287)',\n '800': 'oklch(0.279 0.041 260.031)',\n '900': 'oklch(0.208 0.042 265.755)',\n '950': 'oklch(0.129 0.042 264.695)',\n },\n gray: {\n '50': 'oklch(0.985 0.002 247.839)',\n '100': 'oklch(0.967 0.003 264.542)',\n '200': 'oklch(0.928 0.006 264.531)',\n '300': 'oklch(0.872 0.01 258.338)',\n '400': 'oklch(0.707 0.022 261.325)',\n '500': 'oklch(0.551 0.027 264.364)',\n '600': 'oklch(0.446 0.03 256.802)',\n '700': 'oklch(0.373 0.034 259.733)',\n '800': 'oklch(0.278 0.033 256.848)',\n '900': 'oklch(0.21 0.034 264.665)',\n '950': 'oklch(0.13 0.028 261.692)',\n },\n zinc: {\n '50': 'oklch(0.985 0 0)',\n '100': 'oklch(0.967 0.001 286.375)',\n '200': 'oklch(0.92 0.004 286.32)',\n '300': 'oklch(0.871 0.006 286.286)',\n '400': 'oklch(0.705 0.015 286.067)',\n '500': 'oklch(0.552 0.016 285.938)',\n '600': 'oklch(0.442 0.017 285.786)',\n '700': 'oklch(0.37 0.013 285.805)',\n '800': 'oklch(0.274 0.006 286.033)',\n '900': 'oklch(0.21 0.006 285.885)',\n '950': 'oklch(0.141 0.005 285.823)',\n },\n neutral: {\n '50': 'oklch(0.985 0 0)',\n '100': 'oklch(0.97 0 0)',\n '200': 'oklch(0.922 0 0)',\n '300': 'oklch(0.87 0 0)',\n '400': 'oklch(0.708 0 0)',\n '500': 'oklch(0.556 0 0)',\n '600': 'oklch(0.439 0 0)',\n '700': 'oklch(0.371 0 0)',\n '800': 'oklch(0.269 0 0)',\n '900': 'oklch(0.205 0 0)',\n '950': 'oklch(0.145 0 0)',\n },\n stone: {\n '50': 'oklch(0.985 0.001 106.423)',\n '100': 'oklch(0.97 0.001 106.424)',\n '200': 'oklch(0.923 0.003 48.717)',\n '300': 'oklch(0.869 0.005 56.366)',\n '400': 'oklch(0.709 0.01 56.259)',\n '500': 'oklch(0.553 0.013 58.071)',\n '600': 'oklch(0.444 0.011 73.639)',\n '700': 'oklch(0.374 0.01 67.558)',\n '800': 'oklch(0.268 0.007 34.298)',\n '900': 'oklch(0.216 0.006 56.043)',\n '950': 'oklch(0.147 0.004 49.25)',\n },\n};\n//# sourceMappingURL=colors.js.map","export const THEME_COLORS = {\n // Surface Colors\n background: {\n name: 'Background',\n description: 'The background color of the page',\n lightDefault: { color: 'white' },\n darkDefault: { baseShade: '950' },\n groupKey: 'page',\n category: 'surface',\n },\n foreground: {\n name: 'Foreground',\n description: 'The foreground color of the page',\n lightDefault: { baseShade: '950' },\n darkDefault: { baseShade: '50' },\n groupKey: 'page',\n category: 'surface',\n },\n muted: {\n name: 'Muted Background',\n description: 'Muted backgrounds such as <TabsList />, <Skeleton /> and <Switch />, also used as background for containers on white background or vice versa',\n lightDefault: { baseShade: '100' },\n darkDefault: { baseShade: '800' },\n groupKey: 'muted',\n category: 'surface',\n },\n mutedForeground: {\n name: 'Muted Foreground',\n description: 'Used for secondary text and subtitles',\n lightDefault: { baseShade: '500' },\n darkDefault: { baseShade: '400' },\n groupKey: 'muted',\n category: 'surface',\n },\n card: {\n name: 'Card Background',\n description: 'Background color for <Card />',\n lightDefault: { color: 'white' },\n darkDefault: { baseShade: '950' },\n groupKey: 'card',\n category: 'surface',\n },\n cardForeground: {\n name: 'Card Foreground',\n description: 'Foreground color for <Card />',\n lightDefault: { baseShade: '950' },\n darkDefault: { baseShade: '50' },\n groupKey: 'card',\n category: 'surface',\n },\n popover: {\n name: 'Popover Background',\n description: 'Background color for popovers such as <DropdownMenu />, <HoverCard />, <Popover />',\n lightDefault: { color: 'white' },\n darkDefault: { baseShade: '950' },\n groupKey: 'popover',\n category: 'surface',\n },\n popoverForeground: {\n name: 'Popover Foreground',\n description: 'Foreground color for popovers such as <DropdownMenu />, <HoverCard />, <Popover />',\n lightDefault: { baseShade: '950' },\n darkDefault: { baseShade: '50' },\n groupKey: 'popover',\n category: 'surface',\n },\n accent: {\n name: 'Accent',\n description: 'Used for accents such as hover effects on <DropdownMenuItem>, <SelectItem>...',\n lightDefault: { baseShade: '100' },\n darkDefault: { baseShade: '800' },\n groupKey: 'accent',\n category: 'surface',\n },\n accentForeground: {\n name: 'Accent Foreground',\n description: 'Used for accent foregrounds such as hover effects on <DropdownMenuItem>, <SelectItem>...',\n lightDefault: { baseShade: '900' },\n darkDefault: { baseShade: '50' },\n groupKey: 'accent',\n category: 'surface',\n },\n success: {\n name: 'Success',\n description: 'Used for success state on input fields, toast or alerts',\n lightDefault: { color: 'emerald-50' },\n darkDefault: { color: 'emerald-950' },\n groupKey: 'success',\n category: 'surface',\n },\n successForeground: {\n name: 'Success Foreground',\n description: 'Used for success foregrounds',\n lightDefault: { color: 'emerald-950' },\n darkDefault: { color: 'emerald-50' },\n groupKey: 'success',\n category: 'surface',\n },\n warning: {\n name: 'Warning',\n description: 'Used for warning color on toast or alert',\n lightDefault: { color: 'amber-50' },\n darkDefault: { color: 'amber-950' },\n groupKey: 'warning',\n category: 'surface',\n },\n warningForeground: {\n name: 'Warning Foreground',\n description: 'Used for warning foregrounds',\n lightDefault: { color: 'amber-950' },\n darkDefault: { color: 'amber-50' },\n groupKey: 'warning',\n category: 'surface',\n },\n error: {\n name: 'Error',\n description: 'Used for error state on input fields, toast or alerts',\n lightDefault: { color: 'red-50' },\n darkDefault: { color: 'red-950' },\n groupKey: 'error',\n category: 'surface',\n },\n errorForeground: {\n name: 'Error Foreground',\n description: 'Used for error foregrounds',\n lightDefault: { color: 'red-950' },\n darkDefault: { color: 'red-50' },\n groupKey: 'error',\n category: 'surface',\n },\n // Interactive Element Colors\n primary: {\n name: 'Primary',\n description: 'Primary colors for <Button /> and other active states for interactive elements such as checkbox',\n lightDefault: { primaryShade: '800' },\n darkDefault: { primaryShade: '950' },\n groupKey: 'primary',\n category: 'interactive',\n },\n primaryHover: {\n name: 'Primary Hover',\n description: 'Hover background for primary color',\n lightDefault: { primaryShade: '900' },\n darkDefault: { primaryShade: '800' },\n groupKey: 'primary',\n category: 'interactive',\n },\n primaryForeground: {\n name: 'Primary Foreground',\n description: 'Text color for primary button',\n lightDefault: { baseShade: '50' },\n darkDefault: { baseShade: '50' },\n groupKey: 'primary',\n category: 'interactive',\n },\n secondary: {\n name: 'Secondary',\n description: 'Secondary colors for <Button />',\n lightDefault: { baseShade: '100' },\n darkDefault: { baseShade: '800' },\n groupKey: 'secondary',\n category: 'interactive',\n },\n secondaryHover: {\n name: 'Secondary Hover',\n description: 'Hover background for secondary color',\n lightDefault: { baseShade: '300' },\n darkDefault: { baseShade: '600' },\n groupKey: 'secondary',\n category: 'interactive',\n },\n secondaryForeground: {\n name: 'Secondary Foreground',\n description: 'Text color for secondary button',\n lightDefault: { baseShade: '900' },\n darkDefault: { baseShade: '50' },\n groupKey: 'secondary',\n category: 'interactive',\n },\n destructive: {\n name: 'Destructive',\n description: 'Used for destructive actions such as <Button variant=\"destructive\">',\n lightDefault: { color: 'red-500' },\n darkDefault: { color: 'red-900' },\n groupKey: 'destructive',\n category: 'interactive',\n },\n destructiveHover: {\n name: 'Destructive Hover',\n description: 'Hover color for destructive background',\n lightDefault: { color: 'red-700' },\n darkDefault: { color: 'red-700' },\n groupKey: 'destructive',\n category: 'interactive',\n },\n destructiveForeground: {\n name: 'Destructive Foreground',\n description: 'Hover color for destructive background',\n lightDefault: { baseShade: '50' },\n darkDefault: { baseShade: '50' },\n groupKey: 'destructive',\n category: 'interactive',\n },\n link: {\n name: 'Link',\n description: 'Used for interactive links mostly in text',\n lightDefault: { primaryShade: '700' },\n darkDefault: { primaryShade: '600' },\n groupKey: 'link',\n category: 'interactive',\n },\n linkVisited: {\n name: 'Visited Link',\n description: 'Color for link after being visited',\n lightDefault: { primaryShade: '800' },\n darkDefault: { primaryShade: '700' },\n groupKey: 'link',\n category: 'interactive',\n },\n // Utility Colors\n border: {\n name: 'Border',\n description: 'Default border color',\n lightDefault: { baseShade: '200' },\n darkDefault: { baseShade: '800' },\n groupKey: 'border',\n category: 'utility',\n },\n input: {\n name: 'Input Border',\n description: 'Border color for inputs such as <Input />, <Select />, <Textarea />',\n lightDefault: { baseShade: '200' },\n darkDefault: { baseShade: '800' },\n groupKey: 'border',\n category: 'utility',\n },\n ring: {\n name: 'Focus Ring',\n description: 'Used for focus ring.',\n lightDefault: { primaryShade: '400' },\n darkDefault: { primaryShade: '500' },\n groupKey: 'ring',\n category: 'utility',\n },\n};\nexport const THEME_COLOR_KEYS = Object.keys(THEME_COLORS);\n//# sourceMappingURL=theme-colors.js.map","function cleanAndSplitPath(path) {\n return path\n .replace(/^\\./, '')\n .split('/')\n .filter((segment) => segment !== '');\n}\n/**\n * Computes the relative path from one path to another.\n */\nexport function computeRelativePath(fromPath, toPath) {\n const fromSegments = cleanAndSplitPath(fromPath);\n const toSegments = cleanAndSplitPath(toPath);\n // Remove the common segments from the beginning\n while (fromSegments.length > 0 &&\n toSegments.length > 0 &&\n fromSegments[0] === toSegments[0]) {\n fromSegments.shift();\n toSegments.shift();\n }\n // Add the necessary number of '../' to go up the directory hierarchy\n const numParentDirs = fromSegments.length;\n const parentDirs = Array.from({ length: numParentDirs }).fill('..');\n // Construct the relative path\n const relativePath = [...parentDirs, ...toSegments].join('/');\n return relativePath;\n}\n//# sourceMappingURL=path.js.map","import { computeRelativePath } from '#src/utils/path.js';\nfunction byId(projectDefinition, id) {\n const config = projectDefinition.apps.find((app) => app.id === id);\n if (!config) {\n throw new Error(`Unable to find app with ID ${id}`);\n }\n return config;\n}\nfunction getBackendApp(projectDefinition) {\n const backendApps = projectDefinition.apps.filter((a) => a.type === 'backend');\n if (backendApps.length > 1 || backendApps.length === 0) {\n throw new Error(`Only one backend app is supported and must exist`);\n }\n const backendApp = backendApps[0];\n return backendApp;\n}\n/**\n * Given an app config, get the relative directory of the app\n *\n * @param appConfig The app config\n * @param monorepoSettings Optional monorepo settings to determine apps folder location\n * @returns The directory of the app\n */\nfunction getAppDirectory(appConfig, monorepoSettings) {\n const appsFolder = monorepoSettings?.appsFolder ?? 'apps';\n return `${appsFolder}/${appConfig.name}`;\n}\nexport function getBackendRelativePath(appConfig, backendApp, monorepoSettings) {\n const backendRelativePath = computeRelativePath(getAppDirectory(appConfig, monorepoSettings), getAppDirectory(backendApp, monorepoSettings));\n return backendRelativePath;\n}\nexport const AppUtils = {\n byId,\n getBackendApp,\n getBackendRelativePath,\n getAppDirectory,\n};\n//# sourceMappingURL=app-utils.js.map","import { createEntityType } from '#src/references/types.js';\nexport const appEntityType = createEntityType('app');\nexport function createAppEntryType(name) {\n return name;\n}\n//# sourceMappingURL=types.js.map","import { CASE_VALIDATORS } from '@baseplate-dev/utils';\nimport { z } from 'zod';\nimport { appEntityType } from './types.js';\nexport const baseAppValidators = {\n id: z.string().default(appEntityType.generateNewId()),\n name: CASE_VALIDATORS.KEBAB_CASE,\n type: z.string(),\n};\nexport const baseAppSchema = z.object(baseAppValidators);\n//# sourceMappingURL=base.js.map","import { z } from 'zod';\nimport { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { baseAppValidators } from '../base.js';\nimport { appEntityType, createAppEntryType } from '../types.js';\nexport const createBackendAppSchema = definitionSchemaWithSlots({ appSlot: appEntityType }, () => z.object({\n ...baseAppValidators,\n type: z.literal('backend'),\n enableStripe: z.boolean().optional(),\n enablePostmark: z.boolean().optional(),\n enableSubscriptions: z.boolean().optional(),\n enableAxios: z.boolean().optional(),\n}));\nexport const backendAppEntryType = createAppEntryType('backend');\n//# sourceMappingURL=index.js.map","import { createEntityType } from '#src/references/types.js';\nexport const authRoleEntityType = createEntityType('role');\n//# sourceMappingURL=index.js.map","/**\n * Creates a definition entity name resolver.\n * @param entityNameResolver - The entity name resolver.\n * @returns The definition entity name resolver.\n */\nexport function createDefinitionEntityNameResolver(entityNameResolver) {\n return entityNameResolver;\n}\n//# sourceMappingURL=definition-ref-builder.js.map","import { DefinitionReferenceMarker, REF_ANNOTATIONS_MARKER_SYMBOL, } from './markers.js';\nfunction collectRefAnnotationsRecursive(pathPrefix, value) {\n if (value === undefined || value === null)\n return undefined;\n if (value instanceof DefinitionReferenceMarker) {\n return {\n entities: [],\n references: [\n { ...value.reference, path: [...pathPrefix, ...value.reference.path] },\n ],\n slots: [],\n };\n }\n const collected = {\n entities: [],\n references: [],\n slots: [],\n };\n if (Array.isArray(value)) {\n for (const [i, element] of value.entries()) {\n const childCollected = collectRefAnnotationsRecursive([...pathPrefix, i], element);\n if (childCollected) {\n collected.entities.push(...childCollected.entities);\n collected.references.push(...childCollected.references);\n collected.slots.push(...childCollected.slots);\n }\n }\n return collected;\n }\n if (typeof value === 'object') {\n if (REF_ANNOTATIONS_MARKER_SYMBOL in value) {\n const annotations = value[REF_ANNOTATIONS_MARKER_SYMBOL];\n collected.entities.push(...annotations.entities.map((entity) => ({\n ...entity,\n path: [...pathPrefix, ...entity.path],\n })));\n collected.references.push(...annotations.references.map((reference) => ({\n ...reference,\n path: [...pathPrefix, ...reference.path],\n })));\n collected.slots.push(...annotations.slots.map((slot) => ({\n ...slot,\n path: [...pathPrefix, ...slot.path],\n })));\n }\n for (const [key, childValue] of Object.entries(value)) {\n if (typeof key !== 'string')\n continue;\n const childCollected = collectRefAnnotationsRecursive([...pathPrefix, key], childValue);\n if (childCollected) {\n collected.entities.push(...childCollected.entities);\n collected.references.push(...childCollected.references);\n collected.slots.push(...childCollected.slots);\n }\n }\n return collected;\n }\n return undefined;\n}\nexport function collectRefs(value) {\n return (collectRefAnnotationsRecursive([], value) ?? {\n entities: [],\n references: [],\n slots: [],\n });\n}\n//# sourceMappingURL=collect-refs.js.map","import { mapGroupBy } from '@baseplate-dev/utils';\n/**\n * Calculates the length of the common prefix of two paths.\n *\n * @param a - The first path\n * @param b - The second path\n * @returns The length of the common prefix of the two paths\n */\nfunction commonPrefixLength(a, b) {\n let length = 0;\n const maxLength = Math.min(a.length, b.length);\n for (let i = 0; i < maxLength; i++) {\n if (a[i] !== b[i])\n break;\n length++;\n }\n return length;\n}\n/**\n * Finds the nearest ancestor slot for a given target path.\n *\n * @param candidateSlots - The candidate slots to search through.\n * @param targetPath - The target path to find the nearest ancestor slot for.\n * @returns The nearest ancestor slot, or undefined if no slot is found.\n */\nexport function findNearestAncestorSlot(candidateSlots = [], targetPath) {\n let bestMatch;\n for (const candidateSlot of candidateSlots) {\n const prefixLength = commonPrefixLength(candidateSlot.path, targetPath);\n // A slot at path [] (root) is a valid ancestor of any path\n // For non-root slots, require at least 1 common prefix element\n const isValidAncestor = candidateSlot.path.length === 0 || prefixLength > 0;\n if (isValidAncestor &&\n (!bestMatch || prefixLength > bestMatch.prefixLength)) {\n bestMatch = { prefixLength, slot: candidateSlot };\n }\n }\n return bestMatch?.slot;\n}\n/**\n * Resolves all slot references to actual paths.\n *\n * This function takes the collected refs (which have `parentSlot` references)\n * and resolves them to `parentPath` values using the slotPaths map.\n *\n * For scoped slots (where the same slot can be registered multiple times),\n * we find the registration whose path is the nearest ancestor of the entity/reference.\n *\n * @param collected - The collected refs with unresolved slots.\n * @returns The resolved refs with parentPath instead of parentSlot.\n * @throws If a required slot is not found in the slotPaths map.\n */\nexport function resolveSlots(collected) {\n const { entities, references, slots } = collected;\n // Collect all slots by path\n const slotsByType = mapGroupBy(slots, (slot) => slot.slot.id);\n const resolvedSlotsByType = new Map();\n function registerSlot(slot, resolvedPath) {\n const slotId = slot.id;\n const candidateSlots = slotsByType.get(slotId) ?? [];\n const nearestAncestorSlot = findNearestAncestorSlot(candidateSlots, resolvedPath);\n if (!nearestAncestorSlot) {\n throw new Error(`Could not find slot \"${slotId.description ?? 'unknown'}\" ` +\n `within path ${resolvedPath.join('.')}. Make sure the slot is registered for this path.`);\n }\n const existingSlots = resolvedSlotsByType.get(slotId) ?? [];\n resolvedSlotsByType.set(slotId, [\n ...existingSlots,\n { resolvedPath, path: nearestAncestorSlot.path },\n ]);\n }\n // Collect entity provides\n for (const entity of entities) {\n if (entity.provides) {\n registerSlot(entity.provides, [...entity.path, ...entity.idPath]);\n }\n }\n // Collect reference provides\n for (const reference of references) {\n if (reference.provides) {\n registerSlot(reference.provides, reference.path);\n }\n }\n return resolvedSlotsByType;\n}\n//# sourceMappingURL=resolve-slots.js.map","import { collectRefs } from './collect-refs.js';\nimport { findNearestAncestorSlot, resolveSlots } from './resolve-slots.js';\nimport { stripRefMarkers } from './strip-ref-markers.js';\n/**\n * Extracts definition refs from a parsed value using functional approach.\n *\n * Flow:\n * 1. Collect all refs (entities, references, slots) recursively\n * 2. Resolve all slot references to actual paths\n * 3. Strip ref markers from the data\n * 4. Validate no duplicate IDs\n *\n * @param value - The parsed value from Zod schema\n * @returns The extracted refs with clean data\n */\nexport function extractDefinitionRefs(value) {\n // Step 1: Collect all refs without resolving slots\n const collected = collectRefs(value);\n // Step 2: Resolve all slots to paths\n const resolvedSlots = resolveSlots(collected);\n // Step 3: Strip markers from data\n const cleanData = stripRefMarkers(value);\n // Step 4: Resolve entity and reference parent paths\n function resolveParentPath(parentSlot, path) {\n const resolvedSlot = findNearestAncestorSlot(resolvedSlots.get(parentSlot.id), path);\n if (!resolvedSlot) {\n throw new Error(`Could not resolve parent path from ${path.join('.')} for slot ${parentSlot.id.description}`);\n }\n return resolvedSlot.resolvedPath;\n }\n const entitiesWithNameResolver = collected.entities.map((entity) => ({\n id: entity.id,\n idPath: entity.idPath,\n nameResolver: entity.nameResolver,\n type: entity.type,\n path: entity.path,\n parentPath: entity.parentSlot\n ? resolveParentPath(entity.parentSlot, entity.path)\n : undefined,\n }));\n const references = collected.references.map((reference) => ({\n type: reference.type,\n path: reference.path,\n onDelete: reference.onDelete,\n parentPath: reference.parentSlot\n ? resolveParentPath(reference.parentSlot, reference.path)\n : undefined,\n }));\n // Step 4: Validate no duplicate IDs\n const idSet = new Set();\n for (const entity of collected.entities) {\n if (idSet.has(entity.id)) {\n throw new Error(`Duplicate ID found: ${entity.id}`);\n }\n idSet.add(entity.id);\n }\n return {\n data: cleanData,\n references,\n entitiesWithNameResolver,\n };\n}\n//# sourceMappingURL=extract-definition-refs.js.map","import { toposort } from '@baseplate-dev/utils';\nimport { keyBy, mapValues } from 'es-toolkit';\n/**\n * Resolves entity names in a ZodRefPayload.\n *\n * @param payload - The ZodRefPayload to resolve.\n * @param options - The options for resolving entity names.\n *\n * @template T - The type of the payload.\n */\nexport function resolveZodRefPayloadNames(payload, { skipReferenceNameResolution = false, allowInvalidReferences = false, } = {}) {\n const { entitiesWithNameResolver, references, data } = payload;\n const entitiesById = keyBy(entitiesWithNameResolver, (entity) => entity.id);\n const resolvedEntitiesById = new Map();\n // sort entities by dependency order\n const orderedEntities = toposort(entitiesWithNameResolver.map((entity) => entity.id), entitiesWithNameResolver.flatMap((entity) => {\n if (typeof entity.nameResolver !== 'object') {\n return [];\n }\n const entityIds = entity.nameResolver.idsToResolve ?? {};\n return Object.values(entityIds)\n .flat()\n .filter((id) => id in entitiesById)\n .map((id) => [id, entity.id]);\n }));\n function resolveIdToName(id) {\n if (skipReferenceNameResolution) {\n return id;\n }\n const entity = resolvedEntitiesById.get(id);\n if (!entity) {\n if (allowInvalidReferences) {\n return id;\n }\n throw new Error(`Could not resolve entity name for id: ${id}`);\n }\n return entity.name;\n }\n for (const id of orderedEntities) {\n const { nameResolver, ...rest } = entitiesById[id];\n if (typeof nameResolver === 'string') {\n resolvedEntitiesById.set(rest.id, {\n ...rest,\n name: nameResolver,\n });\n }\n else {\n const resolvedIds = mapValues(nameResolver.idsToResolve ?? {}, (idOrIds) => Array.isArray(idOrIds)\n ? idOrIds.map((id) => resolveIdToName(id))\n : resolveIdToName(idOrIds));\n resolvedEntitiesById.set(rest.id, {\n ...rest,\n name: nameResolver.resolveName(resolvedIds),\n });\n }\n }\n return {\n entities: [...resolvedEntitiesById.values()],\n references,\n data,\n };\n}\n//# sourceMappingURL=resolve-zod-ref-payload-names.js.map","import { createDefinitionSchemaParserContext } from '#src/schema/creator/index.js';\nimport { extractDefinitionRefs } from './extract-definition-refs.js';\nimport { resolveZodRefPayloadNames } from './resolve-zod-ref-payload-names.js';\n/**\n * Parses a schema with references.\n *\n * @param schema - The schema to parse.\n * @param input - The input to parse.\n * @param options - The options for parsing the schema.\n *\n * @returns The parsed data.\n */\nexport function parseSchemaWithTransformedReferences(schemaCreator, input, schemaCreatorOptions, options) {\n const schemaContext = createDefinitionSchemaParserContext({\n ...schemaCreatorOptions,\n transformReferences: true,\n });\n const schema = schemaCreator(schemaContext);\n const value = schema.parse(input);\n const refPayload = extractDefinitionRefs(value);\n return resolveZodRefPayloadNames(refPayload, options);\n}\n//# sourceMappingURL=parse-schema-with-references.js.map","import { toposort } from '@baseplate-dev/utils';\nimport { groupBy, keyBy, uniq } from 'es-toolkit';\nimport { get, set } from 'es-toolkit/compat';\nimport { parseSchemaWithTransformedReferences } from './parse-schema-with-references.js';\nfunction referenceToNameParentId(name, parentId) {\n return JSON.stringify({ name, parentId });\n}\n/**\n * Deserialize a schema with references using the new transform-based approach.\n * This function converts human-readable names back to entity IDs.\n *\n * @template T - The schema creator type\n * @param schemaCreator - The schema creator function\n * @param input - The input data with names instead of IDs\n * @param options - Options for the schema creator (excluding transformReferences)\n * @returns The resolved payload with IDs instead of names\n */\nexport function deserializeSchemaWithTransformedReferences(schemaCreator, input, options) {\n const payload = parseSchemaWithTransformedReferences(schemaCreator, input, options, {\n skipReferenceNameResolution: true,\n });\n // Use the same resolution logic as the original function\n return resolveReferencesToIds(payload);\n}\n/**\n * Internal function to resolve entity names to IDs in the payload.\n * This is shared logic between the old and new approaches.\n *\n * @param payload - The parsed payload with entities and references\n * @returns The payload with references resolved to IDs\n */\nfunction resolveReferencesToIds(payload) {\n const { references, entities, data } = payload;\n if (typeof data !== 'object' || data === null) {\n throw new TypeError('Data is not an object');\n }\n // check we don't have more entities than IDs\n const entitiesById = groupBy(entities, (entity) => entity.id);\n const duplicateEntityIds = Object.values(entitiesById).filter((e) => e.length > 1);\n if (duplicateEntityIds.length > 0) {\n throw new Error(`Found multiple duplicate entity IDs: ${duplicateEntityIds\n .map((ents) => `${ents[0].id} (${ents.map((e) => e.path.join('.')).join(',')})`)\n .join(', ')}`);\n }\n const uniqueEntityIds = uniq(entities.map((e) => e.id));\n if (uniqueEntityIds.length !== entities.length) {\n throw new Error(`Found duplicate entity IDs`);\n }\n // collect reference entity types\n const entityTypes = uniq(entities.map((e) => e.type));\n const entityTypeNames = uniq(entityTypes.map((t) => t.name));\n if (entityTypeNames.length !== entityTypes.length) {\n throw new Error(`Found more entity types than entity type names implying duplicate entity type name`);\n }\n const entityTypeOrder = toposort(entityTypeNames, entityTypes\n .filter((entityType) => !!entityType.parentType)\n .map((entityType) => [\n entityType.parentType?.name ?? '',\n entityType.name,\n ]));\n const entitiesByType = groupBy(entities, (e) => e.type.name);\n const referencesByType = groupBy(references, (r) => r.type.name);\n for (const name of entityTypeOrder) {\n const entities = entitiesByType[name] ?? [];\n const references = referencesByType[name] ?? [];\n // resolve references to their ID\n const entitiesByParentIdName = keyBy(entities, (e) => {\n const { parentPath } = e;\n const parentId = parentPath\n ? get(data, parentPath)\n : undefined;\n if (parentPath && typeof parentId !== 'string') {\n throw new Error(`Could not resolve parent path: ${parentPath.join('.')}`);\n }\n return referenceToNameParentId(e.name, parentId);\n });\n for (const ref of references) {\n const name = get(data, ref.path);\n // parent ID should have already been resolved due to order of resolving references\n const parentId = ref.parentPath && get(data, ref.parentPath);\n const parentIdName = referenceToNameParentId(name, parentId);\n const resolvedEntity = entitiesByParentIdName[parentIdName];\n if (!resolvedEntity) {\n throw new Error(`Unable to resolve reference: ${ref.path.join('.')} (${ref.type.name} ${parentIdName})`);\n }\n set(data, ref.path, resolvedEntity.id);\n }\n }\n return payload;\n}\n//# sourceMappingURL=deserialize-schema.js.map","import { sortBy } from 'es-toolkit';\nimport { get, groupBy, set } from 'es-toolkit/compat';\nimport { parseSchemaWithTransformedReferences } from './parse-schema-with-references.js';\n// sentinel ID to signify the reference has been flagged for deletion\nconst DELETED_SENTINEL_ID = 'deleted-sentinel-id';\n/**\n * Fixes any reference deletions by performing the appropriate action for the reference\n */\nexport function fixRefDeletions(schemaCreator, value, schemaCreatorOptions) {\n const issues = [];\n // find all references that do not have a corresponding entity\n let iterations;\n let valueToEdit = value;\n for (iterations = 0; iterations < 100; iterations++) {\n const parseResult = parseSchemaWithTransformedReferences(schemaCreator, valueToEdit, schemaCreatorOptions, {\n allowInvalidReferences: true,\n });\n const { references, entities } = parseResult;\n valueToEdit = parseResult.data;\n const entitiesById = new Map(entities.map((e) => [e.id, e]));\n const referencesMissingEntity = references.filter((r) => {\n const id = get(valueToEdit, r.path);\n return id !== DELETED_SENTINEL_ID && !entitiesById.has(id);\n });\n if (referencesMissingEntity.length === 0) {\n if (issues.length > 0) {\n return {\n type: 'failure',\n issues,\n };\n }\n return {\n type: 'success',\n value: valueToEdit,\n refPayload: parseResult,\n };\n }\n const objectsToDeleteInArray = [];\n function tryDeleteParent(path) {\n if (path.length === 0) {\n return false;\n }\n const parentPath = path.slice(0, -1);\n const parent = get(valueToEdit, parentPath);\n if (!Array.isArray(parent)) {\n return false;\n }\n objectsToDeleteInArray.push({\n path: parentPath,\n idx: path.at(-1),\n });\n return true;\n }\n // attempt to fix reference\n for (const ref of referencesMissingEntity) {\n const id = get(valueToEdit, ref.path);\n switch (ref.onDelete) {\n case 'SET_UNDEFINED': {\n // Check if reference is inside an array\n if (ref.path.length > 0) {\n const parentPath = ref.path.slice(0, -1);\n const parent = get(valueToEdit, parentPath);\n if (Array.isArray(parent)) {\n throw new TypeError(`SET_UNDEFINED cannot be used for references inside arrays at path ${ref.path.join('.')}. Use DELETE instead to remove the array element.`);\n }\n }\n set(valueToEdit, ref.path, undefined);\n break;\n }\n case 'RESTRICT': {\n issues.push({ ref, entityId: id });\n set(valueToEdit, ref.path, DELETED_SENTINEL_ID);\n break;\n }\n case 'DELETE': {\n if (!tryDeleteParent(ref.path)) {\n throw new Error(`Unable to find ref to cascade delete to`);\n }\n break;\n }\n case 'DELETE_PARENT': {\n if (!tryDeleteParent(ref.path.slice(0, -1))) {\n throw new Error(`Unable to find ref to cascade delete to`);\n }\n break;\n }\n default: {\n throw new Error(`Unknown onDelete action ${ref.onDelete}`);\n }\n }\n }\n const objectsToDeleteByPath = groupBy(objectsToDeleteInArray, (o) => o.path.join('.'));\n // delete objects in reverse order to avoid index shifting\n for (const [, objects] of Object.entries(objectsToDeleteByPath)) {\n const sortedObjects = sortBy(objects, [(o) => -o.idx]);\n for (const o of sortedObjects) {\n const parent = get(valueToEdit, o.path);\n if (!Array.isArray(parent)) {\n throw new TypeError(`Expected parent to be an array at path ${o.path.join('.')}`);\n }\n parent.splice(o.idx, 1);\n }\n }\n }\n throw new Error(`Exceeded max iterations fixing deletions`);\n}\n//# sourceMappingURL=fix-ref-deletions.js.map","import { get, set } from 'es-toolkit/compat';\nimport { produce } from 'immer';\nimport { parseSchemaWithTransformedReferences } from './parse-schema-with-references.js';\nexport function serializeSchemaFromRefPayload(payload) {\n const { references, entities, data } = payload;\n if (typeof data !== 'object' || data === null) {\n throw new TypeError('Data is not an object');\n }\n const entitiesById = new Map(entities.map((e) => [e.id, e]));\n return produce((draftData) => {\n for (const reference of references) {\n const entityId = get(draftData, reference.path);\n const entity = entitiesById.get(entityId);\n if (!entity) {\n throw new Error(`Could not find entity with ID: ${entityId} at ${reference.path.join('.')}`);\n }\n set(draftData, reference.path, entity.name);\n }\n })(data);\n}\nexport function serializeSchema(schemaCreator, value, schemaCreatorOptions) {\n const payload = parseSchemaWithTransformedReferences(schemaCreator, value, schemaCreatorOptions);\n return serializeSchemaFromRefPayload(payload);\n}\n//# sourceMappingURL=serialize-schema.js.map","export const SCALAR_FIELD_TYPES = [\n 'string',\n 'uuid',\n 'int',\n 'boolean',\n 'dateTime',\n 'float',\n 'decimal',\n 'json',\n 'date',\n 'enum',\n];\n//# sourceMappingURL=field-types.js.map","import { z } from 'zod';\nexport const VALIDATORS = {\n PASCAL_CASE_STRING: z\n .string()\n .regex(/^[A-Z][a-zA-Z0-9]*$/, \"Should be PascalCase, e.g. 'MyModel'\"),\n CAMEL_CASE_STRING: z\n .string()\n .regex(/^[a-z][a-zA-Z0-9]*$/, \"Should be camelCase, e.g. 'myField'\"),\n CONSTANT_CASE_STRING: z\n .string()\n .regex(/^[A-Z][A-Z0-9_]*$/, \"Should be CONSTANT_CASE, e.g. 'MY_CONSTANT'\"),\n OPTIONAL_CONSTANT_CASE_STRING: z\n .string()\n .regex(/^[A-Z][A-Z0-9_]*$/, \"Should be CONSTANT_CASE, e.g. 'MY_CONSTANT'\")\n .or(z.literal(''))\n .optional(),\n};\n//# sourceMappingURL=validation.js.map","import { z } from 'zod';\nimport { definitionSchema, definitionSchemaWithSlots, } from '#src/schema/creator/schema-creator.js';\nimport { authRoleEntityType } from '../auth/index.js';\nimport { modelEntityType, modelForeignRelationEntityType, modelLocalRelationEntityType, modelScalarFieldEntityType, } from './types.js';\nconst createRoleArray = definitionSchema((ctx) => ctx.withDefault(z.array(ctx.withRef({\n type: authRoleEntityType,\n onDelete: 'DELETE',\n})), []));\nexport const createModelGraphqlSchema = definitionSchemaWithSlots({\n modelSlot: modelEntityType,\n}, (ctx, { modelSlot }) => z.object({\n objectType: ctx.withDefault(z.object({\n enabled: ctx.withDefault(z.boolean(), false),\n fields: ctx.withDefault(z.array(ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n })), []),\n localRelations: ctx.withDefault(z.array(ctx.withRef({\n type: modelLocalRelationEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n })), []),\n foreignRelations: ctx.withDefault(z.array(ctx.withRef({\n type: modelForeignRelationEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n })), []),\n }), {}),\n queries: ctx.withDefault(z.object({\n get: ctx.withDefault(z.object({\n enabled: ctx.withDefault(z.boolean(), false),\n roles: createRoleArray(ctx),\n }), {}),\n list: ctx.withDefault(z.object({\n enabled: ctx.withDefault(z.boolean(), false),\n roles: createRoleArray(ctx),\n }), {}),\n }), {}),\n mutations: ctx.withDefault(z.object({\n create: ctx.withDefault(z.object({\n enabled: ctx.withDefault(z.boolean(), false),\n roles: createRoleArray(ctx),\n }), {}),\n update: ctx.withDefault(z.object({\n enabled: ctx.withDefault(z.boolean(), false),\n roles: createRoleArray(ctx),\n }), {}),\n delete: ctx.withDefault(z.object({\n enabled: ctx.withDefault(z.boolean(), false),\n roles: createRoleArray(ctx),\n }), {}),\n }), {}),\n}));\n//# sourceMappingURL=graphql.js.map","import { z } from 'zod';\nexport const baseTransformerFields = {\n id: z.string(),\n type: z.string().min(1),\n};\nexport const baseTransformerSchema = z.looseObject(baseTransformerFields);\nexport function createModelTransformerType(payload) {\n return payload;\n}\n//# sourceMappingURL=types.js.map","import { z } from 'zod';\nimport { createDefinitionEntityNameResolver } from '#src/references/index.js';\nimport { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { modelEntityType, modelForeignRelationEntityType, modelScalarFieldEntityType, modelTransformerEntityType, } from '../types.js';\nimport { baseTransformerFields, createModelTransformerType } from './types.js';\nexport const createEmbeddedRelationTransformerSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => ctx.refContext({ embeddedModelSlot: modelEntityType }, ({ embeddedModelSlot }) => ctx.withEnt(z.object({\n ...baseTransformerFields,\n foreignRelationRef: ctx.withRef({\n type: modelForeignRelationEntityType,\n onDelete: 'DELETE_PARENT',\n parentSlot: modelSlot,\n }),\n type: z.literal('embeddedRelation'),\n embeddedFieldNames: z.array(ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: embeddedModelSlot,\n })),\n embeddedTransformerNames: z\n .array(ctx.withRef({\n type: modelTransformerEntityType,\n onDelete: 'RESTRICT',\n parentSlot: embeddedModelSlot,\n }))\n .optional(),\n modelRef: ctx.withRef({\n type: modelEntityType,\n onDelete: 'RESTRICT',\n provides: embeddedModelSlot,\n }),\n}), {\n type: modelTransformerEntityType,\n parentSlot: modelSlot,\n getNameResolver: (entity) => createDefinitionEntityNameResolver({\n idsToResolve: { foreignRelation: entity.foreignRelationRef },\n resolveName: (entityNames) => entityNames.foreignRelation,\n }),\n})));\nexport const BUILT_IN_TRANSFORMERS = [\n createModelTransformerType({\n name: 'embeddedRelation',\n createSchema: createEmbeddedRelationTransformerSchema,\n getName: (definitionContainer, definition) => definitionContainer.nameFromId(definition.foreignRelationRef),\n }),\n];\n//# sourceMappingURL=built-in-transformers.js.map","import { createPluginSpec } from '#src/plugins/spec/types.js';\nimport { BUILT_IN_TRANSFORMERS } from './built-in-transformers.js';\nexport function createModelTransformerImplementation() {\n const transformers = {};\n for (const transformer of BUILT_IN_TRANSFORMERS) {\n transformers[transformer.name] =\n transformer;\n }\n return {\n registerModelTransformer(transformer) {\n if (transformer.name in transformers) {\n throw new Error(`Model transformer with name ${transformer.name} is already registered`);\n }\n transformers[transformer.name] =\n transformer;\n },\n getModelTransformers() {\n return transformers;\n },\n getModelTransformer(name) {\n if (!(name in transformers)) {\n throw new Error(`Unable to find transformer with name ${name}`);\n }\n return transformers[name];\n },\n };\n}\n/**\n * Spec for adding config component for plugin\n */\nexport const modelTransformerSpec = createPluginSpec('core/model-transformer', {\n defaultInitializer: createModelTransformerImplementation,\n});\n//# sourceMappingURL=model-transformer-spec.js.map","import z from 'zod';\nimport { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { modelEntityType } from '../types.js';\nimport { modelTransformerSpec } from './model-transformer-spec.js';\nexport const createTransformerSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, slots) => {\n const transformers = ctx.plugins\n .getPluginSpec(modelTransformerSpec)\n .getModelTransformers();\n return z.discriminatedUnion('type', Object.values(transformers).map((transformer) => transformer.createSchema(ctx, slots)));\n});\n//# sourceMappingURL=transformers.js.map","import { z } from 'zod';\nimport { definitionSchema, definitionSchemaWithSlots, } from '#src/schema/creator/schema-creator.js';\nimport { featureEntityType } from '../features/index.js';\nimport { modelEnumEntityType, modelEnumValueEntityType } from './types.js';\nexport const createEnumValueSchema = definitionSchemaWithSlots({ enumSlot: modelEnumEntityType }, (ctx, { enumSlot }) => ctx.withEnt(z.object({\n id: z.string(),\n name: z.string().min(1),\n friendlyName: z.string().min(1),\n}), {\n type: modelEnumValueEntityType,\n parentSlot: enumSlot,\n}));\nexport const createEnumBaseSchema = definitionSchemaWithSlots({ enumSlot: modelEnumEntityType }, (ctx, { enumSlot }) => z.object({\n id: z.string(),\n name: z.string().min(1),\n featureRef: ctx.withRef({\n type: featureEntityType,\n onDelete: 'RESTRICT',\n }),\n values: z.array(createEnumValueSchema(ctx, { enumSlot })),\n isExposed: z.boolean(),\n}));\nexport const createEnumSchema = definitionSchema((ctx) => ctx.refContext({ enumSlot: modelEnumEntityType }, ({ enumSlot }) => ctx.withEnt(createEnumBaseSchema(ctx, { enumSlot }), {\n type: modelEnumEntityType,\n provides: enumSlot,\n})));\n//# sourceMappingURL=enums.js.map","import { z } from 'zod';\nimport { createDefinitionEntityNameResolver } from '#src/references/index.js';\nimport { definitionSchema, definitionSchemaWithSlots, } from '#src/schema/creator/schema-creator.js';\nimport { SCALAR_FIELD_TYPES } from '#src/types/field-types.js';\nimport { featureEntityType } from '../features/index.js';\nimport { VALIDATORS } from '../utils/validation.js';\nimport { createModelGraphqlSchema } from './graphql.js';\nimport { createTransformerSchema } from './transformers/transformers.js';\nimport { modelEntityType, modelEnumEntityType, modelEnumValueEntityType, modelForeignRelationEntityType, modelLocalRelationEntityType, modelScalarFieldEntityType, modelTransformerEntityType, modelUniqueConstraintEntityType, } from './types.js';\nexport * from './enums.js';\nexport * from './graphql.js';\nexport * from './transformers/index.js';\nexport * from './types.js';\nexport const createModelScalarFieldSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => ctx\n .withEnt(z.object({\n id: z.string(),\n name: VALIDATORS.CAMEL_CASE_STRING,\n type: z.enum(SCALAR_FIELD_TYPES),\n isOptional: z.boolean().default(false),\n options: ctx.refContext({ enumSlot: modelEnumEntityType }, ({ enumSlot }) => z\n .object({\n // string options\n default: z.string().default(''),\n // uuid options\n genUuid: z.boolean().optional(),\n // date options\n updatedAt: z.boolean().optional(),\n defaultToNow: z.boolean().optional(),\n // enum options\n enumRef: ctx\n .withRef({\n type: modelEnumEntityType,\n onDelete: 'RESTRICT',\n provides: enumSlot,\n })\n .optional(),\n defaultEnumValueRef: ctx\n .withRef({\n type: modelEnumValueEntityType,\n onDelete: 'RESTRICT',\n parentSlot: enumSlot,\n })\n .optional(),\n })\n .transform((val) => ({\n ...val,\n ...(val.enumRef ? {} : { defaultEnumValueRef: undefined }),\n }))\n .prefault({})),\n}), {\n type: modelScalarFieldEntityType,\n parentSlot: modelSlot,\n})\n .superRefine((arg, ctx) => {\n // check default values\n const defaultValue = arg.options.default;\n const { type } = arg;\n if (!defaultValue) {\n return;\n }\n if (type === 'boolean' && !['true', 'false'].includes(defaultValue)) {\n ctx.addIssue({\n path: ['options', 'default'],\n code: 'custom',\n message: 'Default value must be true or false',\n });\n }\n})\n .transform((value) => {\n if (value.type !== 'enum' && value.options.enumRef) {\n return {\n ...value,\n options: {\n ...value.options,\n enumRef: undefined,\n },\n };\n }\n return value;\n}));\nexport const REFERENTIAL_ACTIONS = [\n 'Cascade',\n 'Restrict',\n 'NoAction',\n 'SetNull',\n 'SetDefault',\n];\nexport const createModelRelationFieldSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => ctx.refContext({ foreignModelSlot: modelEntityType }, ({ foreignModelSlot }) => ctx.withEnt(ctx.withEnt(z.object({\n id: z.string(),\n foreignId: z\n .string()\n .default(() => modelForeignRelationEntityType.generateNewId()),\n name: VALIDATORS.CAMEL_CASE_STRING,\n references: z.array(z.object({\n localRef: ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n foreignRef: ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: foreignModelSlot,\n }),\n })),\n modelRef: ctx.withRef({\n type: modelEntityType,\n onDelete: 'RESTRICT',\n provides: foreignModelSlot,\n }),\n foreignRelationName: VALIDATORS.CAMEL_CASE_STRING,\n onDelete: z.enum(REFERENTIAL_ACTIONS).default('Cascade'),\n onUpdate: z.enum(REFERENTIAL_ACTIONS).default('Restrict'),\n}), {\n type: modelLocalRelationEntityType,\n parentSlot: modelSlot,\n}), {\n type: modelForeignRelationEntityType,\n idPath: ['foreignId'],\n getNameResolver: (entity) => entity.foreignRelationName,\n parentSlot: foreignModelSlot,\n})));\nexport const createModelUniqueConstraintSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => ctx.withEnt(z.object({\n id: z.string(),\n fields: z.array(z.object({\n fieldRef: ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n })),\n}), {\n type: modelUniqueConstraintEntityType,\n parentSlot: modelSlot,\n getNameResolver(value) {\n return createDefinitionEntityNameResolver({\n idsToResolve: { fields: value.fields.map((f) => f.fieldRef) },\n resolveName: (entityNames) => entityNames.fields.join('_'),\n });\n },\n}));\nexport const createModelServiceSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => z.object({\n create: z\n .object({\n enabled: z.boolean().default(false),\n fields: z\n .array(ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n }))\n .optional(),\n transformerNames: z\n .array(ctx.withRef({\n type: modelTransformerEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n }))\n .optional(),\n })\n .default({ enabled: false }),\n update: z\n .object({\n enabled: z.boolean().default(false),\n fields: z\n .array(ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n }))\n .optional(),\n transformerNames: z\n .array(ctx.withRef({\n type: modelTransformerEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n }))\n .optional(),\n })\n .default({ enabled: false }),\n delete: z\n .object({\n enabled: z.boolean().default(false),\n })\n .default({\n enabled: false,\n }),\n transformers: z\n .array(createTransformerSchema(ctx, { modelSlot }))\n .default([]),\n}));\nexport const createModelBaseSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, slots) => z.object({\n id: z.string(),\n name: VALIDATORS.PASCAL_CASE_STRING,\n featureRef: ctx.withRef({\n type: featureEntityType,\n onDelete: 'RESTRICT',\n }),\n model: z.object({\n fields: z.array(createModelScalarFieldSchema(ctx, slots)),\n relations: z\n .array(createModelRelationFieldSchema(ctx, slots))\n .optional(),\n primaryKeyFieldRefs: z\n .array(ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: slots.modelSlot,\n }))\n .min(1),\n uniqueConstraints: z\n .array(createModelUniqueConstraintSchema(ctx, slots))\n .optional(),\n }),\n service: createModelServiceSchema(ctx, slots).default({\n create: { enabled: false },\n update: { enabled: false },\n delete: { enabled: false },\n transformers: [],\n }),\n graphql: ctx.withDefault(createModelGraphqlSchema(ctx, slots).optional(), {}),\n}));\nexport const createModelSchema = definitionSchema((ctx) => ctx.refContext({ modelSlot: modelEntityType }, ({ modelSlot }) => ctx.withEnt(createModelBaseSchema(ctx, { modelSlot }), {\n type: modelEntityType,\n provides: modelSlot,\n})));\n//# sourceMappingURL=index.js.map","import { createEntityType } from '#src/references/index.js';\nimport { appEntityType } from '../../../types.js';\nexport const adminSectionEntityType = createEntityType('admin-section', {\n parentType: appEntityType,\n});\nexport const adminCrudSectionColumnEntityType = createEntityType('admin-crud-section-column', {\n parentType: adminSectionEntityType,\n});\n//# sourceMappingURL=types.js.map","import { z } from 'zod';\nimport { definitionSchema } from '#src/schema/creator/schema-creator.js';\nimport { featureEntityType } from '#src/schema/features/index.js';\nimport { adminSectionEntityType } from './types.js';\nexport const createBaseAdminSectionValidators = definitionSchema((ctx) => z.object({\n id: z.string().default(adminSectionEntityType.generateNewId()),\n name: z.string().min(1),\n featureRef: ctx.withRef({\n type: featureEntityType,\n onDelete: 'RESTRICT',\n }),\n icon: z.string().optional(),\n type: z.string().min(1),\n}));\n//# sourceMappingURL=base.js.map","import { z } from 'zod';\nimport { createEntityType } from '#src/references/types.js';\nimport { adminSectionEntityType } from '../types.js';\nexport const baseAdminCrudActionSchema = z.looseObject({\n id: z\n .string()\n .min(1)\n .default(() => adminCrudActionEntityType.generateNewId()),\n type: z.string().min(1),\n position: z.enum(['inline', 'dropdown']).default('dropdown'),\n});\nexport function createAdminCrudActionType(payload) {\n return payload;\n}\nexport const adminCrudActionEntityType = createEntityType('admin-crud-action', {\n parentType: adminSectionEntityType,\n});\n//# sourceMappingURL=types.js.map","import { z } from 'zod';\nimport { definitionSchema } from '#src/schema/creator/schema-creator.js';\nimport { baseAdminCrudActionSchema, createAdminCrudActionType, } from './types.js';\nexport const createAdminCrudEditActionSchema = definitionSchema(() => baseAdminCrudActionSchema.extend({\n type: z.literal('edit'),\n}));\nconst adminCrudEditActionType = createAdminCrudActionType({\n name: 'edit',\n createSchema: createAdminCrudEditActionSchema,\n});\nexport const createAdminCrudDeleteActionSchema = definitionSchema(() => baseAdminCrudActionSchema.extend({\n type: z.literal('delete'),\n}));\nconst adminCrudDeleteActionType = createAdminCrudActionType({\n name: 'delete',\n createSchema: createAdminCrudDeleteActionSchema,\n});\nexport const BUILT_IN_ADMIN_CRUD_ACTIONS = [\n adminCrudEditActionType,\n adminCrudDeleteActionType,\n];\n//# sourceMappingURL=built-in-actions.js.map","import { createPluginSpec } from '#src/plugins/spec/types.js';\nimport { BUILT_IN_ADMIN_CRUD_ACTIONS } from './built-in-actions.js';\nexport function createAdminCrudActionImplementation() {\n const adminCrudActions = new Map(BUILT_IN_ADMIN_CRUD_ACTIONS.map((action) => [action.name, action]));\n return {\n registerAdminCrudAction(action) {\n if (adminCrudActions.has(action.name)) {\n throw new Error(`Admin CRUD action with name ${action.name} is already registered`);\n }\n adminCrudActions.set(action.name, action);\n },\n getAdminCrudActions() {\n return adminCrudActions;\n },\n getAdminCrudAction(name) {\n const action = adminCrudActions.get(name);\n if (!action) {\n throw new Error(`Unable to find action with name ${name}`);\n }\n return action;\n },\n };\n}\n/**\n * Spec for adding admin CRUD actions\n */\nexport const adminCrudActionSpec = createPluginSpec('core/admin-crud-action', {\n defaultInitializer: createAdminCrudActionImplementation,\n});\n//# sourceMappingURL=admin-action-spec.js.map","import { definitionSchema } from '#src/schema/creator/schema-creator.js';\nimport { adminCrudActionSpec } from './admin-action-spec.js';\nimport { baseAdminCrudActionSchema } from './types.js';\nexport const createAdminCrudActionSchema = definitionSchema((ctx) => {\n const adminCrudActions = ctx.plugins\n .getPluginSpec(adminCrudActionSpec)\n .getAdminCrudActions();\n return baseAdminCrudActionSchema.transform((data) => {\n const actionDef = adminCrudActions.get(data.type);\n if (!actionDef)\n return data;\n return actionDef.createSchema(ctx).parse(data);\n });\n});\n//# sourceMappingURL=admin-crud-action.js.map","import { z } from 'zod';\nimport { createEntityType } from '#src/references/types.js';\nimport { adminSectionEntityType } from '../types.js';\nexport const baseAdminCrudColumnSchema = z.looseObject({\n id: z\n .string()\n .min(1)\n .default(() => adminCrudColumnEntityType.generateNewId()),\n type: z.string().min(1),\n label: z.string().min(1),\n});\nexport function createAdminCrudColumnType(payload) {\n return payload;\n}\nexport const adminCrudColumnEntityType = createEntityType('admin-crud-column', {\n parentType: adminSectionEntityType,\n});\n//# sourceMappingURL=types.js.map","import { z } from 'zod';\nimport { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { modelEntityType, modelLocalRelationEntityType, modelScalarFieldEntityType, } from '#src/schema/models/index.js';\nimport { baseAdminCrudColumnSchema, createAdminCrudColumnType, } from './types.js';\n// Text Column\nexport const createAdminCrudTextColumnSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => baseAdminCrudColumnSchema.extend({\n type: z.literal('text'),\n modelFieldRef: ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n}));\nconst adminCrudTextColumnType = createAdminCrudColumnType({\n name: 'text',\n createSchema: createAdminCrudTextColumnSchema,\n});\n// Foreign Column\nexport const createAdminCrudForeignColumnSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => baseAdminCrudColumnSchema.extend({\n type: z.literal('foreign'),\n localRelationRef: ctx.withRef({\n type: modelLocalRelationEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n labelExpression: z.string().min(1),\n valueExpression: z.string().min(1),\n}));\nconst adminCrudForeignColumnType = createAdminCrudColumnType({\n name: 'foreign',\n createSchema: createAdminCrudForeignColumnSchema,\n});\nexport const BUILT_IN_ADMIN_CRUD_COLUMNS = [\n adminCrudTextColumnType,\n adminCrudForeignColumnType,\n];\n//# sourceMappingURL=built-in-columns.js.map","import { createPluginSpec } from '#src/plugins/spec/types.js';\nimport { BUILT_IN_ADMIN_CRUD_COLUMNS } from './built-in-columns.js';\nexport function createAdminCrudColumnImplementation() {\n const adminCrudColumns = new Map(BUILT_IN_ADMIN_CRUD_COLUMNS.map((column) => [column.name, column]));\n return {\n registerAdminCrudColumn(column) {\n if (adminCrudColumns.has(column.name)) {\n throw new Error(`Admin CRUD column with name ${column.name} is already registered`);\n }\n adminCrudColumns.set(column.name, column);\n },\n getAdminCrudColumns() {\n return adminCrudColumns;\n },\n getAdminCrudColumn(name) {\n const column = adminCrudColumns.get(name);\n if (!column) {\n throw new Error(`Unable to find column with name ${name}`);\n }\n return column;\n },\n };\n}\n/**\n * Spec for adding admin CRUD columns\n */\nexport const adminCrudColumnSpec = createPluginSpec('core/admin-crud-column', {\n defaultInitializer: createAdminCrudColumnImplementation,\n});\n//# sourceMappingURL=admin-column-spec.js.map","import { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { modelEntityType } from '#src/schema/models/index.js';\nimport { adminCrudColumnSpec } from './admin-column-spec.js';\nimport { baseAdminCrudColumnSchema } from './types.js';\nexport const createAdminCrudColumnSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, slots) => {\n const adminCrudColumns = ctx.plugins\n .getPluginSpec(adminCrudColumnSpec)\n .getAdminCrudColumns();\n return baseAdminCrudColumnSchema.transform((data) => {\n const columnDef = adminCrudColumns.get(data.type);\n if (!columnDef)\n return data;\n return columnDef.createSchema(ctx, slots).parse(data);\n });\n});\n//# sourceMappingURL=admin-crud-column.js.map","import { z } from 'zod';\nimport { createEntityType } from '#src/references/types.js';\nimport { adminSectionEntityType } from '../types.js';\nexport const baseAdminCrudInputSchema = z.looseObject({\n id: z\n .string()\n .min(1)\n .default(() => adminCrudInputEntityType.generateNewId()),\n type: z.string().min(1),\n label: z.string().min(1),\n});\nexport function createAdminCrudInputType(payload) {\n return payload;\n}\nexport const adminCrudEmbeddedFormEntityType = createEntityType('admin-crud-embedded-form', {\n parentType: adminSectionEntityType,\n});\nexport const adminCrudInputEntityType = createEntityType('admin-crud-input', {\n parentType: adminSectionEntityType,\n});\n//# sourceMappingURL=types.js.map","import { z } from 'zod';\nimport { definitionSchema, definitionSchemaWithSlots, } from '#src/schema/creator/schema-creator.js';\nimport { modelEntityType, modelForeignRelationEntityType, modelLocalRelationEntityType, modelScalarFieldEntityType, } from '#src/schema/models/index.js';\nimport { adminSectionEntityType } from '../types.js';\nimport { adminCrudEmbeddedFormEntityType, baseAdminCrudInputSchema, createAdminCrudInputType, } from './types.js';\nexport const createAdminCrudTextInputSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType, adminSectionSlot: adminSectionEntityType }, (ctx, { modelSlot }) => baseAdminCrudInputSchema.extend({\n type: z.literal('text'),\n label: z.string().min(1),\n modelFieldRef: ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n validation: z.string().optional(),\n}));\nconst adminCrudTextInputType = createAdminCrudInputType({\n name: 'text',\n createSchema: createAdminCrudTextInputSchema,\n});\nexport const createAdminCrudForeignInputSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType, adminSectionSlot: adminSectionEntityType }, (ctx, { modelSlot }) => baseAdminCrudInputSchema.extend({\n type: z.literal('foreign'),\n label: z.string().min(1),\n localRelationRef: ctx.withRef({\n type: modelLocalRelationEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n labelExpression: z.string().min(1),\n valueExpression: z.string().min(1),\n defaultLabel: z.string().optional(),\n nullLabel: z.string().optional(),\n}));\nconst adminCrudForeignInputType = createAdminCrudInputType({\n name: 'foreign',\n createSchema: createAdminCrudForeignInputSchema,\n});\nexport const createAdminCrudEnumInputSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType, adminSectionSlot: adminSectionEntityType }, (ctx, { modelSlot }) => baseAdminCrudInputSchema.extend({\n type: z.literal('enum'),\n label: z.string().min(1),\n modelFieldRef: ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n}));\nconst adminCrudEnumInputType = createAdminCrudInputType({\n name: 'enum',\n createSchema: createAdminCrudEnumInputSchema,\n});\nexport const createAdminCrudEmbeddedInputSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType, adminSectionSlot: adminSectionEntityType }, (ctx, { modelSlot, adminSectionSlot }) => baseAdminCrudInputSchema.extend({\n type: z.literal('embedded'),\n label: z.string().min(1),\n modelRelationRef: ctx.withRef({\n type: modelForeignRelationEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n embeddedFormRef: ctx.withRef({\n type: adminCrudEmbeddedFormEntityType,\n parentSlot: adminSectionSlot,\n onDelete: 'RESTRICT',\n }),\n}));\nexport const adminCrudEmbeddedInputType = createAdminCrudInputType({\n name: 'embedded',\n createSchema: createAdminCrudEmbeddedInputSchema,\n});\nexport const createAdminCrudEmbeddedLocalInputSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType, adminSectionSlot: adminSectionEntityType }, (ctx, { modelSlot, adminSectionSlot }) => baseAdminCrudInputSchema.extend({\n type: z.literal('embeddedLocal'),\n label: z.string().min(1),\n localRelationRef: ctx.withRef({\n type: modelLocalRelationEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n embeddedFormRef: ctx.withRef({\n type: adminCrudEmbeddedFormEntityType,\n parentSlot: adminSectionSlot,\n onDelete: 'RESTRICT',\n }),\n}));\nexport const adminCrudEmbeddedLocalInputType = createAdminCrudInputType({\n name: 'embeddedLocal',\n createSchema: createAdminCrudEmbeddedLocalInputSchema,\n});\nexport const createAdminCrudPasswordInputSchema = definitionSchema(() => baseAdminCrudInputSchema.extend({\n type: z.literal('password'),\n label: z.string().min(1),\n}));\nconst adminCrudPasswordInputType = createAdminCrudInputType({\n name: 'password',\n createSchema: createAdminCrudPasswordInputSchema,\n});\nexport const BUILT_IN_ADMIN_CRUD_INPUTS = [\n adminCrudTextInputType,\n adminCrudForeignInputType,\n adminCrudEnumInputType,\n adminCrudEmbeddedInputType,\n adminCrudEmbeddedLocalInputType,\n adminCrudPasswordInputType,\n];\n//# sourceMappingURL=built-in-input.js.map","import { createPluginSpec } from '#src/plugins/spec/types.js';\nimport { BUILT_IN_ADMIN_CRUD_INPUTS } from './built-in-input.js';\nexport function createAdminCrudInputImplementation() {\n const adminCrudInputs = new Map(BUILT_IN_ADMIN_CRUD_INPUTS.map((input) => [input.name, input]));\n return {\n registerAdminCrudInput(input) {\n if (adminCrudInputs.has(input.name)) {\n throw new Error(`Admin CRUD input with name ${input.name} is already registered`);\n }\n adminCrudInputs.set(input.name, input);\n },\n getAdminCrudInputs() {\n return adminCrudInputs;\n },\n getAdminCrudInput(name) {\n const input = adminCrudInputs.get(name);\n if (!input) {\n throw new Error(`Unable to find input with name ${name}`);\n }\n return input;\n },\n };\n}\n/**\n * Spec for adding admin crud input\n */\nexport const adminCrudInputSpec = createPluginSpec('core/admin-crud-input', {\n defaultInitializer: createAdminCrudInputImplementation,\n});\n//# sourceMappingURL=admin-input-spec.js.map","import { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { modelEntityType } from '#src/schema/models/index.js';\nimport { adminSectionEntityType } from '../types.js';\nimport { adminCrudInputSpec } from './admin-input-spec.js';\nimport { baseAdminCrudInputSchema } from './types.js';\nexport const createAdminCrudInputSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType, adminSectionSlot: adminSectionEntityType }, (ctx, slots) => {\n const adminCrudInputs = ctx.plugins\n .getPluginSpec(adminCrudInputSpec)\n .getAdminCrudInputs();\n return baseAdminCrudInputSchema.transform((data) => {\n const inputDef = adminCrudInputs.get(data.type);\n if (!inputDef)\n return data;\n return inputDef.createSchema(ctx, slots).parse(data);\n });\n});\n//# sourceMappingURL=admin-crud-input.js.map","import { z } from 'zod';\nimport { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { modelEntityType, modelScalarFieldEntityType, } from '#src/schema/models/index.js';\nimport { createBaseAdminSectionValidators } from './base.js';\nimport { createAdminCrudActionSchema } from './crud-actions/admin-crud-action.js';\nimport { createAdminCrudColumnSchema } from './crud-columns/admin-crud-column.js';\nimport { createAdminCrudInputSchema } from './crud-form/admin-crud-input.js';\nimport { adminCrudEmbeddedFormEntityType } from './crud-form/types.js';\nimport { adminSectionEntityType } from './types.js';\n// Embedded Crud\nconst createAdminCrudEmbeddedObjectSchemaInternal = definitionSchemaWithSlots({ modelSlot: modelEntityType, adminSectionSlot: adminSectionEntityType }, (ctx, { modelSlot, adminSectionSlot }) => z.object({\n id: z.string().min(1),\n name: z.string().min(1),\n modelRef: ctx.withRef({\n type: modelEntityType,\n onDelete: 'RESTRICT',\n provides: modelSlot,\n }),\n includeIdField: z.boolean().optional(),\n type: z.literal('object'),\n form: z.object({\n fields: z.array(createAdminCrudInputSchema(ctx, { modelSlot, adminSectionSlot })),\n }),\n}));\nconst createAdminCrudEmbeddedListSchemaInternal = definitionSchemaWithSlots({ modelSlot: modelEntityType, adminSectionSlot: adminSectionEntityType }, (ctx, { modelSlot, adminSectionSlot }) => z.object({\n id: z.string().min(1),\n name: z.string().min(1),\n modelRef: ctx.withRef({\n type: modelEntityType,\n onDelete: 'RESTRICT',\n provides: modelSlot,\n }),\n includeIdField: z.boolean().optional(),\n type: z.literal('list'),\n table: z.object({\n columns: z.array(createAdminCrudColumnSchema(ctx, { modelSlot })),\n }),\n form: z.object({\n fields: z.array(createAdminCrudInputSchema(ctx, { modelSlot, adminSectionSlot })),\n }),\n}));\nexport const createAdminCrudEmbeddedFormSchema = definitionSchemaWithSlots({ adminSectionSlot: adminSectionEntityType }, (ctx, { adminSectionSlot }) => ctx.refContext({ modelSlot: modelEntityType }, ({ modelSlot }) => ctx.withEnt(z.discriminatedUnion('type', [\n createAdminCrudEmbeddedObjectSchemaInternal(ctx, {\n modelSlot,\n adminSectionSlot,\n }),\n createAdminCrudEmbeddedListSchemaInternal(ctx, {\n modelSlot,\n adminSectionSlot,\n }),\n]), {\n type: adminCrudEmbeddedFormEntityType,\n parentSlot: adminSectionSlot,\n})));\n// Admin Section\nexport const createAdminCrudSectionSchema = definitionSchemaWithSlots({ adminSectionSlot: adminSectionEntityType }, (ctx, { adminSectionSlot }) => ctx.refContext({ modelSlot: modelEntityType }, ({ modelSlot }) => createBaseAdminSectionValidators(ctx).and(z.object({\n type: z.literal('crud'),\n modelRef: ctx.withRef({\n type: modelEntityType,\n onDelete: 'RESTRICT',\n provides: modelSlot,\n }),\n /* The field that will be used to display the name of the entity in the form */\n nameFieldRef: ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n disableCreate: ctx.withDefault(z.boolean(), false),\n table: z.object({\n columns: z.array(createAdminCrudColumnSchema(ctx, { modelSlot })),\n actions: ctx.withDefault(z.array(createAdminCrudActionSchema(ctx)), [\n { type: 'edit', position: 'inline' },\n { type: 'delete', position: 'dropdown' },\n ]),\n }),\n form: z.object({\n fields: z.array(createAdminCrudInputSchema(ctx, {\n modelSlot,\n adminSectionSlot,\n })),\n }),\n embeddedForms: z\n .array(createAdminCrudEmbeddedFormSchema(ctx, { adminSectionSlot }))\n .optional(),\n}))));\n//# sourceMappingURL=crud.js.map","import { z } from 'zod';\nimport { appEntityType } from '#src/schema/apps/types.js';\nimport { authRoleEntityType } from '#src/schema/auth/index.js';\nimport { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { createAdminCrudSectionSchema } from './sections/crud.js';\nimport { adminSectionEntityType } from './sections/types.js';\nexport const createWebAdminSectionSchema = definitionSchemaWithSlots({ appSlot: appEntityType }, (ctx, { appSlot }) => ctx.refContext({ adminSectionSlot: adminSectionEntityType }, ({ adminSectionSlot }) => ctx.withEnt(createAdminCrudSectionSchema(ctx, { adminSectionSlot }), {\n type: adminSectionEntityType,\n parentSlot: appSlot,\n provides: adminSectionSlot,\n})));\nexport const createAdminAppSchema = definitionSchemaWithSlots({ appSlot: appEntityType }, (ctx, { appSlot }) => ctx.withDefault(z.object({\n enabled: z.boolean(),\n pathPrefix: z.string().default('/admin'),\n allowedRoles: ctx.withDefault(z.array(ctx.withRef({\n type: authRoleEntityType,\n onDelete: 'DELETE',\n })), []),\n sections: ctx.withDefault(z.array(createWebAdminSectionSchema(ctx, { appSlot })), []),\n}), { enabled: false, pathPrefix: '/admin' }));\n//# sourceMappingURL=admin.js.map","import { z } from 'zod';\nimport { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { baseAppValidators } from '../base.js';\nimport { appEntityType, createAppEntryType } from '../types.js';\nimport { createAdminAppSchema } from './admin/admin.js';\nexport const createWebAppSchema = definitionSchemaWithSlots({ appSlot: appEntityType }, (ctx, { appSlot }) => z.object({\n ...baseAppValidators,\n type: z.literal('web'),\n includeAuth: ctx.withDefault(z.boolean(), false),\n title: z.string().default(''),\n description: z.string().default(''),\n includeUploadComponents: ctx.withDefault(z.boolean(), false),\n enableSubscriptions: ctx.withDefault(z.boolean(), false),\n adminApp: createAdminAppSchema(ctx, { appSlot }),\n}));\nexport const webAppEntryType = createAppEntryType('web');\n//# sourceMappingURL=web-app.js.map","import { z } from 'zod';\nimport { pluginConfigSpec } from '#src/plugins/index.js';\nimport { definitionSchema } from '#src/schema/creator/schema-creator.js';\nimport { pluginEntityType } from './entity-types.js';\nexport const basePluginDefinitionSchema = z.object({\n id: z.string(),\n packageName: z.string(),\n name: z.string(),\n version: z.string(),\n config: z.unknown(),\n configSchemaVersion: z.number().optional(),\n});\nexport const createPluginWithConfigSchema = definitionSchema((ctx) => ctx\n .withEnt(basePluginDefinitionSchema, {\n type: pluginEntityType,\n})\n .transform((data) => {\n const pluginKey = pluginEntityType.keyFromId(data.id);\n const createConfigSchema = ctx.plugins\n .getPluginSpec(pluginConfigSpec)\n .getSchemaCreator(pluginKey);\n if (!createConfigSchema)\n return data;\n return {\n ...data,\n config: createConfigSchema(ctx).parse(data.config),\n };\n}));\nexport const createPluginsSchema = definitionSchema((ctx) => z.array(createPluginWithConfigSchema(ctx)));\n//# sourceMappingURL=definition.js.map","import { CASE_VALIDATORS } from '@baseplate-dev/utils';\nimport { z } from 'zod';\n/**\n * General project settings schema\n *\n * Includes basic project configuration like name, package scope, and port offset.\n */\nexport const generalSettingsSchema = z.object({\n /**\n * The name of the project.\n *\n * Must be in kebab-case format (lowercase letters and dashes only).\n * Example: \"my-awesome-project\"\n */\n name: CASE_VALIDATORS.KEBAB_CASE,\n /**\n * The package scope of the project if any.\n *\n * Used for scoped npm packages, e.g. \"my-org\" results in \"@my-org/package-name\".\n * Must be in kebab-case format or empty string.\n * Example: \"my-org\" → \"@my-org/backend\", \"@my-org/web\"\n */\n packageScope: z\n .union([z.literal(''), CASE_VALIDATORS.KEBAB_CASE])\n .default(''),\n /**\n * The port offset to base the app ports on for development.\n *\n * Must be a multiple of 1000 between 1000 and 60000.\n * Each app will use offset + specific port number (e.g. offset 8000 → DB at 8432, API at 8001).\n * This allows running multiple Baseplate projects without port conflicts.\n *\n * Example: 3000 → backend API at 3001, database at 3432, Redis at 3379\n */\n portOffset: z\n .number()\n .min(1000)\n .max(60_000)\n .int()\n .refine((portOffset) => portOffset % 1000 === 0, 'Port offset must be a multiple of 1000, e.g. 1000, 2000, 3000, etc.'),\n});\n//# sourceMappingURL=general.js.map","import { z } from 'zod';\n/**\n * Infrastructure settings schema\n *\n * Configures optional infrastructure services for the project.\n * These services are shared across all backend applications in the monorepo.\n *\n * Note: PostgreSQL is always enabled for backend apps and doesn't require configuration.\n * Port is calculated as portOffset + 432 (e.g., 3000 → 3432).\n * Password defaults to \"{projectName}-password\" and database defaults to project name.\n */\nexport const infrastructureSettingsSchema = z.object({\n /**\n * Redis configuration (optional)\n *\n * Redis can be used for caching, sessions, and queue management.\n * Port is calculated as portOffset + 379 (e.g., 3000 → 3379).\n * Password defaults to \"{projectName}-password\".\n */\n redis: z\n .object({\n /**\n * Whether to enable Redis service\n */\n enabled: z.boolean().default(false),\n })\n .optional(),\n});\n//# sourceMappingURL=infrastructure.js.map","import { CASE_VALIDATORS } from '@baseplate-dev/utils';\nimport { z } from 'zod';\n/**\n * Monorepo settings schema\n *\n * Configures the folder structure for monorepo packages.\n * In V1, only supports configuring the apps folder location.\n */\nexport const monorepoSettingsSchema = z.object({\n /**\n * The folder where apps are located in the monorepo.\n *\n * Must be in kebab-case format (lowercase letters and dashes only).\n * Apps will be placed in {appsFolder}/{app-name}, e.g. \"apps/backend\", \"apps/web\".\n *\n * @default \"apps\"\n * @example \"apps\" → apps/backend, apps/web\n * @example \"applications\" → applications/backend, applications/web\n */\n appsFolder: CASE_VALIDATORS.KEBAB_CASE.min(1)\n .max(50)\n .regex(/^[a-z0-9-]+$/, {\n message: 'Apps folder must contain only lowercase letters, numbers, and dashes (no slashes)',\n })\n .default('apps'),\n});\n//# sourceMappingURL=monorepo.js.map","import { z } from 'zod';\nimport { definitionSchema } from '#src/schema/creator/schema-creator.js';\n/**\n * Template extractor configuration schema\n *\n * Controls how template extraction works when syncing projects.\n * Template extraction allows updating generator templates from working code.\n */\nexport const createTemplateExtractorSchema = definitionSchema(() => z.object({\n /**\n * Whether to write template extractor metadata when writing files to the project.\n *\n * When enabled, Baseplate will write `.templates-info.json` files that track\n * which generated files correspond to which templates. This metadata enables\n * the template extraction process to update the generator's templates from\n * your working code.\n *\n * Useful for: Generator development, template refinement, extracting patterns\n * Default: false\n */\n writeMetadata: z.boolean().default(false),\n /**\n * A list of file IDs to include in the template extractor metadata.\n *\n * Used for generators that have manually assigned file IDs, particularly\n * generators with multiple instances (e.g. one generator per model).\n *\n * Format: Newline-delimited list of patterns\n * Supports wildcards: Use * to match any number of characters\n *\n * Example:\n * ```\n * user-*\n * post-*\n * comment-service-*\n * ```\n *\n * Default: empty string (no file ID whitelist)\n */\n fileIdRegexWhitelist: z.string().default(''),\n}));\n//# sourceMappingURL=template-extractor.js.map","import { z } from 'zod';\nimport { PALETTE_SHADES } from '#src/constants/colors.js';\nimport { THEME_COLOR_KEYS } from '#src/constants/theme-colors.js';\nimport { definitionSchema } from '#src/schema/creator/schema-creator.js';\n/**\n * OKLCH color format validator\n *\n * OKLCH is a perceptually uniform color space that provides better color manipulation than RGB/HEX.\n * Format: oklch(l c h [/ a]) where:\n * - l (lightness): 0-1\n * - c (chroma): 0-1\n * - h (hue): 0-360\n * - a (alpha, optional): 0-100\n *\n * Example: \"oklch(0.5 0.2 180)\" or \"oklch(0.5 0.2 180 / 50)\"\n */\nexport const oklchColor = z\n .string()\n .regex(/^oklch\\(\\s*([\\d.]+)\\s+([\\d.]+)\\s+([\\d.]+)(?:\\s*\\/\\s*([\\d.]+))?\\s*\\)$/, {\n message: 'OKLCH color must be of the format \"oklch(l c h [/ a])\" where l and c are between 0 and 1 and h is between 0 and 360 and a is between 0 and 100',\n});\n/**\n * Theme color configuration\n *\n * Maps semantic color keys (e.g. \"background\", \"foreground\", \"primary\") to OKLCH color values.\n */\nexport const themeColorSchema = z.record(z.enum(THEME_COLOR_KEYS), oklchColor.optional());\n/**\n * Palette configuration schema\n *\n * Defines a color palette with a base color and generated shades.\n * Palettes can use predefined bases (zinc, slate, etc.) or a custom base color.\n */\nexport const paletteSchema = z\n .object({\n /**\n * Name of the palette base (e.g. \"zinc\", \"slate\") or \"custom\" for custom base color\n */\n paletteName: z.string().min(1),\n /**\n * Custom base color in OKLCH format.\n * Required when paletteName is \"custom\", ignored otherwise.\n */\n customBase: oklchColor.nullish(),\n /**\n * Generated color shades (50, 100, 200, ..., 950)\n * Automatically computed from the base color\n */\n shades: z.record(z.enum(PALETTE_SHADES), oklchColor),\n})\n .refine((data) => data.paletteName !== 'custom' || !!data.customBase, {\n message: 'A custom base color is required if using a custom base palette',\n path: ['customBase'],\n});\n/**\n * Palettes configuration schema\n *\n * Defines base (neutral colors) and primary (brand colors) palettes\n */\nexport const palettesSchema = z.object({\n /**\n * Base palette used for neutral colors (backgrounds, borders, text)\n */\n base: paletteSchema,\n /**\n * Primary palette used for brand colors (buttons, links, highlights)\n */\n primary: paletteSchema,\n});\n/**\n * Theme configuration schema\n *\n * Defines the complete theme including palettes and semantic color mappings for light and dark modes.\n */\nexport const createThemeSchema = definitionSchema(() => z.object({\n /**\n * Color palettes for base and primary colors\n */\n palettes: z.object({\n base: paletteSchema,\n primary: paletteSchema,\n }),\n /**\n * Semantic color mappings for light and dark modes\n */\n colors: z.object({\n /**\n * Light mode color mappings\n */\n light: themeColorSchema,\n /**\n * Dark mode color mappings\n */\n dark: themeColorSchema,\n }),\n}));\n//# sourceMappingURL=theme.js.map","import { z } from 'zod';\nimport { definitionSchema } from '#src/schema/creator/schema-creator.js';\nimport { generalSettingsSchema } from './general.js';\nimport { infrastructureSettingsSchema } from './infrastructure.js';\nimport { monorepoSettingsSchema } from './monorepo.js';\nimport { createTemplateExtractorSchema } from './template-extractor.js';\nimport { createThemeSchema } from './theme.js';\n/**\n * Complete project settings schema\n *\n * Combines all settings categories:\n * - general: Project name, scope, and port configuration\n * - infrastructure: Infrastructure services (Postgres, Redis)\n * - monorepo: Monorepo folder configuration (optional)\n * - templateExtractor: Template extraction configuration (optional)\n * - theme: UI theme and color palette configuration (optional)\n */\nexport const createSettingsSchema = definitionSchema((ctx) => z.object({\n /**\n * General project settings (required)\n */\n general: generalSettingsSchema,\n /**\n * Infrastructure settings (optional)\n *\n * Configures infrastructure services like Postgres and Redis.\n * When omitted, uses default configuration (Postgres enabled, Redis disabled).\n */\n infrastructure: infrastructureSettingsSchema.optional(),\n /**\n * Monorepo configuration (optional)\n *\n * Configures the folder structure for monorepo packages.\n * When omitted, uses default folder structure (apps/*).\n */\n monorepo: monorepoSettingsSchema.optional(),\n /**\n * Template extractor configuration (optional)\n *\n * Controls how template extraction works when syncing projects.\n * Only needed when developing generators or extracting templates.\n */\n templateExtractor: createTemplateExtractorSchema(ctx).optional(),\n /**\n * Theme configuration (optional)\n *\n * Defines color palettes and semantic color mappings for the UI.\n * When omitted, uses default theme configuration.\n */\n theme: createThemeSchema(ctx).optional(),\n}));\n//# sourceMappingURL=settings.js.map","import { z } from 'zod';\nimport { createBackendAppSchema } from './apps/backend/index.js';\nimport { createWebAppSchema } from './apps/index.js';\nimport { appEntityType } from './apps/types.js';\nimport { definitionSchema } from './creator/schema-creator.js';\nimport { createFeaturesSchema } from './features/index.js';\nimport { createEnumSchema } from './models/enums.js';\nimport { createModelSchema } from './models/index.js';\nimport { createPluginsSchema } from './plugins/index.js';\nimport { createSettingsSchema } from './settings/index.js';\nexport const createAppSchema = definitionSchema((ctx) => ctx.refContext({ appSlot: appEntityType }, ({ appSlot }) => ctx.withEnt(z.discriminatedUnion('type', [\n createBackendAppSchema(ctx, { appSlot }),\n createWebAppSchema(ctx, { appSlot }),\n]), {\n type: appEntityType,\n provides: appSlot,\n})));\nexport const createProjectDefinitionSchema = definitionSchema((ctx) => z.object({\n cliVersion: z.string().nullish(),\n apps: z.array(createAppSchema(ctx)).default([]),\n features: createFeaturesSchema(ctx),\n models: z.array(createModelSchema(ctx)).default([]),\n enums: z.array(createEnumSchema(ctx)).optional(),\n isInitialized: z.boolean().default(false),\n schemaVersion: z.number(),\n plugins: createPluginsSchema(ctx).optional(),\n settings: createSettingsSchema(ctx),\n}));\n//# sourceMappingURL=project-definition.js.map","function byId(projectDefinition, id) {\n return projectDefinition.enums?.find((e) => e.id === id);\n}\nfunction byIdOrThrow(projectDefinition, id) {\n const enumConfig = byId(projectDefinition, id);\n if (!enumConfig) {\n throw new Error(`Could not find enum with ID ${id}`);\n }\n return enumConfig;\n}\nexport const EnumUtils = {\n byId,\n byIdOrThrow,\n};\n//# sourceMappingURL=enum-utils.js.map","import { isEqual } from 'es-toolkit';\nimport { ModelUtils } from './model-utils.js';\nfunction isScalarUnique(model, fieldId) {\n const { primaryKeyFieldRefs } = model.model;\n const uniqueConstraints = model.model.uniqueConstraints ?? [];\n return ((primaryKeyFieldRefs.length === 1 &&\n primaryKeyFieldRefs.includes(fieldId)) ||\n uniqueConstraints.some((c) => c.fields.length === 1 && c.fields[0].fieldRef === fieldId));\n}\nfunction areScalarsUnique(model, fieldIds) {\n const sortedFieldIds = [...fieldIds].sort();\n return ((isEqual([...model.model.primaryKeyFieldRefs].sort(), sortedFieldIds) ||\n model.model.uniqueConstraints?.some((c) => isEqual(c.fields.map((f) => f.fieldRef).sort(), sortedFieldIds))) ??\n false);\n}\nfunction getRelationLocalFields(model, relation) {\n return relation.references.map((r) => {\n const field = model.model.fields.find((f) => f.id === r.localRef);\n if (!field) {\n throw new Error(`Could not find field ${r.localRef} from relation ${relation.name} in model ${model.name}`);\n }\n return field;\n });\n}\nfunction isRelationOptional(model, relation) {\n const localFields = getRelationLocalFields(model, relation);\n return localFields.some((f) => f.isOptional);\n}\nfunction isRelationOneToOne(model, relation) {\n const localFields = getRelationLocalFields(model, relation);\n const localFieldIds = localFields.map((f) => f.id).sort();\n // check if the local fields are a primary key or unique constraint\n return areScalarsUnique(model, localFieldIds);\n}\nfunction getModelValidator(modelField) {\n switch (modelField.type) {\n case 'boolean': {\n return 'boolean()';\n }\n case 'date': {\n return 'string()';\n }\n case 'int': {\n return 'int()';\n }\n case 'float': {\n return 'number()';\n }\n case 'dateTime':\n case 'string':\n case 'decimal':\n case 'uuid': {\n return 'string()';\n }\n default: {\n throw new Error(`Unsupported validator for ${modelField.type}`);\n }\n }\n}\nfunction getModelFieldValidation(projectDefinition, modelId, fieldId, preProcess) {\n const model = ModelUtils.byIdOrThrow(projectDefinition, modelId);\n const field = model.model.fields.find((f) => f.id === fieldId);\n if (!field) {\n throw new Error(`Field ${fieldId} not found in model ${model.name}`);\n }\n const nullishSuffix = field.isOptional ? '.nullish()' : '';\n const validator = `z.${getModelValidator(field)}${nullishSuffix}`;\n if (!preProcess) {\n return validator;\n }\n return validator;\n}\nexport const ModelFieldUtils = {\n isScalarUnique,\n areScalarsUnique,\n getRelationLocalFields,\n isRelationOptional,\n isRelationOneToOne,\n getModelFieldValidation,\n};\n//# sourceMappingURL=model-field-utils.js.map","import { modelTransformerSpec } from '#src/schema/index.js';\nfunction getTransformer(transformer, pluginStore) {\n const transformers = pluginStore.getPluginSpec(modelTransformerSpec);\n return transformers.getModelTransformer(transformer.type);\n}\nfunction getTransformName(definitionContainer, transformer, pluginStore) {\n const transformers = pluginStore.getPluginSpec(modelTransformerSpec);\n return transformers\n .getModelTransformer(transformer.type)\n .getName(definitionContainer, transformer);\n}\nexport const ModelTransformerUtils = { getTransformer, getTransformName };\n//# sourceMappingURL=model-transformer-utils.js.map","import { z } from 'zod';\nimport { initializePlugins } from '#src/plugins/imports/loader.js';\nimport { pluginConfigSpec } from '#src/plugins/index.js';\nimport { parseSchemaWithTransformedReferences } from '#src/references/parse-schema-with-references.js';\nimport { adminCrudActionSpec, adminCrudColumnSpec, adminCrudInputSpec, createDefinitionSchemaParserContext, modelTransformerSpec, pluginEntityType, } from '#src/schema/index.js';\nimport { basePluginDefinitionSchema } from '#src/schema/plugins/definition.js';\nimport { createProjectDefinitionSchema } from '#src/schema/project-definition.js';\nconst COMMON_SPEC_IMPLEMENTATIONS = [\n pluginConfigSpec,\n modelTransformerSpec,\n adminCrudInputSpec,\n adminCrudActionSpec,\n adminCrudColumnSpec,\n];\n/**\n * Creates a plugin implementation store from the project definition and plugin store,\n * initializing the set of plugins enabled in the project definition.\n *\n * @param pluginStore The plugin store to use\n * @param projectDefinition The project definition to use\n * @returns The plugin implementation store\n */\nexport function createPluginImplementationStore(pluginStore, projectDefinition) {\n const { availablePlugins, builtinSpecImplementations = [] } = pluginStore;\n const pluginData = z\n .object({\n plugins: z.array(basePluginDefinitionSchema).optional(),\n })\n .parse(projectDefinition);\n const { plugins = [] } = pluginData;\n // initialize plugins\n const initialImplementations = [\n ...COMMON_SPEC_IMPLEMENTATIONS,\n ...builtinSpecImplementations,\n ];\n const specImplementations = {};\n for (const spec of initialImplementations) {\n if ('type' in spec) {\n if (typeof spec.defaultInitializer !== 'function') {\n throw new TypeError(`Spec ${spec.type} does not have a defaultInitializer function!`);\n }\n specImplementations[spec.name] = spec.defaultInitializer();\n }\n else {\n specImplementations[spec.spec.name] = spec.implementation;\n }\n }\n const pluginsWithModules = plugins.map((p) => {\n const plugin = availablePlugins.find(({ metadata }) => metadata.name === p.name && metadata.packageName === p.packageName);\n const pluginName = `${p.packageName}/${p.name}`;\n if (!plugin) {\n throw new Error(`Unable to find plugin ${pluginName}!`);\n }\n return {\n key: plugin.metadata.key,\n name: pluginName,\n pluginModules: plugin.modules,\n };\n });\n return initializePlugins(pluginsWithModules, specImplementations);\n}\n/**\n * Creates a plugin implementation store with the given plugins added to the project definition.\n *\n * @param pluginStore The plugin store to use\n * @param plugins The plugins to add to the project definition\n * @param projectDefinition The project definition to use\n * @returns The plugin implementation store\n */\nexport function createPluginImplementationStoreWithNewPlugins(pluginStore, plugins, projectDefinition) {\n const newProjectDefinition = {\n ...projectDefinition,\n plugins: [\n ...(projectDefinition.plugins ?? []),\n ...plugins\n .filter((p) => !projectDefinition.plugins?.some((p2) => p2.id === pluginEntityType.idFromKey(p.key)))\n .map((p) => ({\n id: pluginEntityType.idFromKey(p.key),\n version: p.version,\n name: p.name,\n packageName: p.packageName,\n config: undefined,\n })),\n ],\n };\n return createPluginImplementationStore(pluginStore, newProjectDefinition);\n}\n/**\n * Creates a project definition schema with the given context.\n *\n * @param projectDefinition The project definition to create a schema for\n * @param context The context to use\n * @return The project definition schema\n */\nexport function createProjectDefinitionSchemaWithContext(projectDefinition, context) {\n const { pluginStore } = context;\n const pluginImplementationStore = createPluginImplementationStore(pluginStore, projectDefinition);\n const definitionContext = createDefinitionSchemaParserContext({\n plugins: pluginImplementationStore,\n });\n return createProjectDefinitionSchema(definitionContext);\n}\nexport function parseProjectDefinitionWithContext(projectDefinition, context) {\n const schema = createProjectDefinitionSchemaWithContext(projectDefinition, context);\n return schema.parse(projectDefinition);\n}\n/**\n * Parses a project definition and obtains entities/references from it.\n *\n * @param projectDefinition The project definition to parse\n * @param context The context to use\n * @returns The parsed project definition with entities/references\n */\nexport function parseProjectDefinitionWithReferences(projectDefinition, context) {\n const { pluginStore } = context;\n const pluginImplementationStore = createPluginImplementationStore(pluginStore, projectDefinition);\n const definition = parseSchemaWithTransformedReferences(createProjectDefinitionSchema, projectDefinition, { plugins: pluginImplementationStore });\n return { definition, pluginStore: pluginImplementationStore };\n}\n//# sourceMappingURL=parser.js.map","import { createPluginImplementationStoreWithNewPlugins } from '#src/parser/parser.js';\nimport { getPluginMetadataByKeyOrThrow, pluginConfigSpec, } from '#src/plugins/index.js';\nimport { pluginEntityType } from '#src/schema/index.js';\nfunction byKey(projectDefinition, key) {\n const pluginEntityId = pluginEntityType.idFromKey(key);\n const plugin = projectDefinition.plugins?.find((m) => m.id === pluginEntityId);\n return plugin;\n}\nfunction byKeyOrThrow(projectDefinition, id) {\n const plugin = byKey(projectDefinition, id);\n if (!plugin) {\n throw new Error(`Could not find plugin with ID ${id}`);\n }\n return plugin;\n}\nfunction configByKey(projectDefinition, key) {\n const def = byKey(projectDefinition, key);\n return def?.config;\n}\nfunction configByKeyOrThrow(projectDefinition, key) {\n const def = byKeyOrThrow(projectDefinition, key);\n return def.config;\n}\nfunction setPluginConfig(projectDefinition, plugin, pluginConfig, definitionContainer) {\n const plugins = projectDefinition.plugins ?? [];\n const pluginEntityId = pluginEntityType.idFromKey(plugin.key);\n const isNewPlugin = !plugins.some((p) => p.id === pluginEntityId);\n if (isNewPlugin) {\n // When adding a new plugin, we need to create an implementation store\n // that includes this plugin so its migrations are properly registered\n const pluginImplementationStore = createPluginImplementationStoreWithNewPlugins(definitionContainer.parserContext.pluginStore, [plugin], definitionContainer.definition);\n const pluginConfigService = pluginImplementationStore.getPluginSpec(pluginConfigSpec);\n const lastMigrationVersion = pluginConfigService.getLastMigrationVersion(plugin.key);\n projectDefinition.plugins = [\n ...plugins,\n {\n id: pluginEntityId,\n name: plugin.name,\n version: plugin.version,\n packageName: plugin.packageName,\n config: pluginConfig,\n configSchemaVersion: lastMigrationVersion,\n },\n ];\n }\n else {\n // When updating an existing plugin, just update the config\n projectDefinition.plugins = plugins.map((p) => pluginEntityId === p.id ? { ...p, config: pluginConfig } : p);\n }\n}\n/**\n * Disables a plugin and all plugins that it manages recursively.\n *\n * @param projectDefinition The project definition to disable the plugin in\n * @param pluginKey The ID of the plugin to disable\n * @param context The schema parser context to use\n */\nfunction disablePlugin(projectDefinition, pluginKey, context) {\n // Get plugin metadata to be disabled\n const pluginMetadata = getPluginMetadataByKeyOrThrow(context.pluginStore, pluginKey);\n // Make sure we disable any plugins that are managed by this plugin\n const managedPlugins = projectDefinition.plugins?.filter((p) => {\n const managedPlugin = getPluginMetadataByKeyOrThrow(context.pluginStore, pluginEntityType.keyFromId(p.id));\n return managedPlugin.managedBy === pluginMetadata.fullyQualifiedName;\n });\n if (managedPlugins) {\n for (const p of managedPlugins)\n disablePlugin(projectDefinition, p.id, context);\n }\n projectDefinition.plugins = projectDefinition.plugins?.filter((p) => p.id !== pluginEntityType.idFromKey(pluginKey));\n}\nexport const PluginUtils = {\n byKey,\n byKeyOrThrow,\n configByKey,\n setPluginConfig,\n configByKeyOrThrow,\n disablePlugin,\n};\n//# sourceMappingURL=plugin-utils.js.map","import { stringifyPrettyStable } from '@baseplate-dev/utils';\nimport { produce } from 'immer';\nimport { createPluginImplementationStore, parseProjectDefinitionWithReferences, } from '#src/parser/parser.js';\nimport { deserializeSchemaWithTransformedReferences, fixRefDeletions, serializeSchema, } from '#src/references/index.js';\nimport { createProjectDefinitionSchema } from '#src/schema/index.js';\n/**\n * Container for a project definition that includes references and entities.\n *\n * This class provides utility methods for working with a project definition\n * such as the ability to fetch an entity by ID.\n */\nexport class ProjectDefinitionContainer {\n refPayload;\n definition;\n references;\n entities;\n parserContext;\n pluginStore;\n constructor(config, parserContext, pluginStore) {\n this.refPayload = config;\n this.definition = config.data;\n this.references = config.references;\n this.entities = config.entities;\n this.parserContext = parserContext;\n this.pluginStore = pluginStore;\n }\n nameFromId(id) {\n if (!id)\n return undefined;\n const name = this.entities.find((e) => e.id === id)?.name;\n if (!name) {\n throw new Error(`Could not find name for id ${id}`);\n }\n return name;\n }\n /**\n * Fetches the name of an entity by its ID, returning undefined if the ID is not found.\n *\n * @param id The ID of the entity to fetch\n * @returns The name of the entity, or undefined if the ID is not found\n */\n safeNameFromId(id) {\n if (!id)\n return undefined;\n const name = this.entities.find((e) => e.id === id)?.name;\n return name;\n }\n /**\n * Fix any reference deletions that would occur when applying the given setter.\n *\n * @param setter A function that modifies the project definition\n * @returns A result indicating whether the reference deletions were fixed\n */\n fixRefDeletions(setter) {\n const newDefinition = produce(setter)(this.definition);\n return fixRefDeletions(createProjectDefinitionSchema, newDefinition, {\n plugins: this.pluginStore,\n });\n }\n /**\n * Serializes the project definition resolving references to their names for easier reading.\n *\n * @returns The serialized contents of the project definition\n */\n toSerializedContents() {\n const serializedContents = serializeSchema(createProjectDefinitionSchema, this.definition, {\n defaultMode: 'strip',\n plugins: this.pluginStore,\n });\n return stringifyPrettyStable(serializedContents);\n }\n /**\n * Creates a new ProjectDefinitionContainer from a raw project definition.\n *\n * @param definition The raw project definition\n * @param context The parser context to use\n * @returns A new ProjectDefinitionContainer\n */\n static fromDefinition(definition, context) {\n const { definition: parsedDefinition, pluginStore } = parseProjectDefinitionWithReferences(definition, context);\n return new ProjectDefinitionContainer(parsedDefinition, context, pluginStore);\n }\n /**\n * Creates a new ProjectDefinitionContainer from a serialized configuration.\n *\n * @param config The serialized configuration\n * @param context The parser context to use\n * @returns A new ProjectDefinitionContainer\n */\n static fromSerializedConfig(config, context) {\n const plugins = createPluginImplementationStore(context.pluginStore, config);\n return new ProjectDefinitionContainer(deserializeSchemaWithTransformedReferences(createProjectDefinitionSchema, config, { plugins }), context, plugins);\n }\n}\n//# sourceMappingURL=project-definition-container.js.map","export function createSchemaMigration(migration) {\n return migration;\n}\n//# sourceMappingURL=types.js.map","import { omit } from 'es-toolkit';\nimport { modelUniqueConstraintEntityType } from '../schema/index.js';\nimport { createSchemaMigration } from './types.js';\nexport const migration005PrimaryUniqueRefs = createSchemaMigration({\n version: 5,\n name: 'primaryUniqueRefs',\n description: 'Store primary key in primaryKeyFieldRefs field and unique constraints in unique constraints field',\n migrate: (config) => ({\n ...config,\n models: config.models.map((model) => {\n const oldModel = model.model;\n const primaryKeyFieldRefs = oldModel.primaryKeys?.length\n ? oldModel.primaryKeys\n : oldModel.fields.filter((f) => f.isId).map((f) => f.name);\n return {\n ...model,\n model: {\n ...omit(oldModel, ['primaryKeys', 'uniqueConstraints']),\n primaryKeyFieldRefs,\n fields: oldModel.fields.map((f) => omit(f, ['isId', 'isUnique'])),\n uniqueConstraints: [\n ...(oldModel.uniqueConstraints?.map((c) => ({\n id: modelUniqueConstraintEntityType.generateNewId(),\n fields: c.fields.map((f) => ({\n fieldRef: f.name,\n })),\n })) ?? []),\n ...oldModel.fields\n .filter((f) => f.isUnique)\n .map((f) => ({\n id: modelUniqueConstraintEntityType.generateNewId(),\n fields: [{ fieldRef: f.name }],\n })),\n ],\n },\n };\n }),\n }),\n});\n//# sourceMappingURL=migration-005-primary-unique-refs.js.map","import { omit } from 'es-toolkit';\nimport { createSchemaMigration } from './types.js';\nexport const migration006IndividualServiceControllers = createSchemaMigration({\n version: 6,\n name: 'individualServiceControllers',\n description: 'Make service controller fields individually enabled',\n migrate: (config) => ({\n ...config,\n models: config.models.map((model) => {\n const { build, create, update, delete: deleteOp, ...rest } = model.service ?? {};\n if (!build) {\n return omit(model, ['service']);\n }\n const isCreateEnabled = create &&\n (!!create.fields?.length || !!create.transformerNames?.length);\n const isUpdateEnabled = update &&\n (!!update.fields?.length || !!update.transformerNames?.length);\n const isDeleteEnabled = !deleteOp?.disabled;\n return {\n ...model,\n service: {\n ...rest,\n create: isCreateEnabled ? { ...create, enabled: true } : undefined,\n update: isUpdateEnabled ? { ...update, enabled: true } : undefined,\n delete: isDeleteEnabled ? { enabled: true } : undefined,\n },\n };\n }),\n }),\n});\n//# sourceMappingURL=migration-006-individual-service-controllers.js.map","import { pickBy } from 'es-toolkit';\nexport function stripUndefinedChildren(obj) {\n return pickBy(obj, (value) => value !== undefined);\n}\nexport function undefinedIfEmptyObject(obj) {\n return Object.keys(obj).every((key) => obj[key] === undefined)\n ? undefined\n : obj;\n}\n//# sourceMappingURL=utils.js.map","import { createSchemaMigration } from './types.js';\nimport { stripUndefinedChildren, undefinedIfEmptyObject } from './utils.js';\nexport const migration007ModelGraphql = createSchemaMigration({\n version: 7,\n name: 'modelGraphql',\n description: 'Migrate model schema to GraphQL schema',\n migrate: (config) => ({\n ...config,\n models: config.models.map((model) => {\n const { schema, ...rest } = model;\n const { buildObjectType, exposedFields, exposedLocalRelations, exposedForeignRelations, buildQuery, buildMutations, authorize, } = schema ?? {};\n return stripUndefinedChildren({\n ...rest,\n graphql: undefinedIfEmptyObject(stripUndefinedChildren({\n objectType: buildObjectType\n ? {\n enabled: !!buildObjectType,\n fields: exposedFields ?? [],\n localRelations: exposedLocalRelations ?? [],\n foreignRelations: exposedForeignRelations ?? [],\n }\n : undefined,\n queries: buildQuery\n ? {\n get: {\n enabled: buildQuery,\n roles: authorize?.read ?? [],\n },\n list: {\n enabled: buildQuery,\n roles: authorize?.read ?? [],\n },\n }\n : undefined,\n mutations: buildMutations\n ? undefinedIfEmptyObject({\n create: !authorize || authorize.create.length > 0\n ? {\n enabled: true,\n roles: authorize?.create ?? [],\n }\n : undefined,\n update: !authorize || authorize.update.length > 0\n ? {\n enabled: true,\n roles: authorize?.update ?? [],\n }\n : undefined,\n delete: !authorize || authorize.delete.length > 0\n ? {\n enabled: true,\n roles: authorize?.delete ?? [],\n }\n : undefined,\n })\n : undefined,\n })),\n });\n }),\n }),\n});\n//# sourceMappingURL=migration-007-model-graphql.js.map","import { authRoleEntityType } from '#src/schema/index.js';\nimport { createSchemaMigration } from './types.js';\nconst AUTH_DEFAULT_ROLES = [\n {\n name: 'public',\n comment: 'All users (including unauthenticated and authenticated users)',\n builtIn: true,\n },\n {\n name: 'user',\n comment: 'All authenticated users',\n builtIn: true,\n },\n {\n name: 'system',\n comment: 'System processes without a user context, e.g. background jobs',\n builtIn: true,\n },\n];\nexport const migration008AnonymousPublicRole = createSchemaMigration({\n version: 8,\n name: 'anonymousPublicRole',\n description: 'Migrate anonymous to public role',\n migrate: (config) => ({\n ...config,\n auth: config.auth && {\n ...config.auth,\n roles: [\n ...AUTH_DEFAULT_ROLES.map((role) => {\n const existingRole = config.auth?.roles?.find((r) => r.name === role.name ||\n (r.name === 'anonymous' && role.name === 'public'));\n return {\n id: existingRole?.id ?? authRoleEntityType.generateNewId(),\n name: role.name,\n comment: role.comment,\n builtIn: true,\n };\n }),\n ...(config.auth.roles\n ?.filter((r) => !AUTH_DEFAULT_ROLES.some((role) => role.name === r.name) &&\n r.name !== 'anonymous')\n .map((r) => ({\n id: r.id,\n name: r.name,\n comment: r.comment,\n builtIn: false,\n })) ?? []),\n ],\n },\n }),\n});\n//# sourceMappingURL=migration-008-anonymous-public-role.js.map","import { cloneDeep } from 'es-toolkit';\n/**\n * Transform a value at a specific path in a JSON object.\n *\n * @param data - The JSON object to transform.\n * @param path - The path to the value to transform, using dot notation (* matches all elements in an array and ** matches all elements in an object).\n * @param transformFn - The transformation function to apply to the value.\n * @returns The transformed JSON object.\n */\nexport function transformJsonPath(data, path, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- make it easier to use any transform functions\ntransformFn) {\n // Split the path into parts\n const pathParts = path.split('.');\n // Recursive function to navigate and transform the JSON\n const navigateAndTransform = (current, parts) => {\n if (parts.length === 0) {\n // If at the end of the path, apply the transformation function\n return transformFn(cloneDeep(current));\n }\n const [currentPart, ...remainingParts] = parts;\n if (currentPart === '*') {\n // If the current path part is a wildcard\n if (!Array.isArray(current)) {\n throw new TypeError(`Expected an array at ${pathParts.join('.')}`);\n }\n // Apply transformation recursively for each item\n return current.map((item) => navigateAndTransform(item, remainingParts));\n }\n else {\n if (typeof current !== 'object') {\n throw new TypeError(`Expected an object at ${pathParts.join('.')}, got ${typeof current}`);\n }\n // Navigate deeper\n if (current === null) {\n return current;\n }\n if (currentPart === '**') {\n return Object.fromEntries(Object.entries(current).map(([key, value]) => [\n key,\n navigateAndTransform(value, remainingParts),\n ]));\n }\n if (!(currentPart in current)) {\n return current;\n }\n return {\n ...current,\n [currentPart]: navigateAndTransform(current[currentPart], remainingParts),\n };\n }\n };\n // Start the navigation and transformation process\n return navigateAndTransform(data, pathParts);\n}\nexport function renameObjectKeysTransform(renames) {\n return (data) => {\n if (data === null)\n return null;\n if (typeof data !== 'object') {\n throw new TypeError(`Expected an object, got ${typeof data}`);\n }\n return Object.fromEntries(Object.entries(data).map(([key, value]) => [renames[key] || key, value]));\n };\n}\n//# sourceMappingURL=transform-json-path.js.map","import { flow } from 'es-toolkit';\nimport { renameObjectKeysTransform, transformJsonPath, } from './transform-json-path.js';\nimport { createSchemaMigration } from './types.js';\nexport const migration009RenameRefs = createSchemaMigration({\n version: 9,\n name: 'renameRefs',\n description: 'Rename zRefs to be suffixed with \"Ref\"',\n migrate: (config) => {\n // const definition: ProjectDefinition = config;\n // const adminConfig: AdminAppConfig;\n // adminConfig.sections?.[0].form.fields[0];\n const transform = flow((c) => transformJsonPath(c, 'apps.*.sections.*', renameObjectKeysTransform({\n feature: 'featureRef',\n modelName: 'modelRef',\n })), (c) => transformJsonPath(c, 'apps.*.sections.*.form.fields.*', renameObjectKeysTransform({\n localRelationName: 'localRelationRef',\n modelField: 'modelFieldRef',\n localRelation: 'localRelationRef',\n modelRelation: 'modelRelationRef',\n embeddedFormName: 'embeddedFormRef',\n })), (c) => transformJsonPath(c, 'apps.*.sections.*.embeddedForms.*.form.fields.*', renameObjectKeysTransform({\n localRelationName: 'localRelationRef',\n localRelation: 'localRelationRef',\n modelField: 'modelFieldRef',\n modelRelation: 'modelRelationRef',\n embeddedFormName: 'embeddedFormRef',\n })), (c) => transformJsonPath(c, 'apps.*.sections.*.table.columns.*.display', renameObjectKeysTransform({\n modelField: 'modelFieldRef',\n localRelationName: 'localRelationRef',\n })), (c) => transformJsonPath(c, 'apps.*.sections.*.embeddedForms.*.table.columns.*.display', renameObjectKeysTransform({\n modelField: 'modelFieldRef',\n localRelationName: 'localRelationRef',\n })), (c) => transformJsonPath(c, 'apps.*.sections.*.embeddedForms.*', renameObjectKeysTransform({\n modelName: 'modelRef',\n })), (c) => transformJsonPath(c, 'auth', renameObjectKeysTransform({\n userModel: 'userModelRef',\n userRoleModel: 'userRoleModelRef',\n authFeaturePath: 'authFeatureRef',\n accountsFeaturePath: 'accountsFeatureRef',\n })), (c) => transformJsonPath(c, 'enums.*', renameObjectKeysTransform({\n feature: 'featureRef',\n })), (c) => transformJsonPath(c, 'models.*.model.fields.*.options', renameObjectKeysTransform({\n enumType: 'enumRef',\n defaultEnumValue: 'defaultEnumValueRef',\n })), (c) => transformJsonPath(c, 'models.*', renameObjectKeysTransform({\n feature: 'featureRef',\n })), (c) => transformJsonPath(c, 'models.*.model.relations.*.references.*', renameObjectKeysTransform({\n local: 'localRef',\n foreign: 'foreignRef',\n })), (c) => transformJsonPath(c, 'models.*.model.relations.*', renameObjectKeysTransform({\n modelName: 'modelRef',\n })), (c) => transformJsonPath(c, 'plugins.*.config.categories.*', renameObjectKeysTransform({\n usedByRelation: 'usedByRelationRef',\n defaultAdapter: 'defaultAdapterRef',\n })));\n return transform(config);\n },\n});\n//# sourceMappingURL=migration-009-rename-refs.js.map","const parseNumber = (color, len) => {\n\tif (typeof color !== 'number') return;\n\n\t// hex3: #c93 -> #cc9933\n\tif (len === 3) {\n\t\treturn {\n\t\t\tmode: 'rgb',\n\t\t\tr: (((color >> 8) & 0xf) | ((color >> 4) & 0xf0)) / 255,\n\t\t\tg: (((color >> 4) & 0xf) | (color & 0xf0)) / 255,\n\t\t\tb: ((color & 0xf) | ((color << 4) & 0xf0)) / 255\n\t\t};\n\t}\n\n\t// hex4: #c931 -> #cc993311\n\tif (len === 4) {\n\t\treturn {\n\t\t\tmode: 'rgb',\n\t\t\tr: (((color >> 12) & 0xf) | ((color >> 8) & 0xf0)) / 255,\n\t\t\tg: (((color >> 8) & 0xf) | ((color >> 4) & 0xf0)) / 255,\n\t\t\tb: (((color >> 4) & 0xf) | (color & 0xf0)) / 255,\n\t\t\talpha: ((color & 0xf) | ((color << 4) & 0xf0)) / 255\n\t\t};\n\t}\n\n\t// hex6: #f0f1f2\n\tif (len === 6) {\n\t\treturn {\n\t\t\tmode: 'rgb',\n\t\t\tr: ((color >> 16) & 0xff) / 255,\n\t\t\tg: ((color >> 8) & 0xff) / 255,\n\t\t\tb: (color & 0xff) / 255\n\t\t};\n\t}\n\n\t// hex8: #f0f1f2ff\n\tif (len === 8) {\n\t\treturn {\n\t\t\tmode: 'rgb',\n\t\t\tr: ((color >> 24) & 0xff) / 255,\n\t\t\tg: ((color >> 16) & 0xff) / 255,\n\t\t\tb: ((color >> 8) & 0xff) / 255,\n\t\t\talpha: (color & 0xff) / 255\n\t\t};\n\t}\n};\n\nexport default parseNumber;\n","const named = {\n\taliceblue: 0xf0f8ff,\n\tantiquewhite: 0xfaebd7,\n\taqua: 0x00ffff,\n\taquamarine: 0x7fffd4,\n\tazure: 0xf0ffff,\n\tbeige: 0xf5f5dc,\n\tbisque: 0xffe4c4,\n\tblack: 0x000000,\n\tblanchedalmond: 0xffebcd,\n\tblue: 0x0000ff,\n\tblueviolet: 0x8a2be2,\n\tbrown: 0xa52a2a,\n\tburlywood: 0xdeb887,\n\tcadetblue: 0x5f9ea0,\n\tchartreuse: 0x7fff00,\n\tchocolate: 0xd2691e,\n\tcoral: 0xff7f50,\n\tcornflowerblue: 0x6495ed,\n\tcornsilk: 0xfff8dc,\n\tcrimson: 0xdc143c,\n\tcyan: 0x00ffff,\n\tdarkblue: 0x00008b,\n\tdarkcyan: 0x008b8b,\n\tdarkgoldenrod: 0xb8860b,\n\tdarkgray: 0xa9a9a9,\n\tdarkgreen: 0x006400,\n\tdarkgrey: 0xa9a9a9,\n\tdarkkhaki: 0xbdb76b,\n\tdarkmagenta: 0x8b008b,\n\tdarkolivegreen: 0x556b2f,\n\tdarkorange: 0xff8c00,\n\tdarkorchid: 0x9932cc,\n\tdarkred: 0x8b0000,\n\tdarksalmon: 0xe9967a,\n\tdarkseagreen: 0x8fbc8f,\n\tdarkslateblue: 0x483d8b,\n\tdarkslategray: 0x2f4f4f,\n\tdarkslategrey: 0x2f4f4f,\n\tdarkturquoise: 0x00ced1,\n\tdarkviolet: 0x9400d3,\n\tdeeppink: 0xff1493,\n\tdeepskyblue: 0x00bfff,\n\tdimgray: 0x696969,\n\tdimgrey: 0x696969,\n\tdodgerblue: 0x1e90ff,\n\tfirebrick: 0xb22222,\n\tfloralwhite: 0xfffaf0,\n\tforestgreen: 0x228b22,\n\tfuchsia: 0xff00ff,\n\tgainsboro: 0xdcdcdc,\n\tghostwhite: 0xf8f8ff,\n\tgold: 0xffd700,\n\tgoldenrod: 0xdaa520,\n\tgray: 0x808080,\n\tgreen: 0x008000,\n\tgreenyellow: 0xadff2f,\n\tgrey: 0x808080,\n\thoneydew: 0xf0fff0,\n\thotpink: 0xff69b4,\n\tindianred: 0xcd5c5c,\n\tindigo: 0x4b0082,\n\tivory: 0xfffff0,\n\tkhaki: 0xf0e68c,\n\tlavender: 0xe6e6fa,\n\tlavenderblush: 0xfff0f5,\n\tlawngreen: 0x7cfc00,\n\tlemonchiffon: 0xfffacd,\n\tlightblue: 0xadd8e6,\n\tlightcoral: 0xf08080,\n\tlightcyan: 0xe0ffff,\n\tlightgoldenrodyellow: 0xfafad2,\n\tlightgray: 0xd3d3d3,\n\tlightgreen: 0x90ee90,\n\tlightgrey: 0xd3d3d3,\n\tlightpink: 0xffb6c1,\n\tlightsalmon: 0xffa07a,\n\tlightseagreen: 0x20b2aa,\n\tlightskyblue: 0x87cefa,\n\tlightslategray: 0x778899,\n\tlightslategrey: 0x778899,\n\tlightsteelblue: 0xb0c4de,\n\tlightyellow: 0xffffe0,\n\tlime: 0x00ff00,\n\tlimegreen: 0x32cd32,\n\tlinen: 0xfaf0e6,\n\tmagenta: 0xff00ff,\n\tmaroon: 0x800000,\n\tmediumaquamarine: 0x66cdaa,\n\tmediumblue: 0x0000cd,\n\tmediumorchid: 0xba55d3,\n\tmediumpurple: 0x9370db,\n\tmediumseagreen: 0x3cb371,\n\tmediumslateblue: 0x7b68ee,\n\tmediumspringgreen: 0x00fa9a,\n\tmediumturquoise: 0x48d1cc,\n\tmediumvioletred: 0xc71585,\n\tmidnightblue: 0x191970,\n\tmintcream: 0xf5fffa,\n\tmistyrose: 0xffe4e1,\n\tmoccasin: 0xffe4b5,\n\tnavajowhite: 0xffdead,\n\tnavy: 0x000080,\n\toldlace: 0xfdf5e6,\n\tolive: 0x808000,\n\tolivedrab: 0x6b8e23,\n\torange: 0xffa500,\n\torangered: 0xff4500,\n\torchid: 0xda70d6,\n\tpalegoldenrod: 0xeee8aa,\n\tpalegreen: 0x98fb98,\n\tpaleturquoise: 0xafeeee,\n\tpalevioletred: 0xdb7093,\n\tpapayawhip: 0xffefd5,\n\tpeachpuff: 0xffdab9,\n\tperu: 0xcd853f,\n\tpink: 0xffc0cb,\n\tplum: 0xdda0dd,\n\tpowderblue: 0xb0e0e6,\n\tpurple: 0x800080,\n\n\t// Added in CSS Colors Level 4:\n\t// https://drafts.csswg.org/css-color/#changes-from-3\n\trebeccapurple: 0x663399,\n\n\tred: 0xff0000,\n\trosybrown: 0xbc8f8f,\n\troyalblue: 0x4169e1,\n\tsaddlebrown: 0x8b4513,\n\tsalmon: 0xfa8072,\n\tsandybrown: 0xf4a460,\n\tseagreen: 0x2e8b57,\n\tseashell: 0xfff5ee,\n\tsienna: 0xa0522d,\n\tsilver: 0xc0c0c0,\n\tskyblue: 0x87ceeb,\n\tslateblue: 0x6a5acd,\n\tslategray: 0x708090,\n\tslategrey: 0x708090,\n\tsnow: 0xfffafa,\n\tspringgreen: 0x00ff7f,\n\tsteelblue: 0x4682b4,\n\ttan: 0xd2b48c,\n\tteal: 0x008080,\n\tthistle: 0xd8bfd8,\n\ttomato: 0xff6347,\n\tturquoise: 0x40e0d0,\n\tviolet: 0xee82ee,\n\twheat: 0xf5deb3,\n\twhite: 0xffffff,\n\twhitesmoke: 0xf5f5f5,\n\tyellow: 0xffff00,\n\tyellowgreen: 0x9acd32\n};\n\nexport default named;\n","import parseNumber from './parseNumber.js';\nimport named from '../colors/named.js';\n\n// Also supports the `transparent` color as defined in:\n// https://drafts.csswg.org/css-color/#transparent-black\nconst parseNamed = color => {\n\treturn parseNumber(named[color.toLowerCase()], 6);\n};\n\nexport default parseNamed;\n","import parseNumber from './parseNumber.js';\n\nconst hex = /^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i;\n\nconst parseHex = color => {\n\tlet match;\n\t// eslint-disable-next-line no-cond-assign\n\treturn (match = color.match(hex))\n\t\t? parseNumber(parseInt(match[1], 16), match[1].length)\n\t\t: undefined;\n};\n\nexport default parseHex;\n","/*\n\tBasic building blocks for color regexes\n\t---------------------------------------\n\n\tThese regexes are expressed as strings\n\tto be interpolated in the color regexes.\n */\n\n// <number>\nexport const num = '([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)';\n\n// <number> or 'none'\nexport const num_none = `(?:${num}|none)`;\n\n// <percentage>\nexport const per = `${num}%`;\n\n// <percent> or 'none'\nexport const per_none = `(?:${num}%|none)`;\n\n// <number-percentage> (<alpha-value>)\nexport const num_per = `(?:${num}%|${num})`;\n\n// <number-percentage> (<alpha-value>) or 'none'\nexport const num_per_none = `(?:${num}%|${num}|none)`;\n\n// <hue>\nexport const hue = `(?:${num}(deg|grad|rad|turn)|${num})`;\n\n// <hue> or 'none'\nexport const hue_none = `(?:${num}(deg|grad|rad|turn)|${num}|none)`;\n\nexport const c = `\\\\s*,\\\\s*`; // comma\nexport const so = '\\\\s*'; // space, optional\nexport const s = `\\\\s+`; // space\n\nexport const rx_num_per_none = new RegExp('^' + num_per_none + '$');\n","import { num, per, num_per, c } from '../util/regex.js';\n\n/*\n\trgb() regular expressions for legacy format\n\tReference: https://drafts.csswg.org/css-color/#rgb-functions\n */\nconst rgb_num_old = new RegExp(\n\t`^rgba?\\\\(\\\\s*${num}${c}${num}${c}${num}\\\\s*(?:,\\\\s*${num_per}\\\\s*)?\\\\)$`\n);\n\nconst rgb_per_old = new RegExp(\n\t`^rgba?\\\\(\\\\s*${per}${c}${per}${c}${per}\\\\s*(?:,\\\\s*${num_per}\\\\s*)?\\\\)$`\n);\n\nconst parseRgbLegacy = color => {\n\tlet res = { mode: 'rgb' };\n\tlet match;\n\tif ((match = color.match(rgb_num_old))) {\n\t\tif (match[1] !== undefined) {\n\t\t\tres.r = match[1] / 255;\n\t\t}\n\t\tif (match[2] !== undefined) {\n\t\t\tres.g = match[2] / 255;\n\t\t}\n\t\tif (match[3] !== undefined) {\n\t\t\tres.b = match[3] / 255;\n\t\t}\n\t} else if ((match = color.match(rgb_per_old))) {\n\t\tif (match[1] !== undefined) {\n\t\t\tres.r = match[1] / 100;\n\t\t}\n\t\tif (match[2] !== undefined) {\n\t\t\tres.g = match[2] / 100;\n\t\t}\n\t\tif (match[3] !== undefined) {\n\t\t\tres.b = match[3] / 100;\n\t\t}\n\t} else {\n\t\treturn undefined;\n\t}\n\n\tif (match[4] !== undefined) {\n\t\tres.alpha = Math.max(0, Math.min(1, match[4] / 100));\n\t} else if (match[5] !== undefined) {\n\t\tres.alpha = Math.max(0, Math.min(1, +match[5]));\n\t}\n\n\treturn res;\n};\n\nexport default parseRgbLegacy;\n","import parse from './parse.js';\n\nconst prepare = (color, mode) =>\n\tcolor === undefined\n\t\t? undefined\n\t\t: typeof color !== 'object'\n\t\t? parse(color)\n\t\t: color.mode !== undefined\n\t\t? color\n\t\t: mode\n\t\t? { ...color, mode }\n\t\t: undefined;\n\nexport default prepare;\n","import { converters } from './modes.js';\nimport prepare from './_prepare.js';\n\nconst converter =\n\t(target_mode = 'rgb') =>\n\tcolor =>\n\t\t(color = prepare(color, target_mode)) !== undefined\n\t\t\t? // if the color's mode corresponds to our target mode\n\t\t\t color.mode === target_mode\n\t\t\t\t? // then just return the color\n\t\t\t\t color\n\t\t\t\t: // otherwise check to see if we have a dedicated\n\t\t\t\t// converter for the target mode\n\t\t\t\tconverters[color.mode][target_mode]\n\t\t\t\t? // and return its result...\n\t\t\t\t converters[color.mode][target_mode](color)\n\t\t\t\t: // ...otherwise pass through RGB as an intermediary step.\n\t\t\t\t// if the target mode is RGB...\n\t\t\t\ttarget_mode === 'rgb'\n\t\t\t\t? // just return the RGB\n\t\t\t\t converters[color.mode].rgb(color)\n\t\t\t\t: // otherwise convert color.mode -> RGB -> target_mode\n\t\t\t\t converters.rgb[target_mode](converters[color.mode].rgb(color))\n\t\t\t: undefined;\n\nexport default converter;\n","import converter from './converter.js';\n\nconst converters = {};\nconst modes = {};\n\nconst parsers = [];\nconst colorProfiles = {};\n\nconst identity = v => v;\n\nconst useMode = definition => {\n\tconverters[definition.mode] = {\n\t\t...converters[definition.mode],\n\t\t...definition.toMode\n\t};\n\n\tObject.keys(definition.fromMode || {}).forEach(k => {\n\t\tif (!converters[k]) {\n\t\t\tconverters[k] = {};\n\t\t}\n\t\tconverters[k][definition.mode] = definition.fromMode[k];\n\t});\n\n\t// Color space channel ranges\n\tif (!definition.ranges) {\n\t\tdefinition.ranges = {};\n\t}\n\n\tif (!definition.difference) {\n\t\tdefinition.difference = {};\n\t}\n\n\tdefinition.channels.forEach(channel => {\n\t\t// undefined channel ranges default to the [0, 1] interval\n\t\tif (definition.ranges[channel] === undefined) {\n\t\t\tdefinition.ranges[channel] = [0, 1];\n\t\t}\n\n\t\tif (!definition.interpolate[channel]) {\n\t\t\tthrow new Error(`Missing interpolator for: ${channel}`);\n\t\t}\n\n\t\tif (typeof definition.interpolate[channel] === 'function') {\n\t\t\tdefinition.interpolate[channel] = {\n\t\t\t\tuse: definition.interpolate[channel]\n\t\t\t};\n\t\t}\n\n\t\tif (!definition.interpolate[channel].fixup) {\n\t\t\tdefinition.interpolate[channel].fixup = identity;\n\t\t}\n\t});\n\n\tmodes[definition.mode] = definition;\n\t(definition.parse || []).forEach(parser => {\n\t\tuseParser(parser, definition.mode);\n\t});\n\n\treturn converter(definition.mode);\n};\n\nconst getMode = mode => modes[mode];\n\nconst useParser = (parser, mode) => {\n\tif (typeof parser === 'string') {\n\t\tif (!mode) {\n\t\t\tthrow new Error(`'mode' required when 'parser' is a string`);\n\t\t}\n\t\tcolorProfiles[parser] = mode;\n\t} else if (typeof parser === 'function') {\n\t\tif (parsers.indexOf(parser) < 0) {\n\t\t\tparsers.push(parser);\n\t\t}\n\t}\n};\n\nconst removeParser = parser => {\n\tif (typeof parser === 'string') {\n\t\tdelete colorProfiles[parser];\n\t} else if (typeof parser === 'function') {\n\t\tconst idx = parsers.indexOf(parser);\n\t\tif (idx > 0) {\n\t\t\tparsers.splice(idx, 1);\n\t\t}\n\t}\n};\n\nexport {\n\tuseMode,\n\tgetMode,\n\tuseParser,\n\tremoveParser,\n\tconverters,\n\tparsers,\n\tcolorProfiles\n};\n","import { parsers, colorProfiles, getMode } from './modes.js';\n\n/* eslint-disable-next-line no-control-regex */\nconst IdentStartCodePoint = /[^\\x00-\\x7F]|[a-zA-Z_]/;\n\n/* eslint-disable-next-line no-control-regex */\nconst IdentCodePoint = /[^\\x00-\\x7F]|[-\\w]/;\n\nexport const Tok = {\n\tFunction: 'function',\n\tIdent: 'ident',\n\tNumber: 'number',\n\tPercentage: 'percentage',\n\tParenClose: ')',\n\tNone: 'none',\n\tHue: 'hue',\n\tAlpha: 'alpha'\n};\n\nlet _i = 0;\n\n/*\n\t4.3.10. Check if three code points would start a number\n\thttps://drafts.csswg.org/css-syntax/#starts-with-a-number\n */\nfunction is_num(chars) {\n\tlet ch = chars[_i];\n\tlet ch1 = chars[_i + 1];\n\tif (ch === '-' || ch === '+') {\n\t\treturn /\\d/.test(ch1) || (ch1 === '.' && /\\d/.test(chars[_i + 2]));\n\t}\n\tif (ch === '.') {\n\t\treturn /\\d/.test(ch1);\n\t}\n\treturn /\\d/.test(ch);\n}\n\n/*\n\tCheck if the stream starts with an identifier.\n */\n\nfunction is_ident(chars) {\n\tif (_i >= chars.length) {\n\t\treturn false;\n\t}\n\tlet ch = chars[_i];\n\tif (IdentStartCodePoint.test(ch)) {\n\t\treturn true;\n\t}\n\tif (ch === '-') {\n\t\tif (chars.length - _i < 2) {\n\t\t\treturn false;\n\t\t}\n\t\tlet ch1 = chars[_i + 1];\n\t\tif (ch1 === '-' || IdentStartCodePoint.test(ch1)) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\treturn false;\n}\n\n/*\n\t4.3.3. Consume a numeric token\n\thttps://drafts.csswg.org/css-syntax/#consume-numeric-token\n */\n\nconst huenits = {\n\tdeg: 1,\n\trad: 180 / Math.PI,\n\tgrad: 9 / 10,\n\tturn: 360\n};\n\nfunction num(chars) {\n\tlet value = '';\n\tif (chars[_i] === '-' || chars[_i] === '+') {\n\t\tvalue += chars[_i++];\n\t}\n\tvalue += digits(chars);\n\tif (chars[_i] === '.' && /\\d/.test(chars[_i + 1])) {\n\t\tvalue += chars[_i++] + digits(chars);\n\t}\n\tif (chars[_i] === 'e' || chars[_i] === 'E') {\n\t\tif (\n\t\t\t(chars[_i + 1] === '-' || chars[_i + 1] === '+') &&\n\t\t\t/\\d/.test(chars[_i + 2])\n\t\t) {\n\t\t\tvalue += chars[_i++] + chars[_i++] + digits(chars);\n\t\t} else if (/\\d/.test(chars[_i + 1])) {\n\t\t\tvalue += chars[_i++] + digits(chars);\n\t\t}\n\t}\n\tif (is_ident(chars)) {\n\t\tlet id = ident(chars);\n\t\tif (id === 'deg' || id === 'rad' || id === 'turn' || id === 'grad') {\n\t\t\treturn { type: Tok.Hue, value: value * huenits[id] };\n\t\t}\n\t\treturn undefined;\n\t}\n\tif (chars[_i] === '%') {\n\t\t_i++;\n\t\treturn { type: Tok.Percentage, value: +value };\n\t}\n\treturn { type: Tok.Number, value: +value };\n}\n\n/*\n\tConsume digits.\n */\nfunction digits(chars) {\n\tlet v = '';\n\twhile (/\\d/.test(chars[_i])) {\n\t\tv += chars[_i++];\n\t}\n\treturn v;\n}\n\n/*\n\tConsume an identifier.\n */\nfunction ident(chars) {\n\tlet v = '';\n\twhile (_i < chars.length && IdentCodePoint.test(chars[_i])) {\n\t\tv += chars[_i++];\n\t}\n\treturn v;\n}\n\n/*\n\tConsume an ident-like token.\n */\nfunction identlike(chars) {\n\tlet v = ident(chars);\n\tif (chars[_i] === '(') {\n\t\t_i++;\n\t\treturn { type: Tok.Function, value: v };\n\t}\n\tif (v === 'none') {\n\t\treturn { type: Tok.None, value: undefined };\n\t}\n\treturn { type: Tok.Ident, value: v };\n}\n\nexport function tokenize(str = '') {\n\tlet chars = str.trim();\n\tlet tokens = [];\n\tlet ch;\n\n\t/* reset counter */\n\t_i = 0;\n\n\twhile (_i < chars.length) {\n\t\tch = chars[_i++];\n\n\t\t/*\n\t\t\tConsume whitespace without emitting it\n\t\t */\n\t\tif (ch === '\\n' || ch === '\\t' || ch === ' ') {\n\t\t\twhile (\n\t\t\t\t_i < chars.length &&\n\t\t\t\t(chars[_i] === '\\n' || chars[_i] === '\\t' || chars[_i] === ' ')\n\t\t\t) {\n\t\t\t\t_i++;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (ch === ',') {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (ch === ')') {\n\t\t\ttokens.push({ type: Tok.ParenClose });\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (ch === '+') {\n\t\t\t_i--;\n\t\t\tif (is_num(chars)) {\n\t\t\t\ttokens.push(num(chars));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (ch === '-') {\n\t\t\t_i--;\n\t\t\tif (is_num(chars)) {\n\t\t\t\ttokens.push(num(chars));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (is_ident(chars)) {\n\t\t\t\ttokens.push({ type: Tok.Ident, value: ident(chars) });\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (ch === '.') {\n\t\t\t_i--;\n\t\t\tif (is_num(chars)) {\n\t\t\t\ttokens.push(num(chars));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (ch === '/') {\n\t\t\twhile (\n\t\t\t\t_i < chars.length &&\n\t\t\t\t(chars[_i] === '\\n' || chars[_i] === '\\t' || chars[_i] === ' ')\n\t\t\t) {\n\t\t\t\t_i++;\n\t\t\t}\n\t\t\tlet alpha;\n\t\t\tif (is_num(chars)) {\n\t\t\t\talpha = num(chars);\n\t\t\t\tif (alpha.type !== Tok.Hue) {\n\t\t\t\t\ttokens.push({ type: Tok.Alpha, value: alpha });\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (is_ident(chars)) {\n\t\t\t\tif (ident(chars) === 'none') {\n\t\t\t\t\ttokens.push({\n\t\t\t\t\t\ttype: Tok.Alpha,\n\t\t\t\t\t\tvalue: { type: Tok.None, value: undefined }\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (/\\d/.test(ch)) {\n\t\t\t_i--;\n\t\t\ttokens.push(num(chars));\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (IdentStartCodePoint.test(ch)) {\n\t\t\t_i--;\n\t\t\ttokens.push(identlike(chars));\n\t\t\tcontinue;\n\t\t}\n\n\t\t/*\n\t\t\tTreat everything not already handled as an error.\n\t\t */\n\t\treturn undefined;\n\t}\n\n\treturn tokens;\n}\n\nexport function parseColorSyntax(tokens) {\n\ttokens._i = 0;\n\tlet token = tokens[tokens._i++];\n\tif (!token || token.type !== Tok.Function || token.value !== 'color') {\n\t\treturn undefined;\n\t}\n\ttoken = tokens[tokens._i++];\n\tif (token.type !== Tok.Ident) {\n\t\treturn undefined;\n\t}\n\tconst mode = colorProfiles[token.value];\n\tif (!mode) {\n\t\treturn undefined;\n\t}\n\tconst res = { mode };\n\tconst coords = consumeCoords(tokens, false);\n\tif (!coords) {\n\t\treturn undefined;\n\t}\n\tconst channels = getMode(mode).channels;\n\tfor (let ii = 0, c, ch; ii < channels.length; ii++) {\n\t\tc = coords[ii];\n\t\tch = channels[ii];\n\t\tif (c.type !== Tok.None) {\n\t\t\tres[ch] = c.type === Tok.Number ? c.value : c.value / 100;\n\t\t\tif (ch === 'alpha') {\n\t\t\t\tres[ch] = Math.max(0, Math.min(1, res[ch]));\n\t\t\t}\n\t\t}\n\t}\n\treturn res;\n}\n\nfunction consumeCoords(tokens, includeHue) {\n\tconst coords = [];\n\tlet token;\n\twhile (tokens._i < tokens.length) {\n\t\ttoken = tokens[tokens._i++];\n\t\tif (\n\t\t\ttoken.type === Tok.None ||\n\t\t\ttoken.type === Tok.Number ||\n\t\t\ttoken.type === Tok.Alpha ||\n\t\t\ttoken.type === Tok.Percentage ||\n\t\t\t(includeHue && token.type === Tok.Hue)\n\t\t) {\n\t\t\tcoords.push(token);\n\t\t\tcontinue;\n\t\t}\n\t\tif (token.type === Tok.ParenClose) {\n\t\t\tif (tokens._i < tokens.length) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tif (coords.length < 3 || coords.length > 4) {\n\t\treturn undefined;\n\t}\n\n\tif (coords.length === 4) {\n\t\tif (coords[3].type !== Tok.Alpha) {\n\t\t\treturn undefined;\n\t\t}\n\t\tcoords[3] = coords[3].value;\n\t}\n\tif (coords.length === 3) {\n\t\tcoords.push({ type: Tok.None, value: undefined });\n\t}\n\n\treturn coords.every(c => c.type !== Tok.Alpha) ? coords : undefined;\n}\n\nexport function parseModernSyntax(tokens, includeHue) {\n\ttokens._i = 0;\n\tlet token = tokens[tokens._i++];\n\tif (!token || token.type !== Tok.Function) {\n\t\treturn undefined;\n\t}\n\tlet coords = consumeCoords(tokens, includeHue);\n\tif (!coords) {\n\t\treturn undefined;\n\t}\n\tcoords.unshift(token.value);\n\treturn coords;\n}\n\nconst parse = color => {\n\tif (typeof color !== 'string') {\n\t\treturn undefined;\n\t}\n\tconst tokens = tokenize(color);\n\tconst parsed = tokens ? parseModernSyntax(tokens, true) : undefined;\n\tlet result = undefined;\n\tlet i = 0;\n\tlet len = parsers.length;\n\twhile (i < len) {\n\t\tif ((result = parsers[i++](color, parsed)) !== undefined) {\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn tokens ? parseColorSyntax(tokens) : undefined;\n};\n\nexport default parse;\n","import { Tok } from '../parse.js';\n\nfunction parseRgb(color, parsed) {\n\tif (!parsed || (parsed[0] !== 'rgb' && parsed[0] !== 'rgba')) {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'rgb' };\n\tconst [, r, g, b, alpha] = parsed;\n\tif (r.type === Tok.Hue || g.type === Tok.Hue || b.type === Tok.Hue) {\n\t\treturn undefined;\n\t}\n\tif (r.type !== Tok.None) {\n\t\tres.r = r.type === Tok.Number ? r.value / 255 : r.value / 100;\n\t}\n\tif (g.type !== Tok.None) {\n\t\tres.g = g.type === Tok.Number ? g.value / 255 : g.value / 100;\n\t}\n\tif (b.type !== Tok.None) {\n\t\tres.b = b.type === Tok.Number ? b.value / 255 : b.value / 100;\n\t}\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseRgb;\n","const parseTransparent = c =>\n\tc === 'transparent'\n\t\t? { mode: 'rgb', r: 0, g: 0, b: 0, alpha: 0 }\n\t\t: undefined;\n\nexport default parseTransparent;\n","const lerp = (a, b, t) => a + t * (b - a);\nconst unlerp = (a, b, v) => (v - a) / (b - a);\n\nconst blerp = (a00, a01, a10, a11, tx, ty) => {\n\treturn lerp(lerp(a00, a01, tx), lerp(a10, a11, tx), ty);\n};\n\nconst trilerp = (\n\ta000,\n\ta010,\n\ta100,\n\ta110,\n\ta001,\n\ta011,\n\ta101,\n\ta111,\n\ttx,\n\tty,\n\ttz\n) => {\n\treturn lerp(\n\t\tblerp(a000, a010, a100, a110, tx, ty),\n\t\tblerp(a001, a011, a101, a111, tx, ty),\n\t\ttz\n\t);\n};\n\nexport { lerp, blerp, trilerp, unlerp };\n","const get_classes = arr => {\n\tlet classes = [];\n\tfor (let i = 0; i < arr.length - 1; i++) {\n\t\tlet a = arr[i];\n\t\tlet b = arr[i + 1];\n\t\tif (a === undefined && b === undefined) {\n\t\t\tclasses.push(undefined);\n\t\t} else if (a !== undefined && b !== undefined) {\n\t\t\tclasses.push([a, b]);\n\t\t} else {\n\t\t\tclasses.push(a !== undefined ? [a, a] : [b, b]);\n\t\t}\n\t}\n\treturn classes;\n};\n\nconst interpolatorPiecewise = interpolator => arr => {\n\tlet classes = get_classes(arr);\n\treturn t => {\n\t\tlet cls = t * classes.length;\n\t\tlet idx = t >= 1 ? classes.length - 1 : Math.max(Math.floor(cls), 0);\n\t\tlet pair = classes[idx];\n\t\treturn pair === undefined\n\t\t\t? undefined\n\t\t\t: interpolator(pair[0], pair[1], cls - idx);\n\t};\n};\n\nexport { interpolatorPiecewise };\n","import { lerp } from './lerp.js';\nimport { interpolatorPiecewise } from './piecewise.js';\n\nexport const interpolatorLinear = interpolatorPiecewise(lerp);\n","const fixupAlpha = arr => {\n\tlet some_defined = false;\n\tlet res = arr.map(v => {\n\t\tif (v !== undefined) {\n\t\t\tsome_defined = true;\n\t\t\treturn v;\n\t\t}\n\t\treturn 1;\n\t});\n\treturn some_defined ? res : arr;\n};\n\nexport { fixupAlpha };\n","import parseNamed from './parseNamed.js';\nimport parseHex from './parseHex.js';\nimport parseRgbLegacy from './parseRgbLegacy.js';\nimport parseRgb from './parseRgb.js';\nimport parseTransparent from './parseTransparent.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\n/*\n\tsRGB color space\n */\n\nconst definition = {\n\tmode: 'rgb',\n\tchannels: ['r', 'g', 'b', 'alpha'],\n\tparse: [\n\t\tparseRgb,\n\t\tparseHex,\n\t\tparseRgbLegacy,\n\t\tparseNamed,\n\t\tparseTransparent,\n\t\t'srgb'\n\t],\n\tserialize: 'srgb',\n\tinterpolate: {\n\t\tr: interpolatorLinear,\n\t\tg: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\tgamut: true,\n\twhite: { r: 1, g: 1, b: 1 },\n\tblack: { r: 0, g: 0, b: 0 }\n};\n\nexport default definition;\n","/*\n\tConvert A98 RGB values to CIE XYZ D65\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\t* https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf\n*/\n\nconst linearize = (v = 0) => Math.pow(Math.abs(v), 563 / 256) * Math.sign(v);\n\nconst convertA98ToXyz65 = a98 => {\n\tlet r = linearize(a98.r);\n\tlet g = linearize(a98.g);\n\tlet b = linearize(a98.b);\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx:\n\t\t\t0.5766690429101305 * r +\n\t\t\t0.1855582379065463 * g +\n\t\t\t0.1882286462349947 * b,\n\t\ty:\n\t\t\t0.297344975250536 * r +\n\t\t\t0.6273635662554661 * g +\n\t\t\t0.0752914584939979 * b,\n\t\tz:\n\t\t\t0.0270313613864123 * r +\n\t\t\t0.0706888525358272 * g +\n\t\t\t0.9913375368376386 * b\n\t};\n\tif (a98.alpha !== undefined) {\n\t\tres.alpha = a98.alpha;\n\t}\n\treturn res;\n};\n\nexport default convertA98ToXyz65;\n","/*\n\tConvert CIE XYZ D65 values to A98 RGB\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nconst gamma = v => Math.pow(Math.abs(v), 256 / 563) * Math.sign(v);\n\nconst convertXyz65ToA98 = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = {\n\t\tmode: 'a98',\n\t\tr: gamma(\n\t\t\tx * 2.0415879038107465 -\n\t\t\t\ty * 0.5650069742788597 -\n\t\t\t\t0.3447313507783297 * z\n\t\t),\n\t\tg: gamma(\n\t\t\tx * -0.9692436362808798 +\n\t\t\t\ty * 1.8759675015077206 +\n\t\t\t\t0.0415550574071756 * z\n\t\t),\n\t\tb: gamma(\n\t\t\tx * 0.0134442806320312 -\n\t\t\t\ty * 0.1183623922310184 +\n\t\t\t\t1.0151749943912058 * z\n\t\t)\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz65ToA98;\n","const fn = (c = 0) => {\n\tconst abs = Math.abs(c);\n\tif (abs <= 0.04045) {\n\t\treturn c / 12.92;\n\t}\n\treturn (Math.sign(c) || 1) * Math.pow((abs + 0.055) / 1.055, 2.4);\n};\n\nconst convertRgbToLrgb = ({ r, g, b, alpha }) => {\n\tlet res = {\n\t\tmode: 'lrgb',\n\t\tr: fn(r),\n\t\tg: fn(g),\n\t\tb: fn(b)\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertRgbToLrgb;\n","/*\n\tConvert sRGB values to CIE XYZ D65\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\t* https://observablehq.com/@danburzo/color-matrix-calculator\n*/\n\nimport convertRgbToLrgb from '../lrgb/convertRgbToLrgb.js';\n\nconst convertRgbToXyz65 = rgb => {\n\tlet { r, g, b, alpha } = convertRgbToLrgb(rgb);\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx:\n\t\t\t0.4123907992659593 * r +\n\t\t\t0.357584339383878 * g +\n\t\t\t0.1804807884018343 * b,\n\t\ty:\n\t\t\t0.2126390058715102 * r +\n\t\t\t0.715168678767756 * g +\n\t\t\t0.0721923153607337 * b,\n\t\tz:\n\t\t\t0.0193308187155918 * r +\n\t\t\t0.119194779794626 * g +\n\t\t\t0.9505321522496607 * b\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToXyz65;\n","const fn = (c = 0) => {\n\tconst abs = Math.abs(c);\n\tif (abs > 0.0031308) {\n\t\treturn (Math.sign(c) || 1) * (1.055 * Math.pow(abs, 1 / 2.4) - 0.055);\n\t}\n\treturn c * 12.92;\n};\n\nconst convertLrgbToRgb = ({ r, g, b, alpha }, mode = 'rgb') => {\n\tlet res = {\n\t\tmode,\n\t\tr: fn(r),\n\t\tg: fn(g),\n\t\tb: fn(b)\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertLrgbToRgb;\n","/*\n\tCIE XYZ D65 values to sRGB.\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\t* https://observablehq.com/@danburzo/color-matrix-calculator\n*/\n\nimport convertLrgbToRgb from '../lrgb/convertLrgbToRgb.js';\n\nconst convertXyz65ToRgb = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = convertLrgbToRgb({\n\t\tr:\n\t\t\tx * 3.2409699419045226 -\n\t\t\ty * 1.5373831775700939 -\n\t\t\t0.4986107602930034 * z,\n\t\tg:\n\t\t\tx * -0.9692436362808796 +\n\t\t\ty * 1.8759675015077204 +\n\t\t\t0.0415550574071756 * z,\n\t\tb:\n\t\t\tx * 0.0556300796969936 -\n\t\t\ty * 0.2039769588889765 +\n\t\t\t1.0569715142428784 * z\n\t});\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz65ToRgb;\n","import rgb from '../rgb/definition.js';\n\nimport convertA98ToXyz65 from './convertA98ToXyz65.js';\nimport convertXyz65ToA98 from './convertXyz65ToA98.js';\nimport convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\nimport convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\n\nconst definition = {\n\t...rgb,\n\tmode: 'a98',\n\tparse: ['a98-rgb'],\n\tserialize: 'a98-rgb',\n\n\tfromMode: {\n\t\trgb: color => convertXyz65ToA98(convertRgbToXyz65(color)),\n\t\txyz65: convertXyz65ToA98\n\t},\n\n\ttoMode: {\n\t\trgb: color => convertXyz65ToRgb(convertA98ToXyz65(color)),\n\t\txyz65: convertA98ToXyz65\n\t}\n};\n\nexport default definition;\n","const normalizeHue = hue => ((hue = hue % 360) < 0 ? hue + 360 : hue);\n\nexport default normalizeHue;\n","import normalizeHue from '../util/normalizeHue.js';\n\nconst hue = (hues, fn) => {\n\treturn hues\n\t\t.map((hue, idx, arr) => {\n\t\t\tif (hue === undefined) {\n\t\t\t\treturn hue;\n\t\t\t}\n\t\t\tlet normalized = normalizeHue(hue);\n\t\t\tif (idx === 0 || hues[idx - 1] === undefined) {\n\t\t\t\treturn normalized;\n\t\t\t}\n\t\t\treturn fn(normalized - normalizeHue(arr[idx - 1]));\n\t\t})\n\t\t.reduce((acc, curr) => {\n\t\t\tif (\n\t\t\t\t!acc.length ||\n\t\t\t\tcurr === undefined ||\n\t\t\t\tacc[acc.length - 1] === undefined\n\t\t\t) {\n\t\t\t\tacc.push(curr);\n\t\t\t\treturn acc;\n\t\t\t}\n\t\t\tacc.push(curr + acc[acc.length - 1]);\n\t\t\treturn acc;\n\t\t}, []);\n};\n\nconst fixupHueShorter = arr =>\n\thue(arr, d => (Math.abs(d) <= 180 ? d : d - 360 * Math.sign(d)));\nconst fixupHueLonger = arr =>\n\thue(arr, d => (Math.abs(d) >= 180 || d === 0 ? d : d - 360 * Math.sign(d)));\nconst fixupHueIncreasing = arr => hue(arr, d => (d >= 0 ? d : d + 360));\nconst fixupHueDecreasing = arr => hue(arr, d => (d <= 0 ? d : d - 360));\n\nexport {\n\tfixupHueShorter,\n\tfixupHueLonger,\n\tfixupHueIncreasing,\n\tfixupHueDecreasing\n};\n","export const M = [-0.14861, 1.78277, -0.29227, -0.90649, 1.97294, 0];\n\nexport const degToRad = Math.PI / 180;\nexport const radToDeg = 180 / Math.PI;\n","/*\n\tConvert a RGB color to the Cubehelix HSL color space.\n\n\tThis computation is not present in Green's paper:\n\thttps://arxiv.org/pdf/1108.5083.pdf\n\n\t...but can be derived from the inverse, HSL to RGB conversion.\n\n\tIt matches the math in Mike Bostock's D3 implementation:\n\n\thttps://github.com/d3/d3-color/blob/master/src/cubehelix.js\n */\n\nimport { radToDeg, M } from './constants.js';\n\nlet DE = M[3] * M[4];\nlet BE = M[1] * M[4];\nlet BCAD = M[1] * M[2] - M[0] * M[3];\n\nconst convertRgbToCubehelix = ({ r, g, b, alpha }) => {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\tlet l = (BCAD * b + r * DE - g * BE) / (BCAD + DE - BE);\n\tlet x = b - l;\n\tlet y = (M[4] * (g - l) - M[2] * x) / M[3];\n\n\tlet res = {\n\t\tmode: 'cubehelix',\n\t\tl: l,\n\t\ts:\n\t\t\tl === 0 || l === 1\n\t\t\t\t? undefined\n\t\t\t\t: Math.sqrt(x * x + y * y) / (M[4] * l * (1 - l))\n\t};\n\n\tif (res.s) res.h = Math.atan2(y, x) * radToDeg - 120;\n\tif (alpha !== undefined) res.alpha = alpha;\n\n\treturn res;\n};\n\nexport default convertRgbToCubehelix;\n","import { degToRad, M } from './constants.js';\n\nconst convertCubehelixToRgb = ({ h, s, l, alpha }) => {\n\tlet res = { mode: 'rgb' };\n\n\th = (h === undefined ? 0 : h + 120) * degToRad;\n\tif (l === undefined) l = 0;\n\n\tlet amp = s === undefined ? 0 : s * l * (1 - l);\n\n\tlet cosh = Math.cos(h);\n\tlet sinh = Math.sin(h);\n\n\tres.r = l + amp * (M[0] * cosh + M[1] * sinh);\n\tres.g = l + amp * (M[2] * cosh + M[3] * sinh);\n\tres.b = l + amp * (M[4] * cosh + M[5] * sinh);\n\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertCubehelixToRgb;\n","import { getMode } from './modes.js';\nimport converter from './converter.js';\nimport normalizeHue from './util/normalizeHue.js';\n\nconst differenceHueSaturation = (std, smp) => {\n\tif (std.h === undefined || smp.h === undefined || !std.s || !smp.s) {\n\t\treturn 0;\n\t}\n\tlet std_h = normalizeHue(std.h);\n\tlet smp_h = normalizeHue(smp.h);\n\tlet dH = Math.sin((((smp_h - std_h + 360) / 2) * Math.PI) / 180);\n\treturn 2 * Math.sqrt(std.s * smp.s) * dH;\n};\n\nconst differenceHueNaive = (std, smp) => {\n\tif (std.h === undefined || smp.h === undefined) {\n\t\treturn 0;\n\t}\n\tlet std_h = normalizeHue(std.h);\n\tlet smp_h = normalizeHue(smp.h);\n\tif (Math.abs(smp_h - std_h) > 180) {\n\t\t// todo should this be normalized once again?\n\t\treturn std_h - (smp_h - 360 * Math.sign(smp_h - std_h));\n\t}\n\treturn smp_h - std_h;\n};\n\nconst differenceHueChroma = (std, smp) => {\n\tif (std.h === undefined || smp.h === undefined || !std.c || !smp.c) {\n\t\treturn 0;\n\t}\n\tlet std_h = normalizeHue(std.h);\n\tlet smp_h = normalizeHue(smp.h);\n\tlet dH = Math.sin((((smp_h - std_h + 360) / 2) * Math.PI) / 180);\n\treturn 2 * Math.sqrt(std.c * smp.c) * dH;\n};\n\nconst differenceEuclidean = (mode = 'rgb', weights = [1, 1, 1, 0]) => {\n\tlet def = getMode(mode);\n\tlet channels = def.channels;\n\tlet diffs = def.difference;\n\tlet conv = converter(mode);\n\treturn (std, smp) => {\n\t\tlet ConvStd = conv(std);\n\t\tlet ConvSmp = conv(smp);\n\t\treturn Math.sqrt(\n\t\t\tchannels.reduce((sum, k, idx) => {\n\t\t\t\tlet delta = diffs[k]\n\t\t\t\t\t? diffs[k](ConvStd, ConvSmp)\n\t\t\t\t\t: ConvStd[k] - ConvSmp[k];\n\t\t\t\treturn (\n\t\t\t\t\tsum +\n\t\t\t\t\t(weights[idx] || 0) * Math.pow(isNaN(delta) ? 0 : delta, 2)\n\t\t\t\t);\n\t\t\t}, 0)\n\t\t);\n\t};\n};\n\nconst differenceCie76 = () => differenceEuclidean('lab65');\n\nconst differenceCie94 = (kL = 1, K1 = 0.045, K2 = 0.015) => {\n\tlet lab = converter('lab65');\n\n\treturn (std, smp) => {\n\t\tlet LabStd = lab(std);\n\t\tlet LabSmp = lab(smp);\n\n\t\t// Extract Lab values, and compute Chroma\n\t\tlet lStd = LabStd.l;\n\t\tlet aStd = LabStd.a;\n\t\tlet bStd = LabStd.b;\n\t\tlet cStd = Math.sqrt(aStd * aStd + bStd * bStd);\n\n\t\tlet lSmp = LabSmp.l;\n\t\tlet aSmp = LabSmp.a;\n\t\tlet bSmp = LabSmp.b;\n\t\tlet cSmp = Math.sqrt(aSmp * aSmp + bSmp * bSmp);\n\n\t\tlet dL2 = Math.pow(lStd - lSmp, 2);\n\t\tlet dC2 = Math.pow(cStd - cSmp, 2);\n\t\tlet dH2 = Math.pow(aStd - aSmp, 2) + Math.pow(bStd - bSmp, 2) - dC2;\n\n\t\treturn Math.sqrt(\n\t\t\tdL2 / Math.pow(kL, 2) +\n\t\t\t\tdC2 / Math.pow(1 + K1 * cStd, 2) +\n\t\t\t\tdH2 / Math.pow(1 + K2 * cStd, 2)\n\t\t);\n\t};\n};\n\n/*\n\tCIEDE2000 color difference, original Matlab implementation by Gaurav Sharma\n\tBased on \"The CIEDE2000 Color-Difference Formula: Implementation Notes, Supplementary Test Data, and Mathematical Observations\" \n\tby Gaurav Sharma, Wencheng Wu, Edul N. Dalal in Color Research and Application, vol. 30. No. 1, pp. 21-30, February 2005.\n\thttp://www2.ece.rochester.edu/~gsharma/ciede2000/\n */\n\nconst differenceCiede2000 = (Kl = 1, Kc = 1, Kh = 1) => {\n\tlet lab = converter('lab65');\n\treturn (std, smp) => {\n\t\tlet LabStd = lab(std);\n\t\tlet LabSmp = lab(smp);\n\n\t\tlet lStd = LabStd.l;\n\t\tlet aStd = LabStd.a;\n\t\tlet bStd = LabStd.b;\n\t\tlet cStd = Math.sqrt(aStd * aStd + bStd * bStd);\n\n\t\tlet lSmp = LabSmp.l;\n\t\tlet aSmp = LabSmp.a;\n\t\tlet bSmp = LabSmp.b;\n\t\tlet cSmp = Math.sqrt(aSmp * aSmp + bSmp * bSmp);\n\n\t\tlet cAvg = (cStd + cSmp) / 2;\n\n\t\tlet G =\n\t\t\t0.5 *\n\t\t\t(1 -\n\t\t\t\tMath.sqrt(\n\t\t\t\t\tMath.pow(cAvg, 7) / (Math.pow(cAvg, 7) + Math.pow(25, 7))\n\t\t\t\t));\n\n\t\tlet apStd = aStd * (1 + G);\n\t\tlet apSmp = aSmp * (1 + G);\n\n\t\tlet cpStd = Math.sqrt(apStd * apStd + bStd * bStd);\n\t\tlet cpSmp = Math.sqrt(apSmp * apSmp + bSmp * bSmp);\n\n\t\tlet hpStd =\n\t\t\tMath.abs(apStd) + Math.abs(bStd) === 0\n\t\t\t\t? 0\n\t\t\t\t: Math.atan2(bStd, apStd);\n\t\thpStd += (hpStd < 0) * 2 * Math.PI;\n\n\t\tlet hpSmp =\n\t\t\tMath.abs(apSmp) + Math.abs(bSmp) === 0\n\t\t\t\t? 0\n\t\t\t\t: Math.atan2(bSmp, apSmp);\n\t\thpSmp += (hpSmp < 0) * 2 * Math.PI;\n\n\t\tlet dL = lSmp - lStd;\n\t\tlet dC = cpSmp - cpStd;\n\n\t\tlet dhp = cpStd * cpSmp === 0 ? 0 : hpSmp - hpStd;\n\t\tdhp -= (dhp > Math.PI) * 2 * Math.PI;\n\t\tdhp += (dhp < -Math.PI) * 2 * Math.PI;\n\n\t\tlet dH = 2 * Math.sqrt(cpStd * cpSmp) * Math.sin(dhp / 2);\n\n\t\tlet Lp = (lStd + lSmp) / 2;\n\t\tlet Cp = (cpStd + cpSmp) / 2;\n\n\t\tlet hp;\n\t\tif (cpStd * cpSmp === 0) {\n\t\t\thp = hpStd + hpSmp;\n\t\t} else {\n\t\t\thp = (hpStd + hpSmp) / 2;\n\t\t\thp -= (Math.abs(hpStd - hpSmp) > Math.PI) * Math.PI;\n\t\t\thp += (hp < 0) * 2 * Math.PI;\n\t\t}\n\n\t\tlet Lpm50 = Math.pow(Lp - 50, 2);\n\t\tlet T =\n\t\t\t1 -\n\t\t\t0.17 * Math.cos(hp - Math.PI / 6) +\n\t\t\t0.24 * Math.cos(2 * hp) +\n\t\t\t0.32 * Math.cos(3 * hp + Math.PI / 30) -\n\t\t\t0.2 * Math.cos(4 * hp - (63 * Math.PI) / 180);\n\n\t\tlet Sl = 1 + (0.015 * Lpm50) / Math.sqrt(20 + Lpm50);\n\t\tlet Sc = 1 + 0.045 * Cp;\n\t\tlet Sh = 1 + 0.015 * Cp * T;\n\n\t\tlet deltaTheta =\n\t\t\t((30 * Math.PI) / 180) *\n\t\t\tMath.exp(-1 * Math.pow(((180 / Math.PI) * hp - 275) / 25, 2));\n\t\tlet Rc =\n\t\t\t2 *\n\t\t\tMath.sqrt(Math.pow(Cp, 7) / (Math.pow(Cp, 7) + Math.pow(25, 7)));\n\n\t\tlet Rt = -1 * Math.sin(2 * deltaTheta) * Rc;\n\n\t\treturn Math.sqrt(\n\t\t\tMath.pow(dL / (Kl * Sl), 2) +\n\t\t\t\tMath.pow(dC / (Kc * Sc), 2) +\n\t\t\t\tMath.pow(dH / (Kh * Sh), 2) +\n\t\t\t\t(((Rt * dC) / (Kc * Sc)) * dH) / (Kh * Sh)\n\t\t);\n\t};\n};\n\n/*\n\tCMC (l:c) difference formula\n\n\tReferences:\n\t\thttps://en.wikipedia.org/wiki/Color_difference#CMC_l:c_(1984)\n\t\thttp://www.brucelindbloom.com/index.html?Eqn_DeltaE_CMC.html\n */\nconst differenceCmc = (l = 1, c = 1) => {\n\tlet lab = converter('lab65');\n\n\t/*\n\t\tComparte two colors:\n\t\tstd - standard (first) color\n\t\tsmp - sample (second) color\n\t */\n\treturn (std, smp) => {\n\t\t// convert standard color to Lab\n\t\tlet LabStd = lab(std);\n\t\tlet lStd = LabStd.l;\n\t\tlet aStd = LabStd.a;\n\t\tlet bStd = LabStd.b;\n\n\t\t// Obtain hue/chroma\n\t\tlet cStd = Math.sqrt(aStd * aStd + bStd * bStd);\n\t\tlet hStd = Math.atan2(bStd, aStd);\n\t\thStd = hStd + 2 * Math.PI * (hStd < 0);\n\n\t\t// convert sample color to Lab, obtain LCh\n\t\tlet LabSmp = lab(smp);\n\t\tlet lSmp = LabSmp.l;\n\t\tlet aSmp = LabSmp.a;\n\t\tlet bSmp = LabSmp.b;\n\n\t\t// Obtain chroma\n\t\tlet cSmp = Math.sqrt(aSmp * aSmp + bSmp * bSmp);\n\n\t\t// lightness delta squared\n\t\tlet dL2 = Math.pow(lStd - lSmp, 2);\n\n\t\t// chroma delta squared\n\t\tlet dC2 = Math.pow(cStd - cSmp, 2);\n\n\t\t// hue delta squared\n\t\tlet dH2 = Math.pow(aStd - aSmp, 2) + Math.pow(bStd - bSmp, 2) - dC2;\n\n\t\tlet F = Math.sqrt(Math.pow(cStd, 4) / (Math.pow(cStd, 4) + 1900));\n\t\tlet T =\n\t\t\thStd >= (164 / 180) * Math.PI && hStd <= (345 / 180) * Math.PI\n\t\t\t\t? 0.56 + Math.abs(0.2 * Math.cos(hStd + (168 / 180) * Math.PI))\n\t\t\t\t: 0.36 + Math.abs(0.4 * Math.cos(hStd + (35 / 180) * Math.PI));\n\n\t\tlet Sl = lStd < 16 ? 0.511 : (0.040975 * lStd) / (1 + 0.01765 * lStd);\n\t\tlet Sc = (0.0638 * cStd) / (1 + 0.0131 * cStd) + 0.638;\n\t\tlet Sh = Sc * (F * T + 1 - F);\n\n\t\treturn Math.sqrt(\n\t\t\tdL2 / Math.pow(l * Sl, 2) +\n\t\t\t\tdC2 / Math.pow(c * Sc, 2) +\n\t\t\t\tdH2 / Math.pow(Sh, 2)\n\t\t);\n\t};\n};\n\n/*\n\n\tHyAB color difference formula, introduced in:\n\n\t\tAbasi S, Amani Tehran M, Fairchild MD. \n\t\t\"Distance metrics for very large color differences.\"\n\t\tColor Res Appl. 2019; 1–16. \n\t\thttps://doi.org/10.1002/col.22451\n\n\tPDF available at:\n\t\n\t\thttp://markfairchild.org/PDFs/PAP40.pdf\n */\nconst differenceHyab = () => {\n\tlet lab = converter('lab65');\n\treturn (std, smp) => {\n\t\tlet LabStd = lab(std);\n\t\tlet LabSmp = lab(smp);\n\t\tlet dL = LabStd.l - LabSmp.l;\n\t\tlet dA = LabStd.a - LabSmp.a;\n\t\tlet dB = LabStd.b - LabSmp.b;\n\t\treturn Math.abs(dL) + Math.sqrt(dA * dA + dB * dB);\n\t};\n};\n\n/*\n\t\"Measuring perceived color difference using YIQ NTSC\n\ttransmission color space in mobile applications\"\n\t\t\n\t\tby Yuriy Kotsarenko, Fernando Ramos in:\n\t\tProgramación Matemática y Software (2010) \n\n\tAvailable at:\n\t\t\n\t\thttp://www.progmat.uaem.mx:8080/artVol2Num2/Articulo3Vol2Num2.pdf\n */\nconst differenceKotsarenkoRamos = () =>\n\tdifferenceEuclidean('yiq', [0.5053, 0.299, 0.1957]);\n\n/*\n\tΔE_ITP, as defined in Rec. ITU-R BT.2124:\n\n\thttps://www.itu.int/rec/R-REC-BT.2124/en\n*/\nconst differenceItp = () =>\n\tdifferenceEuclidean('itp', [518400, 129600, 518400]);\n\nexport {\n\tdifferenceHueChroma,\n\tdifferenceHueSaturation,\n\tdifferenceHueNaive,\n\tdifferenceEuclidean,\n\tdifferenceCie76,\n\tdifferenceCie94,\n\tdifferenceCiede2000,\n\tdifferenceCmc,\n\tdifferenceHyab,\n\tdifferenceKotsarenkoRamos,\n\tdifferenceItp\n};\n","import converter from './converter.js';\nimport { getMode } from './modes.js';\n\nconst averageAngle = val => {\n\t// See: https://en.wikipedia.org/wiki/Mean_of_circular_quantities\n\tlet sum = val.reduce(\n\t\t(sum, val) => {\n\t\t\tif (val !== undefined) {\n\t\t\t\tlet rad = (val * Math.PI) / 180;\n\t\t\t\tsum.sin += Math.sin(rad);\n\t\t\t\tsum.cos += Math.cos(rad);\n\t\t\t}\n\t\t\treturn sum;\n\t\t},\n\t\t{ sin: 0, cos: 0 }\n\t);\n\tlet angle = (Math.atan2(sum.sin, sum.cos) * 180) / Math.PI;\n\treturn angle < 0 ? 360 + angle : angle;\n};\n\nconst averageNumber = val => {\n\tlet a = val.filter(v => v !== undefined);\n\treturn a.length ? a.reduce((sum, v) => sum + v, 0) / a.length : undefined;\n};\n\nconst isfn = o => typeof o === 'function';\n\nfunction average(colors, mode = 'rgb', overrides) {\n\tlet def = getMode(mode);\n\tlet cc = colors.map(converter(mode));\n\treturn def.channels.reduce(\n\t\t(res, ch) => {\n\t\t\tlet arr = cc.map(c => c[ch]).filter(val => val !== undefined);\n\t\t\tif (arr.length) {\n\t\t\t\tlet fn;\n\t\t\t\tif (isfn(overrides)) {\n\t\t\t\t\tfn = overrides;\n\t\t\t\t} else if (overrides && isfn(overrides[ch])) {\n\t\t\t\t\tfn = overrides[ch];\n\t\t\t\t} else if (def.average && isfn(def.average[ch])) {\n\t\t\t\t\tfn = def.average[ch];\n\t\t\t\t} else {\n\t\t\t\t\tfn = averageNumber;\n\t\t\t\t}\n\t\t\t\tres[ch] = fn(arr, ch);\n\t\t\t}\n\t\t\treturn res;\n\t\t},\n\t\t{ mode }\n\t);\n}\n\nexport { average, averageAngle, averageNumber };\n","/* \n\tDave Green's Cubehelix\n\t----------------------\n\n\tGreen, D. A., 2011, \"A colour scheme for the display of astronomical intensity images\", \n\tBulletin of the Astronomical Society of India, 39, 289. (2011BASI...39..289G at ADS.) \n\n\thttps://www.mrao.cam.ac.uk/%7Edag/CUBEHELIX/\n\thttps://arxiv.org/pdf/1108.5083.pdf\n\n\tAlthough Cubehelix was defined to be a method to obtain a colour scheme,\n\tit actually contains a definition of a colour space, as identified by \n\tMike Bostock and implemented in D3.js.\n\n\tGreen's paper introduces the following terminology:\n\n\t* \ta `lightness` dimension in the interval [0, 1] \n\t\ton which we interpolate to obtain the colour scheme\n\t*\ta `start` colour that is analogous to a Hue in HSL space\n\t*\ta number of `rotations` around the Hue cylinder.\n\t*\ta `hue` parameter which should more appropriately be called `saturation`\n\t\n\tAs such, the original definition of the Cubehelix scheme is actually an\n\tinterpolation between two colors in the Cubehelix space:\n\n\tH: start \t\t\t\tH: start + 360 * rotations\n\tS: hue \t\t\t->\t\tS: hue\n\tL: 0\t\t\t\t\tL: 1\n\n\tWe can therefore extend the interpolation to any two colors in this space,\n\twith a variable Saturation and a Lightness interval other than the fixed 0 -> 1.\n*/\n\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport convertRgbToCubehelix from './convertRgbToCubehelix.js';\nimport convertCubehelixToRgb from './convertCubehelixToRgb.js';\nimport { differenceHueSaturation } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'cubehelix',\n\tchannels: ['h', 's', 'l', 'alpha'],\n\tparse: ['--cubehelix'],\n\tserialize: '--cubehelix',\n\n\tranges: {\n\t\th: [0, 360],\n\t\ts: [0, 4.614],\n\t\tl: [0, 1]\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToCubehelix\n\t},\n\n\ttoMode: {\n\t\trgb: convertCubehelixToRgb\n\t},\n\n\tinterpolate: {\n\t\th: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupHueShorter\n\t\t},\n\t\ts: interpolatorLinear,\n\t\tl: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t},\n\n\tdifference: {\n\t\th: differenceHueSaturation\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","import normalizeHue from '../util/normalizeHue.js';\n\n/* \n\tReferences: \n\t\t* https://drafts.csswg.org/css-color/#lab-to-lch\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n*/\nconst convertLabToLch = ({ l, a, b, alpha }, mode = 'lch') => {\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\tlet c = Math.sqrt(a * a + b * b);\n\tlet res = { mode, l, c };\n\tif (c) res.h = normalizeHue((Math.atan2(b, a) * 180) / Math.PI);\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertLabToLch;\n","/* \n\tReferences: \n\t\t* https://drafts.csswg.org/css-color/#lch-to-lab\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n*/\nconst convertLchToLab = ({ l, c, h, alpha }, mode = 'lab') => {\n\tif (h === undefined) h = 0;\n\tlet res = {\n\t\tmode,\n\t\tl,\n\t\ta: c ? c * Math.cos((h / 180) * Math.PI) : 0,\n\t\tb: c ? c * Math.sin((h / 180) * Math.PI) : 0\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertLchToLab;\n","export const k = Math.pow(29, 3) / Math.pow(3, 3);\nexport const e = Math.pow(6, 3) / Math.pow(29, 3);\n","/*\n\tThe XYZ tristimulus values (white point)\n\tof standard illuminants for the CIE 1931 2° \n\tstandard observer.\n\n\tSee: https://en.wikipedia.org/wiki/Standard_illuminant\n */\n\nexport const D50 = {\n\tX: 0.3457 / 0.3585,\n\tY: 1,\n\tZ: (1 - 0.3457 - 0.3585) / 0.3585\n};\n\nexport const D65 = {\n\tX: 0.3127 / 0.329,\n\tY: 1,\n\tZ: (1 - 0.3127 - 0.329) / 0.329\n};\n\nexport const k = Math.pow(29, 3) / Math.pow(3, 3);\nexport const e = Math.pow(6, 3) / Math.pow(29, 3);\n","import { k, e } from '../xyz65/constants.js';\nimport { D65 } from '../constants.js';\n\nlet fn = v => (Math.pow(v, 3) > e ? Math.pow(v, 3) : (116 * v - 16) / k);\n\nconst convertLab65ToXyz65 = ({ l, a, b, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\n\tlet fy = (l + 16) / 116;\n\tlet fx = a / 500 + fy;\n\tlet fz = fy - b / 200;\n\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx: fn(fx) * D65.X,\n\t\ty: fn(fy) * D65.Y,\n\t\tz: fn(fz) * D65.Z\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertLab65ToXyz65;\n","import convertLab65ToXyz65 from './convertLab65ToXyz65.js';\nimport convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\n\nconst convertLab65ToRgb = lab => convertXyz65ToRgb(convertLab65ToXyz65(lab));\n\nexport default convertLab65ToRgb;\n","import { k, e } from '../xyz65/constants.js';\nimport { D65 } from '../constants.js';\n\nconst f = value => (value > e ? Math.cbrt(value) : (k * value + 16) / 116);\n\nconst convertXyz65ToLab65 = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet f0 = f(x / D65.X);\n\tlet f1 = f(y / D65.Y);\n\tlet f2 = f(z / D65.Z);\n\n\tlet res = {\n\t\tmode: 'lab65',\n\t\tl: 116 * f1 - 16,\n\t\ta: 500 * (f0 - f1),\n\t\tb: 200 * (f1 - f2)\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertXyz65ToLab65;\n","import convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\nimport convertXyz65ToLab65 from './convertXyz65ToLab65.js';\n\nconst convertRgbToLab65 = rgb => {\n\tlet res = convertXyz65ToLab65(convertRgbToXyz65(rgb));\n\n\t// Fixes achromatic RGB colors having a _slight_ chroma due to floating-point errors\n\t// and approximated computations in sRGB <-> CIELab.\n\t// See: https://github.com/d3/d3-color/pull/46\n\tif (rgb.r === rgb.b && rgb.b === rgb.g) {\n\t\tres.a = res.b = 0;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToLab65;\n","export const kE = 1;\nexport const kCH = 1;\nexport const θ = (26 / 180) * Math.PI;\nexport const cosθ = Math.cos(θ);\nexport const sinθ = Math.sin(θ);\nexport const factor = 100 / Math.log(139 / 100); // ~ 303.67\n","import { kCH, kE, sinθ, cosθ, θ, factor } from './constants.js';\n\n/*\n\tConvert DIN99o LCh to CIELab D65\n\t--------------------------------\n */\n\nconst convertDlchToLab65 = ({ l, c, h, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (c === undefined) c = 0;\n\tif (h === undefined) h = 0;\n\tlet res = {\n\t\tmode: 'lab65',\n\t\tl: (Math.exp((l * kE) / factor) - 1) / 0.0039\n\t};\n\n\tlet G = (Math.exp(0.0435 * c * kCH * kE) - 1) / 0.075;\n\tlet e = G * Math.cos((h / 180) * Math.PI - θ);\n\tlet f = G * Math.sin((h / 180) * Math.PI - θ);\n\tres.a = e * cosθ - (f / 0.83) * sinθ;\n\tres.b = e * sinθ + (f / 0.83) * cosθ;\n\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertDlchToLab65;\n","import { kCH, kE, sinθ, cosθ, θ, factor } from './constants.js';\nimport normalizeHue from '../util/normalizeHue.js';\n\n/*\n\tConvert CIELab D65 to DIN99o LCh\n\t================================\n */\n\nconst convertLab65ToDlch = ({ l, a, b, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\tlet e = a * cosθ + b * sinθ;\n\tlet f = 0.83 * (b * cosθ - a * sinθ);\n\tlet G = Math.sqrt(e * e + f * f);\n\tlet res = {\n\t\tmode: 'dlch',\n\t\tl: (factor / kE) * Math.log(1 + 0.0039 * l),\n\t\tc: Math.log(1 + 0.075 * G) / (0.0435 * kCH * kE)\n\t};\n\n\tif (res.c) {\n\t\tres.h = normalizeHue(((Math.atan2(f, e) + θ) / Math.PI) * 180);\n\t}\n\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertLab65ToDlch;\n","import convertLabToLch from '../lch/convertLabToLch.js';\nimport convertLchToLab from '../lch/convertLchToLab.js';\nimport convertLab65ToRgb from '../lab65/convertLab65ToRgb.js';\nimport convertRgbToLab65 from '../lab65/convertRgbToLab65.js';\nimport convertDlchToLab65 from '../dlch/convertDlchToLab65.js';\nimport convertLab65ToDlch from '../dlch/convertLab65ToDlch.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst convertDlabToLab65 = c => convertDlchToLab65(convertLabToLch(c, 'dlch'));\nconst convertLab65ToDlab = c => convertLchToLab(convertLab65ToDlch(c), 'dlab');\n\nconst definition = {\n\tmode: 'dlab',\n\n\tparse: ['--din99o-lab'],\n\tserialize: '--din99o-lab',\n\n\ttoMode: {\n\t\tlab65: convertDlabToLab65,\n\t\trgb: c => convertLab65ToRgb(convertDlabToLab65(c))\n\t},\n\n\tfromMode: {\n\t\tlab65: convertLab65ToDlab,\n\t\trgb: c => convertLab65ToDlab(convertRgbToLab65(c))\n\t},\n\n\tchannels: ['l', 'a', 'b', 'alpha'],\n\n\tranges: {\n\t\tl: [0, 100],\n\t\ta: [-40.09, 45.501],\n\t\tb: [-40.469, 44.344]\n\t},\n\n\tinterpolate: {\n\t\tl: interpolatorLinear,\n\t\ta: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t}\n};\n\nexport default definition;\n","import convertLabToLch from '../lch/convertLabToLch.js';\nimport convertLchToLab from '../lch/convertLchToLab.js';\nimport convertDlchToLab65 from './convertDlchToLab65.js';\nimport convertLab65ToDlch from './convertLab65ToDlch.js';\nimport convertLab65ToRgb from '../lab65/convertLab65ToRgb.js';\nimport convertRgbToLab65 from '../lab65/convertRgbToLab65.js';\n\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueChroma } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'dlch',\n\n\tparse: ['--din99o-lch'],\n\tserialize: '--din99o-lch',\n\n\ttoMode: {\n\t\tlab65: convertDlchToLab65,\n\t\tdlab: c => convertLchToLab(c, 'dlab'),\n\t\trgb: c => convertLab65ToRgb(convertDlchToLab65(c))\n\t},\n\n\tfromMode: {\n\t\tlab65: convertLab65ToDlch,\n\t\tdlab: c => convertLabToLch(c, 'dlch'),\n\t\trgb: c => convertLab65ToDlch(convertRgbToLab65(c))\n\t},\n\n\tchannels: ['l', 'c', 'h', 'alpha'],\n\n\tranges: {\n\t\tl: [0, 100],\n\t\tc: [0, 51.484],\n\t\th: [0, 360]\n\t},\n\n\tinterpolate: {\n\t\tl: interpolatorLinear,\n\t\tc: interpolatorLinear,\n\t\th: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupHueShorter\n\t\t},\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t},\n\n\tdifference: {\n\t\th: differenceHueChroma\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","import normalizeHue from '../util/normalizeHue.js';\n\n// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Converting_to_RGB\n\nexport default function convertHsiToRgb({ h, s, i, alpha }) {\n\th = normalizeHue(h !== undefined ? h : 0);\n\tif (s === undefined) s = 0;\n\tif (i === undefined) i = 0;\n\tlet f = Math.abs(((h / 60) % 2) - 1);\n\tlet res;\n\tswitch (Math.floor(h / 60)) {\n\t\tcase 0:\n\t\t\tres = {\n\t\t\t\tr: i * (1 + s * (3 / (2 - f) - 1)),\n\t\t\t\tg: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1)),\n\t\t\t\tb: i * (1 - s)\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tres = {\n\t\t\t\tr: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1)),\n\t\t\t\tg: i * (1 + s * (3 / (2 - f) - 1)),\n\t\t\t\tb: i * (1 - s)\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tres = {\n\t\t\t\tr: i * (1 - s),\n\t\t\t\tg: i * (1 + s * (3 / (2 - f) - 1)),\n\t\t\t\tb: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1))\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tres = {\n\t\t\t\tr: i * (1 - s),\n\t\t\t\tg: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1)),\n\t\t\t\tb: i * (1 + s * (3 / (2 - f) - 1))\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tres = {\n\t\t\t\tr: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1)),\n\t\t\t\tg: i * (1 - s),\n\t\t\t\tb: i * (1 + s * (3 / (2 - f) - 1))\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tres = {\n\t\t\t\tr: i * (1 + s * (3 / (2 - f) - 1)),\n\t\t\t\tg: i * (1 - s),\n\t\t\t\tb: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1))\n\t\t\t};\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tres = { r: i * (1 - s), g: i * (1 - s), b: i * (1 - s) };\n\t}\n\n\tres.mode = 'rgb';\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n","// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Formal_derivation\n\nexport default function convertRgbToHsi({ r, g, b, alpha }) {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\tlet M = Math.max(r, g, b),\n\t\tm = Math.min(r, g, b);\n\tlet res = {\n\t\tmode: 'hsi',\n\t\ts: r + g + b === 0 ? 0 : 1 - (3 * m) / (r + g + b),\n\t\ti: (r + g + b) / 3\n\t};\n\tif (M - m !== 0)\n\t\tres.h =\n\t\t\t(M === r\n\t\t\t\t? (g - b) / (M - m) + (g < b) * 6\n\t\t\t\t: M === g\n\t\t\t\t? (b - r) / (M - m) + 2\n\t\t\t\t: (r - g) / (M - m) + 4) * 60;\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n","import convertHsiToRgb from './convertHsiToRgb.js';\nimport convertRgbToHsi from './convertRgbToHsi.js';\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueSaturation } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'hsi',\n\n\ttoMode: {\n\t\trgb: convertHsiToRgb\n\t},\n\n\tparse: ['--hsi'],\n\tserialize: '--hsi',\n\n\tfromMode: {\n\t\trgb: convertRgbToHsi\n\t},\n\n\tchannels: ['h', 's', 'i', 'alpha'],\n\n\tranges: {\n\t\th: [0, 360]\n\t},\n\n\tgamut: 'rgb',\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\ts: interpolatorLinear,\n\t\ti: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueSaturation\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","import normalizeHue from '../util/normalizeHue.js';\n// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Converting_to_RGB\n\nexport default function convertHslToRgb({ h, s, l, alpha }) {\n\th = normalizeHue(h !== undefined ? h : 0);\n\tif (s === undefined) s = 0;\n\tif (l === undefined) l = 0;\n\tlet m1 = l + s * (l < 0.5 ? l : 1 - l);\n\tlet m2 = m1 - (m1 - l) * 2 * Math.abs(((h / 60) % 2) - 1);\n\tlet res;\n\tswitch (Math.floor(h / 60)) {\n\t\tcase 0:\n\t\t\tres = { r: m1, g: m2, b: 2 * l - m1 };\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tres = { r: m2, g: m1, b: 2 * l - m1 };\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tres = { r: 2 * l - m1, g: m1, b: m2 };\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tres = { r: 2 * l - m1, g: m2, b: m1 };\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tres = { r: m2, g: 2 * l - m1, b: m1 };\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tres = { r: m1, g: 2 * l - m1, b: m2 };\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tres = { r: 2 * l - m1, g: 2 * l - m1, b: 2 * l - m1 };\n\t}\n\tres.mode = 'rgb';\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n","// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Formal_derivation\n\nexport default function convertRgbToHsl({ r, g, b, alpha }) {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\tlet M = Math.max(r, g, b),\n\t\tm = Math.min(r, g, b);\n\tlet res = {\n\t\tmode: 'hsl',\n\t\ts: M === m ? 0 : (M - m) / (1 - Math.abs(M + m - 1)),\n\t\tl: 0.5 * (M + m)\n\t};\n\tif (M - m !== 0)\n\t\tres.h =\n\t\t\t(M === r\n\t\t\t\t? (g - b) / (M - m) + (g < b) * 6\n\t\t\t\t: M === g\n\t\t\t\t? (b - r) / (M - m) + 2\n\t\t\t\t: (r - g) / (M - m) + 4) * 60;\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n","const hueToDeg = (val, unit) => {\n\tswitch (unit) {\n\t\tcase 'deg':\n\t\t\treturn +val;\n\t\tcase 'rad':\n\t\t\treturn (val / Math.PI) * 180;\n\t\tcase 'grad':\n\t\t\treturn (val / 10) * 9;\n\t\tcase 'turn':\n\t\t\treturn val * 360;\n\t}\n};\n\nexport default hueToDeg;\n","import hueToDeg from '../util/hue.js';\nimport { hue, per, num_per, c } from '../util/regex.js';\n\n/*\n\thsl() regular expressions for legacy format\n\tReference: https://drafts.csswg.org/css-color/#the-hsl-notation\n */\nconst hsl_old = new RegExp(\n\t`^hsla?\\\\(\\\\s*${hue}${c}${per}${c}${per}\\\\s*(?:,\\\\s*${num_per}\\\\s*)?\\\\)$`\n);\n\nconst parseHslLegacy = color => {\n\tlet match = color.match(hsl_old);\n\tif (!match) return;\n\tlet res = { mode: 'hsl' };\n\n\tif (match[3] !== undefined) {\n\t\tres.h = +match[3];\n\t} else if (match[1] !== undefined && match[2] !== undefined) {\n\t\tres.h = hueToDeg(match[1], match[2]);\n\t}\n\n\tif (match[4] !== undefined) {\n\t\tres.s = Math.min(Math.max(0, match[4] / 100), 1);\n\t}\n\n\tif (match[5] !== undefined) {\n\t\tres.l = Math.min(Math.max(0, match[5] / 100), 1);\n\t}\n\n\tif (match[6] !== undefined) {\n\t\tres.alpha = Math.max(0, Math.min(1, match[6] / 100));\n\t} else if (match[7] !== undefined) {\n\t\tres.alpha = Math.max(0, Math.min(1, +match[7]));\n\t}\n\treturn res;\n};\n\nexport default parseHslLegacy;\n","import { Tok } from '../parse.js';\n\nfunction parseHsl(color, parsed) {\n\tif (!parsed || (parsed[0] !== 'hsl' && parsed[0] !== 'hsla')) {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'hsl' };\n\tconst [, h, s, l, alpha] = parsed;\n\n\tif (h.type !== Tok.None) {\n\t\tif (h.type === Tok.Percentage) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.h = h.value;\n\t}\n\n\tif (s.type !== Tok.None) {\n\t\tif (s.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.s = s.value / 100;\n\t}\n\n\tif (l.type !== Tok.None) {\n\t\tif (l.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.l = l.value / 100;\n\t}\n\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseHsl;\n","import convertHslToRgb from './convertHslToRgb.js';\nimport convertRgbToHsl from './convertRgbToHsl.js';\nimport parseHslLegacy from './parseHslLegacy.js';\nimport parseHsl from './parseHsl.js';\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueSaturation } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'hsl',\n\n\ttoMode: {\n\t\trgb: convertHslToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToHsl\n\t},\n\n\tchannels: ['h', 's', 'l', 'alpha'],\n\n\tranges: {\n\t\th: [0, 360]\n\t},\n\n\tgamut: 'rgb',\n\n\tparse: [parseHsl, parseHslLegacy],\n\tserialize: c =>\n\t\t`hsl(${c.h !== undefined ? c.h : 'none'} ${\n\t\t\tc.s !== undefined ? c.s * 100 + '%' : 'none'\n\t\t} ${c.l !== undefined ? c.l * 100 + '%' : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`,\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\ts: interpolatorLinear,\n\t\tl: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueSaturation\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","import normalizeHue from '../util/normalizeHue.js';\n\n// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Converting_to_RGB\n\nexport default function convertHsvToRgb({ h, s, v, alpha }) {\n\th = normalizeHue(h !== undefined ? h : 0);\n\tif (s === undefined) s = 0;\n\tif (v === undefined) v = 0;\n\tlet f = Math.abs(((h / 60) % 2) - 1);\n\tlet res;\n\tswitch (Math.floor(h / 60)) {\n\t\tcase 0:\n\t\t\tres = { r: v, g: v * (1 - s * f), b: v * (1 - s) };\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tres = { r: v * (1 - s * f), g: v, b: v * (1 - s) };\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tres = { r: v * (1 - s), g: v, b: v * (1 - s * f) };\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tres = { r: v * (1 - s), g: v * (1 - s * f), b: v };\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tres = { r: v * (1 - s * f), g: v * (1 - s), b: v };\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tres = { r: v, g: v * (1 - s), b: v * (1 - s * f) };\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tres = { r: v * (1 - s), g: v * (1 - s), b: v * (1 - s) };\n\t}\n\tres.mode = 'rgb';\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n","// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Formal_derivation\n\nexport default function convertRgbToHsv({ r, g, b, alpha }) {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\tlet M = Math.max(r, g, b),\n\t\tm = Math.min(r, g, b);\n\tlet res = {\n\t\tmode: 'hsv',\n\t\ts: M === 0 ? 0 : 1 - m / M,\n\t\tv: M\n\t};\n\tif (M - m !== 0)\n\t\tres.h =\n\t\t\t(M === r\n\t\t\t\t? (g - b) / (M - m) + (g < b) * 6\n\t\t\t\t: M === g\n\t\t\t\t? (b - r) / (M - m) + 2\n\t\t\t\t: (r - g) / (M - m) + 4) * 60;\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n","import convertHsvToRgb from './convertHsvToRgb.js';\nimport convertRgbToHsv from './convertRgbToHsv.js';\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueSaturation } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'hsv',\n\n\ttoMode: {\n\t\trgb: convertHsvToRgb\n\t},\n\n\tparse: ['--hsv'],\n\tserialize: '--hsv',\n\n\tfromMode: {\n\t\trgb: convertRgbToHsv\n\t},\n\n\tchannels: ['h', 's', 'v', 'alpha'],\n\n\tranges: {\n\t\th: [0, 360]\n\t},\n\n\tgamut: 'rgb',\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\ts: interpolatorLinear,\n\t\tv: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueSaturation\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","/*\n\tHWB to RGB converter\n\t--------------------\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#hwb-to-rgb\n\t\t* https://en.wikipedia.org/wiki/HWB_color_model\n\t\t* http://alvyray.com/Papers/CG/HWB_JGTv208.pdf\n */\n\nimport convertHsvToRgb from '../hsv/convertHsvToRgb.js';\n\nexport default function convertHwbToRgb({ h, w, b, alpha }) {\n\tif (w === undefined) w = 0;\n\tif (b === undefined) b = 0;\n\t// normalize w + b to 1\n\tif (w + b > 1) {\n\t\tlet s = w + b;\n\t\tw /= s;\n\t\tb /= s;\n\t}\n\treturn convertHsvToRgb({\n\t\th: h,\n\t\ts: b === 1 ? 1 : 1 - w / (1 - b),\n\t\tv: 1 - b,\n\t\talpha: alpha\n\t});\n}\n","/*\n\tRGB to HWB converter\n\t--------------------\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#hwb-to-rgb\n\t\t* https://en.wikipedia.org/wiki/HWB_color_model\n\t\t* http://alvyray.com/Papers/CG/HWB_JGTv208.pdf\n */\n\nimport convertRgbToHsv from '../hsv/convertRgbToHsv.js';\n\nexport default function convertRgbToHwb(rgba) {\n\tlet hsv = convertRgbToHsv(rgba);\n\tif (hsv === undefined) return undefined;\n\tlet s = hsv.s !== undefined ? hsv.s : 0;\n\tlet v = hsv.v !== undefined ? hsv.v : 0;\n\tlet res = {\n\t\tmode: 'hwb',\n\t\tw: (1 - s) * v,\n\t\tb: 1 - v\n\t};\n\tif (hsv.h !== undefined) res.h = hsv.h;\n\tif (hsv.alpha !== undefined) res.alpha = hsv.alpha;\n\treturn res;\n}\n","import { Tok } from '../parse.js';\n\nfunction ParseHwb(color, parsed) {\n\tif (!parsed || parsed[0] !== 'hwb') {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'hwb' };\n\tconst [, h, w, b, alpha] = parsed;\n\n\tif (h.type !== Tok.None) {\n\t\tif (h.type === Tok.Percentage) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.h = h.value;\n\t}\n\n\tif (w.type !== Tok.None) {\n\t\tif (w.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.w = w.value / 100;\n\t}\n\n\tif (b.type !== Tok.None) {\n\t\tif (b.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.b = b.value / 100;\n\t}\n\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default ParseHwb;\n","import convertHwbToRgb from './convertHwbToRgb.js';\nimport convertRgbToHwb from './convertRgbToHwb.js';\nimport parseHwb from './parseHwb.js';\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueNaive } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'hwb',\n\n\ttoMode: {\n\t\trgb: convertHwbToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToHwb\n\t},\n\n\tchannels: ['h', 'w', 'b', 'alpha'],\n\n\tranges: {\n\t\th: [0, 360]\n\t},\n\n\tgamut: 'rgb',\n\n\tparse: [parseHwb],\n\tserialize: c =>\n\t\t`hwb(${c.h !== undefined ? c.h : 'none'} ${\n\t\t\tc.w !== undefined ? c.w * 100 + '%' : 'none'\n\t\t} ${c.b !== undefined ? c.b * 100 + '%' : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`,\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\tw: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueNaive\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","/*\n\tRelative XYZ has Y=1 for media white,\n\tBT.2048 says media white Y=203 (at PQ 58).\n\tSee: https://www.itu.int/dms_pub/itu-r/opb/rep/R-REP-BT.2408-3-2019-PDF-E.pdf\n*/\nexport const YW = 203;\n","/*\n\thttps://en.wikipedia.org/wiki/Transfer_functions_in_imaging\n*/\n\nexport const M1 = 0.1593017578125;\nexport const M2 = 78.84375;\nexport const C1 = 0.8359375;\nexport const C2 = 18.8515625;\nexport const C3 = 18.6875;\n\n/*\n\tPerceptual Quantizer, as defined in Rec. BT 2100-2 (2018)\n\n\t* https://www.itu.int/rec/R-REC-BT.2100-2-201807-I/en\n\t* https://en.wikipedia.org/wiki/Perceptual_quantizer\n*/\n\n/* PQ EOTF, defined for `v` in [0,1]. */\nexport function transferPqDecode(v) {\n\tif (v < 0) return 0;\n\tconst c = Math.pow(v, 1 / M2);\n\treturn 1e4 * Math.pow(Math.max(0, c - C1) / (C2 - C3 * c), 1 / M1);\n}\n\n/* PQ EOTF^-1, defined for `v` in [0, 1e4]. */\nexport function transferPqEncode(v) {\n\tif (v < 0) return 0;\n\tconst c = Math.pow(v / 1e4, M1);\n\treturn Math.pow((C1 + C2 * c) / (1 + C3 * c), M2);\n}\n","import { YW } from '../hdr/constants.js';\nimport { transferPqDecode } from '../hdr/transfer.js';\n\nconst toRel = c => Math.max(c / YW, 0);\n\nconst convertItpToXyz65 = ({ i, t, p, alpha }) => {\n\tif (i === undefined) i = 0;\n\tif (t === undefined) t = 0;\n\tif (p === undefined) p = 0;\n\n\tconst l = transferPqDecode(\n\t\ti + 0.008609037037932761 * t + 0.11102962500302593 * p\n\t);\n\tconst m = transferPqDecode(\n\t\ti - 0.00860903703793275 * t - 0.11102962500302599 * p\n\t);\n\tconst s = transferPqDecode(\n\t\ti + 0.5600313357106791 * t - 0.32062717498731885 * p\n\t);\n\n\tconst res = {\n\t\tmode: 'xyz65',\n\t\tx: toRel(\n\t\t\t2.0701522183894219 * l -\n\t\t\t\t1.3263473389671556 * m +\n\t\t\t\t0.2066510476294051 * s\n\t\t),\n\t\ty: toRel(\n\t\t\t0.3647385209748074 * l +\n\t\t\t\t0.680566024947227 * m -\n\t\t\t\t0.0453045459220346 * s\n\t\t),\n\t\tz: toRel(\n\t\t\t-0.049747207535812 * l -\n\t\t\t\t0.0492609666966138 * m +\n\t\t\t\t1.1880659249923042 * s\n\t\t)\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertItpToXyz65;\n","import { YW } from '../hdr/constants.js';\nimport { transferPqEncode } from '../hdr/transfer.js';\n\nconst toAbs = (c = 0) => Math.max(c * YW, 0);\n\nconst convertXyz65ToItp = ({ x, y, z, alpha }) => {\n\tconst absX = toAbs(x);\n\tconst absY = toAbs(y);\n\tconst absZ = toAbs(z);\n\tconst l = transferPqEncode(\n\t\t0.3592832590121217 * absX +\n\t\t\t0.6976051147779502 * absY -\n\t\t\t0.0358915932320289 * absZ\n\t);\n\tconst m = transferPqEncode(\n\t\t-0.1920808463704995 * absX +\n\t\t\t1.1004767970374323 * absY +\n\t\t\t0.0753748658519118 * absZ\n\t);\n\tconst s = transferPqEncode(\n\t\t0.0070797844607477 * absX +\n\t\t\t0.0748396662186366 * absY +\n\t\t\t0.8433265453898765 * absZ\n\t);\n\n\tconst i = 0.5 * l + 0.5 * m;\n\tconst t = 1.61376953125 * l - 3.323486328125 * m + 1.709716796875 * s;\n\tconst p = 4.378173828125 * l - 4.24560546875 * m - 0.132568359375 * s;\n\n\tconst res = { mode: 'itp', i, t, p };\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertXyz65ToItp;\n","import { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport convertItpToXyz65 from './convertItpToXyz65.js';\nimport convertXyz65ToItp from './convertXyz65ToItp.js';\nimport convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\nimport convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\n\n/*\n ICtCp (or ITP) color space, as defined in ITU-R Recommendation BT.2100.\n\n ICtCp is drafted to be supported in CSS within\n [CSS Color HDR Module Level 1](https://drafts.csswg.org/css-color-hdr/#ICtCp) spec.\n*/\n\nconst definition = {\n\tmode: 'itp',\n\tchannels: ['i', 't', 'p', 'alpha'],\n\tparse: ['--ictcp'],\n\tserialize: '--ictcp',\n\n\ttoMode: {\n\t\txyz65: convertItpToXyz65,\n\t\trgb: color => convertXyz65ToRgb(convertItpToXyz65(color))\n\t},\n\n\tfromMode: {\n\t\txyz65: convertXyz65ToItp,\n\t\trgb: color => convertXyz65ToItp(convertRgbToXyz65(color))\n\t},\n\n\tranges: {\n\t\ti: [0, 0.581],\n\t\tt: [-0.369, 0.272],\n\t\tp: [-0.164, 0.331]\n\t},\n\n\tinterpolate: {\n\t\ti: interpolatorLinear,\n\t\tt: interpolatorLinear,\n\t\tp: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n","import { M1 as n, C1, C2, C3 } from '../hdr/transfer.js';\nconst p = 134.03437499999998; // = 1.7 * 2523 / Math.pow(2, 5);\nconst d0 = 1.6295499532821566e-11;\n\n/* \n\tThe encoding function is derived from Perceptual Quantizer.\n*/\nconst jabPqEncode = v => {\n\tif (v < 0) return 0;\n\tlet vn = Math.pow(v / 10000, n);\n\treturn Math.pow((C1 + C2 * vn) / (1 + C3 * vn), p);\n};\n\n// Convert to Absolute XYZ\nconst abs = (v = 0) => Math.max(v * 203, 0);\n\nconst convertXyz65ToJab = ({ x, y, z, alpha }) => {\n\tx = abs(x);\n\ty = abs(y);\n\tz = abs(z);\n\n\tlet xp = 1.15 * x - 0.15 * z;\n\tlet yp = 0.66 * y + 0.34 * x;\n\n\tlet l = jabPqEncode(0.41478972 * xp + 0.579999 * yp + 0.014648 * z);\n\tlet m = jabPqEncode(-0.20151 * xp + 1.120649 * yp + 0.0531008 * z);\n\tlet s = jabPqEncode(-0.0166008 * xp + 0.2648 * yp + 0.6684799 * z);\n\n\tlet i = (l + m) / 2;\n\n\tlet res = {\n\t\tmode: 'jab',\n\t\tj: (0.44 * i) / (1 - 0.56 * i) - d0,\n\t\ta: 3.524 * l - 4.066708 * m + 0.542708 * s,\n\t\tb: 0.199076 * l + 1.096799 * m - 1.295875 * s\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertXyz65ToJab;\n","import { M1 as n, C1, C2, C3 } from '../hdr/transfer.js';\nconst p = 134.03437499999998; // = 1.7 * 2523 / Math.pow(2, 5);\nconst d0 = 1.6295499532821566e-11;\n\n/* \n\tThe encoding function is derived from Perceptual Quantizer.\n*/\nconst jabPqDecode = v => {\n\tif (v < 0) return 0;\n\tlet vp = Math.pow(v, 1 / p);\n\treturn 10000 * Math.pow((C1 - vp) / (C3 * vp - C2), 1 / n);\n};\n\nconst rel = v => v / 203;\n\nconst convertJabToXyz65 = ({ j, a, b, alpha }) => {\n\tif (j === undefined) j = 0;\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\tlet i = (j + d0) / (0.44 + 0.56 * (j + d0));\n\n\tlet l = jabPqDecode(i + 0.13860504 * a + 0.058047316 * b);\n\tlet m = jabPqDecode(i - 0.13860504 * a - 0.058047316 * b);\n\tlet s = jabPqDecode(i - 0.096019242 * a - 0.8118919 * b);\n\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx: rel(\n\t\t\t1.661373024652174 * l -\n\t\t\t\t0.914523081304348 * m +\n\t\t\t\t0.23136208173913045 * s\n\t\t),\n\t\ty: rel(\n\t\t\t-0.3250758611844533 * l +\n\t\t\t\t1.571847026732543 * m -\n\t\t\t\t0.21825383453227928 * s\n\t\t),\n\t\tz: rel(-0.090982811 * l - 0.31272829 * m + 1.5227666 * s)\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertJabToXyz65;\n","/*\n\tConvert sRGB to JzAzBz.\n\n\tFor achromatic sRGB colors, adjust the equivalent JzAzBz color\n\tto be achromatic as well, insteading of having a very slight chroma.\n */\n\nimport convertXyz65ToJab from './convertXyz65ToJab.js';\nimport convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\n\nconst convertRgbToJab = rgb => {\n\tlet res = convertXyz65ToJab(convertRgbToXyz65(rgb));\n\tif (rgb.r === rgb.b && rgb.b === rgb.g) {\n\t\tres.a = res.b = 0;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToJab;\n","import convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\nimport convertJabToXyz65 from './convertJabToXyz65.js';\n\nconst convertJabToRgb = color => convertXyz65ToRgb(convertJabToXyz65(color));\n\nexport default convertJabToRgb;\n","/*\n\tThe JzAzBz color space.\n\n\tBased on:\n\n\tMuhammad Safdar, Guihua Cui, Youn Jin Kim, and Ming Ronnier Luo, \n\t\"Perceptually uniform color space for image signals \n\tincluding high dynamic range and wide gamut,\" \n\tOpt. Express 25, 15131-15151 (2017) \n\n\thttps://doi.org/10.1364/OE.25.015131\n */\n\nimport convertXyz65ToJab from './convertXyz65ToJab.js';\nimport convertJabToXyz65 from './convertJabToXyz65.js';\nimport convertRgbToJab from './convertRgbToJab.js';\nimport convertJabToRgb from './convertJabToRgb.js';\n\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst definition = {\n\tmode: 'jab',\n\tchannels: ['j', 'a', 'b', 'alpha'],\n\n\tparse: ['--jzazbz'],\n\tserialize: '--jzazbz',\n\n\tfromMode: {\n\t\trgb: convertRgbToJab,\n\t\txyz65: convertXyz65ToJab\n\t},\n\n\ttoMode: {\n\t\trgb: convertJabToRgb,\n\t\txyz65: convertJabToXyz65\n\t},\n\n\tranges: {\n\t\tj: [0, 0.222],\n\t\ta: [-0.109, 0.129],\n\t\tb: [-0.185, 0.134]\n\t},\n\n\tinterpolate: {\n\t\tj: interpolatorLinear,\n\t\ta: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n","import normalizeHue from '../util/normalizeHue.js';\n\nconst convertJabToJch = ({ j, a, b, alpha }) => {\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\tlet c = Math.sqrt(a * a + b * b);\n\tlet res = {\n\t\tmode: 'jch',\n\t\tj,\n\t\tc\n\t};\n\tif (c) {\n\t\tres.h = normalizeHue((Math.atan2(b, a) * 180) / Math.PI);\n\t}\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertJabToJch;\n","const convertJchToJab = ({ j, c, h, alpha }) => {\n\tif (h === undefined) h = 0;\n\tlet res = {\n\t\tmode: 'jab',\n\t\tj,\n\t\ta: c ? c * Math.cos((h / 180) * Math.PI) : 0,\n\t\tb: c ? c * Math.sin((h / 180) * Math.PI) : 0\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertJchToJab;\n","import convertJabToJch from './convertJabToJch.js';\nimport convertJchToJab from './convertJchToJab.js';\nimport convertJabToRgb from '../jab/convertJabToRgb.js';\nimport convertRgbToJab from '../jab/convertRgbToJab.js';\n\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueChroma } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'jch',\n\n\tparse: ['--jzczhz'],\n\tserialize: '--jzczhz',\n\n\ttoMode: {\n\t\tjab: convertJchToJab,\n\t\trgb: c => convertJabToRgb(convertJchToJab(c))\n\t},\n\n\tfromMode: {\n\t\trgb: c => convertJabToJch(convertRgbToJab(c)),\n\t\tjab: convertJabToJch\n\t},\n\n\tchannels: ['j', 'c', 'h', 'alpha'],\n\n\tranges: {\n\t\tj: [0, 0.221],\n\t\tc: [0, 0.19],\n\t\th: [0, 360]\n\t},\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\tc: interpolatorLinear,\n\t\tj: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueChroma\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","export const k = Math.pow(29, 3) / Math.pow(3, 3);\nexport const e = Math.pow(6, 3) / Math.pow(29, 3);\n","import { k, e } from '../xyz50/constants.js';\nimport { D50 } from '../constants.js';\n\nlet fn = v => (Math.pow(v, 3) > e ? Math.pow(v, 3) : (116 * v - 16) / k);\n\nconst convertLabToXyz50 = ({ l, a, b, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\tlet fy = (l + 16) / 116;\n\tlet fx = a / 500 + fy;\n\tlet fz = fy - b / 200;\n\n\tlet res = {\n\t\tmode: 'xyz50',\n\t\tx: fn(fx) * D50.X,\n\t\ty: fn(fy) * D50.Y,\n\t\tz: fn(fz) * D50.Z\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertLabToXyz50;\n","/*\n\tCIE XYZ D50 values to sRGB.\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nimport convertLrgbToRgb from '../lrgb/convertLrgbToRgb.js';\n\nconst convertXyz50ToRgb = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = convertLrgbToRgb({\n\t\tr:\n\t\t\tx * 3.1341359569958707 -\n\t\t\ty * 1.6173863321612538 -\n\t\t\t0.4906619460083532 * z,\n\t\tg:\n\t\t\tx * -0.978795502912089 +\n\t\t\ty * 1.916254567259524 +\n\t\t\t0.03344273116131949 * z,\n\t\tb:\n\t\t\tx * 0.07195537988411677 -\n\t\t\ty * 0.2289768264158322 +\n\t\t\t1.405386058324125 * z\n\t});\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz50ToRgb;\n","import convertLabToXyz50 from './convertLabToXyz50.js';\nimport convertXyz50ToRgb from '../xyz50/convertXyz50ToRgb.js';\n\nconst convertLabToRgb = lab => convertXyz50ToRgb(convertLabToXyz50(lab));\n\nexport default convertLabToRgb;\n","/*\n\tConvert sRGB values to CIE XYZ D50\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\n*/\n\nimport convertRgbToLrgb from '../lrgb/convertRgbToLrgb.js';\n\nconst convertRgbToXyz50 = rgb => {\n\tlet { r, g, b, alpha } = convertRgbToLrgb(rgb);\n\tlet res = {\n\t\tmode: 'xyz50',\n\t\tx:\n\t\t\t0.436065742824811 * r +\n\t\t\t0.3851514688337912 * g +\n\t\t\t0.14307845442264197 * b,\n\t\ty:\n\t\t\t0.22249319175623702 * r +\n\t\t\t0.7168870538238823 * g +\n\t\t\t0.06061979053616537 * b,\n\t\tz:\n\t\t\t0.013923904500943465 * r +\n\t\t\t0.09708128566574634 * g +\n\t\t\t0.7140993584005155 * b\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToXyz50;\n","import { k, e } from '../xyz50/constants.js';\nimport { D50 } from '../constants.js';\n\nconst f = value => (value > e ? Math.cbrt(value) : (k * value + 16) / 116);\n\nconst convertXyz50ToLab = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet f0 = f(x / D50.X);\n\tlet f1 = f(y / D50.Y);\n\tlet f2 = f(z / D50.Z);\n\n\tlet res = {\n\t\tmode: 'lab',\n\t\tl: 116 * f1 - 16,\n\t\ta: 500 * (f0 - f1),\n\t\tb: 200 * (f1 - f2)\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertXyz50ToLab;\n","import convertRgbToXyz50 from '../xyz50/convertRgbToXyz50.js';\nimport convertXyz50ToLab from './convertXyz50ToLab.js';\n\nconst convertRgbToLab = rgb => {\n\tlet res = convertXyz50ToLab(convertRgbToXyz50(rgb));\n\n\t// Fixes achromatic RGB colors having a _slight_ chroma due to floating-point errors\n\t// and approximated computations in sRGB <-> CIELab.\n\t// See: https://github.com/d3/d3-color/pull/46\n\tif (rgb.r === rgb.b && rgb.b === rgb.g) {\n\t\tres.a = res.b = 0;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToLab;\n","import { Tok } from '../parse.js';\n\nfunction parseLab(color, parsed) {\n\tif (!parsed || parsed[0] !== 'lab') {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'lab' };\n\tconst [, l, a, b, alpha] = parsed;\n\tif (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) {\n\t\treturn undefined;\n\t}\n\tif (l.type !== Tok.None) {\n\t\tres.l = Math.min(Math.max(0, l.value), 100);\n\t}\n\tif (a.type !== Tok.None) {\n\t\tres.a = a.type === Tok.Number ? a.value : (a.value * 125) / 100;\n\t}\n\tif (b.type !== Tok.None) {\n\t\tres.b = b.type === Tok.Number ? b.value : (b.value * 125) / 100;\n\t}\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseLab;\n","import convertLabToRgb from './convertLabToRgb.js';\nimport convertLabToXyz50 from './convertLabToXyz50.js';\nimport convertRgbToLab from './convertRgbToLab.js';\nimport convertXyz50ToLab from './convertXyz50ToLab.js';\nimport parseLab from './parseLab.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst definition = {\n\tmode: 'lab',\n\n\ttoMode: {\n\t\txyz50: convertLabToXyz50,\n\t\trgb: convertLabToRgb\n\t},\n\n\tfromMode: {\n\t\txyz50: convertXyz50ToLab,\n\t\trgb: convertRgbToLab\n\t},\n\n\tchannels: ['l', 'a', 'b', 'alpha'],\n\n\tranges: {\n\t\tl: [0, 100],\n\t\ta: [-100, 100],\n\t\tb: [-100, 100]\n\t},\n\n\tparse: [parseLab],\n\tserialize: c =>\n\t\t`lab(${c.l !== undefined ? c.l : 'none'} ${\n\t\t\tc.a !== undefined ? c.a : 'none'\n\t\t} ${c.b !== undefined ? c.b : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`,\n\n\tinterpolate: {\n\t\tl: interpolatorLinear,\n\t\ta: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n","import convertLab65ToRgb from './convertLab65ToRgb.js';\nimport convertLab65ToXyz65 from './convertLab65ToXyz65.js';\nimport convertRgbToLab65 from './convertRgbToLab65.js';\nimport convertXyz65ToLab65 from './convertXyz65ToLab65.js';\nimport lab from '../lab/definition.js';\n\nconst definition = {\n\t...lab,\n\tmode: 'lab65',\n\n\tparse: ['--lab-d65'],\n\tserialize: '--lab-d65',\n\n\ttoMode: {\n\t\txyz65: convertLab65ToXyz65,\n\t\trgb: convertLab65ToRgb\n\t},\n\n\tfromMode: {\n\t\txyz65: convertXyz65ToLab65,\n\t\trgb: convertRgbToLab65\n\t},\n\n\tranges: {\n\t\tl: [0, 100],\n\t\ta: [-86.182, 98.234],\n\t\tb: [-107.86, 94.477]\n\t}\n};\n\nexport default definition;\n","import { Tok } from '../parse.js';\n\nfunction parseLch(color, parsed) {\n\tif (!parsed || parsed[0] !== 'lch') {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'lch' };\n\tconst [, l, c, h, alpha] = parsed;\n\tif (l.type !== Tok.None) {\n\t\tif (l.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.l = Math.min(Math.max(0, l.value), 100);\n\t}\n\tif (c.type !== Tok.None) {\n\t\tres.c = Math.max(\n\t\t\t0,\n\t\t\tc.type === Tok.Number ? c.value : (c.value * 150) / 100\n\t\t);\n\t}\n\tif (h.type !== Tok.None) {\n\t\tif (h.type === Tok.Percentage) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.h = h.value;\n\t}\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseLch;\n","import convertLabToLch from './convertLabToLch.js';\nimport convertLchToLab from './convertLchToLab.js';\nimport convertLabToRgb from '../lab/convertLabToRgb.js';\nimport convertRgbToLab from '../lab/convertRgbToLab.js';\nimport parseLch from './parseLch.js';\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueChroma } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'lch',\n\n\ttoMode: {\n\t\tlab: convertLchToLab,\n\t\trgb: c => convertLabToRgb(convertLchToLab(c))\n\t},\n\n\tfromMode: {\n\t\trgb: c => convertLabToLch(convertRgbToLab(c)),\n\t\tlab: convertLabToLch\n\t},\n\n\tchannels: ['l', 'c', 'h', 'alpha'],\n\n\tranges: {\n\t\tl: [0, 100],\n\t\tc: [0, 150],\n\t\th: [0, 360]\n\t},\n\n\tparse: [parseLch],\n\tserialize: c =>\n\t\t`lch(${c.l !== undefined ? c.l : 'none'} ${\n\t\t\tc.c !== undefined ? c.c : 'none'\n\t\t} ${c.h !== undefined ? c.h : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`,\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\tc: interpolatorLinear,\n\t\tl: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueChroma\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","import convertLabToLch from '../lch/convertLabToLch.js';\nimport convertLchToLab from '../lch/convertLchToLab.js';\nimport convertLab65ToRgb from '../lab65/convertLab65ToRgb.js';\nimport convertRgbToLab65 from '../lab65/convertRgbToLab65.js';\nimport lch from '../lch/definition.js';\n\nconst definition = {\n\t...lch,\n\tmode: 'lch65',\n\n\tparse: ['--lch-d65'],\n\tserialize: '--lch-d65',\n\n\ttoMode: {\n\t\tlab65: c => convertLchToLab(c, 'lab65'),\n\t\trgb: c => convertLab65ToRgb(convertLchToLab(c, 'lab65'))\n\t},\n\n\tfromMode: {\n\t\trgb: c => convertLabToLch(convertRgbToLab65(c), 'lch65'),\n\t\tlab65: c => convertLabToLch(c, 'lch65')\n\t},\n\n\tranges: {\n\t\tl: [0, 100],\n\t\tc: [0, 133.807],\n\t\th: [0, 360]\n\t}\n};\n\nexport default definition;\n","import normalizeHue from '../util/normalizeHue.js';\n\nconst convertLuvToLchuv = ({ l, u, v, alpha }) => {\n\tif (u === undefined) u = 0;\n\tif (v === undefined) v = 0;\n\tlet c = Math.sqrt(u * u + v * v);\n\tlet res = {\n\t\tmode: 'lchuv',\n\t\tl: l,\n\t\tc: c\n\t};\n\tif (c) {\n\t\tres.h = normalizeHue((Math.atan2(v, u) * 180) / Math.PI);\n\t}\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertLuvToLchuv;\n","const convertLchuvToLuv = ({ l, c, h, alpha }) => {\n\tif (h === undefined) h = 0;\n\tlet res = {\n\t\tmode: 'luv',\n\t\tl: l,\n\t\tu: c ? c * Math.cos((h / 180) * Math.PI) : 0,\n\t\tv: c ? c * Math.sin((h / 180) * Math.PI) : 0\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertLchuvToLuv;\n","import { k, e } from '../xyz50/constants.js';\nimport { D50 } from '../constants.js';\n\nexport const u_fn = (x, y, z) => (4 * x) / (x + 15 * y + 3 * z);\nexport const v_fn = (x, y, z) => (9 * y) / (x + 15 * y + 3 * z);\n\nexport const un = u_fn(D50.X, D50.Y, D50.Z);\nexport const vn = v_fn(D50.X, D50.Y, D50.Z);\n\nconst l_fn = value => (value <= e ? k * value : 116 * Math.cbrt(value) - 16);\n\nconst convertXyz50ToLuv = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet l = l_fn(y / D50.Y);\n\tlet u = u_fn(x, y, z);\n\tlet v = v_fn(x, y, z);\n\n\t// guard against NaNs produced by `xyz(0 0 0)` black\n\tif (!isFinite(u) || !isFinite(v)) {\n\t\tl = u = v = 0;\n\t} else {\n\t\tu = 13 * l * (u - un);\n\t\tv = 13 * l * (v - vn);\n\t}\n\n\tlet res = {\n\t\tmode: 'luv',\n\t\tl,\n\t\tu,\n\t\tv\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertXyz50ToLuv;\n","import { k } from '../xyz50/constants.js';\nimport { D50 } from '../constants.js';\n\nexport const u_fn = (x, y, z) => (4 * x) / (x + 15 * y + 3 * z);\nexport const v_fn = (x, y, z) => (9 * y) / (x + 15 * y + 3 * z);\n\nexport const un = u_fn(D50.X, D50.Y, D50.Z);\nexport const vn = v_fn(D50.X, D50.Y, D50.Z);\n\nconst convertLuvToXyz50 = ({ l, u, v, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (l === 0) {\n\t\treturn { mode: 'xyz50', x: 0, y: 0, z: 0 };\n\t}\n\n\tif (u === undefined) u = 0;\n\tif (v === undefined) v = 0;\n\n\tlet up = u / (13 * l) + un;\n\tlet vp = v / (13 * l) + vn;\n\tlet y = D50.Y * (l <= 8 ? l / k : Math.pow((l + 16) / 116, 3));\n\tlet x = (y * (9 * up)) / (4 * vp);\n\tlet z = (y * (12 - 3 * up - 20 * vp)) / (4 * vp);\n\n\tlet res = { mode: 'xyz50', x, y, z };\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertLuvToXyz50;\n","/*\n\tCIELChuv color space\n\t--------------------\n\n\tReference: \n\n\t\thttps://en.wikipedia.org/wiki/CIELUV\n */\n\nimport convertLuvToLchuv from './convertLuvToLchuv.js';\nimport convertLchuvToLuv from './convertLchuvToLuv.js';\nimport convertXyz50ToLuv from '../luv/convertXyz50ToLuv.js';\nimport convertLuvToXyz50 from '../luv/convertLuvToXyz50.js';\nimport convertXyz50ToRgb from '../xyz50/convertXyz50ToRgb.js';\nimport convertRgbToXyz50 from '../xyz50/convertRgbToXyz50.js';\n\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueChroma } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst convertRgbToLchuv = rgb =>\n\tconvertLuvToLchuv(convertXyz50ToLuv(convertRgbToXyz50(rgb)));\nconst convertLchuvToRgb = lchuv =>\n\tconvertXyz50ToRgb(convertLuvToXyz50(convertLchuvToLuv(lchuv)));\n\nconst definition = {\n\tmode: 'lchuv',\n\n\ttoMode: {\n\t\tluv: convertLchuvToLuv,\n\t\trgb: convertLchuvToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToLchuv,\n\t\tluv: convertLuvToLchuv\n\t},\n\n\tchannels: ['l', 'c', 'h', 'alpha'],\n\n\tparse: ['--lchuv'],\n\tserialize: '--lchuv',\n\n\tranges: {\n\t\tl: [0, 100],\n\t\tc: [0, 176.956],\n\t\th: [0, 360]\n\t},\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\tc: interpolatorLinear,\n\t\tl: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueChroma\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","import rgb from '../rgb/definition.js';\nimport convertRgbToLrgb from './convertRgbToLrgb.js';\nimport convertLrgbToRgb from './convertLrgbToRgb.js';\n\nconst definition = {\n\t...rgb,\n\tmode: 'lrgb',\n\n\ttoMode: {\n\t\trgb: convertLrgbToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToLrgb\n\t},\n\n\tparse: ['srgb-linear'],\n\tserialize: 'srgb-linear'\n};\n\nexport default definition;\n","/*\n\tCIELUV color space\n\t------------------\n\n\tReference: \n\n\t\thttps://en.wikipedia.org/wiki/CIELUV\n */\n\nimport convertXyz50ToLuv from './convertXyz50ToLuv.js';\nimport convertLuvToXyz50 from './convertLuvToXyz50.js';\nimport convertXyz50ToRgb from '../xyz50/convertXyz50ToRgb.js';\nimport convertRgbToXyz50 from '../xyz50/convertRgbToXyz50.js';\n\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst definition = {\n\tmode: 'luv',\n\n\ttoMode: {\n\t\txyz50: convertLuvToXyz50,\n\t\trgb: luv => convertXyz50ToRgb(convertLuvToXyz50(luv))\n\t},\n\n\tfromMode: {\n\t\txyz50: convertXyz50ToLuv,\n\t\trgb: rgb => convertXyz50ToLuv(convertRgbToXyz50(rgb))\n\t},\n\n\tchannels: ['l', 'u', 'v', 'alpha'],\n\n\tparse: ['--luv'],\n\tserialize: '--luv',\n\n\tranges: {\n\t\tl: [0, 100],\n\t\tu: [-84.936, 175.042],\n\t\tv: [-125.882, 87.243]\n\t},\n\n\tinterpolate: {\n\t\tl: interpolatorLinear,\n\t\tu: interpolatorLinear,\n\t\tv: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n","const convertLrgbToOklab = ({ r, g, b, alpha }) => {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\tlet L = Math.cbrt(\n\t\t0.41222147079999993 * r + 0.5363325363 * g + 0.0514459929 * b\n\t);\n\tlet M = Math.cbrt(\n\t\t0.2119034981999999 * r + 0.6806995450999999 * g + 0.1073969566 * b\n\t);\n\tlet S = Math.cbrt(\n\t\t0.08830246189999998 * r + 0.2817188376 * g + 0.6299787005000002 * b\n\t);\n\n\tlet res = {\n\t\tmode: 'oklab',\n\t\tl: 0.2104542553 * L + 0.793617785 * M - 0.0040720468 * S,\n\t\ta: 1.9779984951 * L - 2.428592205 * M + 0.4505937099 * S,\n\t\tb: 0.0259040371 * L + 0.7827717662 * M - 0.808675766 * S\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertLrgbToOklab;\n","import convertRgbToLrgb from '../lrgb/convertRgbToLrgb.js';\nimport convertLrgbToOklab from './convertLrgbToOklab.js';\n\nconst convertRgbToOklab = rgb => {\n\tlet res = convertLrgbToOklab(convertRgbToLrgb(rgb));\n\tif (rgb.r === rgb.b && rgb.b === rgb.g) {\n\t\tres.a = res.b = 0;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToOklab;\n","const convertOklabToLrgb = ({ l, a, b, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\tlet L = Math.pow(\n\t\tl * 0.99999999845051981432 +\n\t\t\t0.39633779217376785678 * a +\n\t\t\t0.21580375806075880339 * b,\n\t\t3\n\t);\n\tlet M = Math.pow(\n\t\tl * 1.0000000088817607767 -\n\t\t\t0.1055613423236563494 * a -\n\t\t\t0.063854174771705903402 * b,\n\t\t3\n\t);\n\tlet S = Math.pow(\n\t\tl * 1.0000000546724109177 -\n\t\t\t0.089484182094965759684 * a -\n\t\t\t1.2914855378640917399 * b,\n\t\t3\n\t);\n\n\tlet res = {\n\t\tmode: 'lrgb',\n\t\tr:\n\t\t\t+4.076741661347994 * L -\n\t\t\t3.307711590408193 * M +\n\t\t\t0.230969928729428 * S,\n\t\tg:\n\t\t\t-1.2684380040921763 * L +\n\t\t\t2.6097574006633715 * M -\n\t\t\t0.3413193963102197 * S,\n\t\tb:\n\t\t\t-0.004196086541837188 * L -\n\t\t\t0.7034186144594493 * M +\n\t\t\t1.7076147009309444 * S\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertOklabToLrgb;\n","import convertLrgbToRgb from '../lrgb/convertLrgbToRgb.js';\nimport convertOklabToLrgb from './convertOklabToLrgb.js';\n\nconst convertOklabToRgb = c => convertLrgbToRgb(convertOklabToLrgb(c));\n\nexport default convertOklabToRgb;\n","/*\n\tAdapted from code by Björn Ottosson,\n\treleased under the MIT license:\n\n\tCopyright (c) 2021 Björn Ottosson\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy of\n\tthis software and associated documentation files (the \"Software\"), to deal in\n\tthe Software without restriction, including without limitation the rights to\n\tuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n\tof the Software, and to permit persons to whom the Software is furnished to do\n\tso, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n */\n\nimport convertOklabToLrgb from '../oklab/convertOklabToLrgb.js';\n\nexport function toe(x) {\n\tconst k_1 = 0.206;\n\tconst k_2 = 0.03;\n\tconst k_3 = (1 + k_1) / (1 + k_2);\n\treturn (\n\t\t0.5 *\n\t\t(k_3 * x -\n\t\t\tk_1 +\n\t\t\tMath.sqrt((k_3 * x - k_1) * (k_3 * x - k_1) + 4 * k_2 * k_3 * x))\n\t);\n}\n\nexport function toe_inv(x) {\n\tconst k_1 = 0.206;\n\tconst k_2 = 0.03;\n\tconst k_3 = (1 + k_1) / (1 + k_2);\n\treturn (x * x + k_1 * x) / (k_3 * (x + k_2));\n}\n\n// Finds the maximum saturation possible for a given hue that fits in sRGB\n// Saturation here is defined as S = C/L\n// a and b must be normalized so a^2 + b^2 == 1\nfunction compute_max_saturation(a, b) {\n\t// Max saturation will be when one of r, g or b goes below zero.\n\n\t// Select different coefficients depending on which component goes below zero first\n\tlet k0, k1, k2, k3, k4, wl, wm, ws;\n\n\tif (-1.88170328 * a - 0.80936493 * b > 1) {\n\t\t// Red component\n\t\tk0 = +1.19086277;\n\t\tk1 = +1.76576728;\n\t\tk2 = +0.59662641;\n\t\tk3 = +0.75515197;\n\t\tk4 = +0.56771245;\n\t\twl = +4.0767416621;\n\t\twm = -3.3077115913;\n\t\tws = +0.2309699292;\n\t} else if (1.81444104 * a - 1.19445276 * b > 1) {\n\t\t// Green component\n\t\tk0 = +0.73956515;\n\t\tk1 = -0.45954404;\n\t\tk2 = +0.08285427;\n\t\tk3 = +0.1254107;\n\t\tk4 = +0.14503204;\n\t\twl = -1.2684380046;\n\t\twm = +2.6097574011;\n\t\tws = -0.3413193965;\n\t} else {\n\t\t// Blue component\n\t\tk0 = +1.35733652;\n\t\tk1 = -0.00915799;\n\t\tk2 = -1.1513021;\n\t\tk3 = -0.50559606;\n\t\tk4 = +0.00692167;\n\t\twl = -0.0041960863;\n\t\twm = -0.7034186147;\n\t\tws = +1.707614701;\n\t}\n\n\t// Approximate max saturation using a polynomial:\n\tlet S = k0 + k1 * a + k2 * b + k3 * a * a + k4 * a * b;\n\n\t// Do one step Halley's method to get closer\n\t// this gives an error less than 10e6, except for some blue hues where the dS/dh is close to infinite\n\t// this should be sufficient for most applications, otherwise do two/three steps\n\n\tlet k_l = +0.3963377774 * a + 0.2158037573 * b;\n\tlet k_m = -0.1055613458 * a - 0.0638541728 * b;\n\tlet k_s = -0.0894841775 * a - 1.291485548 * b;\n\n\t{\n\t\tlet l_ = 1 + S * k_l;\n\t\tlet m_ = 1 + S * k_m;\n\t\tlet s_ = 1 + S * k_s;\n\n\t\tlet l = l_ * l_ * l_;\n\t\tlet m = m_ * m_ * m_;\n\t\tlet s = s_ * s_ * s_;\n\n\t\tlet l_dS = 3 * k_l * l_ * l_;\n\t\tlet m_dS = 3 * k_m * m_ * m_;\n\t\tlet s_dS = 3 * k_s * s_ * s_;\n\n\t\tlet l_dS2 = 6 * k_l * k_l * l_;\n\t\tlet m_dS2 = 6 * k_m * k_m * m_;\n\t\tlet s_dS2 = 6 * k_s * k_s * s_;\n\n\t\tlet f = wl * l + wm * m + ws * s;\n\t\tlet f1 = wl * l_dS + wm * m_dS + ws * s_dS;\n\t\tlet f2 = wl * l_dS2 + wm * m_dS2 + ws * s_dS2;\n\n\t\tS = S - (f * f1) / (f1 * f1 - 0.5 * f * f2);\n\t}\n\n\treturn S;\n}\n\nexport function find_cusp(a, b) {\n\t// First, find the maximum saturation (saturation S = C/L)\n\tlet S_cusp = compute_max_saturation(a, b);\n\n\t// Convert to linear sRGB to find the first point where at least one of r,g or b >= 1:\n\tlet rgb = convertOklabToLrgb({ l: 1, a: S_cusp * a, b: S_cusp * b });\n\tlet L_cusp = Math.cbrt(1 / Math.max(rgb.r, rgb.g, rgb.b));\n\tlet C_cusp = L_cusp * S_cusp;\n\n\treturn [L_cusp, C_cusp];\n}\n\n// Finds intersection of the line defined by\n// L = L0 * (1 - t) + t * L1;\n// C = t * C1;\n// a and b must be normalized so a^2 + b^2 == 1\nfunction find_gamut_intersection(a, b, L1, C1, L0, cusp = null) {\n\tif (!cusp) {\n\t\t// Find the cusp of the gamut triangle\n\t\tcusp = find_cusp(a, b);\n\t}\n\n\t// Find the intersection for upper and lower half seprately\n\tlet t;\n\tif ((L1 - L0) * cusp[1] - (cusp[0] - L0) * C1 <= 0) {\n\t\t// Lower half\n\n\t\tt = (cusp[1] * L0) / (C1 * cusp[0] + cusp[1] * (L0 - L1));\n\t} else {\n\t\t// Upper half\n\n\t\t// First intersect with triangle\n\t\tt = (cusp[1] * (L0 - 1)) / (C1 * (cusp[0] - 1) + cusp[1] * (L0 - L1));\n\n\t\t// Then one step Halley's method\n\t\t{\n\t\t\tlet dL = L1 - L0;\n\t\t\tlet dC = C1;\n\n\t\t\tlet k_l = +0.3963377774 * a + 0.2158037573 * b;\n\t\t\tlet k_m = -0.1055613458 * a - 0.0638541728 * b;\n\t\t\tlet k_s = -0.0894841775 * a - 1.291485548 * b;\n\n\t\t\tlet l_dt = dL + dC * k_l;\n\t\t\tlet m_dt = dL + dC * k_m;\n\t\t\tlet s_dt = dL + dC * k_s;\n\n\t\t\t// If higher accuracy is required, 2 or 3 iterations of the following block can be used:\n\t\t\t{\n\t\t\t\tlet L = L0 * (1 - t) + t * L1;\n\t\t\t\tlet C = t * C1;\n\n\t\t\t\tlet l_ = L + C * k_l;\n\t\t\t\tlet m_ = L + C * k_m;\n\t\t\t\tlet s_ = L + C * k_s;\n\n\t\t\t\tlet l = l_ * l_ * l_;\n\t\t\t\tlet m = m_ * m_ * m_;\n\t\t\t\tlet s = s_ * s_ * s_;\n\n\t\t\t\tlet ldt = 3 * l_dt * l_ * l_;\n\t\t\t\tlet mdt = 3 * m_dt * m_ * m_;\n\t\t\t\tlet sdt = 3 * s_dt * s_ * s_;\n\n\t\t\t\tlet ldt2 = 6 * l_dt * l_dt * l_;\n\t\t\t\tlet mdt2 = 6 * m_dt * m_dt * m_;\n\t\t\t\tlet sdt2 = 6 * s_dt * s_dt * s_;\n\n\t\t\t\tlet r =\n\t\t\t\t\t4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s - 1;\n\t\t\t\tlet r1 =\n\t\t\t\t\t4.0767416621 * ldt -\n\t\t\t\t\t3.3077115913 * mdt +\n\t\t\t\t\t0.2309699292 * sdt;\n\t\t\t\tlet r2 =\n\t\t\t\t\t4.0767416621 * ldt2 -\n\t\t\t\t\t3.3077115913 * mdt2 +\n\t\t\t\t\t0.2309699292 * sdt2;\n\n\t\t\t\tlet u_r = r1 / (r1 * r1 - 0.5 * r * r2);\n\t\t\t\tlet t_r = -r * u_r;\n\n\t\t\t\tlet g =\n\t\t\t\t\t-1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s - 1;\n\t\t\t\tlet g1 =\n\t\t\t\t\t-1.2684380046 * ldt +\n\t\t\t\t\t2.6097574011 * mdt -\n\t\t\t\t\t0.3413193965 * sdt;\n\t\t\t\tlet g2 =\n\t\t\t\t\t-1.2684380046 * ldt2 +\n\t\t\t\t\t2.6097574011 * mdt2 -\n\t\t\t\t\t0.3413193965 * sdt2;\n\n\t\t\t\tlet u_g = g1 / (g1 * g1 - 0.5 * g * g2);\n\t\t\t\tlet t_g = -g * u_g;\n\n\t\t\t\tlet b =\n\t\t\t\t\t-0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s - 1;\n\t\t\t\tlet b1 =\n\t\t\t\t\t-0.0041960863 * ldt -\n\t\t\t\t\t0.7034186147 * mdt +\n\t\t\t\t\t1.707614701 * sdt;\n\t\t\t\tlet b2 =\n\t\t\t\t\t-0.0041960863 * ldt2 -\n\t\t\t\t\t0.7034186147 * mdt2 +\n\t\t\t\t\t1.707614701 * sdt2;\n\n\t\t\t\tlet u_b = b1 / (b1 * b1 - 0.5 * b * b2);\n\t\t\t\tlet t_b = -b * u_b;\n\n\t\t\t\tt_r = u_r >= 0 ? t_r : 10e5;\n\t\t\t\tt_g = u_g >= 0 ? t_g : 10e5;\n\t\t\t\tt_b = u_b >= 0 ? t_b : 10e5;\n\n\t\t\t\tt += Math.min(t_r, Math.min(t_g, t_b));\n\t\t\t}\n\t\t}\n\t}\n\n\treturn t;\n}\n\nexport function get_ST_max(a_, b_, cusp = null) {\n\tif (!cusp) {\n\t\tcusp = find_cusp(a_, b_);\n\t}\n\tlet L = cusp[0];\n\tlet C = cusp[1];\n\treturn [C / L, C / (1 - L)];\n}\n\nexport function get_ST_mid(a_, b_) {\n\tlet S =\n\t\t0.11516993 +\n\t\t1 /\n\t\t\t(+7.4477897 +\n\t\t\t\t4.1590124 * b_ +\n\t\t\t\ta_ *\n\t\t\t\t\t(-2.19557347 +\n\t\t\t\t\t\t1.75198401 * b_ +\n\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t(-2.13704948 -\n\t\t\t\t\t\t\t\t10.02301043 * b_ +\n\t\t\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t\t\t(-4.24894561 +\n\t\t\t\t\t\t\t\t\t\t5.38770819 * b_ +\n\t\t\t\t\t\t\t\t\t\t4.69891013 * a_))));\n\n\tlet T =\n\t\t0.11239642 +\n\t\t1 /\n\t\t\t(+1.6132032 -\n\t\t\t\t0.68124379 * b_ +\n\t\t\t\ta_ *\n\t\t\t\t\t(+0.40370612 +\n\t\t\t\t\t\t0.90148123 * b_ +\n\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t(-0.27087943 +\n\t\t\t\t\t\t\t\t0.6122399 * b_ +\n\t\t\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t\t\t(+0.00299215 -\n\t\t\t\t\t\t\t\t\t\t0.45399568 * b_ -\n\t\t\t\t\t\t\t\t\t\t0.14661872 * a_))));\n\n\treturn [S, T];\n}\n\nexport function get_Cs(L, a_, b_) {\n\tlet cusp = find_cusp(a_, b_);\n\n\tlet C_max = find_gamut_intersection(a_, b_, L, 1, L, cusp);\n\tlet ST_max = get_ST_max(a_, b_, cusp);\n\n\tlet S_mid =\n\t\t0.11516993 +\n\t\t1 /\n\t\t\t(+7.4477897 +\n\t\t\t\t4.1590124 * b_ +\n\t\t\t\ta_ *\n\t\t\t\t\t(-2.19557347 +\n\t\t\t\t\t\t1.75198401 * b_ +\n\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t(-2.13704948 -\n\t\t\t\t\t\t\t\t10.02301043 * b_ +\n\t\t\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t\t\t(-4.24894561 +\n\t\t\t\t\t\t\t\t\t\t5.38770819 * b_ +\n\t\t\t\t\t\t\t\t\t\t4.69891013 * a_))));\n\n\tlet T_mid =\n\t\t0.11239642 +\n\t\t1 /\n\t\t\t(+1.6132032 -\n\t\t\t\t0.68124379 * b_ +\n\t\t\t\ta_ *\n\t\t\t\t\t(+0.40370612 +\n\t\t\t\t\t\t0.90148123 * b_ +\n\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t(-0.27087943 +\n\t\t\t\t\t\t\t\t0.6122399 * b_ +\n\t\t\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t\t\t(+0.00299215 -\n\t\t\t\t\t\t\t\t\t\t0.45399568 * b_ -\n\t\t\t\t\t\t\t\t\t\t0.14661872 * a_))));\n\n\tlet k = C_max / Math.min(L * ST_max[0], (1 - L) * ST_max[1]);\n\n\tlet C_a = L * S_mid;\n\tlet C_b = (1 - L) * T_mid;\n\tlet C_mid =\n\t\t0.9 *\n\t\tk *\n\t\tMath.sqrt(\n\t\t\tMath.sqrt(\n\t\t\t\t1 / (1 / (C_a * C_a * C_a * C_a) + 1 / (C_b * C_b * C_b * C_b))\n\t\t\t)\n\t\t);\n\n\tC_a = L * 0.4;\n\tC_b = (1 - L) * 0.8;\n\tlet C_0 = Math.sqrt(1 / (1 / (C_a * C_a) + 1 / (C_b * C_b)));\n\treturn [C_0, C_mid, C_max];\n}\n","/*\n\tAdapted from code by Björn Ottosson,\n\treleased under the MIT license:\n\n\tCopyright (c) 2021 Björn Ottosson\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy of\n\tthis software and associated documentation files (the \"Software\"), to deal in\n\tthe Software without restriction, including without limitation the rights to\n\tuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n\tof the Software, and to permit persons to whom the Software is furnished to do\n\tso, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n */\n\nimport normalizeHue from '../util/normalizeHue.js';\nimport { get_Cs, toe } from './helpers.js';\n\nexport default function convertOklabToOkhsl(lab) {\n\tconst l = lab.l !== undefined ? lab.l : 0;\n\tconst a = lab.a !== undefined ? lab.a : 0;\n\tconst b = lab.b !== undefined ? lab.b : 0;\n\n\tconst ret = { mode: 'okhsl', l: toe(l) };\n\n\tif (lab.alpha !== undefined) {\n\t\tret.alpha = lab.alpha;\n\t}\n\tlet c = Math.sqrt(a * a + b * b);\n\tif (!c) {\n\t\tret.s = 0;\n\t\treturn ret;\n\t}\n\tlet [C_0, C_mid, C_max] = get_Cs(l, a / c, b / c);\n\tlet s;\n\tif (c < C_mid) {\n\t\tlet k_0 = 0;\n\t\tlet k_1 = 0.8 * C_0;\n\t\tlet k_2 = 1 - k_1 / C_mid;\n\t\tlet t = (c - k_0) / (k_1 + k_2 * (c - k_0));\n\t\ts = t * 0.8;\n\t} else {\n\t\tlet k_0 = C_mid;\n\t\tlet k_1 = (0.2 * C_mid * C_mid * 1.25 * 1.25) / C_0;\n\t\tlet k_2 = 1 - k_1 / (C_max - C_mid);\n\t\tlet t = (c - k_0) / (k_1 + k_2 * (c - k_0));\n\t\ts = 0.8 + 0.2 * t;\n\t}\n\tif (s) {\n\t\tret.s = s;\n\t\tret.h = normalizeHue((Math.atan2(b, a) * 180) / Math.PI);\n\t}\n\treturn ret;\n}\n","/*\n\tAdapted from code by Björn Ottosson,\n\treleased under the MIT license:\n\n\tCopyright (c) 2021 Björn Ottosson\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy of\n\tthis software and associated documentation files (the \"Software\"), to deal in\n\tthe Software without restriction, including without limitation the rights to\n\tuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n\tof the Software, and to permit persons to whom the Software is furnished to do\n\tso, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n */\n\nimport { toe_inv, get_Cs } from './helpers.js';\n\nexport default function convertOkhslToOklab(hsl) {\n\tlet h = hsl.h !== undefined ? hsl.h : 0;\n\tlet s = hsl.s !== undefined ? hsl.s : 0;\n\tlet l = hsl.l !== undefined ? hsl.l : 0;\n\n\tconst ret = { mode: 'oklab', l: toe_inv(l) };\n\n\tif (hsl.alpha !== undefined) {\n\t\tret.alpha = hsl.alpha;\n\t}\n\n\tif (!s || l === 1) {\n\t\tret.a = ret.b = 0;\n\t\treturn ret;\n\t}\n\n\tlet a_ = Math.cos((h / 180) * Math.PI);\n\tlet b_ = Math.sin((h / 180) * Math.PI);\n\tlet [C_0, C_mid, C_max] = get_Cs(ret.l, a_, b_);\n\tlet t, k_0, k_1, k_2;\n\tif (s < 0.8) {\n\t\tt = 1.25 * s;\n\t\tk_0 = 0;\n\t\tk_1 = 0.8 * C_0;\n\t\tk_2 = 1 - k_1 / C_mid;\n\t} else {\n\t\tt = 5 * (s - 0.8);\n\t\tk_0 = C_mid;\n\t\tk_1 = (0.2 * C_mid * C_mid * 1.25 * 1.25) / C_0;\n\t\tk_2 = 1 - k_1 / (C_max - C_mid);\n\t}\n\tlet C = k_0 + (t * k_1) / (1 - k_2 * t);\n\tret.a = C * a_;\n\tret.b = C * b_;\n\n\treturn ret;\n}\n","import convertRgbToOklab from '../oklab/convertRgbToOklab.js';\nimport convertOklabToRgb from '../oklab/convertOklabToRgb.js';\nimport convertOklabToOkhsl from './convertOklabToOkhsl.js';\nimport convertOkhslToOklab from './convertOkhslToOklab.js';\n\nimport modeHsl from '../hsl/definition.js';\n\nconst modeOkhsl = {\n\t...modeHsl,\n\tmode: 'okhsl',\n\tchannels: ['h', 's', 'l', 'alpha'],\n\tparse: ['--okhsl'],\n\tserialize: '--okhsl',\n\tfromMode: {\n\t\toklab: convertOklabToOkhsl,\n\t\trgb: c => convertOklabToOkhsl(convertRgbToOklab(c))\n\t},\n\ttoMode: {\n\t\toklab: convertOkhslToOklab,\n\t\trgb: c => convertOklabToRgb(convertOkhslToOklab(c))\n\t}\n};\n\nexport default modeOkhsl;\n","/*\n\tAdapted from code by Björn Ottosson,\n\treleased under the MIT license:\n\n\tCopyright (c) 2021 Björn Ottosson\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy of\n\tthis software and associated documentation files (the \"Software\"), to deal in\n\tthe Software without restriction, including without limitation the rights to\n\tuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n\tof the Software, and to permit persons to whom the Software is furnished to do\n\tso, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n */\n\nimport normalizeHue from '../util/normalizeHue.js';\nimport convertOklabToLrgb from '../oklab/convertOklabToLrgb.js';\nimport { get_ST_max, toe_inv, toe } from '../okhsl/helpers.js';\n\nexport default function convertOklabToOkhsv(lab) {\n\tlet l = lab.l !== undefined ? lab.l : 0;\n\tlet a = lab.a !== undefined ? lab.a : 0;\n\tlet b = lab.b !== undefined ? lab.b : 0;\n\n\tlet c = Math.sqrt(a * a + b * b);\n\n\t// TODO: c = 0\n\tlet a_ = c ? a / c : 1;\n\tlet b_ = c ? b / c : 1;\n\n\tlet [S_max, T] = get_ST_max(a_, b_);\n\tlet S_0 = 0.5;\n\tlet k = 1 - S_0 / S_max;\n\n\tlet t = T / (c + l * T);\n\tlet L_v = t * l;\n\tlet C_v = t * c;\n\n\tlet L_vt = toe_inv(L_v);\n\tlet C_vt = (C_v * L_vt) / L_v;\n\n\tlet rgb_scale = convertOklabToLrgb({ l: L_vt, a: a_ * C_vt, b: b_ * C_vt });\n\tlet scale_L = Math.cbrt(\n\t\t1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0)\n\t);\n\n\tl = l / scale_L;\n\tc = ((c / scale_L) * toe(l)) / l;\n\tl = toe(l);\n\n\tconst ret = {\n\t\tmode: 'okhsv',\n\t\ts: c ? ((S_0 + T) * C_v) / (T * S_0 + T * k * C_v) : 0,\n\t\tv: l ? l / L_v : 0\n\t};\n\tif (ret.s) {\n\t\tret.h = normalizeHue((Math.atan2(b, a) * 180) / Math.PI);\n\t}\n\tif (lab.alpha !== undefined) {\n\t\tret.alpha = lab.alpha;\n\t}\n\treturn ret;\n}\n","/*\n\tCopyright (c) 2021 Björn Ottosson\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy of\n\tthis software and associated documentation files (the \"Software\"), to deal in\n\tthe Software without restriction, including without limitation the rights to\n\tuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n\tof the Software, and to permit persons to whom the Software is furnished to do\n\tso, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n */\n\nimport convertOklabToLrgb from '../oklab/convertOklabToLrgb.js';\nimport { get_ST_max, toe_inv } from '../okhsl/helpers.js';\n\nexport default function convertOkhsvToOklab(hsv) {\n\tconst ret = { mode: 'oklab' };\n\tif (hsv.alpha !== undefined) {\n\t\tret.alpha = hsv.alpha;\n\t}\n\n\tconst h = hsv.h !== undefined ? hsv.h : 0;\n\tconst s = hsv.s !== undefined ? hsv.s : 0;\n\tconst v = hsv.v !== undefined ? hsv.v : 0;\n\n\tconst a_ = Math.cos((h / 180) * Math.PI);\n\tconst b_ = Math.sin((h / 180) * Math.PI);\n\n\tconst [S_max, T] = get_ST_max(a_, b_);\n\tconst S_0 = 0.5;\n\tconst k = 1 - S_0 / S_max;\n\tconst L_v = 1 - (s * S_0) / (S_0 + T - T * k * s);\n\tconst C_v = (s * T * S_0) / (S_0 + T - T * k * s);\n\n\tconst L_vt = toe_inv(L_v);\n\tconst C_vt = (C_v * L_vt) / L_v;\n\tconst rgb_scale = convertOklabToLrgb({\n\t\tl: L_vt,\n\t\ta: a_ * C_vt,\n\t\tb: b_ * C_vt\n\t});\n\tconst scale_L = Math.cbrt(\n\t\t1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0)\n\t);\n\n\tconst L_new = toe_inv(v * L_v);\n\tconst C = (C_v * L_new) / L_v;\n\n\tret.l = L_new * scale_L;\n\tret.a = C * a_ * scale_L;\n\tret.b = C * b_ * scale_L;\n\n\treturn ret;\n}\n","import convertRgbToOklab from '../oklab/convertRgbToOklab.js';\nimport convertOklabToRgb from '../oklab/convertOklabToRgb.js';\nimport convertOklabToOkhsv from './convertOklabToOkhsv.js';\nimport convertOkhsvToOklab from './convertOkhsvToOklab.js';\n\nimport modeHsv from '../hsv/definition.js';\n\nconst modeOkhsv = {\n\t...modeHsv,\n\tmode: 'okhsv',\n\tchannels: ['h', 's', 'v', 'alpha'],\n\tparse: ['--okhsv'],\n\tserialize: '--okhsv',\n\tfromMode: {\n\t\toklab: convertOklabToOkhsv,\n\t\trgb: c => convertOklabToOkhsv(convertRgbToOklab(c))\n\t},\n\ttoMode: {\n\t\toklab: convertOkhsvToOklab,\n\t\trgb: c => convertOklabToRgb(convertOkhsvToOklab(c))\n\t}\n};\n\nexport default modeOkhsv;\n","import { Tok } from '../parse.js';\n\nfunction parseOklab(color, parsed) {\n\tif (!parsed || parsed[0] !== 'oklab') {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'oklab' };\n\tconst [, l, a, b, alpha] = parsed;\n\tif (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) {\n\t\treturn undefined;\n\t}\n\tif (l.type !== Tok.None) {\n\t\tres.l = Math.min(\n\t\t\tMath.max(0, l.type === Tok.Number ? l.value : l.value / 100),\n\t\t\t1\n\t\t);\n\t}\n\tif (a.type !== Tok.None) {\n\t\tres.a = a.type === Tok.Number ? a.value : (a.value * 0.4) / 100;\n\t}\n\tif (b.type !== Tok.None) {\n\t\tres.b = b.type === Tok.Number ? b.value : (b.value * 0.4) / 100;\n\t}\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseOklab;\n","import convertOklabToLrgb from './convertOklabToLrgb.js';\nimport convertLrgbToOklab from './convertLrgbToOklab.js';\nimport convertRgbToOklab from './convertRgbToOklab.js';\nimport convertOklabToRgb from './convertOklabToRgb.js';\nimport parseOklab from './parseOklab.js';\n\nimport lab from '../lab/definition.js';\n\n/*\n\tOklab, a perceptual color space for image processing by Björn Ottosson\n\tReference: https://bottosson.github.io/posts/oklab/\n */\n\nconst definition = {\n\t...lab,\n\tmode: 'oklab',\n\n\ttoMode: {\n\t\tlrgb: convertOklabToLrgb,\n\t\trgb: convertOklabToRgb\n\t},\n\n\tfromMode: {\n\t\tlrgb: convertLrgbToOklab,\n\t\trgb: convertRgbToOklab\n\t},\n\n\tranges: {\n\t\tl: [0, 1],\n\t\ta: [-0.4, 0.4],\n\t\tb: [-0.4, 0.4]\n\t},\n\n\tparse: [parseOklab],\n\tserialize: c =>\n\t\t`oklab(${c.l !== undefined ? c.l : 'none'} ${\n\t\t\tc.a !== undefined ? c.a : 'none'\n\t\t} ${c.b !== undefined ? c.b : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`\n};\n\nexport default definition;\n","import { Tok } from '../parse.js';\n\nfunction parseOklch(color, parsed) {\n\tif (!parsed || parsed[0] !== 'oklch') {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'oklch' };\n\tconst [, l, c, h, alpha] = parsed;\n\tif (l.type !== Tok.None) {\n\t\tif (l.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.l = Math.min(\n\t\t\tMath.max(0, l.type === Tok.Number ? l.value : l.value / 100),\n\t\t\t1\n\t\t);\n\t}\n\tif (c.type !== Tok.None) {\n\t\tres.c = Math.max(\n\t\t\t0,\n\t\t\tc.type === Tok.Number ? c.value : (c.value * 0.4) / 100\n\t\t);\n\t}\n\tif (h.type !== Tok.None) {\n\t\tif (h.type === Tok.Percentage) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.h = h.value;\n\t}\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseOklch;\n","import lch from '../lch/definition.js';\nimport convertLabToLch from '../lch/convertLabToLch.js';\nimport convertLchToLab from '../lch/convertLchToLab.js';\nimport convertOklabToRgb from '../oklab/convertOklabToRgb.js';\nimport convertRgbToOklab from '../oklab/convertRgbToOklab.js';\nimport parseOklch from './parseOklch.js';\n\nconst definition = {\n\t...lch,\n\tmode: 'oklch',\n\n\ttoMode: {\n\t\toklab: c => convertLchToLab(c, 'oklab'),\n\t\trgb: c => convertOklabToRgb(convertLchToLab(c, 'oklab'))\n\t},\n\n\tfromMode: {\n\t\trgb: c => convertLabToLch(convertRgbToOklab(c), 'oklch'),\n\t\toklab: c => convertLabToLch(c, 'oklch')\n\t},\n\n\tparse: [parseOklch],\n\tserialize: c =>\n\t\t`oklch(${c.l !== undefined ? c.l : 'none'} ${\n\t\t\tc.c !== undefined ? c.c : 'none'\n\t\t} ${c.h !== undefined ? c.h : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`,\n\n\tranges: {\n\t\tl: [0, 1],\n\t\tc: [0, 0.4],\n\t\th: [0, 360]\n\t}\n};\n\nexport default definition;\n","/*\n\tConvert Display P3 values to CIE XYZ D65\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nimport convertRgbToLrgb from '../lrgb/convertRgbToLrgb.js';\n\nconst convertP3ToXyz65 = rgb => {\n\tlet { r, g, b, alpha } = convertRgbToLrgb(rgb);\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx:\n\t\t\t0.486570948648216 * r +\n\t\t\t0.265667693169093 * g +\n\t\t\t0.1982172852343625 * b,\n\t\ty:\n\t\t\t0.2289745640697487 * r +\n\t\t\t0.6917385218365062 * g +\n\t\t\t0.079286914093745 * b,\n\t\tz: 0.0 * r + 0.0451133818589026 * g + 1.043944368900976 * b\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertP3ToXyz65;\n","/*\n\tCIE XYZ D65 values to Display P3.\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nimport convertLrgbToRgb from '../lrgb/convertLrgbToRgb.js';\n\nconst convertXyz65ToP3 = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = convertLrgbToRgb(\n\t\t{\n\t\t\tr:\n\t\t\t\tx * 2.4934969119414263 -\n\t\t\t\ty * 0.9313836179191242 -\n\t\t\t\t0.402710784450717 * z,\n\t\t\tg:\n\t\t\t\tx * -0.8294889695615749 +\n\t\t\t\ty * 1.7626640603183465 +\n\t\t\t\t0.0236246858419436 * z,\n\t\t\tb:\n\t\t\t\tx * 0.0358458302437845 -\n\t\t\t\ty * 0.0761723892680418 +\n\t\t\t\t0.9568845240076871 * z\n\t\t},\n\t\t'p3'\n\t);\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz65ToP3;\n","import rgb from '../rgb/definition.js';\nimport convertP3ToXyz65 from './convertP3ToXyz65.js';\nimport convertXyz65ToP3 from './convertXyz65ToP3.js';\nimport convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\nimport convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\n\nconst definition = {\n\t...rgb,\n\tmode: 'p3',\n\tparse: ['display-p3'],\n\tserialize: 'display-p3',\n\n\tfromMode: {\n\t\trgb: color => convertXyz65ToP3(convertRgbToXyz65(color)),\n\t\txyz65: convertXyz65ToP3\n\t},\n\n\ttoMode: {\n\t\trgb: color => convertXyz65ToRgb(convertP3ToXyz65(color)),\n\t\txyz65: convertP3ToXyz65\n\t}\n};\n\nexport default definition;\n","/*\n\tConvert CIE XYZ D50 values to ProPhoto RGB\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nconst gamma = v => {\n\tlet abs = Math.abs(v);\n\tif (abs >= 1 / 512) {\n\t\treturn Math.sign(v) * Math.pow(abs, 1 / 1.8);\n\t}\n\treturn 16 * v;\n};\n\nconst convertXyz50ToProphoto = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = {\n\t\tmode: 'prophoto',\n\t\tr: gamma(\n\t\t\tx * 1.3457868816471585 -\n\t\t\t\ty * 0.2555720873797946 -\n\t\t\t\t0.0511018649755453 * z\n\t\t),\n\t\tg: gamma(\n\t\t\tx * -0.5446307051249019 +\n\t\t\t\ty * 1.5082477428451466 +\n\t\t\t\t0.0205274474364214 * z\n\t\t),\n\t\tb: gamma(x * 0.0 + y * 0.0 + 1.2119675456389452 * z)\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz50ToProphoto;\n","/*\n\tConvert ProPhoto RGB values to CIE XYZ D50\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nconst linearize = (v = 0) => {\n\tlet abs = Math.abs(v);\n\tif (abs >= 16 / 512) {\n\t\treturn Math.sign(v) * Math.pow(abs, 1.8);\n\t}\n\treturn v / 16;\n};\n\nconst convertProphotoToXyz50 = prophoto => {\n\tlet r = linearize(prophoto.r);\n\tlet g = linearize(prophoto.g);\n\tlet b = linearize(prophoto.b);\n\tlet res = {\n\t\tmode: 'xyz50',\n\t\tx:\n\t\t\t0.7977666449006423 * r +\n\t\t\t0.1351812974005331 * g +\n\t\t\t0.0313477341283922 * b,\n\t\ty:\n\t\t\t0.2880748288194013 * r +\n\t\t\t0.7118352342418731 * g +\n\t\t\t0.0000899369387256 * b,\n\t\tz: 0 * r + 0 * g + 0.8251046025104602 * b\n\t};\n\tif (prophoto.alpha !== undefined) {\n\t\tres.alpha = prophoto.alpha;\n\t}\n\treturn res;\n};\n\nexport default convertProphotoToXyz50;\n","import rgb from '../rgb/definition.js';\n\nimport convertXyz50ToProphoto from './convertXyz50ToProphoto.js';\nimport convertProphotoToXyz50 from './convertProphotoToXyz50.js';\n\nimport convertXyz50ToRgb from '../xyz50/convertXyz50ToRgb.js';\nimport convertRgbToXyz50 from '../xyz50/convertRgbToXyz50.js';\n\n/*\n\tProPhoto RGB Color space\n\n\tReferences:\n\t\t* https://en.wikipedia.org/wiki/ProPhoto_RGB_color_space\n */\n\nconst definition = {\n\t...rgb,\n\tmode: 'prophoto',\n\tparse: ['prophoto-rgb'],\n\tserialize: 'prophoto-rgb',\n\n\tfromMode: {\n\t\txyz50: convertXyz50ToProphoto,\n\t\trgb: color => convertXyz50ToProphoto(convertRgbToXyz50(color))\n\t},\n\n\ttoMode: {\n\t\txyz50: convertProphotoToXyz50,\n\t\trgb: color => convertXyz50ToRgb(convertProphotoToXyz50(color))\n\t}\n};\n\nexport default definition;\n","/*\n\tConvert CIE XYZ D65 values to Rec. 2020\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\t* https://www.itu.int/rec/R-REC-BT.2020/en\n*/\n\nconst α = 1.09929682680944;\nconst β = 0.018053968510807;\nconst gamma = v => {\n\tconst abs = Math.abs(v);\n\tif (abs > β) {\n\t\treturn (Math.sign(v) || 1) * (α * Math.pow(abs, 0.45) - (α - 1));\n\t}\n\treturn 4.5 * v;\n};\n\nconst convertXyz65ToRec2020 = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = {\n\t\tmode: 'rec2020',\n\t\tr: gamma(\n\t\t\tx * 1.7166511879712683 -\n\t\t\t\ty * 0.3556707837763925 -\n\t\t\t\t0.2533662813736599 * z\n\t\t),\n\t\tg: gamma(\n\t\t\tx * -0.6666843518324893 +\n\t\t\t\ty * 1.6164812366349395 +\n\t\t\t\t0.0157685458139111 * z\n\t\t),\n\t\tb: gamma(\n\t\t\tx * 0.0176398574453108 -\n\t\t\t\ty * 0.0427706132578085 +\n\t\t\t\t0.9421031212354739 * z\n\t\t)\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz65ToRec2020;\n","/*\n\tConvert Rec. 2020 values to CIE XYZ D65\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\t* https://www.itu.int/rec/R-REC-BT.2020/en\n*/\n\nconst α = 1.09929682680944;\nconst β = 0.018053968510807;\n\nconst linearize = (v = 0) => {\n\tlet abs = Math.abs(v);\n\tif (abs < β * 4.5) {\n\t\treturn v / 4.5;\n\t}\n\treturn (Math.sign(v) || 1) * Math.pow((abs + α - 1) / α, 1 / 0.45);\n};\n\nconst convertRec2020ToXyz65 = rec2020 => {\n\tlet r = linearize(rec2020.r);\n\tlet g = linearize(rec2020.g);\n\tlet b = linearize(rec2020.b);\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx:\n\t\t\t0.6369580483012911 * r +\n\t\t\t0.1446169035862083 * g +\n\t\t\t0.1688809751641721 * b,\n\t\ty:\n\t\t\t0.262700212011267 * r +\n\t\t\t0.6779980715188708 * g +\n\t\t\t0.059301716469862 * b,\n\t\tz: 0 * r + 0.0280726930490874 * g + 1.0609850577107909 * b\n\t};\n\tif (rec2020.alpha !== undefined) {\n\t\tres.alpha = rec2020.alpha;\n\t}\n\treturn res;\n};\n\nexport default convertRec2020ToXyz65;\n","import rgb from '../rgb/definition.js';\n\nimport convertXyz65ToRec2020 from './convertXyz65ToRec2020.js';\nimport convertRec2020ToXyz65 from './convertRec2020ToXyz65.js';\n\nimport convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\nimport convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\n\nconst definition = {\n\t...rgb,\n\tmode: 'rec2020',\n\n\tfromMode: {\n\t\txyz65: convertXyz65ToRec2020,\n\t\trgb: color => convertXyz65ToRec2020(convertRgbToXyz65(color))\n\t},\n\n\ttoMode: {\n\t\txyz65: convertRec2020ToXyz65,\n\t\trgb: color => convertXyz65ToRgb(convertRec2020ToXyz65(color))\n\t},\n\n\tparse: ['rec2020'],\n\tserialize: 'rec2020'\n};\n\nexport default definition;\n","export const bias = 0.00379307325527544933;\nexport const bias_cbrt = Math.cbrt(bias);\n","import convertRgbToLrgb from '../lrgb/convertRgbToLrgb.js';\nimport { bias, bias_cbrt } from './constants.js';\n\nconst transfer = v => Math.cbrt(v) - bias_cbrt;\n\nconst convertRgbToXyb = color => {\n\tconst { r, g, b, alpha } = convertRgbToLrgb(color);\n\tconst l = transfer(0.3 * r + 0.622 * g + 0.078 * b + bias);\n\tconst m = transfer(0.23 * r + 0.692 * g + 0.078 * b + bias);\n\tconst s = transfer(\n\t\t0.24342268924547819 * r +\n\t\t\t0.20476744424496821 * g +\n\t\t\t0.5518098665095536 * b +\n\t\t\tbias\n\t);\n\tconst res = {\n\t\tmode: 'xyb',\n\t\tx: (l - m) / 2,\n\t\ty: (l + m) / 2,\n\t\t/* Apply default chroma from luma (subtract Y from B) */\n\t\tb: s - (l + m) / 2\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertRgbToXyb;\n","import convertLrgbToRgb from '../lrgb/convertLrgbToRgb.js';\nimport { bias, bias_cbrt } from './constants.js';\n\nconst transfer = v => Math.pow(v + bias_cbrt, 3);\n\nconst convertXybToRgb = ({ x, y, b, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (b === undefined) b = 0;\n\tconst l = transfer(x + y) - bias;\n\tconst m = transfer(y - x) - bias;\n\t/* Account for chroma from luma: add Y back to B */\n\tconst s = transfer(b + y) - bias;\n\n\tconst res = convertLrgbToRgb({\n\t\tr:\n\t\t\t11.031566904639861 * l -\n\t\t\t9.866943908131562 * m -\n\t\t\t0.16462299650829934 * s,\n\t\tg:\n\t\t\t-3.2541473810744237 * l +\n\t\t\t4.418770377582723 * m -\n\t\t\t0.16462299650829934 * s,\n\t\tb:\n\t\t\t-3.6588512867136815 * l +\n\t\t\t2.7129230459360922 * m +\n\t\t\t1.9459282407775895 * s\n\t});\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertXybToRgb;\n","import { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport convertRgbToXyb from './convertRgbToXyb.js';\nimport convertXybToRgb from './convertXybToRgb.js';\n\n/*\n\tThe XYB color space, used in JPEG XL.\n\tReference: https://ds.jpeg.org/whitepapers/jpeg-xl-whitepaper.pdf\n*/\n\nconst definition = {\n\tmode: 'xyb',\n\tchannels: ['x', 'y', 'b', 'alpha'],\n\tparse: ['--xyb'],\n\tserialize: '--xyb',\n\n\ttoMode: {\n\t\trgb: convertXybToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToXyb\n\t},\n\n\tranges: {\n\t\tx: [-0.0154, 0.0281],\n\t\ty: [0, 0.8453],\n\t\tb: [-0.2778, 0.388]\n\t},\n\n\tinterpolate: {\n\t\tx: interpolatorLinear,\n\t\ty: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n","/*\n\tThe XYZ D50 color space\n\t-----------------------\n */\n\nimport convertXyz50ToRgb from './convertXyz50ToRgb.js';\nimport convertXyz50ToLab from '../lab/convertXyz50ToLab.js';\nimport convertRgbToXyz50 from './convertRgbToXyz50.js';\nimport convertLabToXyz50 from '../lab/convertLabToXyz50.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst definition = {\n\tmode: 'xyz50',\n\tparse: ['xyz-d50'],\n\tserialize: 'xyz-d50',\n\n\ttoMode: {\n\t\trgb: convertXyz50ToRgb,\n\t\tlab: convertXyz50ToLab\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToXyz50,\n\t\tlab: convertLabToXyz50\n\t},\n\n\tchannels: ['x', 'y', 'z', 'alpha'],\n\n\tranges: {\n\t\tx: [0, 0.964],\n\t\ty: [0, 0.999],\n\t\tz: [0, 0.825]\n\t},\n\n\tinterpolate: {\n\t\tx: interpolatorLinear,\n\t\ty: interpolatorLinear,\n\t\tz: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n","/*\n\tChromatic adaptation of CIE XYZ from D65 to D50 white point\n\tusing the Bradford method.\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html\t\n*/\n\nconst convertXyz65ToXyz50 = xyz65 => {\n\tlet { x, y, z, alpha } = xyz65;\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = {\n\t\tmode: 'xyz50',\n\t\tx:\n\t\t\t1.0479298208405488 * x +\n\t\t\t0.0229467933410191 * y -\n\t\t\t0.0501922295431356 * z,\n\t\ty:\n\t\t\t0.0296278156881593 * x +\n\t\t\t0.990434484573249 * y -\n\t\t\t0.0170738250293851 * z,\n\t\tz:\n\t\t\t-0.0092430581525912 * x +\n\t\t\t0.0150551448965779 * y +\n\t\t\t0.7518742899580008 * z\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz65ToXyz50;\n","/*\n\tChromatic adaptation of CIE XYZ from D50 to D65 white point\n\tusing the Bradford method.\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html\t\n*/\n\nconst convertXyz50ToXyz65 = xyz50 => {\n\tlet { x, y, z, alpha } = xyz50;\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx:\n\t\t\t0.9554734527042182 * x -\n\t\t\t0.0230985368742614 * y +\n\t\t\t0.0632593086610217 * z,\n\t\ty:\n\t\t\t-0.0283697069632081 * x +\n\t\t\t1.0099954580058226 * y +\n\t\t\t0.021041398966943 * z,\n\t\tz:\n\t\t\t0.0123140016883199 * x -\n\t\t\t0.0205076964334779 * y +\n\t\t\t1.3303659366080753 * z\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz50ToXyz65;\n","/*\n\tThe XYZ D65 color space\n\t-----------------------\n */\n\nimport convertXyz65ToRgb from './convertXyz65ToRgb.js';\nimport convertRgbToXyz65 from './convertRgbToXyz65.js';\n\nimport convertXyz65ToXyz50 from './convertXyz65ToXyz50.js';\nimport convertXyz50ToXyz65 from './convertXyz50ToXyz65.js';\n\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst definition = {\n\tmode: 'xyz65',\n\n\ttoMode: {\n\t\trgb: convertXyz65ToRgb,\n\t\txyz50: convertXyz65ToXyz50\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToXyz65,\n\t\txyz50: convertXyz50ToXyz65\n\t},\n\n\tranges: {\n\t\tx: [0, 0.95],\n\t\ty: [0, 1],\n\t\tz: [0, 1.088]\n\t},\n\n\tchannels: ['x', 'y', 'z', 'alpha'],\n\n\tparse: ['xyz', 'xyz-d65'],\n\tserialize: 'xyz-d65',\n\n\tinterpolate: {\n\t\tx: interpolatorLinear,\n\t\ty: interpolatorLinear,\n\t\tz: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n","const convertRgbToYiq = ({ r, g, b, alpha }) => {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\tconst res = {\n\t\tmode: 'yiq',\n\t\ty: 0.29889531 * r + 0.58662247 * g + 0.11448223 * b,\n\t\ti: 0.59597799 * r - 0.2741761 * g - 0.32180189 * b,\n\t\tq: 0.21147017 * r - 0.52261711 * g + 0.31114694 * b\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertRgbToYiq;\n","const convertYiqToRgb = ({ y, i, q, alpha }) => {\n\tif (y === undefined) y = 0;\n\tif (i === undefined) i = 0;\n\tif (q === undefined) q = 0;\n\tconst res = {\n\t\tmode: 'rgb',\n\t\tr: y + 0.95608445 * i + 0.6208885 * q,\n\t\tg: y - 0.27137664 * i - 0.6486059 * q,\n\t\tb: y - 1.10561724 * i + 1.70250126 * q\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertYiqToRgb;\n","import convertRgbToYiq from './convertRgbToYiq.js';\nimport convertYiqToRgb from './convertYiqToRgb.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\n/*\n\tYIQ Color Space\n\n\tReferences\n\t----------\n\n\tWikipedia:\n\t\thttps://en.wikipedia.org/wiki/YIQ\n\n\t\"Measuring perceived color difference using YIQ NTSC\n\ttransmission color space in mobile applications\"\n\t\t\n\t\tby Yuriy Kotsarenko, Fernando Ramos in:\n\t\tProgramación Matemática y Software (2010) \n\n\tAvailable at:\n\t\t\n\t\thttp://www.progmat.uaem.mx:8080/artVol2Num2/Articulo3Vol2Num2.pdf\n */\n\nconst definition = {\n\tmode: 'yiq',\n\n\ttoMode: {\n\t\trgb: convertYiqToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToYiq\n\t},\n\n\tchannels: ['y', 'i', 'q', 'alpha'],\n\n\tparse: ['--yiq'],\n\tserialize: '--yiq',\n\n\tranges: {\n\t\ti: [-0.595, 0.595],\n\t\tq: [-0.522, 0.522]\n\t},\n\n\tinterpolate: {\n\t\ty: interpolatorLinear,\n\t\ti: interpolatorLinear,\n\t\tq: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n","import converter from './converter.js';\nimport round from './round.js';\nimport prepare from './_prepare.js';\nimport { getMode } from './modes.js';\n\nlet twoDecimals = round(2);\n\nconst clamp = value => Math.max(0, Math.min(1, value || 0));\nconst fixup = value => Math.round(clamp(value) * 255);\n\nconst rgb = converter('rgb');\nconst hsl = converter('hsl');\n\nexport const serializeHex = color => {\n\tif (color === undefined) {\n\t\treturn undefined;\n\t}\n\n\tlet r = fixup(color.r);\n\tlet g = fixup(color.g);\n\tlet b = fixup(color.b);\n\n\treturn '#' + ((1 << 24) | (r << 16) | (g << 8) | b).toString(16).slice(1);\n};\n\nexport const serializeHex8 = color => {\n\tif (color === undefined) {\n\t\treturn undefined;\n\t}\n\n\tlet a = fixup(color.alpha !== undefined ? color.alpha : 1);\n\treturn serializeHex(color) + ((1 << 8) | a).toString(16).slice(1);\n};\n\nexport const serializeRgb = color => {\n\tif (color === undefined) {\n\t\treturn undefined;\n\t}\n\n\tlet r = fixup(color.r);\n\tlet g = fixup(color.g);\n\tlet b = fixup(color.b);\n\n\tif (color.alpha === undefined || color.alpha === 1) {\n\t\t// opaque color\n\t\treturn `rgb(${r}, ${g}, ${b})`;\n\t} else {\n\t\t// transparent color\n\t\treturn `rgba(${r}, ${g}, ${b}, ${twoDecimals(clamp(color.alpha))})`;\n\t}\n};\n\nexport const serializeHsl = color => {\n\tif (color === undefined) {\n\t\treturn undefined;\n\t}\n\n\tconst h = twoDecimals(color.h || 0);\n\tconst s = twoDecimals(clamp(color.s) * 100) + '%';\n\tconst l = twoDecimals(clamp(color.l) * 100) + '%';\n\n\tif (color.alpha === undefined || color.alpha === 1) {\n\t\t// opaque color\n\t\treturn `hsl(${h}, ${s}, ${l})`;\n\t} else {\n\t\t// transparent color\n\t\treturn `hsla(${h}, ${s}, ${l}, ${twoDecimals(clamp(color.alpha))})`;\n\t}\n};\n\nexport const formatCss = c => {\n\tconst color = prepare(c);\n\tif (!color) {\n\t\treturn undefined;\n\t}\n\tconst def = getMode(color.mode);\n\tif (!def.serialize || typeof def.serialize === 'string') {\n\t\tlet res = `color(${def.serialize || `--${color.mode}`} `;\n\t\tdef.channels.forEach((ch, i) => {\n\t\t\tif (ch !== 'alpha') {\n\t\t\t\tres +=\n\t\t\t\t\t(i ? ' ' : '') +\n\t\t\t\t\t(color[ch] !== undefined ? color[ch] : 'none');\n\t\t\t}\n\t\t});\n\t\tif (color.alpha !== undefined && color.alpha < 1) {\n\t\t\tres += ` / ${color.alpha}`;\n\t\t}\n\t\treturn res + ')';\n\t}\n\tif (typeof def.serialize === 'function') {\n\t\treturn def.serialize(color);\n\t}\n\treturn undefined;\n};\n\nexport const formatHex = c => serializeHex(rgb(c));\nexport const formatHex8 = c => serializeHex8(rgb(c));\nexport const formatRgb = c => serializeRgb(rgb(c));\nexport const formatHsl = c => serializeHsl(hsl(c));\n","// Color space definitions\nimport modeA98 from './a98/definition.js';\nimport modeCubehelix from './cubehelix/definition.js';\nimport modeDlab from './dlab/definition.js';\nimport modeDlch from './dlch/definition.js';\nimport modeHsi from './hsi/definition.js';\nimport modeHsl from './hsl/definition.js';\nimport modeHsv from './hsv/definition.js';\nimport modeHwb from './hwb/definition.js';\nimport modeItp from './itp/definition.js';\nimport modeJab from './jab/definition.js';\nimport modeJch from './jch/definition.js';\nimport modeLab from './lab/definition.js';\nimport modeLab65 from './lab65/definition.js';\nimport modeLch from './lch/definition.js';\nimport modeLch65 from './lch65/definition.js';\nimport modeLchuv from './lchuv/definition.js';\nimport modeLrgb from './lrgb/definition.js';\nimport modeLuv from './luv/definition.js';\nimport modeOkhsl from './okhsl/modeOkhsl.js';\nimport modeOkhsv from './okhsv/modeOkhsv.js';\nimport modeOklab from './oklab/definition.js';\nimport modeOklch from './oklch/definition.js';\nimport modeP3 from './p3/definition.js';\nimport modeProphoto from './prophoto/definition.js';\nimport modeRec2020 from './rec2020/definition.js';\nimport modeRgb from './rgb/definition.js';\nimport modeXyb from './xyb/definition.js';\nimport modeXyz50 from './xyz50/definition.js';\nimport modeXyz65 from './xyz65/definition.js';\nimport modeYiq from './yiq/definition.js';\nimport { useMode } from './modes.js';\n\nexport { default as converter } from './converter.js';\n\nexport {\n\tserializeHex,\n\tserializeHex8,\n\tserializeRgb,\n\tserializeHsl,\n\tformatHex,\n\tformatHex8,\n\tformatRgb,\n\tformatHsl,\n\tformatCss\n} from './formatter.js';\n\nexport { default as colorsNamed } from './colors/named.js';\nexport { default as blend } from './blend.js';\nexport { default as random } from './random.js';\n\nexport {\n\tfixupHueShorter,\n\tfixupHueLonger,\n\tfixupHueIncreasing,\n\tfixupHueDecreasing\n} from './fixup/hue.js';\n\nexport { fixupAlpha } from './fixup/alpha.js';\n\nexport {\n\tmapper,\n\tmapAlphaMultiply,\n\tmapAlphaDivide,\n\tmapTransferLinear,\n\tmapTransferGamma\n} from './map.js';\n\nexport { average, averageAngle, averageNumber } from './average.js';\n\nexport { default as round } from './round.js';\nexport {\n\tinterpolate,\n\tinterpolateWith,\n\tinterpolateWithPremultipliedAlpha\n} from './interpolate/interpolate.js';\n\nexport { interpolatorLinear } from './interpolate/linear.js';\n\nexport { interpolatorPiecewise } from './interpolate/piecewise.js';\n\nexport {\n\tinterpolatorSplineBasis,\n\tinterpolatorSplineBasisClosed\n} from './interpolate/splineBasis.js';\n\nexport {\n\tinterpolatorSplineNatural,\n\tinterpolatorSplineNaturalClosed\n} from './interpolate/splineNatural.js';\n\nexport {\n\tinterpolatorSplineMonotone,\n\tinterpolatorSplineMonotone2,\n\tinterpolatorSplineMonotoneClosed\n} from './interpolate/splineMonotone.js';\n\nexport { lerp, unlerp, blerp, trilerp } from './interpolate/lerp.js';\nexport { default as samples } from './samples.js';\nexport {\n\tdisplayable,\n\tinGamut,\n\tclampRgb,\n\tclampChroma,\n\tclampGamut,\n\ttoGamut\n} from './clamp.js';\nexport { default as nearest } from './nearest.js';\nexport { useMode, getMode, useParser, removeParser } from './modes.js';\nexport { default as parse } from './parse.js';\n\nexport {\n\tdifferenceEuclidean,\n\tdifferenceCie76,\n\tdifferenceCie94,\n\tdifferenceCiede2000,\n\tdifferenceCmc,\n\tdifferenceHyab,\n\tdifferenceHueSaturation,\n\tdifferenceHueChroma,\n\tdifferenceHueNaive,\n\tdifferenceKotsarenkoRamos,\n\tdifferenceItp\n} from './difference.js';\n\nexport {\n\tfilterBrightness,\n\tfilterContrast,\n\tfilterSepia,\n\tfilterInvert,\n\tfilterSaturate,\n\tfilterGrayscale,\n\tfilterHueRotate\n} from './filter.js';\n\nexport {\n\tfilterDeficiencyProt,\n\tfilterDeficiencyDeuter,\n\tfilterDeficiencyTrit\n} from './deficiency.js';\n\n// Easings\nexport { default as easingMidpoint } from './easing/midpoint.js';\nexport {\n\teasingSmoothstep,\n\teasingSmoothstepInverse\n} from './easing/smoothstep.js';\nexport { default as easingSmootherstep } from './easing/smootherstep.js';\nexport { default as easingInOutSine } from './easing/inOutSine.js';\nexport { default as easingGamma } from './easing/gamma.js';\n\nexport {\n\tluminance as wcagLuminance,\n\tcontrast as wcagContrast\n} from './wcag.js';\n\nexport { default as parseHsl } from './hsl/parseHsl.js';\nexport { default as parseHwb } from './hwb/parseHwb.js';\nexport { default as parseLab } from './lab/parseLab.js';\nexport { default as parseLch } from './lch/parseLch.js';\nexport { default as parseNamed } from './rgb/parseNamed.js';\nexport { default as parseTransparent } from './rgb/parseTransparent.js';\nexport { default as parseHex } from './rgb/parseHex.js';\nexport { default as parseRgb } from './rgb/parseRgb.js';\nexport { default as parseHslLegacy } from './hsl/parseHslLegacy.js';\nexport { default as parseRgbLegacy } from './rgb/parseRgbLegacy.js';\nexport { default as parseOklab } from './oklab/parseOklab.js';\nexport { default as parseOklch } from './oklch/parseOklch.js';\n\nexport { default as convertA98ToXyz65 } from './a98/convertA98ToXyz65.js';\nexport { default as convertCubehelixToRgb } from './cubehelix/convertCubehelixToRgb.js';\nexport { default as convertDlchToLab65 } from './dlch/convertDlchToLab65.js';\nexport { default as convertHsiToRgb } from './hsi/convertHsiToRgb.js';\nexport { default as convertHslToRgb } from './hsl/convertHslToRgb.js';\nexport { default as convertHsvToRgb } from './hsv/convertHsvToRgb.js';\nexport { default as convertHwbToRgb } from './hwb/convertHwbToRgb.js';\nexport { default as convertItpToXyz65 } from './itp/convertItpToXyz65.js';\nexport { default as convertJabToJch } from './jch/convertJabToJch.js';\nexport { default as convertJabToRgb } from './jab/convertJabToRgb.js';\nexport { default as convertJabToXyz65 } from './jab/convertJabToXyz65.js';\nexport { default as convertJchToJab } from './jch/convertJchToJab.js';\nexport { default as convertLab65ToDlch } from './dlch/convertLab65ToDlch.js';\nexport { default as convertLab65ToRgb } from './lab65/convertLab65ToRgb.js';\nexport { default as convertLab65ToXyz65 } from './lab65/convertLab65ToXyz65.js';\nexport { default as convertLabToLch } from './lch/convertLabToLch.js';\nexport { default as convertLabToRgb } from './lab/convertLabToRgb.js';\nexport { default as convertLabToXyz50 } from './lab/convertLabToXyz50.js';\nexport { default as convertLchToLab } from './lch/convertLchToLab.js';\nexport { default as convertLchuvToLuv } from './lchuv/convertLchuvToLuv.js';\nexport { default as convertLrgbToOklab } from './oklab/convertLrgbToOklab.js';\nexport { default as convertLrgbToRgb } from './lrgb/convertLrgbToRgb.js';\nexport { default as convertLuvToLchuv } from './lchuv/convertLuvToLchuv.js';\nexport { default as convertLuvToXyz50 } from './luv/convertLuvToXyz50.js';\nexport { default as convertOkhslToOklab } from './okhsl/convertOkhslToOklab.js';\nexport { default as convertOkhsvToOklab } from './okhsv/convertOkhsvToOklab.js';\nexport { default as convertOklabToLrgb } from './oklab/convertOklabToLrgb.js';\nexport { default as convertOklabToOkhsl } from './okhsl/convertOklabToOkhsl.js';\nexport { default as convertOklabToOkhsv } from './okhsv/convertOklabToOkhsv.js';\nexport { default as convertOklabToRgb } from './oklab/convertOklabToRgb.js';\nexport { default as convertP3ToXyz65 } from './p3/convertP3ToXyz65.js';\nexport { default as convertProphotoToXyz50 } from './prophoto/convertProphotoToXyz50.js';\nexport { default as convertRec2020ToXyz65 } from './rec2020/convertRec2020ToXyz65.js';\nexport { default as convertRgbToCubehelix } from './cubehelix/convertRgbToCubehelix.js';\nexport { default as convertRgbToHsi } from './hsi/convertRgbToHsi.js';\nexport { default as convertRgbToHsl } from './hsl/convertRgbToHsl.js';\nexport { default as convertRgbToHsv } from './hsv/convertRgbToHsv.js';\nexport { default as convertRgbToHwb } from './hwb/convertRgbToHwb.js';\nexport { default as convertRgbToJab } from './jab/convertRgbToJab.js';\nexport { default as convertRgbToLab } from './lab/convertRgbToLab.js';\nexport { default as convertRgbToLab65 } from './lab65/convertRgbToLab65.js';\nexport { default as convertRgbToLrgb } from './lrgb/convertRgbToLrgb.js';\nexport { default as convertRgbToOklab } from './oklab/convertRgbToOklab.js';\nexport { default as convertRgbToXyb } from './xyb/convertRgbToXyb.js';\nexport { default as convertRgbToXyz50 } from './xyz50/convertRgbToXyz50.js';\nexport { default as convertRgbToXyz65 } from './xyz65/convertRgbToXyz65.js';\nexport { default as convertRgbToYiq } from './yiq/convertRgbToYiq.js';\nexport { default as convertXybToRgb } from './xyb/convertXybToRgb.js';\nexport { default as convertXyz50ToLab } from './lab/convertXyz50ToLab.js';\nexport { default as convertXyz50ToLuv } from './luv/convertXyz50ToLuv.js';\nexport { default as convertXyz50ToProphoto } from './prophoto/convertXyz50ToProphoto.js';\nexport { default as convertXyz50ToRgb } from './xyz50/convertXyz50ToRgb.js';\nexport { default as convertXyz50ToXyz65 } from './xyz65/convertXyz50ToXyz65.js';\nexport { default as convertXyz65ToA98 } from './a98/convertXyz65ToA98.js';\nexport { default as convertXyz65ToItp } from './itp/convertXyz65ToItp.js';\nexport { default as convertXyz65ToJab } from './jab/convertXyz65ToJab.js';\nexport { default as convertXyz65ToLab65 } from './lab65/convertXyz65ToLab65.js';\nexport { default as convertXyz65ToP3 } from './p3/convertXyz65ToP3.js';\nexport { default as convertXyz65ToRec2020 } from './rec2020/convertXyz65ToRec2020.js';\nexport { default as convertXyz65ToRgb } from './xyz65/convertXyz65ToRgb.js';\nexport { default as convertXyz65ToXyz50 } from './xyz65/convertXyz65ToXyz50.js';\nexport { default as convertYiqToRgb } from './yiq/convertYiqToRgb.js';\n\nexport {\n\tmodeA98,\n\tmodeCubehelix,\n\tmodeDlab,\n\tmodeDlch,\n\tmodeHsi,\n\tmodeHsl,\n\tmodeHsv,\n\tmodeHwb,\n\tmodeItp,\n\tmodeJab,\n\tmodeJch,\n\tmodeLab,\n\tmodeLab65,\n\tmodeLch,\n\tmodeLch65,\n\tmodeLchuv,\n\tmodeLrgb,\n\tmodeLuv,\n\tmodeOkhsl,\n\tmodeOkhsv,\n\tmodeOklab,\n\tmodeOklch,\n\tmodeP3,\n\tmodeProphoto,\n\tmodeRec2020,\n\tmodeRgb,\n\tmodeXyb,\n\tmodeXyz50,\n\tmodeXyz65,\n\tmodeYiq\n};\n\nexport const a98 = useMode(modeA98);\nexport const cubehelix = useMode(modeCubehelix);\nexport const dlab = useMode(modeDlab);\nexport const dlch = useMode(modeDlch);\nexport const hsi = useMode(modeHsi);\nexport const hsl = useMode(modeHsl);\nexport const hsv = useMode(modeHsv);\nexport const hwb = useMode(modeHwb);\nexport const itp = useMode(modeItp);\nexport const jab = useMode(modeJab);\nexport const jch = useMode(modeJch);\nexport const lab = useMode(modeLab);\nexport const lab65 = useMode(modeLab65);\nexport const lch = useMode(modeLch);\nexport const lch65 = useMode(modeLch65);\nexport const lchuv = useMode(modeLchuv);\nexport const lrgb = useMode(modeLrgb);\nexport const luv = useMode(modeLuv);\nexport const okhsl = useMode(modeOkhsl);\nexport const okhsv = useMode(modeOkhsv);\nexport const oklab = useMode(modeOklab);\nexport const oklch = useMode(modeOklch);\nexport const p3 = useMode(modeP3);\nexport const prophoto = useMode(modeProphoto);\nexport const rec2020 = useMode(modeRec2020);\nexport const rgb = useMode(modeRgb);\nexport const xyb = useMode(modeXyb);\nexport const xyz50 = useMode(modeXyz50);\nexport const xyz65 = useMode(modeXyz65);\nexport const yiq = useMode(modeYiq);\n","import { converter, formatHex, parse } from 'culori';\n/**\n * Parse an OKLCH color string into an Oklch object.\n * @param oklch - The OKLCH color string in format \"oklch(l c h [/ a])\" (e.g. \"oklch(0.5 0.2 180 / 0.3)\")\n * @returns The Oklch object\n */\nexport function parseOklch(color) {\n const parsedColor = parse(color);\n if (!parsedColor || parsedColor.mode !== 'oklch') {\n throw new Error(`Invalid OKLCH color string: ${color}`);\n }\n return parsedColor;\n}\n/**\n * Convert an OKLCH color string to a hex color.\n * @param oklch - The OKLCH color string in format \"l c h\" (e.g. \"0.5 0.2 180\")\n * @returns The hex color string\n */\nexport function convertOklchToHex(oklch) {\n const color = typeof oklch === 'string' ? parseOklch(oklch) : oklch;\n const convert = converter('rgb');\n const rgb = convert(color);\n return formatHex(rgb);\n}\n/**\n * Convert a hex color to an OKLCH color string.\n * @param hex - The hex color string\n * @returns The OKLCH color string in format \"oklch(l c h [/ a])\"\n */\nexport function convertHexToOklch(hex) {\n const convert = converter('oklch');\n const oklch = convert(hex);\n if (!oklch) {\n return 'oklch(0 0 0)';\n }\n return `oklch(${oklch.l.toFixed(3)} ${oklch.c.toFixed(3)} ${oklch.h?.toFixed(3) ?? 0}${oklch.alpha === undefined ? '' : `/ ${oklch.alpha.toFixed(3)}`})`;\n}\n//# sourceMappingURL=color-conversions.js.map","import { flow } from 'es-toolkit';\nimport { convertHexToOklch } from '#src/utils/color-conversions.js';\nimport { transformJsonPath } from './transform-json-path.js';\nimport { createSchemaMigration } from './types.js';\nfunction transformThemeColor(color) {\n if (color.startsWith('oklch'))\n return color;\n if (color.startsWith('#'))\n return convertHexToOklch(color);\n throw new Error(`Invalid color: ${color}`);\n}\nexport const migration010HexToOklch = createSchemaMigration({\n version: 10,\n name: 'hexToOklch',\n description: 'Convert hex colors to OKLCH in theme configuration',\n migrate: (config) => {\n if (!config.theme) {\n return config;\n }\n const transform = flow((c) => transformJsonPath(c, 'theme.palettes.**.customBase', transformThemeColor), (c) => transformJsonPath(c, 'theme.palettes.**.shades.**', transformThemeColor), (c) => transformJsonPath(c, 'theme.colors.**.**', transformThemeColor));\n return transform(config);\n },\n});\n//# sourceMappingURL=migration-010-hex-to-oklch.js.map","import { pluginEntityType } from '#src/schema/plugins/index.js';\nimport { transformJsonPath } from './transform-json-path.js';\nimport { createSchemaMigration } from './types.js';\nexport const migration011PluginId = createSchemaMigration({\n version: 11,\n name: 'pluginId',\n description: 'Convert plugin ids to use the plugin entity type',\n migrate: (config) => transformJsonPath(config, 'plugins.*.id', (id) => pluginEntityType.idFromKey(id)),\n});\n//# sourceMappingURL=migration-011-plugin-id.js.map","import { createSchemaMigration } from './types.js';\nexport const migration012MigrateAuthConfig = createSchemaMigration({\n version: 12,\n name: 'migrateAuthConfig',\n description: 'Migrate auth config to auth0 plugin config',\n migrate: (config) => {\n if (!config.auth?.useAuth0) {\n return {\n ...config,\n auth: undefined,\n };\n }\n const auth0PluginId = 'plugin:halfdomelabs_baseplate-plugin-auth_auth0';\n const auth0Config = {\n userAccountModelRef: config.auth.userModelRef,\n authFeatureRef: config.auth.authFeatureRef,\n roles: config.auth.roles.map((role) => ({\n id: role.id,\n name: role.name,\n comment: role.comment,\n builtIn: role.builtIn,\n })),\n };\n const plugins = config.plugins ?? [];\n const pluginIndex = plugins.findIndex((p) => p.id === auth0PluginId);\n if (pluginIndex === -1) {\n plugins.push({\n id: auth0PluginId,\n name: 'auth0',\n packageName: '@halfdomelabs/baseplate-plugin-auth',\n version: '0.1.0',\n config: auth0Config,\n });\n }\n else {\n plugins[pluginIndex] = {\n ...plugins[pluginIndex],\n config: auth0Config,\n };\n }\n return {\n ...config,\n auth: undefined,\n plugins,\n };\n },\n});\n//# sourceMappingURL=migration-012-migrate-auth-config.js.map","import { createSchemaMigration } from './types.js';\nexport const migration013MoveGeneralSettings = createSchemaMigration({\n version: 13,\n name: 'moveGeneralSettings',\n description: 'Move general settings fields from root to settings.general',\n migrate: (config) => {\n const { name, packageScope, portOffset, templateExtractor, theme, ...rest } = config;\n return {\n ...rest,\n settings: {\n general: {\n name,\n packageScope,\n portOffset,\n },\n templateExtractor,\n theme,\n },\n };\n },\n});\n//# sourceMappingURL=migration-013-move-general-settings.js.map","import { createSchemaMigration } from './types.js';\nconst PLUGIN_MAPPINGS = {\n 'plugin:halfdomelabs_baseplate-plugin-auth_auth0': 'plugin:baseplate-dev_plugin-auth_auth0',\n 'plugin:halfdomelabs_baseplate-plugin-storage_storage': 'plugin:baseplate-dev_plugin-storage_storage',\n};\nexport const migration014MigratePluginIds = createSchemaMigration({\n version: 14,\n name: 'migratePluginIds',\n description: 'Migrate plugin IDs and package names to new format and resets client version in preparation for 0.1.0 reset',\n migrate: (config) => {\n if (!config.plugins) {\n return config;\n }\n const plugins = config.plugins.map((plugin) => {\n const newId = plugin.id in PLUGIN_MAPPINGS\n ? PLUGIN_MAPPINGS[plugin.id]\n : plugin.id;\n const newPackageName = plugin.packageName.replace('@halfdomelabs/baseplate-', '@baseplate-dev/');\n return {\n ...plugin,\n id: newId,\n packageName: newPackageName,\n };\n });\n return {\n ...config,\n plugins,\n cliVersion: '0.1.0',\n };\n },\n});\n//# sourceMappingURL=migration-014-migrate-plugin-ids.js.map","import { createSchemaMigration } from './types.js';\nexport const migration015NullParentRefs = createSchemaMigration({\n version: 15,\n name: 'nullParentRefs',\n description: 'Convert null parentRefs to undefined in features',\n migrate: (config) => {\n if (!config.features) {\n return config;\n }\n const features = config.features.map((feature) => ({\n ...feature,\n parentRef: feature.parentRef ?? undefined,\n }));\n return {\n ...config,\n features,\n };\n },\n});\n//# sourceMappingURL=migration-015-null-parent-refs.js.map","import { createSchemaMigration } from './types.js';\nexport const migration016WebAdminConfig = createSchemaMigration({\n version: 16,\n name: 'webAdminApp',\n description: 'Convert admin apps to web apps with adminApp and add adminApp to existing web apps',\n migrate: (config) => {\n if (!config.apps) {\n return config;\n }\n const apps = config.apps.map((app) => {\n // Convert admin apps to web apps with adminConfig enabled\n if (app.type === 'admin') {\n const { sections, allowedRoles, ...restApp } = app;\n return {\n ...restApp,\n type: 'web',\n adminApp: {\n enabled: true,\n pathPrefix: '/admin',\n sections: sections ?? [],\n allowedRoles: allowedRoles ?? undefined,\n },\n };\n }\n // Add adminApp to web apps that don't already have it\n if (app.type === 'web' && !('adminApp' in app)) {\n return {\n ...app,\n adminApp: {\n enabled: false,\n pathPrefix: '/admin',\n },\n };\n }\n return app;\n });\n return {\n ...config,\n apps,\n };\n },\n});\n//# sourceMappingURL=migration-016-web-admin-config.js.map","import { createSchemaMigration } from './types.js';\nexport const migration017RenameAuthPlugin = createSchemaMigration({\n version: 17,\n name: 'renameAuthPlugin',\n description: 'Rename plugin plugin-auth_auth to plugin-auth_local-auth and auto-activate auth manager plugin',\n migrate: (config) => {\n if (!config.plugins) {\n return config;\n }\n let plugins = [...config.plugins];\n let renamedPlugin = null;\n // Step 1: Rename plugin-auth_auth to plugin-auth_local-auth\n plugins = plugins.map((plugin) => {\n if (plugin.id === 'plugin:baseplate-dev_plugin-auth_auth') {\n renamedPlugin = {\n ...plugin,\n name: 'local-auth',\n id: 'plugin:baseplate-dev_plugin-auth_local-auth',\n };\n return renamedPlugin;\n }\n return plugin;\n });\n // Step 2: Check for any auth implementation plugins\n const authImplementationPlugins = plugins.filter((plugin) => plugin.id === 'plugin:baseplate-dev_plugin-auth_local-auth' ||\n plugin.id === 'plugin:baseplate-dev_plugin-auth_auth0' ||\n plugin.id === 'plugin:baseplate-dev_plugin-auth_placeholder-auth');\n // Step 3: If any implementation plugins exist, create main auth plugin with ported config\n if (authImplementationPlugins.length > 0) {\n // Determine the primary implementation plugin (prioritize local-auth > auth0 > placeholder)\n const primaryImplementationPlugin = authImplementationPlugins.find((p) => p.id === 'plugin:baseplate-dev_plugin-auth_local-auth') ??\n authImplementationPlugins.find((p) => p.id === 'plugin:baseplate-dev_plugin-auth_auth0') ??\n authImplementationPlugins.find((p) => p.id === 'plugin:baseplate-dev_plugin-auth_placeholder-auth');\n if (primaryImplementationPlugin) {\n // Extract implementation key from plugin ID\n const implementationPluginKey = primaryImplementationPlugin.id.replace('plugin:', '');\n // Port configuration from the implementation plugin\n const implementationConfig = (primaryImplementationPlugin.config ??\n {});\n // Create main auth plugin with ported configuration\n plugins.push({\n id: 'plugin:baseplate-dev_plugin-auth_auth',\n name: 'auth',\n packageName: '@baseplate-dev/plugin-auth',\n version: '1.0.0',\n config: {\n implementationPluginKey,\n authFeatureRef: implementationConfig.authFeatureRef,\n roles: implementationConfig.roles,\n },\n });\n }\n }\n return {\n ...config,\n plugins,\n };\n },\n});\n//# sourceMappingURL=migration-017-rename-auth-plugin.js.map","import { createSchemaMigration } from './types.js';\nexport const migration018CrudNameFieldRef = createSchemaMigration({\n version: 18,\n name: 'crudNameFieldRef',\n description: 'Add nameFieldRef to CRUD sections, defaulting to name, title, id, or first field',\n migrate: (config) => {\n if (!config.apps || !config.models) {\n return config;\n }\n const apps = config.apps.map((app) => {\n // Only process apps with adminApp and sections\n if (!app.adminApp?.sections) {\n return app;\n }\n const sections = app.adminApp.sections.map((section) => {\n // Only process CRUD sections without nameFieldRef\n if (section.type !== 'crud' || section.nameFieldRef) {\n return section;\n }\n // Find the model for this section\n const model = config.models?.find((m) => m.name === section.modelRef);\n if (!model?.model.fields || model.model.fields.length === 0) {\n throw new Error(`Model ${section.modelRef} has no fields`);\n }\n // Find field by priority: name, title, id, then first field\n let selectedField = model.model.fields.find((f) => f.name === 'name');\n selectedField ??= model.model.fields.find((f) => f.name === 'title');\n selectedField ??= model.model.fields.find((f) => f.name === 'id');\n selectedField ??= model.model.fields[0];\n return {\n ...section,\n nameFieldRef: selectedField.name,\n };\n });\n return {\n ...app,\n adminApp: {\n ...app.adminApp,\n sections,\n },\n };\n });\n return {\n ...config,\n apps,\n };\n },\n});\n//# sourceMappingURL=migration-018-crud-name-field-ref.js.map","import { createSchemaMigration } from './types.js';\nfunction migrateColumn(oldColumn) {\n const { display, id, ...rest } = oldColumn;\n return {\n id: id?.replace('admin-crud-section-column', 'admin-crud-column'),\n ...rest,\n type: display.type,\n ...(display.modelFieldRef && { modelFieldRef: display.modelFieldRef }),\n ...(display.localRelationRef && {\n localRelationRef: display.localRelationRef,\n }),\n ...(display.labelExpression && {\n labelExpression: display.labelExpression,\n }),\n ...(display.valueExpression && {\n valueExpression: display.valueExpression,\n }),\n };\n}\nfunction migrateColumns(columns) {\n if (!columns || columns.length === 0) {\n return [];\n }\n return columns.map(migrateColumn);\n}\nexport const migration019ColumnTypeBased = createSchemaMigration({\n version: 19,\n name: 'columnTypeBased',\n description: 'Migrate admin CRUD columns from display-based to type-based structure',\n migrate: (config) => {\n if (!config.apps) {\n return config;\n }\n const apps = config.apps.map((app) => {\n // Only process apps with adminApp and sections\n if (!app.adminApp?.sections) {\n return app;\n }\n const sections = app.adminApp.sections.map((section) => {\n const updatedSection = { ...section };\n // Migrate main table columns\n if (section.table?.columns) {\n updatedSection.table = {\n ...section.table,\n columns: migrateColumns(section.table.columns),\n };\n }\n // Migrate embedded form table columns\n if (section.embeddedForms) {\n updatedSection.embeddedForms = section.embeddedForms.map((form) => {\n if (form.table?.columns) {\n return {\n ...form,\n table: {\n ...form.table,\n columns: migrateColumns(form.table.columns),\n },\n };\n }\n return form;\n });\n }\n return updatedSection;\n });\n return {\n ...app,\n adminApp: {\n ...app.adminApp,\n sections,\n },\n };\n });\n return {\n ...config,\n apps,\n };\n },\n});\n//# sourceMappingURL=migration-019-column-type-based.js.map","import { createSchemaMigration } from './types.js';\n/**\n * Migration to move enableRedis from backend apps to infrastructure settings\n *\n * This migration:\n * 1. Finds the first backend app with enableRedis property\n * 2. Moves that value to settings.infrastructure.redis.enabled\n * 3. Removes enableRedis from all backend apps\n */\nexport const migration020MoveRedisToInfrastructure = createSchemaMigration({\n version: 20,\n name: 'moveRedisToInfrastructure',\n description: 'Move enableRedis from backend apps to settings.infrastructure.redis.enabled',\n migrate: (config) => {\n // Find the first backend app with enableRedis\n const firstBackendApp = config.apps?.find((app) => app.type === 'backend' && 'enableRedis' in app);\n // Get the enableRedis value (default to false if not found)\n const enableRedis = firstBackendApp?.enableRedis ?? false;\n // Remove enableRedis from all apps\n const apps = config.apps?.map((app) => {\n if (app.type === 'backend' && 'enableRedis' in app) {\n const { enableRedis: _, ...rest } = app;\n return rest;\n }\n return app;\n });\n // Update settings with infrastructure.redis.enabled\n const settings = {\n ...config.settings,\n infrastructure: {\n ...config.settings?.infrastructure,\n redis: {\n enabled: enableRedis,\n },\n },\n };\n return {\n ...config,\n apps,\n settings,\n };\n },\n});\n//# sourceMappingURL=migration-020-move-redis-to-infrastructure.js.map","import { createSchemaMigration } from './types.js';\n/**\n * Migration to move enableBullQueue from backend apps to queue/bullmq plugins\n *\n * This migration:\n * 1. Finds backend apps with enableBullQueue: true\n * 2. If found, adds the queue parent plugin with implementationPluginKey pointing to bullmq\n * 3. Adds the bullmq child plugin with default config\n * 4. Removes enableBullQueue from all backend apps\n */\nexport const migration021MigrateBullmqToPlugin = createSchemaMigration({\n version: 21,\n name: 'migrateBullmqToPlugin',\n description: 'Migrate enableBullQueue from backend apps to queue/bullmq plugins',\n migrate: (config) => {\n // Find if any backend app has enableBullQueue: true\n const hasBullQueue = config.apps?.some((app) => app.type === 'backend' && app.enableBullQueue === true);\n // Remove enableBullQueue from all apps\n const apps = config.apps?.map((app) => {\n if (app.type === 'backend' && 'enableBullQueue' in app) {\n const { enableBullQueue: _, ...rest } = app;\n return rest;\n }\n return app;\n });\n // If enableBullQueue was set, add the plugins\n const plugins = config.plugins ? [...config.plugins] : [];\n if (hasBullQueue) {\n const queuePluginId = 'plugin:baseplate-dev_plugin-queue_queue';\n const bullmqPluginId = 'plugin:baseplate-dev_plugin-queue_bullmq';\n // Add/update queue parent plugin\n const queuePluginIndex = plugins.findIndex((p) => p.id === queuePluginId);\n if (queuePluginIndex === -1) {\n plugins.push({\n id: queuePluginId,\n name: 'queue',\n packageName: '@baseplate-dev/plugin-queue',\n version: '1.0.0',\n config: {\n implementationPluginKey: 'baseplate-dev_plugin-queue_bullmq',\n },\n });\n }\n else {\n plugins[queuePluginIndex] = {\n ...plugins[queuePluginIndex],\n config: {\n ...plugins[queuePluginIndex].config,\n implementationPluginKey: 'baseplate-dev_plugin-queue_bullmq',\n },\n };\n }\n // Add bullmq child plugin if not exists\n const bullmqPluginIndex = plugins.findIndex((p) => p.id === bullmqPluginId);\n if (bullmqPluginIndex === -1) {\n plugins.push({\n id: bullmqPluginId,\n name: 'bullmq',\n packageName: '@baseplate-dev/plugin-queue',\n version: '1.0.0',\n config: {\n bullmqOptions: {\n deleteAfterDays: 7,\n },\n },\n });\n }\n }\n return {\n ...config,\n apps,\n plugins,\n };\n },\n});\n//# sourceMappingURL=migration-021-migrate-bullmq-to-plugin.js.map","import { migration005PrimaryUniqueRefs } from './migration-005-primary-unique-refs.js';\nimport { migration006IndividualServiceControllers } from './migration-006-individual-service-controllers.js';\nimport { migration007ModelGraphql } from './migration-007-model-graphql.js';\nimport { migration008AnonymousPublicRole } from './migration-008-anonymous-public-role.js';\nimport { migration009RenameRefs } from './migration-009-rename-refs.js';\nimport { migration010HexToOklch } from './migration-010-hex-to-oklch.js';\nimport { migration011PluginId } from './migration-011-plugin-id.js';\nimport { migration012MigrateAuthConfig } from './migration-012-migrate-auth-config.js';\nimport { migration013MoveGeneralSettings } from './migration-013-move-general-settings.js';\nimport { migration014MigratePluginIds } from './migration-014-migrate-plugin-ids.js';\nimport { migration015NullParentRefs } from './migration-015-null-parent-refs.js';\nimport { migration016WebAdminConfig } from './migration-016-web-admin-config.js';\nimport { migration017RenameAuthPlugin } from './migration-017-rename-auth-plugin.js';\nimport { migration018CrudNameFieldRef } from './migration-018-crud-name-field-ref.js';\nimport { migration019ColumnTypeBased } from './migration-019-column-type-based.js';\nimport { migration020MoveRedisToInfrastructure } from './migration-020-move-redis-to-infrastructure.js';\nimport { migration021MigrateBullmqToPlugin } from './migration-021-migrate-bullmq-to-plugin.js';\nexport const SCHEMA_MIGRATIONS = [\n migration005PrimaryUniqueRefs,\n migration006IndividualServiceControllers,\n migration007ModelGraphql,\n migration008AnonymousPublicRole,\n migration009RenameRefs,\n migration010HexToOklch,\n migration011PluginId,\n migration012MigrateAuthConfig,\n migration013MoveGeneralSettings,\n migration014MigratePluginIds,\n migration015NullParentRefs,\n migration016WebAdminConfig,\n migration017RenameAuthPlugin,\n migration018CrudNameFieldRef,\n migration019ColumnTypeBased,\n migration020MoveRedisToInfrastructure,\n migration021MigrateBullmqToPlugin,\n];\nexport function isMigrateableProjectDefinition(projectDefinition) {\n return (typeof projectDefinition === 'object' &&\n !!projectDefinition &&\n 'schemaVersion' in projectDefinition);\n}\nexport class SchemaMigrationError extends Error {\n migrationName;\n cause;\n constructor(migrationName, cause) {\n super(`Schema migration ${migrationName} failed: ${cause instanceof Error ? cause.message : String(cause)}`);\n this.name = 'SchemaMigrationError';\n this.migrationName = migrationName;\n this.cause = cause;\n }\n}\nexport function runSchemaMigrations(config) {\n const { schemaVersion } = config;\n const unappliedMigrations = SCHEMA_MIGRATIONS.filter((m) => m.version > schemaVersion).sort((a, b) => a.version - b.version);\n let migratedDefinition = config;\n for (const migration of unappliedMigrations) {\n try {\n migratedDefinition = {\n ...migration.migrate(migratedDefinition),\n schemaVersion: migration.version,\n };\n }\n catch (cause) {\n throw new SchemaMigrationError(migration.name, cause);\n }\n }\n return { migratedDefinition, appliedMigrations: unappliedMigrations };\n}\nexport function getLatestMigrationVersion() {\n return SCHEMA_MIGRATIONS.at(-1)?.version ?? 0;\n}\n//# sourceMappingURL=index.js.map","import { getLatestMigrationVersion } from '#src/migrations/index.js';\nimport { createPluginImplementationStore } from '#src/parser/parser.js';\nimport { deserializeSchemaWithTransformedReferences } from '#src/references/deserialize-schema.js';\nimport { createProjectDefinitionSchema } from '#src/schema/project-definition.js';\nimport { ProjectDefinitionContainer } from './project-definition-container.js';\nexport function createTestProjectDefinition(input = {}) {\n return {\n settings: {\n general: {\n name: 'test-project',\n packageScope: '',\n portOffset: 3000,\n },\n },\n features: [],\n cliVersion: '1.0.0',\n apps: [],\n models: [],\n isInitialized: true,\n schemaVersion: getLatestMigrationVersion(),\n ...input,\n };\n}\nexport function createTestProjectDefinitionInput(input = {}) {\n return {\n ...createTestProjectDefinition(),\n ...input,\n };\n}\nexport function createTestProjectDefinitionContainer(input = {}) {\n const pluginStore = {\n availablePlugins: [],\n };\n const pluginImplementationStore = createPluginImplementationStore(pluginStore, { plugins: [] });\n const resolvedRefPayload = deserializeSchemaWithTransformedReferences(createProjectDefinitionSchema, createTestProjectDefinitionInput(input), { plugins: pluginImplementationStore });\n return new ProjectDefinitionContainer(resolvedRefPayload, {\n pluginStore,\n cliVersion: '0.1.0',\n project: {\n id: 'test-project',\n name: 'test-project',\n directory: '/test-project',\n isInternalExample: false,\n },\n }, pluginImplementationStore);\n}\n//# sourceMappingURL=project-definition-container.test-utils.js.map","export const AVAILABLE_FLAGS = ['TEMPLATE_EXTRACTOR'];\n//# sourceMappingURL=flags.js.map","import { COLOR_PALETTES, FIXED_COLOR_MAPPINGS } from '#src/constants/colors.js';\nimport { convertOklchToHex } from './color-conversions.js';\n/**\n * Convert a color name to a hex color. Can be one of the following:\n * - A fixed color name (e.g. 'white', 'black').\n * - A color palette name (e.g. 'slate-500', 'gray-300').\n * - A hex color (e.g. '#ff0000').\n * - A OKLCH color (e.g. 'oklch(0.5 0.2 180 / 0.3)').\n *\n * @param color - The color name to convert.\n * @returns The OKLCH color.\n */\nexport function convertColorNameToOklch(color) {\n const fixedColorMapping = FIXED_COLOR_MAPPINGS[color];\n if (fixedColorMapping) {\n return fixedColorMapping;\n }\n const colorComponents = color.split('-');\n if (colorComponents.length === 2) {\n const paletteName = colorComponents[0];\n if (Object.prototype.hasOwnProperty.call(COLOR_PALETTES, paletteName)) {\n const palette = COLOR_PALETTES[colorComponents[0]];\n const shade = palette[colorComponents[1]];\n if (shade) {\n return shade;\n }\n }\n }\n return color;\n}\nlet reverseColorMapping = null;\nfunction getReverseColorMapping() {\n if (!reverseColorMapping) {\n reverseColorMapping = {};\n for (const [key, value] of Object.entries(FIXED_COLOR_MAPPINGS)) {\n reverseColorMapping[value] = key;\n }\n for (const [paletteName, palette] of Object.entries(COLOR_PALETTES)) {\n for (const [shade, hex] of Object.entries(palette)) {\n reverseColorMapping[hex] = `${paletteName}-${shade}`;\n }\n }\n }\n return reverseColorMapping;\n}\n/**\n * Convert an OKLCH color to a color name.\n * @param oklch - The OKLCH color to convert.\n * @returns The color name.\n */\nexport function convertOklchToColorName(oklch) {\n return getReverseColorMapping()[oklch] ?? convertOklchToHex(oklch);\n}\n//# sourceMappingURL=color-names.js.map","\"use strict\";\n/*!\n * inflection\n * Copyright(c) 2011 Ben Lin <ben@dreamerslab.com>\n * MIT Licensed\n *\n * @fileoverview\n * A port of inflection-js to node.js module.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transform = exports.ordinalize = exports.foreignKey = exports.classify = exports.tableize = exports.demodulize = exports.titleize = exports.dasherize = exports.capitalize = exports.humanize = exports.underscore = exports.camelize = exports.inflect = exports.singularize = exports.pluralize = void 0;\n/**\n * @description This is a list of nouns that use the same form for both singular and plural.\n * This list should remain entirely in lower case to correctly match Strings.\n */\nconst uncountableWords = [\n // 'access',\n 'accommodation',\n 'adulthood',\n 'advertising',\n 'advice',\n 'aggression',\n 'aid',\n 'air',\n 'aircraft',\n 'alcohol',\n 'anger',\n 'applause',\n 'arithmetic',\n // 'art',\n 'assistance',\n 'athletics',\n // 'attention',\n 'bacon',\n 'baggage',\n // 'ballet',\n // 'beauty',\n 'beef',\n // 'beer',\n // 'behavior',\n 'biology',\n // 'billiards',\n 'blood',\n 'botany',\n // 'bowels',\n 'bread',\n // 'business',\n 'butter',\n 'carbon',\n 'cardboard',\n 'cash',\n 'chalk',\n 'chaos',\n 'chess',\n 'crossroads',\n 'countryside',\n // 'damage',\n 'dancing',\n // 'danger',\n 'deer',\n // 'delight',\n // 'dessert',\n 'dignity',\n 'dirt',\n // 'distribution',\n 'dust',\n 'economics',\n 'education',\n 'electricity',\n // 'employment',\n // 'energy',\n 'engineering',\n 'enjoyment',\n // 'entertainment',\n 'envy',\n 'equipment',\n 'ethics',\n 'evidence',\n 'evolution',\n // 'failure',\n // 'faith',\n 'fame',\n 'fiction',\n // 'fish',\n 'flour',\n 'flu',\n 'food',\n // 'freedom',\n // 'fruit',\n 'fuel',\n 'fun',\n // 'funeral',\n 'furniture',\n 'gallows',\n 'garbage',\n 'garlic',\n // 'gas',\n 'genetics',\n // 'glass',\n 'gold',\n 'golf',\n 'gossip',\n // 'grass',\n 'gratitude',\n 'grief',\n // 'ground',\n 'guilt',\n 'gymnastics',\n // 'hair',\n 'happiness',\n 'hardware',\n 'harm',\n 'hate',\n 'hatred',\n 'health',\n 'heat',\n // 'height',\n 'help',\n 'homework',\n 'honesty',\n 'honey',\n 'hospitality',\n 'housework',\n 'humour',\n 'hunger',\n 'hydrogen',\n 'ice',\n 'importance',\n 'inflation',\n 'information',\n // 'injustice',\n 'innocence',\n // 'intelligence',\n 'iron',\n 'irony',\n 'jam',\n // 'jealousy',\n // 'jelly',\n 'jewelry',\n // 'joy',\n 'judo',\n // 'juice',\n // 'justice',\n 'karate',\n // 'kindness',\n 'knowledge',\n // 'labour',\n 'lack',\n // 'land',\n 'laughter',\n 'lava',\n 'leather',\n 'leisure',\n 'lightning',\n 'linguine',\n 'linguini',\n 'linguistics',\n 'literature',\n 'litter',\n 'livestock',\n 'logic',\n 'loneliness',\n // 'love',\n 'luck',\n 'luggage',\n 'macaroni',\n 'machinery',\n 'magic',\n // 'mail',\n 'management',\n 'mankind',\n 'marble',\n 'mathematics',\n 'mayonnaise',\n 'measles',\n // 'meat',\n // 'metal',\n 'methane',\n 'milk',\n 'minus',\n 'money',\n // 'moose',\n 'mud',\n 'music',\n 'mumps',\n 'nature',\n 'news',\n 'nitrogen',\n 'nonsense',\n 'nurture',\n 'nutrition',\n 'obedience',\n 'obesity',\n // 'oil',\n 'oxygen',\n // 'paper',\n // 'passion',\n 'pasta',\n 'patience',\n // 'permission',\n 'physics',\n 'poetry',\n 'pollution',\n 'poverty',\n // 'power',\n 'pride',\n // 'production',\n // 'progress',\n // 'pronunciation',\n 'psychology',\n 'publicity',\n 'punctuation',\n // 'quality',\n // 'quantity',\n 'quartz',\n 'racism',\n // 'rain',\n // 'recreation',\n 'relaxation',\n 'reliability',\n 'research',\n 'respect',\n 'revenge',\n 'rice',\n 'rubbish',\n 'rum',\n 'safety',\n // 'salad',\n // 'salt',\n // 'sand',\n // 'satire',\n 'scenery',\n 'seafood',\n 'seaside',\n 'series',\n 'shame',\n 'sheep',\n 'shopping',\n // 'silence',\n 'sleep',\n // 'slang'\n 'smoke',\n 'smoking',\n 'snow',\n 'soap',\n 'software',\n 'soil',\n // 'sorrow',\n // 'soup',\n 'spaghetti',\n // 'speed',\n 'species',\n // 'spelling',\n // 'sport',\n 'steam',\n // 'strength',\n 'stuff',\n 'stupidity',\n // 'success',\n // 'sugar',\n 'sunshine',\n 'symmetry',\n // 'tea',\n 'tennis',\n 'thirst',\n 'thunder',\n 'timber',\n // 'time',\n // 'toast',\n // 'tolerance',\n // 'trade',\n 'traffic',\n 'transportation',\n // 'travel',\n 'trust',\n // 'understanding',\n 'underwear',\n 'unemployment',\n 'unity',\n // 'usage',\n 'validity',\n 'veal',\n 'vegetation',\n 'vegetarianism',\n 'vengeance',\n 'violence',\n // 'vision',\n 'vitality',\n 'warmth',\n // 'water',\n 'wealth',\n 'weather',\n // 'weight',\n 'welfare',\n 'wheat',\n // 'whiskey',\n // 'width',\n 'wildlife',\n // 'wine',\n 'wisdom',\n // 'wood',\n // 'wool',\n // 'work',\n // 'yeast',\n 'yoga',\n 'zinc',\n 'zoology',\n];\n/**\n * @description These rules translate from the singular form of a noun to its plural form.\n */\nconst regex = {\n plural: {\n men: new RegExp('^(m|wom)en$', 'gi'),\n people: new RegExp('(pe)ople$', 'gi'),\n children: new RegExp('(child)ren$', 'gi'),\n tia: new RegExp('([ti])a$', 'gi'),\n analyses: new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', 'gi'),\n databases: new RegExp('(database)s$', 'gi'),\n drives: new RegExp('(drive)s$', 'gi'),\n hives: new RegExp('(hi|ti)ves$', 'gi'),\n curves: new RegExp('(curve)s$', 'gi'),\n lrves: new RegExp('([lr])ves$', 'gi'),\n aves: new RegExp('([a])ves$', 'gi'),\n foves: new RegExp('([^fo])ves$', 'gi'),\n movies: new RegExp('(m)ovies$', 'gi'),\n aeiouyies: new RegExp('([^aeiouy]|qu)ies$', 'gi'),\n series: new RegExp('(s)eries$', 'gi'),\n xes: new RegExp('(x|ch|ss|sh)es$', 'gi'),\n mice: new RegExp('([m|l])ice$', 'gi'),\n buses: new RegExp('(bus)es$', 'gi'),\n oes: new RegExp('(o)es$', 'gi'),\n shoes: new RegExp('(shoe)s$', 'gi'),\n crises: new RegExp('(cris|ax|test)es$', 'gi'),\n octopuses: new RegExp('(octop|vir)uses$', 'gi'),\n aliases: new RegExp('(alias|canvas|status|campus)es$', 'gi'),\n summonses: new RegExp('^(summons|bonus)es$', 'gi'),\n oxen: new RegExp('^(ox)en', 'gi'),\n matrices: new RegExp('(matr)ices$', 'gi'),\n vertices: new RegExp('(vert|ind)ices$', 'gi'),\n feet: new RegExp('^feet$', 'gi'),\n teeth: new RegExp('^teeth$', 'gi'),\n geese: new RegExp('^geese$', 'gi'),\n quizzes: new RegExp('(quiz)zes$', 'gi'),\n whereases: new RegExp('^(whereas)es$', 'gi'),\n criteria: new RegExp('^(criteri)a$', 'gi'),\n genera: new RegExp('^genera$', 'gi'),\n ss: new RegExp('ss$', 'gi'),\n s: new RegExp('s$', 'gi'),\n },\n singular: {\n man: new RegExp('^(m|wom)an$', 'gi'),\n person: new RegExp('(pe)rson$', 'gi'),\n child: new RegExp('(child)$', 'gi'),\n drive: new RegExp('(drive)$', 'gi'),\n ox: new RegExp('^(ox)$', 'gi'),\n axis: new RegExp('(ax|test)is$', 'gi'),\n octopus: new RegExp('(octop|vir)us$', 'gi'),\n alias: new RegExp('(alias|status|canvas|campus)$', 'gi'),\n summons: new RegExp('^(summons|bonus)$', 'gi'),\n bus: new RegExp('(bu)s$', 'gi'),\n buffalo: new RegExp('(buffal|tomat|potat)o$', 'gi'),\n tium: new RegExp('([ti])um$', 'gi'),\n sis: new RegExp('sis$', 'gi'),\n ffe: new RegExp('(?:([^f])fe|([lr])f)$', 'gi'),\n hive: new RegExp('(hi|ti)ve$', 'gi'),\n aeiouyy: new RegExp('([^aeiouy]|qu)y$', 'gi'),\n x: new RegExp('(x|ch|ss|sh)$', 'gi'),\n matrix: new RegExp('(matr)ix$', 'gi'),\n vertex: new RegExp('(vert|ind)ex$', 'gi'),\n mouse: new RegExp('([m|l])ouse$', 'gi'),\n foot: new RegExp('^foot$', 'gi'),\n tooth: new RegExp('^tooth$', 'gi'),\n goose: new RegExp('^goose$', 'gi'),\n quiz: new RegExp('(quiz)$', 'gi'),\n whereas: new RegExp('^(whereas)$', 'gi'),\n criterion: new RegExp('^(criteri)on$', 'gi'),\n genus: new RegExp('^genus$', 'gi'),\n s: new RegExp('s$', 'gi'),\n common: new RegExp('$', 'gi'),\n },\n};\nconst pluralRules = [\n // do not replace if its already a plural word\n [regex.plural.men],\n [regex.plural.people],\n [regex.plural.children],\n [regex.plural.tia],\n [regex.plural.analyses],\n [regex.plural.databases],\n [regex.plural.drives],\n [regex.plural.hives],\n [regex.plural.curves],\n [regex.plural.lrves],\n [regex.plural.foves],\n [regex.plural.aeiouyies],\n [regex.plural.series],\n [regex.plural.movies],\n [regex.plural.xes],\n [regex.plural.mice],\n [regex.plural.buses],\n [regex.plural.oes],\n [regex.plural.shoes],\n [regex.plural.crises],\n [regex.plural.octopuses],\n [regex.plural.aliases],\n [regex.plural.summonses],\n [regex.plural.oxen],\n [regex.plural.matrices],\n [regex.plural.feet],\n [regex.plural.teeth],\n [regex.plural.geese],\n [regex.plural.quizzes],\n [regex.plural.whereases],\n [regex.plural.criteria],\n [regex.plural.genera],\n // original rule\n [regex.singular.man, '$1en'],\n [regex.singular.person, '$1ople'],\n [regex.singular.child, '$1ren'],\n [regex.singular.drive, '$1s'],\n [regex.singular.ox, '$1en'],\n [regex.singular.axis, '$1es'],\n [regex.singular.octopus, '$1uses'],\n [regex.singular.alias, '$1es'],\n [regex.singular.summons, '$1es'],\n [regex.singular.bus, '$1ses'],\n [regex.singular.buffalo, '$1oes'],\n [regex.singular.tium, '$1a'],\n [regex.singular.sis, 'ses'],\n [regex.singular.ffe, '$1$2ves'],\n [regex.singular.hive, '$1ves'],\n [regex.singular.aeiouyy, '$1ies'],\n [regex.singular.matrix, '$1ices'],\n [regex.singular.vertex, '$1ices'],\n [regex.singular.x, '$1es'],\n [regex.singular.mouse, '$1ice'],\n [regex.singular.foot, 'feet'],\n [regex.singular.tooth, 'teeth'],\n [regex.singular.goose, 'geese'],\n [regex.singular.quiz, '$1zes'],\n [regex.singular.whereas, '$1es'],\n [regex.singular.criterion, '$1a'],\n [regex.singular.genus, 'genera'],\n [regex.singular.s, 's'],\n [regex.singular.common, 's'],\n];\n/**\n * @description These rules translate from the plural form of a noun to its singular form.\n */\nconst singularRules = [\n // do not replace if its already a singular word\n [regex.singular.man],\n [regex.singular.person],\n [regex.singular.child],\n [regex.singular.drive],\n [regex.singular.ox],\n [regex.singular.axis],\n [regex.singular.octopus],\n [regex.singular.alias],\n [regex.singular.summons],\n [regex.singular.bus],\n [regex.singular.buffalo],\n [regex.singular.tium],\n [regex.singular.sis],\n [regex.singular.ffe],\n [regex.singular.hive],\n [regex.singular.aeiouyy],\n [regex.singular.x],\n [regex.singular.matrix],\n [regex.singular.mouse],\n [regex.singular.foot],\n [regex.singular.tooth],\n [regex.singular.goose],\n [regex.singular.quiz],\n [regex.singular.whereas],\n [regex.singular.criterion],\n [regex.singular.genus],\n // original rule\n [regex.plural.men, '$1an'],\n [regex.plural.people, '$1rson'],\n [regex.plural.children, '$1'],\n [regex.plural.databases, '$1'],\n [regex.plural.drives, '$1'],\n [regex.plural.genera, 'genus'],\n [regex.plural.criteria, '$1on'],\n [regex.plural.tia, '$1um'],\n [regex.plural.analyses, '$1$2sis'],\n [regex.plural.hives, '$1ve'],\n [regex.plural.curves, '$1'],\n [regex.plural.lrves, '$1f'],\n [regex.plural.aves, '$1ve'],\n [regex.plural.foves, '$1fe'],\n [regex.plural.movies, '$1ovie'],\n [regex.plural.aeiouyies, '$1y'],\n [regex.plural.series, '$1eries'],\n [regex.plural.xes, '$1'],\n [regex.plural.mice, '$1ouse'],\n [regex.plural.buses, '$1'],\n [regex.plural.oes, '$1'],\n [regex.plural.shoes, '$1'],\n [regex.plural.crises, '$1is'],\n [regex.plural.octopuses, '$1us'],\n [regex.plural.aliases, '$1'],\n [regex.plural.summonses, '$1'],\n [regex.plural.oxen, '$1'],\n [regex.plural.matrices, '$1ix'],\n [regex.plural.vertices, '$1ex'],\n [regex.plural.feet, 'foot'],\n [regex.plural.teeth, 'tooth'],\n [regex.plural.geese, 'goose'],\n [regex.plural.quizzes, '$1'],\n [regex.plural.whereases, '$1'],\n [regex.plural.ss, 'ss'],\n [regex.plural.s, ''],\n];\n/**\n * @description This is a list of words that should not be capitalized for title case.\n */\nconst nonTitlecasedWords = [\n 'and',\n 'or',\n 'nor',\n 'a',\n 'an',\n 'the',\n 'so',\n 'but',\n 'to',\n 'of',\n 'at',\n 'by',\n 'from',\n 'into',\n 'on',\n 'onto',\n 'off',\n 'out',\n 'in',\n 'over',\n 'with',\n 'for',\n];\n/**\n * @description These are regular expressions used for converting between String formats.\n */\nconst idSuffix = new RegExp('(_ids|_id)$', 'g');\nconst underbar = new RegExp('_', 'g');\nconst spaceOrUnderbar = new RegExp('[ _]', 'g');\nconst uppercase = new RegExp('([A-Z])', 'g');\nconst underbarPrefix = new RegExp('^_');\n/**\n * A helper method that applies rules based replacement to a String.\n * @param str String to modify and return based on the passed rules.\n * @param rules Regexp to match paired with String to use for replacement\n * @param skip Strings to skip if they match\n * @param override String to return as though this method succeeded (used to conform to APIs)\n * @returns Return passed String modified by passed rules.\n * @example\n *\n * applyRules( 'cows', singular_rules ); // === 'cow'\n */\nfunction applyRules(str, rules, skip, override) {\n if (override) {\n return override;\n }\n else {\n if (skip.includes(str.toLocaleLowerCase())) {\n return str;\n }\n for (const rule of rules) {\n if (str.match(rule[0])) {\n if (rule[1] !== undefined) {\n return str.replace(rule[0], rule[1]);\n }\n return str;\n }\n }\n }\n return str;\n}\n/**\n * This function adds pluralization support to every String object.\n * @param str The subject string.\n * @param plural Overrides normal output with said String.(optional)\n * @returns Singular English language nouns are returned in plural form.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.pluralize( 'person' ); // === 'people'\n * inflection.pluralize( 'octopus' ); // === 'octopuses'\n * inflection.pluralize( 'Hat' ); // === 'Hats'\n * inflection.pluralize( 'person', 'guys' ); // === 'guys'\n */\nfunction pluralize(str, plural) {\n return applyRules(str, pluralRules, uncountableWords, plural);\n}\nexports.pluralize = pluralize;\n/**\n * This function adds singularization support to every String object.\n * @param str The subject string.\n * @param singular Overrides normal output with said String.(optional)\n * @returns Plural English language nouns are returned in singular form.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.singularize( 'people' ); // === 'person'\n * inflection.singularize( 'octopuses' ); // === 'octopus'\n * inflection.singularize( 'Hats' ); // === 'Hat'\n * inflection.singularize( 'guys', 'person' ); // === 'person'\n */\nfunction singularize(str, singular) {\n return applyRules(str, singularRules, uncountableWords, singular);\n}\nexports.singularize = singularize;\n/**\n * This function will pluralize or singularlize a String appropriately based on a number value\n * @param str The subject string.\n * @param count The number to base pluralization off of.\n * @param singular Overrides normal output with said String.(optional)\n * @param plural Overrides normal output with said String.(optional)\n * @returns English language nouns are returned in the plural or singular form based on the count.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.inflect( 'people' 1 ); // === 'person'\n * inflection.inflect( 'octopuses' 1 ); // === 'octopus'\n * inflection.inflect( 'Hats' 1 ); // === 'Hat'\n * inflection.inflect( 'guys', 1 , 'person' ); // === 'person'\n * inflection.inflect( 'inches', 1.5 ); // === 'inches'\n * inflection.inflect( 'person', 2 ); // === 'people'\n * inflection.inflect( 'octopus', 2 ); // === 'octopuses'\n * inflection.inflect( 'Hat', 2 ); // === 'Hats'\n * inflection.inflect( 'person', 2, null, 'guys' ); // === 'guys'\n */\nfunction inflect(str, count, singular, plural) {\n if (isNaN(count))\n return str;\n if (count === 1) {\n return applyRules(str, singularRules, uncountableWords, singular);\n }\n else {\n return applyRules(str, pluralRules, uncountableWords, plural);\n }\n}\nexports.inflect = inflect;\n/**\n * This function adds camelization support to every String object.\n * @param str The subject string.\n * @param lowFirstLetter Default is to capitalize the first letter of the results.(optional)\n * Passing true will lowercase it.\n * @returns Lower case underscored words will be returned in camel case.\n * additionally '/' is translated to '::'\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.camelize( 'message_properties' ); // === 'MessageProperties'\n * inflection.camelize( 'message_properties', true ); // === 'messageProperties'\n */\nfunction camelize(str, lowFirstLetter) {\n const strPath = str.split('/');\n const j = strPath.length;\n let strArr, k, l, first;\n for (let i = 0; i < j; i++) {\n strArr = strPath[i].split('_');\n k = 0;\n l = strArr.length;\n for (; k < l; k++) {\n if (k !== 0) {\n strArr[k] = strArr[k].toLowerCase();\n }\n first = strArr[k].charAt(0);\n first =\n lowFirstLetter && i === 0 && k === 0\n ? first.toLowerCase()\n : first.toUpperCase();\n strArr[k] = first + strArr[k].substring(1);\n }\n strPath[i] = strArr.join('');\n }\n return strPath.join('::');\n}\nexports.camelize = camelize;\n/**\n * This function adds underscore support to every String object.\n * @param str The subject string.\n * @param allUpperCase Default is to lowercase and add underscore prefix.(optional)\n * Passing true will return as entered.\n * @returns Camel cased words are returned as lower cased and underscored.\n * additionally '::' is translated to '/'.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.underscore( 'MessageProperties' ); // === 'message_properties'\n * inflection.underscore( 'messageProperties' ); // === 'message_properties'\n * inflection.underscore( 'MP', true ); // === 'MP'\n */\nfunction underscore(str, allUpperCase) {\n if (allUpperCase && str === str.toUpperCase())\n return str;\n const strPath = str.split('::');\n const j = strPath.length;\n for (let i = 0; i < j; i++) {\n strPath[i] = strPath[i].replace(uppercase, '_$1');\n strPath[i] = strPath[i].replace(underbarPrefix, '');\n }\n return strPath.join('/').toLowerCase();\n}\nexports.underscore = underscore;\n/**\n * This function adds humanize support to every String object.\n * @param str The subject string.\n * @param lowFirstLetter Default is to capitalize the first letter of the results.(optional)\n * Passing true will lowercase it.\n * @returns Lower case underscored words will be returned in humanized form.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.humanize( 'message_properties' ); // === 'Message properties'\n * inflection.humanize( 'message_properties', true ); // === 'message properties'\n */\nfunction humanize(str, lowFirstLetter) {\n str = str.toLowerCase();\n str = str.replace(idSuffix, '');\n str = str.replace(underbar, ' ');\n if (!lowFirstLetter) {\n str = capitalize(str);\n }\n return str;\n}\nexports.humanize = humanize;\n/**\n * This function adds capitalization support to every String object.\n * @param str The subject string.\n * @returns All characters will be lower case and the first will be upper.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.capitalize( 'message_properties' ); // === 'Message_properties'\n * inflection.capitalize( 'message properties', true ); // === 'Message properties'\n */\nfunction capitalize(str) {\n str = str.toLowerCase();\n return str.substring(0, 1).toUpperCase() + str.substring(1);\n}\nexports.capitalize = capitalize;\n/**\n * This function replaces underscores with dashes in the string.\n * @param str The subject string.\n * @returns Replaces all spaces or underscores with dashes.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.dasherize( 'message_properties' ); // === 'message-properties'\n * inflection.dasherize( 'Message Properties' ); // === 'Message-Properties'\n */\nfunction dasherize(str) {\n return str.replace(spaceOrUnderbar, '-');\n}\nexports.dasherize = dasherize;\n/**\n * This function adds titleize support to every String object.\n * @param str The subject string.\n * @returns Capitalizes words as you would for a book title.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.titleize( 'message_properties' ); // === 'Message Properties'\n * inflection.titleize( 'message properties to keep' ); // === 'Message Properties to Keep'\n */\nfunction titleize(str) {\n str = str.toLowerCase().replace(underbar, ' ');\n const strArr = str.split(' ');\n const j = strArr.length;\n let d, l;\n for (let i = 0; i < j; i++) {\n d = strArr[i].split('-');\n l = d.length;\n for (let k = 0; k < l; k++) {\n if (nonTitlecasedWords.indexOf(d[k].toLowerCase()) < 0) {\n d[k] = capitalize(d[k]);\n }\n }\n strArr[i] = d.join('-');\n }\n str = strArr.join(' ');\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n return str;\n}\nexports.titleize = titleize;\n/**\n * This function adds demodulize support to every String object.\n * @param str The subject string.\n * @returns Removes module names leaving only class names.(Ruby style)\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.demodulize( 'Message::Bus::Properties' ); // === 'Properties'\n */\nfunction demodulize(str) {\n const strArr = str.split('::');\n return strArr[strArr.length - 1];\n}\nexports.demodulize = demodulize;\n/**\n * This function adds tableize support to every String object.\n * @param str The subject string.\n * @returns Return camel cased words into their underscored plural form.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.tableize( 'MessageBusProperty' ); // === 'message_bus_properties'\n */\nfunction tableize(str) {\n str = underscore(str);\n str = pluralize(str);\n return str;\n}\nexports.tableize = tableize;\n/**\n * This function adds classification support to every String object.\n * @param str The subject string.\n * @returns Underscored plural nouns become the camel cased singular form.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.classify( 'message_bus_properties' ); // === 'MessageBusProperty'\n */\nfunction classify(str) {\n str = camelize(str);\n str = singularize(str);\n return str;\n}\nexports.classify = classify;\n/**\n * This function adds foreign key support to every String object.\n * @param str The subject string.\n * @param dropIdUbar Default is to seperate id with an underbar at the end of the class name,\n you can pass true to skip it.(optional)\n * @returns Underscored plural nouns become the camel cased singular form.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.foreign_key( 'MessageBusProperty' ); // === 'message_bus_property_id'\n * inflection.foreign_key( 'MessageBusProperty', true ); // === 'message_bus_propertyid'\n */\nfunction foreignKey(str, dropIdUbar) {\n str = demodulize(str);\n str = underscore(str) + (dropIdUbar ? '' : '_') + 'id';\n return str;\n}\nexports.foreignKey = foreignKey;\n/**\n * This function adds ordinalize support to every String object.\n * @param str The subject string.\n * @returns Return all found numbers their sequence like '22nd'.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.ordinalize( 'the 1 pitch' ); // === 'the 1st pitch'\n */\nfunction ordinalize(str) {\n const strArr = str.split(' ');\n const j = strArr.length;\n for (let i = 0; i < j; i++) {\n const k = parseInt(strArr[i], 10);\n if (!isNaN(k)) {\n const ltd = strArr[i].substring(strArr[i].length - 2);\n const ld = strArr[i].substring(strArr[i].length - 1);\n let suf = 'th';\n if (ltd != '11' && ltd != '12' && ltd != '13') {\n if (ld === '1') {\n suf = 'st';\n }\n else if (ld === '2') {\n suf = 'nd';\n }\n else if (ld === '3') {\n suf = 'rd';\n }\n }\n strArr[i] += suf;\n }\n }\n return strArr.join(' ');\n}\nexports.ordinalize = ordinalize;\nconst transformFunctions = {\n pluralize,\n singularize,\n camelize,\n underscore,\n humanize,\n capitalize,\n dasherize,\n titleize,\n demodulize,\n tableize,\n classify,\n foreignKey,\n ordinalize,\n};\n/**\n * This function performs multiple inflection methods on a string\n * @param str The subject string.\n * @param arr An array of inflection methods.\n * @returns\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.transform( 'all job', [ 'pluralize', 'capitalize', 'dasherize' ]); // === 'All-jobs'\n */\nfunction transform(str, arr) {\n const j = arr.length;\n for (let i = 0; i < j; i++) {\n const method = arr[i];\n const methodFn = transformFunctions[method];\n if (methodFn) {\n str = methodFn(str);\n }\n }\n return str;\n}\nexports.transform = transform;\n","import { dasherize, underscore } from 'inflection';\nimport { COLOR_PALETTES } from '#src/constants/colors.js';\nimport { THEME_COLORS } from '#src/constants/theme-colors.js';\nimport { convertColorNameToOklch } from '#src/utils/color-names.js';\nfunction getDefaultOklch(palettes, color) {\n if ('color' in color) {\n return convertColorNameToOklch(color.color);\n }\n if ('primaryShade' in color) {\n return palettes.primary.shades[color.primaryShade];\n }\n return palettes.base.shades[color.baseShade];\n}\nexport function getDefaultThemeColorFromShade(palettes, mode, themeColorKey) {\n const defaultColorConfig = THEME_COLORS[themeColorKey][mode === 'light' ? 'lightDefault' : 'darkDefault'];\n return getDefaultOklch(palettes, defaultColorConfig);\n}\nexport function generateThemeColorsFromShade(palettes, mode, previousValues) {\n const result = {};\n for (const [key, config] of Object.entries(THEME_COLORS)) {\n const themeColorKey = key;\n const defaultColorConfig = mode === 'light' ? config.lightDefault : config.darkDefault;\n const newDefaultColor = getDefaultOklch(palettes, defaultColorConfig);\n const previousDefaultColor = previousValues?.config[themeColorKey] &&\n getDefaultOklch(previousValues.palettes, defaultColorConfig);\n const previousValue = previousValues?.config[themeColorKey];\n result[themeColorKey] =\n !newDefaultColor ||\n (previousValue && previousDefaultColor !== previousValue)\n ? previousValue\n : newDefaultColor;\n }\n return result;\n}\nexport function generateCssFromThemeConfig(config) {\n return Object.fromEntries(Object.entries(config)\n .filter((input) => input[1] !== undefined)\n .map(([key, value]) => [`--${dasherize(underscore(key))}`, value]));\n}\nexport function generateDefaultTheme() {\n const slatePalette = {\n paletteName: 'slate',\n shades: COLOR_PALETTES.slate,\n };\n const slatePalettes = {\n base: slatePalette,\n primary: slatePalette,\n };\n return {\n palettes: slatePalettes,\n colors: {\n light: generateThemeColorsFromShade(slatePalettes, 'light'),\n dark: generateThemeColorsFromShade(slatePalettes, 'dark'),\n },\n };\n}\n//# sourceMappingURL=theme.js.map"],"names":["z","byId","CASE_VALIDATORS","toposort","set","num","hue","definition","linearize","gamma","fn","rgb","k","e","f","parseHwb","p","d0","n","lab","lch","u_fn","v_fn","un","vn","modeHsl","modeHsv","parseOklch","α","β","transfer","modeA98","modeCubehelix","modeDlab","modeDlch","modeHsi","modeHwb","modeItp","modeJab","modeJch","modeLab","modeLab65","modeLch","modeLch65","modeLchuv","modeLrgb","modeLuv","modeOklab","modeOklch","modeP3","modeProphoto","modeRec2020","modeRgb","modeXyb","modeXyz50","modeXyz65","modeYiq","dasherize","underscore"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,14,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,236]}