@fernir2/saas-kit-cli 0.1.39 → 0.1.41-1096

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 (286) hide show
  1. package/base-repo/app-constants/alias-symbols.js +2 -2
  2. package/base-repo/app-constants/aliases.js +3 -1
  3. package/base-repo/app-constants/app-packages-names.js +4 -0
  4. package/base-repo/app-constants/command-names.js +4 -0
  5. package/base-repo/app-constants/internal-system-constants.js +8 -0
  6. package/base-repo/app-constants/project-paths.js +6 -3
  7. package/base-repo/constants/basic-types.js +4 -0
  8. package/base-repo/constants/ci-constants.js +7 -0
  9. package/base-repo/constants/http-constants.js +4 -0
  10. package/base-repo/constants/http-methods.js +6 -0
  11. package/base-repo/constants/internal-cli-constants.js +6 -0
  12. package/base-repo/constants/internal-common-strings.js +4 -0
  13. package/base-repo/constants/internal-extensions.js +6 -0
  14. package/base-repo/constants/packages.js +1 -1
  15. package/base-repo/constants/push-statuses.js +4 -0
  16. package/base-repo/constants/strings-constants.js +4 -0
  17. package/base-repo/constants/type-string-values.js +4 -0
  18. package/base-repo/process.js +4 -0
  19. package/cli/.env.example +8 -61
  20. package/cli/.prettierignore +15 -0
  21. package/cli/.prettierrc.json +8 -0
  22. package/cli/README.md +3 -3
  23. package/cli/bin/create.ts +635 -450
  24. package/cli/configs/drizzle-cli-config.ts +16 -15
  25. package/cli/configs/next-cli-config.ts +44 -78
  26. package/cli/configs/playwright-cli-config.ts +45 -35
  27. package/cli/configs/tsconfig.cli.json +35 -35
  28. package/cli/configs/tsconfig.server.json +13 -13
  29. package/cli/drizzle.config.ts +6 -6
  30. package/cli/next.config.js +5 -3
  31. package/cli/npm-commands/gen-meta.ts +9 -3
  32. package/cli/npm-commands/gen-schema.ts +3 -3
  33. package/cli/npm-commands/migrate-db.ts +17 -15
  34. package/cli/npm-commands/seed-db.ts +17 -15
  35. package/cli/package-template.json +54 -60
  36. package/cli/playwright.config.ts +6 -6
  37. package/cli/postcss.config.mjs +7 -7
  38. package/cli/public/handle.svg +23 -0
  39. package/cli/public/images/login-image-dark.webp +0 -0
  40. package/cli/public/images/login-image.webp +0 -0
  41. package/cli/public/images/logo.webp +0 -0
  42. package/cli/public/images/no-image.webp +0 -0
  43. package/cli/public/images/profile.webp +0 -0
  44. package/cli/public/images/search-not-found-result.webp +0 -0
  45. package/cli/public/logo.svg +1 -0
  46. package/cli/server.ts +48 -40
  47. package/cli/src/app/api/v1/(f)/[resourceName]/[id]/route.ts +18 -11
  48. package/cli/src/app/api/v1/(f)/[resourceName]/route.ts +23 -14
  49. package/cli/src/app/api/v1/(f)/[resourceName]/upsert/route.ts +6 -3
  50. package/cli/src/app/api/v1/(f)/blob/route.ts +14 -7
  51. package/cli/src/app/api/v1/(f)/log/route.ts +14 -7
  52. package/cli/src/app/api/v1/(f)/markdown/route.ts +6 -0
  53. package/cli/src/app/api/v1/(f)/other-user/[id]/route.ts +23 -14
  54. package/cli/src/app/api/v1/(f)/other-user/route.ts +14 -7
  55. package/cli/src/app/api/v1/(f)/password/forgot-password/route.ts +6 -3
  56. package/cli/src/app/api/v1/(f)/password/reset-password/route.ts +6 -3
  57. package/cli/src/app/api/v1/(f)/payment/method/route.ts +9 -4
  58. package/cli/src/app/api/v1/(f)/payment/route.ts +6 -3
  59. package/cli/src/app/api/v1/(f)/payment/verify-fail/route.ts +6 -3
  60. package/cli/src/app/api/v1/(f)/payment/verify-success/route.ts +6 -3
  61. package/cli/src/app/api/v1/(f)/search-result/route.ts +6 -3
  62. package/cli/src/app/api/v1/(f)/searchable-resources/route.ts +6 -3
  63. package/cli/src/app/api/v1/(f)/sign-in/route.ts +6 -3
  64. package/cli/src/app/api/v1/(f)/sign-out/route.ts +6 -3
  65. package/cli/src/app/api/v1/(f)/sign-up/route.ts +6 -3
  66. package/cli/src/app/api/v1/(f)/subscription/cancel/route.ts +6 -3
  67. package/cli/src/app/api/v1/(f)/subscription/create/route.ts +6 -3
  68. package/cli/src/app/api/v1/(f)/subscription/update/route.ts +6 -3
  69. package/cli/src/app/api/v1/(f)/uimeta/route.ts +6 -3
  70. package/cli/src/app/api/v1/(f)/uimetas/route.ts +6 -3
  71. package/cli/src/app/api/v1/(f)/user-feature/isenabled/route.ts +6 -3
  72. package/cli/src/app/api/v1/(f)/user-permission/route.ts +6 -3
  73. package/cli/src/app/api/v1/(f)/visible-workspace/route.ts +10 -5
  74. package/cli/src/app/api/v1/(f)/workspace/change/route.ts +10 -5
  75. package/cli/src/app/f/(not-signed-in)/edit-password/page.tsx +8 -8
  76. package/cli/src/app/f/(not-signed-in)/forgot-password/page.tsx +13 -13
  77. package/cli/src/app/f/(not-signed-in)/reset-password/page.tsx +11 -11
  78. package/cli/src/app/f/(not-signed-in)/sign-in/microsoft/page.tsx +8 -8
  79. package/cli/src/app/f/(not-signed-in)/sign-in/page.tsx +13 -13
  80. package/cli/src/app/f/(not-signed-in)/sign-up/page.tsx +13 -13
  81. package/cli/src/app/f/(signed-in)/dashboard/page.tsx +8 -8
  82. package/cli/src/app/f/(signed-in)/dynamiclayout/page.tsx +8 -8
  83. package/cli/src/app/f/(signed-in)/edituser/[id]/page.tsx +8 -8
  84. package/cli/src/app/f/(signed-in)/edituser/page.tsx +8 -8
  85. package/cli/src/app/f/(signed-in)/layout.tsx +5 -5
  86. package/cli/src/app/f/(signed-in)/payment-plans/page.tsx +8 -8
  87. package/cli/src/app/f/(signed-in)/statusboard/page.tsx +8 -8
  88. package/cli/src/app/f/(signed-in)/userlist/page.tsx +8 -8
  89. package/cli/src/app/f/(signed-in)/view/page.tsx +23 -9
  90. package/cli/src/app/f/api-docs/page.tsx +15 -15
  91. package/cli/src/app/globals.css +1 -1
  92. package/cli/src/app/http-wrappers.ts +23 -0
  93. package/cli/src/app/init-saas-kit.ts +12 -0
  94. package/cli/src/app/layout.tsx +43 -37
  95. package/cli/src/app/page.tsx +9 -9
  96. package/cli/src/app/styles/common.css +75 -71
  97. package/cli/src/app/styles/rich-text-editor.css +130 -130
  98. package/cli/templates/.env-template +8 -0
  99. package/cli/templates/gitignore-template +54 -0
  100. package/cli/test/custom-test.ts +20 -0
  101. package/cli/test/global-setup.ts +7 -3
  102. package/cli/test/global-teardown.ts +7 -0
  103. package/cli/tsconfig.json +15 -15
  104. package/cli/tsconfig.lint.json +5 -0
  105. package/cli/tsconfig.server.json +4 -14
  106. package/fd-toolbox/api/api-client.js +3 -3
  107. package/fd-toolbox/api/api-path-names.js +4 -1
  108. package/fd-toolbox/api/api-paths.js +2 -1
  109. package/fd-toolbox/api/base-api.js +5 -4
  110. package/fd-toolbox/auth/{login-states.js → internal-login-states.js} +3 -3
  111. package/fd-toolbox/auth/session-storage.js +1 -1
  112. package/fd-toolbox/auth/tokens.js +1 -1
  113. package/fd-toolbox/constants/common-user-fields.js +7 -0
  114. package/fd-toolbox/constants/constants.js +2 -2
  115. package/fd-toolbox/constants/environment-constants.js +4 -1
  116. package/fd-toolbox/constants/header-names.js +1 -1
  117. package/fd-toolbox/constants/meta-query-params.js +4 -1
  118. package/fd-toolbox/constants/odata-query-params.js +7 -0
  119. package/fd-toolbox/constants/public-files.js +5 -3
  120. package/fd-toolbox/constants/resource-folders.js +4 -0
  121. package/fd-toolbox/constants/toolbox-error-messages-constants.js +4 -0
  122. package/fd-toolbox/enums/enums.js +5 -2
  123. package/fd-toolbox/errors/error-handler.js +2 -2
  124. package/fd-toolbox/errors/error-statuses.js +4 -1
  125. package/fd-toolbox/errors/errors.js +1 -1
  126. package/fd-toolbox/errors/problem-details.js +4 -2
  127. package/fd-toolbox/functions/value-checking-functions.js +5 -3
  128. package/fd-toolbox/http/url/urls.js +4 -3
  129. package/fd-toolbox/infra/env-config.js +2 -2
  130. package/fd-toolbox/infra/env-functions.js +6 -4
  131. package/fd-toolbox/infra/env-schema.js +2 -4
  132. package/fd-toolbox/infra/toolbox-env-setting-keys.js +1 -1
  133. package/fd-toolbox/lib/environments.js +4 -3
  134. package/fd-toolbox/lib/utils.js +5 -2
  135. package/fd-toolbox/local-storage/local-storage.js +1 -1
  136. package/fd-toolbox/logging/loggers.js +2 -2
  137. package/fd-toolbox/notifications.js +2 -2
  138. package/fd-toolbox/odata/odata-filter-constants.js +4 -0
  139. package/fd-toolbox/odata/odata-formatting/odata-filters.js +9 -0
  140. package/fd-toolbox/odata/odata.js +12 -0
  141. package/fd-toolbox/paths/paths-names.js +1 -1
  142. package/fd-toolbox/redirect/redirect-functions.js +8 -0
  143. package/fd-toolbox/resources/resource-names.js +1 -1
  144. package/fd-toolbox/routing/login-routers.js +2 -1
  145. package/fd-toolbox/routing/paths.js +1 -1
  146. package/fd-toolbox/routing/routers.js +9 -0
  147. package/fd-toolbox/routing/routes.js +3 -2
  148. package/fd-toolbox/server/collections/single-funcs.js +8 -0
  149. package/fd-toolbox/server/constants/api-routes-constants.js +4 -0
  150. package/fd-toolbox/server/errors/error-dtos.js +4 -0
  151. package/fd-toolbox/server/framework/index.js +8 -0
  152. package/fd-toolbox/server/logging/latest-logs-store.js +6 -0
  153. package/fd-toolbox/server/logging/log-dtos.js +6 -0
  154. package/fd-toolbox/server/logging/logger.js +9 -0
  155. package/fd-toolbox/server/web/response-messages.js +4 -0
  156. package/fd-toolbox/strings/strings.js +2 -3
  157. package/fd-toolbox/types/ensure-type.js +6 -2
  158. package/fd-toolbox/url/urls.js +4 -0
  159. package/fd-toolbox-core/constants/meta-constants.js +4 -2
  160. package/fd-toolbox-core/core/name-of.js +1 -1
  161. package/fd-toolbox-core/types/resource-with-id.js +3 -1
  162. package/git/constants/git-constants.js +6 -0
  163. package/level2/cli/bin/index.js +2 -1
  164. package/level2/cli/create/bin/create.js +19 -10
  165. package/level2/npm-commands/build-npm/cli-contents.js +1 -1
  166. package/level2/npm-commands/build-npm/paths.js +6 -0
  167. package/package.json +48 -55
  168. package/base-repo/app-constants/alias-symbols.cjs.js +0 -6
  169. package/base-repo/app-constants/aliases.cjs.js +0 -8
  170. package/base-repo/app-constants/project-paths.cjs.js +0 -17
  171. package/base-repo/constants/create-app-constants.cjs.js +0 -9
  172. package/base-repo/constants/packages.cjs.js +0 -6
  173. package/base-repo/constants/packages.cjs2.js +0 -6
  174. package/base-repo/constants/packages2.js +0 -4
  175. package/cli/public/images/00000000-0000-0000-0000-000000000000.webp +0 -0
  176. package/cli/public/images/login-image-dark.jpg +0 -0
  177. package/cli/public/images/login-image.jpg +0 -0
  178. package/cli/public/images/no-image.png +0 -0
  179. package/cli/public/images/profile.png +0 -0
  180. package/cli/public/images/search-not-found-result.png +0 -0
  181. package/cli/public/images/toolbar-logo.png +0 -0
  182. package/cli/public/images/users/00000000-0000-0000-0000-000000000000.webp +0 -0
  183. package/cli/src/app/api/v1/(f)/preload/route.ts +0 -3
  184. package/cli/src/app/f/(signed-in)/lm/page.tsx +0 -8
  185. package/cli/src/app/f/(signed-in)/preload/page.tsx +0 -8
  186. package/cli/src/app/f/test/feed/page.tsx +0 -8
  187. package/cli/src/app/f/test/file-upload/page.tsx +0 -8
  188. package/cli/src/app/f/test/layout.tsx +0 -5
  189. package/cli/src/app/f/test/page.tsx +0 -8
  190. package/fd-toolbox/api/api-client.cjs.js +0 -19
  191. package/fd-toolbox/api/api-path-names.cjs.js +0 -9
  192. package/fd-toolbox/api/api-paths.cjs.js +0 -9
  193. package/fd-toolbox/api/base-api.cjs.js +0 -22
  194. package/fd-toolbox/auth/login-states.cjs.js +0 -18
  195. package/fd-toolbox/auth/session-storage.cjs.js +0 -12
  196. package/fd-toolbox/auth/tokens.cjs.js +0 -11
  197. package/fd-toolbox/constants/api-constants.cjs.js +0 -26
  198. package/fd-toolbox/constants/api-constants.js +0 -4
  199. package/fd-toolbox/constants/constants.cjs.js +0 -13
  200. package/fd-toolbox/constants/environment-constants.cjs.js +0 -7
  201. package/fd-toolbox/constants/extensions.cjs.js +0 -6
  202. package/fd-toolbox/constants/extensions.js +0 -4
  203. package/fd-toolbox/constants/header-names.cjs.js +0 -7
  204. package/fd-toolbox/constants/http-status-codes.cjs.js +0 -6
  205. package/fd-toolbox/constants/meta-query-params.cjs.js +0 -6
  206. package/fd-toolbox/constants/public-files.cjs.js +0 -14
  207. package/fd-toolbox/constants/representations.cjs.js +0 -6
  208. package/fd-toolbox/constants/representations.js +0 -4
  209. package/fd-toolbox/enums/enums.cjs.js +0 -26
  210. package/fd-toolbox/errors/error-handler.cjs.js +0 -10
  211. package/fd-toolbox/errors/error-statuses.cjs.js +0 -6
  212. package/fd-toolbox/errors/errors.cjs.js +0 -6
  213. package/fd-toolbox/errors/problem-details.cjs.js +0 -8
  214. package/fd-toolbox/functions/value-checking-functions.cjs.js +0 -10
  215. package/fd-toolbox/http/http-constants.cjs.js +0 -7
  216. package/fd-toolbox/http/http-constants.js +0 -4
  217. package/fd-toolbox/http/url/urls.cjs.js +0 -9
  218. package/fd-toolbox/infra/env-config.cjs.js +0 -8
  219. package/fd-toolbox/infra/env-functions.cjs.js +0 -16
  220. package/fd-toolbox/infra/env-schema.cjs.js +0 -12
  221. package/fd-toolbox/infra/env-setting-types.cjs.js +0 -6
  222. package/fd-toolbox/infra/env-setting-types.js +0 -4
  223. package/fd-toolbox/infra/env-store.cjs.js +0 -9
  224. package/fd-toolbox/infra/env-store.js +0 -7
  225. package/fd-toolbox/infra/toolbox-env-setting-keys.cjs.js +0 -6
  226. package/fd-toolbox/lib/environments.cjs.js +0 -25
  227. package/fd-toolbox/lib/utils.cjs.js +0 -29
  228. package/fd-toolbox/local-storage/local-storage.cjs.js +0 -12
  229. package/fd-toolbox/logging/loggers.cjs.js +0 -16
  230. package/fd-toolbox/logging/logging-constants.cjs.js +0 -6
  231. package/fd-toolbox/logging/logging-constants.js +0 -4
  232. package/fd-toolbox/notifications.cjs.js +0 -14
  233. package/fd-toolbox/odata/odata-constants.cjs.js +0 -11
  234. package/fd-toolbox/odata/odata-constants.js +0 -4
  235. package/fd-toolbox/odata/odata-enums.cjs.js +0 -8
  236. package/fd-toolbox/odata/odatas.cjs.js +0 -11
  237. package/fd-toolbox/odata/odatas.js +0 -9
  238. package/fd-toolbox/odata/services/odata-filters.cjs.js +0 -11
  239. package/fd-toolbox/odata/services/odata-filters.js +0 -9
  240. package/fd-toolbox/paths/paths-names.cjs.js +0 -9
  241. package/fd-toolbox/resources/resource-names.cjs.js +0 -6
  242. package/fd-toolbox/routing/login-routers.cjs.js +0 -10
  243. package/fd-toolbox/routing/paths.cjs.js +0 -6
  244. package/fd-toolbox/routing/routes.cjs.js +0 -14
  245. package/fd-toolbox/strings/strings-constants.cjs.js +0 -7
  246. package/fd-toolbox/strings/strings-constants.js +0 -4
  247. package/fd-toolbox/strings/strings.cjs.js +0 -10
  248. package/fd-toolbox/types/ensure-type.cjs.js +0 -22
  249. package/fd-toolbox-core/constants/meta-constants.cjs.js +0 -7
  250. package/fd-toolbox-core/constants/promises.cjs.js +0 -6
  251. package/fd-toolbox-core/core/name-of.cjs.js +0 -8
  252. package/fd-toolbox-core/enums/log-severities.cjs.js +0 -6
  253. package/fd-toolbox-core/types/resource-with-id.cjs.js +0 -9
  254. package/level2/cli/bin/index.cjs.js +0 -8
  255. package/level2/cli/create/bin/create.cjs.js +0 -42
  256. package/level2/npm-commands/build-npm/cli-contents.cjs.js +0 -9
  257. package/level2/npm-commands/build-npm/path.cjs.js +0 -13
  258. package/level2/npm-commands/build-npm/path.js +0 -6
  259. /package/cli/public/images/{companies → demo/companies}/00000000-0000-0000-0000-000000000000.webp +0 -0
  260. /package/cli/public/images/{companies → demo/companies}/004a196f-f9a7-49fc-9e05-606fffd0613c.webp +0 -0
  261. /package/cli/public/images/{companies → demo/companies}/497b26a6-3e91-4b27-8c24-f3b145fc6c7f.webp +0 -0
  262. /package/cli/public/images/{companies → demo/companies}/6cead29b-2572-4283-add6-f407b39d7135.webp +0 -0
  263. /package/cli/public/images/{companies → demo/companies}/71efdb77-4ecb-45e6-bc83-0fdff835c2e7.webp +0 -0
  264. /package/cli/public/images/{companies → demo/companies}/773602c8-a417-4afc-adb0-bb6856ac2970.webp +0 -0
  265. /package/cli/public/images/{companies → demo/companies}/9d09881a-cf60-438d-9edf-10f5864d4468.webp +0 -0
  266. /package/cli/public/images/{companies → demo/companies}/a1b2c3d4-e5f6-7890-1234-56789abcdef0.webp +0 -0
  267. /package/cli/public/images/{companies → demo/companies}/b04d7c5e-18de-4f44-b923-5bfb28bb33bb.webp +0 -0
  268. /package/cli/public/images/{companies → demo/companies}/c75c22fc-d295-472e-bdae-dbb8eb09cf18.webp +0 -0
  269. /package/cli/public/images/{companies → demo/companies}/cdf3efb4-33a2-485e-8d95-e0ab5a4cb6a5.webp +0 -0
  270. /package/cli/public/images/{companies → demo/companies}/d6fe4c6a-ecdb-40fc-a8e6-2044ef2b82d4.webp +0 -0
  271. /package/cli/public/images/{contacts → demo/contacts}/159e4c7a-ff5f-4162-8237-acec3ca8a759.webp +0 -0
  272. /package/cli/public/images/{contacts → demo/contacts}/65e07208-6b1f-4a59-b5e3-2f80f5741b18.webp +0 -0
  273. /package/cli/public/images/{contacts → demo/contacts}/6d1c5410-ef5b-4d37-8b8d-4ab8cfc87785.webp +0 -0
  274. /package/cli/public/images/{contacts → demo/contacts}/754c77d8-eefb-4a90-b07b-ed00980c88b4.webp +0 -0
  275. /package/cli/public/images/{contacts → demo/contacts}/9fd23cd9-9b94-4bb8-bb73-d315b93b8a5c.webp +0 -0
  276. /package/cli/public/images/{contacts → demo/contacts}/b2f746d1-6b3c-4c47-8e07-f73927c167cb.webp +0 -0
  277. /package/cli/public/images/{contacts → demo/contacts}/b515cb46-eab4-4862-9e8e-c2f5f217ae79.webp +0 -0
  278. /package/cli/public/images/{contacts → demo/contacts}/cf2eae72-e5ab-4d95-8f08-b6571b44f8eb.webp +0 -0
  279. /package/cli/public/images/{contacts → demo/contacts}/ec0e0285-22d9-48d4-b4b3-96388c37c807.webp +0 -0
  280. /package/cli/public/images/{contacts → demo/contacts}/ecb1a0f4-d244-4136-badf-c2bc72e3b678.webp +0 -0
  281. /package/cli/public/images/{users → demo/users}/02d1230f-5bfe-46b4-8ce1-d10f4aa918a7.webp +0 -0
  282. /package/cli/public/images/{users → demo/users}/166c5e4a-696f-4bf5-ab48-dbbb5e90d526.webp +0 -0
  283. /package/cli/public/images/{users → demo/users}/175a3f0c-692c-4503-87eb-ff95d6535e16.webp +0 -0
  284. /package/cli/public/images/{users → demo/users}/8398ee85-7546-4710-b628-44c98e4ba03a.webp +0 -0
  285. /package/cli/public/images/{users → demo/users}/979f8933-71b1-4df8-b691-566a901d3c76.webp +0 -0
  286. /package/cli/public/images/{users → demo/users}/fbe37132-31bc-4fc9-9bfb-aac7a1b61a7f.webp +0 -0
@@ -1,130 +1,130 @@
1
- div.ql-toolbar.ql-snow {
2
- padding: 0.5rem 0.75rem;
3
- border-top-right-radius: var(--radius);
4
- border-top-left-radius: var(--radius);
5
- border: 1px solid hsl(var(--border));
6
- }
7
-
8
- .ql-toolbar.ql-snow .ql-picker-label {
9
- padding-left: 0;
10
- border: none;
11
- }
12
-
13
- .ql-toolbar.ql-snow .ql-picker-label::before {
14
- font-family: "__GeistSans_3a0388", serif;
15
- }
16
-
17
- .ql-editor {
18
- font-size: 14px;
19
- padding: 10px 12px;
20
- }
21
-
22
- div.ql-container.ql-snow {
23
- height: max-content;
24
- border: 1px solid hsl(var(--border));
25
- border-bottom-right-radius: var(--radius);
26
- border-bottom-left-radius: var(--radius);
27
- }
28
-
29
- .ql-tooltip {
30
- display: none;
31
- }
32
-
33
- .ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
34
- z-index: 11;
35
- }
36
-
37
- .ql-picker-label,
38
- .ql-picker-label .ql-stroke {
39
- color: hsl(var(--popover-foreground));
40
- stroke: hsl(var(--popover-foreground));
41
- fill: hsl(var(--popover-foreground));
42
- }
43
-
44
- .ql-toolbar .ql-formats button {
45
- color: hsl(var(--popover-foreground));
46
- }
47
-
48
- .ql-toolbar .ql-formats button .ql-stroke {
49
- stroke: hsl(var(--popover-foreground));
50
- }
51
-
52
- .ql-toolbar .ql-formats button .ql-fill {
53
- fill: hsl(var(--popover-foreground));
54
- }
55
-
56
- .ql-toolbar .ql-active,
57
- .ql-toolbar .ql-active .ql-stroke,
58
- .ql-toolbar .ql-active .ql-fill {
59
- color: hsl(var(--popover-foreground));
60
- fill: none;
61
- stroke: none;
62
- }
63
-
64
- .ql-snow .ql-picker {
65
- font-weight: 400;
66
- }
67
-
68
- .ql-editor.ql-blank::before {
69
- left: 12px;
70
- right: 12px;
71
- color: hsl(var(--muted-foreground));
72
- }
73
-
74
- .ql-toolbar .ql-formats button:hover .ql-stroke,
75
- .ql-toolbar .ql-picker .ql-picker-label:hover .ql-stroke,
76
- .ql-toolbar .ql-picker .ql-picker-label.ql-active .ql-stroke,
77
- .ql-toolbar .ql-formats button.ql-active .ql-stroke {
78
- stroke: hsl(var(--foreground));
79
- stroke-width: 2;
80
- }
81
-
82
- .ql-toolbar .ql-formats button:hover .ql-fill,
83
- .ql-toolbar .ql-formats button.ql-active .ql-fill {
84
- fill: hsl(var(--foreground));
85
- }
86
-
87
- .ql-toolbar .ql-picker .ql-picker-label:hover::before,
88
- .ql-toolbar .ql-picker .ql-picker-label.ql-active::before,
89
- .ql-picker .ql-picker-options .ql-picker-item.ql-selected::before {
90
- color: hsl(var(--foreground));
91
- font-weight: 600;
92
- }
93
-
94
- .ql-snow .ql-picker-options .ql-picker-item:hover {
95
- border-radius: 0.375rem;
96
- background: hsl(var(--muted) / 0.5);
97
- }
98
-
99
- .ql-toolbar .ql-formats button .ql-stroke,
100
- .ql-toolbar .ql-picker .ql-picker-label .ql-stroke {
101
- stroke: hsl(var(--foreground));
102
- stroke-width: 1.2;
103
- }
104
-
105
- .ql-toolbar .ql-formats button .ql-fill {
106
- fill: hsl(var(--foreground));
107
- }
108
-
109
- .ql-toolbar .ql-picker .ql-picker-label::before,
110
- .ql-picker .ql-picker-options .ql-picker-item::before {
111
- color: hsl(var(--foreground));
112
- font-weight: 400;
113
- }
114
-
115
- .ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
116
- min-width: 12rem;
117
- z-index: 50;
118
- margin-right: 1rem;
119
- border-radius: 0.375rem;
120
- background-color: hsl(var(--background));
121
- border: 1px solid hsl(var(--border));
122
- box-shadow: 0rem 0rem 0.1rem 0.01rem hsl(var(--fd-toolbar-shadow));
123
- outline: none;
124
- pointer-events: auto;
125
- }
126
-
127
- .ql-snow .ql-picker-options .ql-picker-item {
128
- width: 100%;
129
- padding: 0.5rem 0.75rem;
130
- }
1
+ div.ql-toolbar.ql-snow {
2
+ padding: 0.5rem 0.75rem;
3
+ border-top-right-radius: var(--radius);
4
+ border-top-left-radius: var(--radius);
5
+ border: 1px solid hsl(var(--border));
6
+ }
7
+
8
+ .ql-toolbar.ql-snow .ql-picker-label {
9
+ padding-left: 0;
10
+ border: none;
11
+ }
12
+
13
+ .ql-toolbar.ql-snow .ql-picker-label::before {
14
+ font-family: "__GeistSans_3a0388", serif;
15
+ }
16
+
17
+ .ql-editor {
18
+ font-size: 14px;
19
+ padding: 10px 12px;
20
+ }
21
+
22
+ div.ql-container.ql-snow {
23
+ height: max-content;
24
+ border: 1px solid hsl(var(--border));
25
+ border-bottom-right-radius: var(--radius);
26
+ border-bottom-left-radius: var(--radius);
27
+ }
28
+
29
+ .ql-tooltip {
30
+ display: none;
31
+ }
32
+
33
+ .ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
34
+ z-index: 11;
35
+ }
36
+
37
+ .ql-picker-label,
38
+ .ql-picker-label .ql-stroke {
39
+ color: hsl(var(--popover-foreground));
40
+ stroke: hsl(var(--popover-foreground));
41
+ fill: hsl(var(--popover-foreground));
42
+ }
43
+
44
+ .ql-toolbar .ql-formats button {
45
+ color: hsl(var(--popover-foreground));
46
+ }
47
+
48
+ .ql-toolbar .ql-formats button .ql-stroke {
49
+ stroke: hsl(var(--popover-foreground));
50
+ }
51
+
52
+ .ql-toolbar .ql-formats button .ql-fill {
53
+ fill: hsl(var(--popover-foreground));
54
+ }
55
+
56
+ .ql-toolbar .ql-active,
57
+ .ql-toolbar .ql-active .ql-stroke,
58
+ .ql-toolbar .ql-active .ql-fill {
59
+ color: hsl(var(--popover-foreground));
60
+ fill: none;
61
+ stroke: none;
62
+ }
63
+
64
+ .ql-snow .ql-picker {
65
+ font-weight: 400;
66
+ }
67
+
68
+ .ql-editor.ql-blank::before {
69
+ left: 12px;
70
+ right: 12px;
71
+ color: hsl(var(--muted-foreground));
72
+ }
73
+
74
+ .ql-toolbar .ql-formats button:hover .ql-stroke,
75
+ .ql-toolbar .ql-picker .ql-picker-label:hover .ql-stroke,
76
+ .ql-toolbar .ql-picker .ql-picker-label.ql-active .ql-stroke,
77
+ .ql-toolbar .ql-formats button.ql-active .ql-stroke {
78
+ stroke: hsl(var(--foreground));
79
+ stroke-width: 2;
80
+ }
81
+
82
+ .ql-toolbar .ql-formats button:hover .ql-fill,
83
+ .ql-toolbar .ql-formats button.ql-active .ql-fill {
84
+ fill: hsl(var(--foreground));
85
+ }
86
+
87
+ .ql-toolbar .ql-picker .ql-picker-label:hover::before,
88
+ .ql-toolbar .ql-picker .ql-picker-label.ql-active::before,
89
+ .ql-picker .ql-picker-options .ql-picker-item.ql-selected::before {
90
+ color: hsl(var(--foreground));
91
+ font-weight: 600;
92
+ }
93
+
94
+ .ql-snow .ql-picker-options .ql-picker-item:hover {
95
+ border-radius: 0.375rem;
96
+ background: hsl(var(--muted) / 0.5);
97
+ }
98
+
99
+ .ql-toolbar .ql-formats button .ql-stroke,
100
+ .ql-toolbar .ql-picker .ql-picker-label .ql-stroke {
101
+ stroke: hsl(var(--foreground));
102
+ stroke-width: 1.2;
103
+ }
104
+
105
+ .ql-toolbar .ql-formats button .ql-fill {
106
+ fill: hsl(var(--foreground));
107
+ }
108
+
109
+ .ql-toolbar .ql-picker .ql-picker-label::before,
110
+ .ql-picker .ql-picker-options .ql-picker-item::before {
111
+ color: hsl(var(--foreground));
112
+ font-weight: 400;
113
+ }
114
+
115
+ .ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
116
+ min-width: 12rem;
117
+ z-index: 50;
118
+ margin-right: 1rem;
119
+ border-radius: 0.375rem;
120
+ background-color: hsl(var(--background));
121
+ border: 1px solid hsl(var(--border));
122
+ box-shadow: 0rem 0rem 0.1rem 0.01rem hsl(var(--fd-toolbar-shadow));
123
+ outline: none;
124
+ pointer-events: auto;
125
+ }
126
+
127
+ .ql-snow .ql-picker-options .ql-picker-item {
128
+ width: 100%;
129
+ padding: 0.5rem 0.75rem;
130
+ }
@@ -0,0 +1,8 @@
1
+ FD_DATABASE_CONNECTION_STRING="postgresql://postgres:root@localhost:5432/saas-kit"
2
+
3
+ NEXT_PUBLIC_FD_SEED_DEMO_RESOURCES=true
4
+ FD_SEED_DEV_RESOURCES=true
5
+
6
+ FD_SENDER_EMAIL=
7
+ FD_EMAIL_SERVICE_URL=
8
+ FD_EMAIL_SERVICE_KEY=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
@@ -0,0 +1,54 @@
1
+ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2
+
3
+ # dependencies
4
+ node_modules/
5
+
6
+ # testing
7
+ test-results/
8
+ playwright-report/
9
+ blob-report/
10
+ playwright/.cache/
11
+
12
+ # next.js
13
+ .next/
14
+
15
+ # production
16
+ build/
17
+ dist/
18
+
19
+ # node.js compile cache
20
+ .node_cache/
21
+
22
+ # misc
23
+ .DS_Store
24
+ *.pem
25
+
26
+ # debug
27
+ npm-debug.log*
28
+ pnpm-debug.log*
29
+
30
+ # env files
31
+ .env
32
+ .env*.local
33
+
34
+ # vercel
35
+ .vercel/
36
+
37
+ # typescript
38
+ *.tsbuildinfo
39
+ next-env.d.ts
40
+
41
+ # generated
42
+ generated/
43
+ tsconfig.resources.json
44
+ server/content/
45
+
46
+ # editor directories and files
47
+ .idea
48
+ .suo
49
+ .ntvs*
50
+ .njsproj
51
+ .sln
52
+ .sw?
53
+ .vs
54
+ .vscode/
@@ -0,0 +1,20 @@
1
+ import { test as base, PlaywrightTestArgs, PlaywrightWorkerArgs, TestType } from "playwright/test";
2
+ import { testScope } from "@fernir2/saas-kit/test";
3
+ import { initSaasKit } from "@/app/init-saas-kit";
4
+
5
+ export type WorkerArgs = PlaywrightWorkerArgs & { metaInitialized: void };
6
+ export type TestArgs = PlaywrightTestArgs;
7
+
8
+ export const test: TestType<TestArgs, WorkerArgs> = base.extend({
9
+ metaInitialized: [
10
+ // Approved
11
+ // eslint-disable-next-line no-empty-pattern
12
+ async ({}, use: () => Promise<void>) => {
13
+ initSaasKit();
14
+ await use();
15
+ },
16
+ { scope: testScope.workerScope, auto: true },
17
+ ],
18
+ });
19
+
20
+ export const expect = test.expect;
@@ -1,3 +1,7 @@
1
- import { playwrightGlobalSetup } from "@fernir2/saas-kit";
2
-
3
- export default playwrightGlobalSetup;
1
+ import { playwrightGlobalSetup } from "@fernir2/saas-kit/test";
2
+ import { initSaasKit } from "@/app/init-saas-kit";
3
+
4
+ export default async function globalSetup() {
5
+ initSaasKit();
6
+ await playwrightGlobalSetup();
7
+ }
@@ -0,0 +1,7 @@
1
+ import { playwrightGlobalTeardown } from "@fernir2/saas-kit/test";
2
+ import { initSaasKit } from "@/app/init-saas-kit";
3
+
4
+ export default async function globalTeardown() {
5
+ initSaasKit();
6
+ await playwrightGlobalTeardown();
7
+ }
package/cli/tsconfig.json CHANGED
@@ -1,15 +1,15 @@
1
- {
2
- "extends": "@fernir2/saas-kit/cli/configs/tsconfig.cli.json",
3
- "compilerOptions": {
4
- "rootDir": "./",
5
- "baseUrl": "./",
6
- "paths": {
7
- "@/*": ["./src/*"],
8
- "@schemas/*": ["./generated/*"],
9
- "@npm-commands/*": ["./npm-commands/*"],
10
- "@root/*": ["./*"]
11
- }
12
- },
13
- "include": ["next-env.d.ts", "global.d.ts", "./**/*", ".next/types/**/*.ts"],
14
- "exclude": ["node_modules", "dist", "build", ".next", "server.ts"]
15
- }
1
+ {
2
+ "extends": "@fernir2/saas-kit/cli/configs/tsconfig.cli.json",
3
+ "compilerOptions": {
4
+ "rootDir": "./",
5
+ "baseUrl": "./",
6
+ "paths": {
7
+ "@/*": ["./src/*"],
8
+ "@generated/*": ["./generated/*"],
9
+ "@npm-commands/*": ["./npm-commands/*"],
10
+ "@root/*": ["./*"]
11
+ }
12
+ },
13
+ "include": ["next-env.d.ts", "./**/*", ".next/types/**/*.ts"],
14
+ "exclude": ["node_modules", "dist", "build", "server.ts"]
15
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "include": ["./**/*"],
4
+ "exclude": ["node_modules", "dist"]
5
+ }
@@ -1,14 +1,4 @@
1
- {
2
- "extends": "@fernir2/saas-kit/cli/configs/tsconfig.server.json",
3
- "compilerOptions": {
4
- "rootDir": "./",
5
- "baseUrl": "./",
6
- "paths": {
7
- "@/*": ["./src/*"],
8
- "@schemas/*": ["./generated/*"],
9
- "@npm-commands/*": ["./npm-commands/*"],
10
- "@root/*": ["./*"]
11
- }
12
- },
13
- "include": ["server.ts"]
14
- }
1
+ {
2
+ "extends": "@fernir2/saas-kit/cli/configs/tsconfig.server.json",
3
+ "include": ["server.ts"]
4
+ }
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
  import { apiBaseGet, apiBaseGetBlob, postBaseApi, baseApiHandleResponse, putBaseApi, deleteBaseApi } from './base-api.js';
3
3
  import { getApiPath } from './api-paths.js';
4
- import { getODataParams } from '../odata/odatas.js';
4
+ import { getODataParams } from '../odata/odata.js';
5
5
  import { getAuthToken } from '../auth/tokens.js';
6
6
  import { headerNames, httpContentTypes } from '../constants/header-names.js';
7
- import { httpMethods } from '../http/http-constants.js';
7
+ import { httpMethods } from '../../base-repo/constants/http-methods.js';
8
8
 
9
- var __defProp=Object['defineProperty'],__name=(_0x1d0518,_0x3cd0f8)=>__defProp(_0x1d0518,'name',{'value':_0x3cd0f8,'configurable':!![]});async function apiGet(_0x2f4dc0,_0x1f5c17,_0x36aa51,_0x2b0793){const _0x5db665=getApiPath(_0x2f4dc0,_0x1f5c17,_0x36aa51);return apiBaseGet(_0x5db665,getApiHeaders(_0x2b0793));}__name(apiGet,'apiGet');async function apiGetBlob(_0x561241,_0x2ba15c,_0x314dc5,_0x32cfe9){const _0x4f8992=getApiPath(_0x561241,_0x2ba15c,_0x314dc5);return apiBaseGetBlob(_0x4f8992,getApiHeaders(_0x32cfe9,!![]));}__name(apiGetBlob,'apiGetBlob');async function apiGetWithOData(_0x4bd23f,_0x92e305,_0x3ff489){const _0x23f049=getODataParams(_0x92e305);return apiGet(_0x4bd23f,_0x3ff489,_0x23f049);}__name(apiGetWithOData,'apiGetWithOData');async function apiPost(_0x29f849,_0x3a5198,_0x4332c9){const _0x24e8a9=getApiPath(_0x29f849);return postBaseApi(_0x24e8a9,_0x3a5198,getApiHeaders(_0x4332c9));}__name(apiPost,'apiPost');async function apiPostFile(_0x294705,_0x5ab271,_0x3be005){const _0x591b60=getApiPath(_0x294705),_0x43656c=await fetch(_0x591b60,{'method':httpMethods['post'],'body':_0x5ab271,'headers':getApiHeaders(_0x3be005,!![])});return baseApiHandleResponse(_0x43656c);}__name(apiPostFile,'apiPostFile');async function apiPut(_0x4412ce,_0x170973,_0x36148f){const _0x2ac373=getApiPath(_0x4412ce);return putBaseApi(_0x2ac373,_0x170973,getApiHeaders(_0x36148f));}__name(apiPut,'apiPut');async function apiDelete(_0x2dc3ea,_0x33f0dd,_0x3b32d2){const _0x499040=getApiPath(_0x2dc3ea,_0x33f0dd);return deleteBaseApi(_0x499040,getApiHeaders(_0x3b32d2));}__name(apiDelete,'apiDelete');function getApiHeaders(_0x3bb7f7,_0x719ac0=![]){const _0x564c89=_0x3bb7f7??new Headers(),_0x598b5e=getAuthToken();return (!_0x564c89['get'](headerNames['authHeaderName'])||_0x564c89['get'](headerNames['authHeaderName'])==='')&&_0x598b5e&&_0x564c89['set'](headerNames['authHeaderName'],headerNames['authHeaderValuePrefix']+_0x598b5e),!_0x719ac0&&!_0x564c89['get'](httpContentTypes['contentTypeHeaderName'])&&_0x564c89['set'](httpContentTypes['contentTypeHeaderName'],httpContentTypes['contentTypeHeaderValue']),_0x564c89;}__name(getApiHeaders,'getApiHeaders');
9
+ var __defProp=Object['defineProperty'],__name=(_0xb5d54b,_0x2040bd)=>__defProp(_0xb5d54b,'name',{'value':_0x2040bd,'configurable':!![]});async function apiGet(_0x1f2bed,_0x8cb282,_0x2b671c,_0x463115){const _0x930898=getApiPath(_0x1f2bed,_0x8cb282,_0x2b671c);return apiBaseGet(_0x930898,getApiHeaders(_0x463115));}__name(apiGet,'apiGet');async function apiGetBlob(_0x274c7e,_0x5c0cce,_0x3e5bc6,_0x24fc01){const _0x483610=getApiPath(_0x274c7e,_0x5c0cce,_0x3e5bc6);return apiBaseGetBlob(_0x483610,getApiHeaders(_0x24fc01,!![]));}__name(apiGetBlob,'apiGetBlob');async function apiGetWithOData(_0x15108b,_0x12524f,_0x15430a){const _0x178f95=getODataParams(_0x12524f);return apiGet(_0x15108b,_0x15430a,_0x178f95);}__name(apiGetWithOData,'apiGetWithOData');async function apiPost(_0x53bae5,_0xf5b2e2,_0x2a922d){const _0x74bec8=getApiPath(_0x53bae5);return postBaseApi(_0x74bec8,_0xf5b2e2,getApiHeaders(_0x2a922d));}__name(apiPost,'apiPost');async function apiPostFile(_0xc2f4b8,_0xe42bdc,_0x25f125){const _0x31ce36=getApiPath(_0xc2f4b8),_0x2fc7ca=await fetch(_0x31ce36,{'method':httpMethods['post'],'body':_0xe42bdc,'headers':getApiHeaders(_0x25f125,!![])});return baseApiHandleResponse(_0x2fc7ca);}__name(apiPostFile,'apiPostFile');async function apiPut(_0x1c6f5a,_0x446653,_0x50d08e){const _0x592bd2=getApiPath(_0x1c6f5a);return putBaseApi(_0x592bd2,_0x446653,getApiHeaders(_0x50d08e));}__name(apiPut,'apiPut');async function apiDelete(_0x25c15d,_0x1d5a62,_0x5c8bf1){const _0xadf66e=getApiPath(_0x25c15d,_0x1d5a62);return deleteBaseApi(_0xadf66e,getApiHeaders(_0x5c8bf1));}__name(apiDelete,'apiDelete');function getApiHeaders(_0x38459b,_0x7e4289=![]){const _0x4b5d0=_0x38459b??new Headers(),_0x74b9f6=getAuthToken();return (!_0x4b5d0['get'](headerNames['authHeaderName'])||_0x4b5d0['get'](headerNames['authHeaderName'])==='')&&_0x74b9f6&&_0x4b5d0['set'](headerNames['authHeaderName'],headerNames['authHeaderValuePrefix']+_0x74b9f6),!_0x7e4289&&!_0x4b5d0['get'](httpContentTypes['contentTypeHeaderName'])&&_0x4b5d0['set'](httpContentTypes['contentTypeHeaderName'],httpContentTypes['contentTypeApplicationJson']),_0x4b5d0;}__name(getApiHeaders,'getApiHeaders');
10
10
 
11
11
  export { apiDelete, apiGet, apiGetBlob, apiGetWithOData, apiPost, apiPostFile, apiPut };
@@ -1,7 +1,10 @@
1
1
  'use strict';
2
2
  import { resourceNames } from '../resources/resource-names.js';
3
3
  import { join } from 'path';
4
+ import { apiRoutes } from '../server/constants/api-routes-constants.js';
5
+ import { folders } from '../../base-repo/app-constants/project-paths.js';
6
+ import { contentFormatNames, commonLowerCaseWords, mutationActionNames } from '../../base-repo/constants/internal-common-strings.js';
4
7
 
5
- const hint=resourceNames['hint']['toLowerCase'](),subscription=resourceNames['subscription']['toLowerCase'](),payment=resourceNames['payment']['toLowerCase']();const apiPathNames={'hint':hint,'meta':'meta','uiMetas':'uimetas','uiMeta':'uimeta','login':'account/login','token':'connect/token','logout':'account/logout','getOne':join(hint,'getone'),'user':'user','preLoad':'preload','userPermission':'user-permission','otherUser':'other-user','person':'person','friend':'friend','relation':'relation','log':'log','version':'version','markdownRender':'markdown/render','forgotPassword':'password/forgot-password','resetPassword':'password/reset-password','editPassword':'password/edit-password','payment':payment,'paymentVerifyFail':join(payment,'verify-fail'),'paymentVerifySuccess':join(payment,'verify-success'),'paymentMethod':join(payment,'method'),'subscription':subscription,'cancelSubscription':join(subscription,'cancel'),'updateSubscription':join(subscription,'update'),'createSubscription':join(subscription,'create'),'paymentPlan':'paymentplan','feature':'feature','paymentPlanFeature':'paymentplanfeature','markdown':'markdown','searchResult':'search-result','searchableResource':'searchable-resources','search':'search','blob':'blob','statusBoard':'statusboard','aiScan':'lm/ai-scan','changeWorkspace':'workspace/change','visibleWorkspace':'visible-workspace','test':'test','testData':'test/data'};
8
+ const hint=resourceNames['hint']['toLowerCase'](),subscription=resourceNames['subscription']['toLowerCase'](),payment=resourceNames['payment']['toLowerCase']();const apiPathNames={'hint':hint,'uiMetas':'uimetas','uiMeta':'uimeta','login':apiRoutes['accountLogin'],'token':apiRoutes['connectToken'],'logout':apiRoutes['accountLogout'],'getOne':join(hint,'getone'),'user':commonLowerCaseWords['user'],'preLoad':'preload','userPermission':'user-permission','otherUser':'other-user','person':'person','friend':'friend','relation':'relation','log':commonLowerCaseWords['log'],'markdownRender':'markdown/render','forgotPassword':'password/forgot-password','resetPassword':'password/reset-password','editPassword':'password/edit-password','payment':payment,'paymentVerifyFail':join(payment,'verify-fail'),'paymentVerifySuccess':join(payment,'verify-success'),'paymentMethod':join(payment,commonLowerCaseWords['method']),'subscription':subscription,'cancelSubscription':join(subscription,'cancel'),'updateSubscription':join(subscription,mutationActionNames['update']),'createSubscription':join(subscription,folders['createSaasKitApp']),'paymentPlan':'paymentplan','feature':'feature','paymentPlanFeature':'paymentplanfeature','markdown':contentFormatNames['markdown'],'searchResult':'search-result','searchableResource':'searchable-resources','search':commonLowerCaseWords['search'],'blob':contentFormatNames['blob'],'statusBoard':'statusboard','changeWorkspace':'workspace/change','visibleWorkspace':'visible-workspace','testData':'test/data'};
6
9
 
7
10
  export { apiPathNames };
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
  import { combineEndpointPath } from '../http/url/urls.js';
3
3
  import { addQueryParamsToPath } from '../routing/paths.js';
4
+ import { folders } from '../../base-repo/app-constants/project-paths.js';
4
5
 
5
- var __defProp=Object['defineProperty'],__name=(_0x3cb972,_0x3e85a3)=>__defProp(_0x3cb972,'name',{'value':_0x3e85a3,'configurable':!![]});const apiPrefix='api';function getApiPath(_0x153cd0,_0x51e9b0,_0x46d737){let _0xee255=combineEndpointPath(apiPrefix,_0x153cd0);return _0x51e9b0&&(_0xee255=combineEndpointPath(_0xee255,_0x51e9b0)),_0xee255=addQueryParamsToPath(_0xee255,_0x46d737),new URL(_0xee255,getBaseUrl())['href'];}__name(getApiPath,'getApiPath');function getBaseUrl(){return location['protocol']+'//'+location['hostname']+':'+location['port']+'/';}__name(getBaseUrl,'getBaseUrl');
6
+ var __defProp=Object['defineProperty'],__name=(_0x1d741e,_0x1fd041)=>__defProp(_0x1d741e,'name',{'value':_0x1fd041,'configurable':!![]});function getApiPath(_0x38372f,_0x16c82b,_0x10ffd8){let _0x30e175=combineEndpointPath(folders['api'],_0x38372f);return _0x16c82b&&(_0x30e175=combineEndpointPath(_0x30e175,_0x16c82b)),_0x30e175=addQueryParamsToPath(_0x30e175,_0x10ffd8),new URL(_0x30e175,getBaseUrl())['href'];}__name(getApiPath,'getApiPath');function getBaseUrl(){return location['protocol']+'//'+location['hostname']+':'+location['port']+'/';}__name(getBaseUrl,'getBaseUrl');
6
7
 
7
8
  export { getApiPath };
@@ -1,13 +1,14 @@
1
1
  'use strict';
2
2
  import { logAndNotify } from '../errors/error-handler.js';
3
- import { httpMethods } from '../http/http-constants.js';
3
+ import { httpMethods } from '../../base-repo/constants/http-methods.js';
4
4
  import { getProblemDetails } from '../errors/problem-details.js';
5
5
  import { httpStatusCodes } from '../constants/http-status-codes.js';
6
6
  import { goToLogin, getRelativeLoginUrl } from '../routing/login-routers.js';
7
- import { removeLoginState } from '../auth/login-states.js';
7
+ import { removeLoginState } from '../auth/internal-login-states.js';
8
8
  import { isBrowser } from '../lib/environments.js';
9
9
  import { getJsonFromResponse } from '../lib/utils.js';
10
+ import { httpContentTypes } from '../constants/header-names.js';
10
11
 
11
- var __defProp=Object['defineProperty'],__name=(_0x356956,_0x2bf144)=>__defProp(_0x356956,'name',{'value':_0x2bf144,'configurable':!![]});async function apiBaseGet(_0x14b7b1,_0x2d4bcb){const _0x4b771f=await fetch(_0x14b7b1,{'method':httpMethods['get'],'headers':_0x2d4bcb});return baseApiHandleResponse(_0x4b771f);}__name(apiBaseGet,'apiBaseGet');async function apiBaseGetBlob(_0x160fcf,_0x50191c){const _0x53c375=await fetch(_0x160fcf,{'method':httpMethods['get'],'headers':_0x50191c});return baseApiHandleBlobResponse(_0x53c375);}__name(apiBaseGetBlob,'apiBaseGetBlob');async function postBaseApi(_0x8fd2ac,_0x1beac9,_0x107499){const _0x348d11=await fetch(_0x8fd2ac,{'method':httpMethods['post'],'headers':_0x107499,'body':_0x1beac9 instanceof URLSearchParams?_0x1beac9:JSON['stringify'](_0x1beac9)});return baseApiHandleResponse(_0x348d11);}__name(postBaseApi,'postBaseApi');async function putBaseApi(_0x586e57,_0x2da404,_0x541b07){const _0x2038b5=await fetch(_0x586e57,{'method':httpMethods['put'],'headers':_0x541b07,'body':JSON['stringify'](_0x2da404)});return baseApiHandleResponse(_0x2038b5);}__name(putBaseApi,'putBaseApi');async function deleteBaseApi(_0x212592,_0x436698){const _0xd1a504=await fetch(_0x212592,{'method':httpMethods['delete'],'headers':_0x436698});if(!_0xd1a504['ok'])handleErrorResponse(_0xd1a504);}__name(deleteBaseApi,'deleteBaseApi');async function baseApiHandleResponse(_0x195b43){const _0x3f1531=_0x195b43['headers']['get']('content-type'),_0x4cc3c8=_0x3f1531?.['includes']('application/json');isUnauthorizedError(_0x195b43['status'])&&(removeLoginState(),goToLogin());if(!_0x195b43['ok'])return handleErrorResponse(_0x195b43);if(_0x195b43['status']===httpStatusCodes['noContent']||!_0x4cc3c8)return null;return getJsonFromResponse(_0x195b43);}__name(baseApiHandleResponse,'baseApiHandleResponse');async function baseApiHandleBlobResponse(_0x3c8952){isUnauthorizedError(_0x3c8952['status'])&&goToLogin();if(!_0x3c8952['ok']){const _0xa2e437=await handleErrorResponse(_0x3c8952);return _0xa2e437;}if(_0x3c8952['status']===httpStatusCodes['noContent'])return null;const _0x4e83ba=await _0x3c8952['blob']();return _0x4e83ba;}__name(baseApiHandleBlobResponse,'baseApiHandleBlobResponse');async function handleErrorResponse(_0x1e2bb1){const _0x384ed7=_0x1e2bb1['headers']['get']('content-type'),_0x3b696f=_0x384ed7?.['includes']('application/json');let _0x260606='',_0x1b10ee='';if(_0x3b696f){const _0x1b0aa2=await getJsonFromResponse(_0x1e2bb1);_0x260606=_0x1b0aa2?.['message'],_0x1b10ee=_0x1b0aa2?.['description']||'';}_0x260606=_0x260606?_0x260606:_0x1e2bb1['statusText'];const _0x3cc3fb={'status':_0x1e2bb1['status'],'message':_0x260606},_0x3d283a={'originalUrl':_0x1e2bb1['url']};return _0x1e2bb1['status']!==httpStatusCodes['unauthorized']&&logAndNotify(new Error(_0x260606)),getProblemDetails(_0x3cc3fb,_0x3d283a,_0x1b10ee);}__name(handleErrorResponse,'handleErrorResponse');function isUnauthorizedError(_0x23ea4a){return _0x23ea4a===httpStatusCodes['unauthorized']&&isBrowser()&&window['location']['pathname']!==getRelativeLoginUrl();}__name(isUnauthorizedError,'isUnauthorizedError');
12
+ var __defProp=Object['defineProperty'],__name=(_0x45bcfa,_0x31c38b)=>__defProp(_0x45bcfa,'name',{'value':_0x31c38b,'configurable':!![]});async function apiBaseGetResponse(_0x4f0400,_0x53bb6d){const _0x41148d=await fetch(_0x4f0400,_0x53bb6d);return isUnauthorizedError(_0x41148d['status'])&&(removeLoginState(),goToLogin()),_0x41148d;}__name(apiBaseGetResponse,'apiBaseGetResponse');async function apiBaseGet(_0xcf1cac,_0x4a7317){const _0x27db1b=await fetch(_0xcf1cac,{'method':httpMethods['get'],'headers':_0x4a7317});return baseApiHandleResponse(_0x27db1b);}__name(apiBaseGet,'apiBaseGet');async function apiBaseGetBlob(_0x4ad660,_0x785176){const _0x375e4e=await fetch(_0x4ad660,{'method':httpMethods['get'],'headers':_0x785176});return baseApiHandleBlobResponse(_0x375e4e);}__name(apiBaseGetBlob,'apiBaseGetBlob');async function postBaseApi(_0x50f73e,_0x2ab640,_0x24a2b8){const _0x1a0c35=await fetch(_0x50f73e,{'method':httpMethods['post'],'headers':_0x24a2b8,'body':_0x2ab640 instanceof URLSearchParams?_0x2ab640:JSON['stringify'](_0x2ab640)});return baseApiHandleResponse(_0x1a0c35);}__name(postBaseApi,'postBaseApi');async function putBaseApi(_0x1e84fd,_0x123993,_0x56e0ca){const _0x2c4ea2=await fetch(_0x1e84fd,{'method':httpMethods['put'],'headers':_0x56e0ca,'body':JSON['stringify'](_0x123993)});return baseApiHandleResponse(_0x2c4ea2);}__name(putBaseApi,'putBaseApi');async function deleteBaseApi(_0x31f6da,_0x22aad8){const _0x5b1e1d=await fetch(_0x31f6da,{'method':httpMethods['delete'],'headers':_0x22aad8});if(!_0x5b1e1d['ok'])handleErrorResponse(_0x5b1e1d);}__name(deleteBaseApi,'deleteBaseApi');async function baseApiHandleResponse(_0x1b0219){const _0x408b5e=_0x1b0219['headers']['get'](httpContentTypes['contentTypeHeaderName']),_0x20df9b=_0x408b5e?.['includes'](httpContentTypes['contentTypeApplicationJson']);let _0x424dc5;isUnauthorizedError(_0x1b0219['status'])&&(removeLoginState(),goToLogin());if(!_0x1b0219['ok'])_0x424dc5=await handleErrorResponse(_0x1b0219);else _0x1b0219['status']===httpStatusCodes['noContent']||!_0x20df9b?_0x424dc5=void(-0x2622+-0x1d3*0x1+-0x27f5*-0x1):_0x424dc5=await getJsonFromResponse(_0x1b0219);return _0x424dc5;}__name(baseApiHandleResponse,'baseApiHandleResponse');async function baseApiHandleBlobResponse(_0x39548a){let _0x35812f;isUnauthorizedError(_0x39548a['status'])&&goToLogin();if(!_0x39548a['ok'])_0x35812f=await handleErrorResponse(_0x39548a);else _0x39548a['status']===httpStatusCodes['noContent']?_0x35812f=void(-0x110a*-0x1+-0x8a1+0x1*-0x869):_0x35812f=await _0x39548a['blob']();return _0x35812f;}__name(baseApiHandleBlobResponse,'baseApiHandleBlobResponse');async function handleErrorResponse(_0x264c33){const _0x3c3536=_0x264c33['headers']['get'](httpContentTypes['contentTypeHeaderName']),_0x57bd5f=_0x3c3536?.['includes'](httpContentTypes['contentTypeApplicationJson']);let _0x2cd676='',_0x3aea3d='';if(_0x57bd5f){const _0x20d680=await getJsonFromResponse(_0x264c33);_0x2cd676=_0x20d680?.['message'],_0x3aea3d=_0x20d680?.['description']||'';}_0x2cd676=_0x2cd676?_0x2cd676:_0x264c33['statusText'];const _0x4945ec={'status':_0x264c33['status'],'message':_0x2cd676},_0x2ebc69={'originalUrl':_0x264c33['url']};return _0x264c33['status']!==httpStatusCodes['unauthorized']&&logAndNotify(new Error(_0x2cd676)),getProblemDetails(_0x4945ec,_0x2ebc69,_0x3aea3d);}__name(handleErrorResponse,'handleErrorResponse');function isUnauthorizedError(_0x275afe){return _0x275afe===httpStatusCodes['unauthorized']&&isBrowser()&&window['location']['pathname']!==getRelativeLoginUrl();}__name(isUnauthorizedError,'isUnauthorizedError');
12
13
 
13
- export { apiBaseGet, apiBaseGetBlob, baseApiHandleBlobResponse, baseApiHandleResponse, deleteBaseApi, handleErrorResponse, postBaseApi, putBaseApi };
14
+ export { apiBaseGet, apiBaseGetBlob, apiBaseGetResponse, baseApiHandleBlobResponse, baseApiHandleResponse, deleteBaseApi, handleErrorResponse, postBaseApi, putBaseApi };
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
- import { emptyGuid } from '../constants/constants.js';
2
+ import { emptyUuid } from '../constants/constants.js';
3
3
  import { setLocalStorage, getLocalStorage, removeLocalStorage } from '../local-storage/local-storage.js';
4
4
  import { publicImages } from '../constants/public-files.js';
5
- import { extensions } from '../constants/extensions.js';
5
+ import { fileExtensionsWithoutDot } from '../../base-repo/app-constants/internal-system-constants.js';
6
6
  import { getSessionStorage, setSessionStorage, removeSessionStorage } from './session-storage.js';
7
7
 
8
- var __defProp=Object['defineProperty'],__name=(_0x27ddc6,_0x54ddfb)=>__defProp(_0x27ddc6,'name',{'value':_0x54ddfb,'configurable':!![]});const loginStateKey='LoginState',afterLoginRedirectUrlKey='AfterLoginRedirectUrl';function isLoggedIn(){return getLoginState()['loggedIn'];}__name(isLoggedIn,'isLoggedIn');function setLoginState(_0x2f44f2){setLocalStorage(loginStateKey,_0x2f44f2);}__name(setLoginState,'setLoginState');function getLoginState(){return getLocalStorage(loginStateKey)??getEmptyLoginState();}__name(getLoginState,'getLoginState');function removeLoginState(){removeLocalStorage(loginStateKey);}__name(removeLoginState,'removeLoginState');function getAfterLoginRedirectUrl(){return getSessionStorage(afterLoginRedirectUrlKey);}__name(getAfterLoginRedirectUrl,'getAfterLoginRedirectUrl');function setAfterLoginRedirectUrl(){const _0xc3a1bd=(window['location']['pathname']+window['location']['search'])['slice'](0x13e0+-0x4*-0x7d+0x15d3*-0x1);setSessionStorage(afterLoginRedirectUrlKey,_0xc3a1bd);}__name(setAfterLoginRedirectUrl,'setAfterLoginRedirectUrl');function removeAfterLoginRedirectUrl(){removeSessionStorage(afterLoginRedirectUrlKey);}__name(removeAfterLoginRedirectUrl,'removeAfterLoginRedirectUrl');function getEmptyLoginState(){const _0x3f8144={'email':'','loggedIn':![],'displayName':'','userId':emptyGuid,'imageUrl':'/'+publicImages['user']+'/'+emptyGuid+'.'+extensions['webp']};return _0x3f8144;}__name(getEmptyLoginState,'getEmptyLoginState');
8
+ var __defProp=Object['defineProperty'],__name=(_0x233606,_0x15946c)=>__defProp(_0x233606,'name',{'value':_0x15946c,'configurable':!![]});const loginStateKey='LoginState',afterLoginRedirectUrlKey='AfterLoginRedirectUrl';function isLoggedIn(){return getLoginState()['loggedIn'];}__name(isLoggedIn,'isLoggedIn');function setLoginState(_0x1d43ff){setLocalStorage(loginStateKey,_0x1d43ff);}__name(setLoginState,'setLoginState');function getLoginState(){return getLocalStorage(loginStateKey)??getEmptyLoginState();}__name(getLoginState,'getLoginState');function removeLoginState(){removeLocalStorage(loginStateKey);}__name(removeLoginState,'removeLoginState');function getAfterLoginRedirectUrl(){return getSessionStorage(afterLoginRedirectUrlKey);}__name(getAfterLoginRedirectUrl,'getAfterLoginRedirectUrl');function setAfterLoginRedirectUrl(){const _0x1fcb37=(window['location']['pathname']+window['location']['search'])['slice'](0x34+0x5*-0x76d+0x24ee);setSessionStorage(afterLoginRedirectUrlKey,_0x1fcb37);}__name(setAfterLoginRedirectUrl,'setAfterLoginRedirectUrl');function removeAfterLoginRedirectUrl(){removeSessionStorage(afterLoginRedirectUrlKey);}__name(removeAfterLoginRedirectUrl,'removeAfterLoginRedirectUrl');function getEmptyLoginState(){const _0x50c900={'email':'','loggedIn':![],'displayName':'','userId':emptyUuid,'imageUrl':'/'+publicImages['user']+'/'+emptyUuid+'.'+fileExtensionsWithoutDot['webp']};return _0x50c900;}__name(getEmptyLoginState,'getEmptyLoginState');
9
9
 
10
10
  export { getAfterLoginRedirectUrl, getLoginState, isLoggedIn, removeAfterLoginRedirectUrl, removeLoginState, setAfterLoginRedirectUrl, setLoginState };
@@ -2,6 +2,6 @@
2
2
  import { isBrowser } from '../lib/environments.js';
3
3
  import { parseJson } from '../lib/utils.js';
4
4
 
5
- var __defProp=Object['defineProperty'],__name=(_0x5efcf5,_0x127e84)=>__defProp(_0x5efcf5,'name',{'value':_0x127e84,'configurable':!![]});function sessionStorageGetAsString(_0x2a01d4){if(isBrowser()){const _0x1a54c3=sessionStorage['getItem'](_0x2a01d4);return _0x1a54c3??void(-0x497+-0x1*-0x659+0x9*-0x32);}return void(0x1cf9+-0x89c+0x145d*-0x1);}__name(sessionStorageGetAsString,'sessionStorageGetAsString');function getSessionStorage(_0xa4f1a2){const _0x4b308f=sessionStorageGetAsString(_0xa4f1a2);return _0x4b308f?parseJson(_0x4b308f):void(0x1903*-0x1+0x3*-0x7f6+0x30e5);}__name(getSessionStorage,'getSessionStorage');function setSessionStorage(_0x32601a,_0x15b19f){if(_0x15b19f===void(0x1*-0x8f1+-0x14ae+0x1d9f))return;sessionStorage['setItem'](_0x32601a,JSON['stringify'](_0x15b19f));}__name(setSessionStorage,'setSessionStorage');function removeSessionStorage(_0x584300){sessionStorage['removeItem'](_0x584300);}__name(removeSessionStorage,'removeSessionStorage');
5
+ var __defProp=Object['defineProperty'],__name=(_0x57950c,_0x51c573)=>__defProp(_0x57950c,'name',{'value':_0x51c573,'configurable':!![]});function sessionStorageGetAsString(_0x1c2f3e){if(isBrowser()){const _0x25e153=sessionStorage['getItem'](_0x1c2f3e);return _0x25e153??void(0x3d*0x74+-0x19*-0x6c+-0x4c6*0x8);}return void(0x12fb+-0x191f+0x624);}__name(sessionStorageGetAsString,'sessionStorageGetAsString');function getSessionStorage(_0x53fd1e){const _0x266a63=sessionStorageGetAsString(_0x53fd1e);return _0x266a63?parseJson(_0x266a63):void(-0x21*-0x6f+0x25dd+-0x12*0x2e6);}__name(getSessionStorage,'getSessionStorage');function setSessionStorage(_0x16625d,_0x2d0326){if(_0x2d0326===void(-0xad1+-0x12cb+-0x4*-0x767))return;sessionStorage['setItem'](_0x16625d,JSON['stringify'](_0x2d0326));}__name(setSessionStorage,'setSessionStorage');function removeSessionStorage(_0x424b2b){sessionStorage['removeItem'](_0x424b2b);}__name(removeSessionStorage,'removeSessionStorage');
6
6
 
7
7
  export { getSessionStorage, removeSessionStorage, sessionStorageGetAsString, setSessionStorage };
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  import { getLocalStorage, setLocalStorage, removeLocalStorage } from '../local-storage/local-storage.js';
3
3
 
4
- var __defProp=Object['defineProperty'],__name=(_0x127c01,_0x5834ac)=>__defProp(_0x127c01,'name',{'value':_0x5834ac,'configurable':!![]});const tokenKey='token';function getAuthToken(){return getLocalStorage(tokenKey);}__name(getAuthToken,'getAuthToken');function rememberAuthToken(_0x48a0d4){setLocalStorage(tokenKey,_0x48a0d4);}__name(rememberAuthToken,'rememberAuthToken');function forgetAuthToken(){removeLocalStorage(tokenKey);}__name(forgetAuthToken,'forgetAuthToken');
4
+ var __defProp=Object['defineProperty'],__name=(_0x18f99f,_0xafe823)=>__defProp(_0x18f99f,'name',{'value':_0xafe823,'configurable':!![]});const tokenKey='token';function getAuthToken(){return getLocalStorage(tokenKey);}__name(getAuthToken,'getAuthToken');function rememberAuthToken(_0x34e65f){setLocalStorage(tokenKey,_0x34e65f);}__name(rememberAuthToken,'rememberAuthToken');function forgetAuthToken(){removeLocalStorage(tokenKey);}__name(forgetAuthToken,'forgetAuthToken');
5
5
 
6
6
  export { forgetAuthToken, getAuthToken, rememberAuthToken, tokenKey };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+ import { fileExtensionsWithoutDot } from '../../base-repo/app-constants/internal-system-constants.js';
3
+ import { commonLowerCaseWords } from '../../base-repo/constants/internal-common-strings.js';
4
+
5
+ const wellKnownUserProps={'name':commonLowerCaseWords['name'],'firstName':'firstName','lastName':'lastName','country':'country','email':'email','phoneNumber':'phoneNumber','password':'password','confirmPassword':'confirmPassword','repeatPassword':'repeatPassword','currentPassword':'currentPassword','newPassword':'newPassword','zip':fileExtensionsWithoutDot['zip'],'isDisabled':'isDisabled','openid':'openid','profile':commonLowerCaseWords['profile'],'picture':commonLowerCaseWords['picture']};
6
+
7
+ export { wellKnownUserProps };
@@ -1,4 +1,4 @@
1
1
  'use strict';
2
- const emptyGuid='00000000-0000-0000-0000-000000000000';const minHintPriorityValue=0x6f0+0x1*0x1+-0x1*0x6f0;const englishLanguageCode='en-US';const emptySelectValue='empty';const emptySelectIndex=-0x53*0x2b+0x2*0xa65+0x1*-0x6d9;const fieldValuesSeparator=',\x20';const noName='No\x20name';const projectName='SaaS\x20Kit';
2
+ const emptyUuid='00000000-0000-0000-0000-000000000000';const minHintPriorityValue=-0xbcb*0x3+0x93*0x29+0xbd7;const emptyString='empty';const englishLanguageCode='en-US';const timeZoneNames={'utc':'UTC'};const emptySelectIndex=0x232+-0x10d9+0xea7;const fieldValuesSeparator=',\x20';const noName='No\x20name';const commonStrings={'deleteString':'Delete','editString':'Edit'};
3
3
 
4
- export { emptyGuid, emptySelectIndex, emptySelectValue, englishLanguageCode, fieldValuesSeparator, minHintPriorityValue, noName, projectName };
4
+ export { commonStrings, emptySelectIndex, emptyString, emptyUuid, englishLanguageCode, fieldValuesSeparator, minHintPriorityValue, noName, timeZoneNames };
@@ -1,4 +1,7 @@
1
1
  'use strict';
2
- const appEnvironments={'development':'development','production':'production','test':'test','staging':'staging','demo':'demo'};const launchMode={'direct':'direct'};
2
+ import { folders } from '../../base-repo/app-constants/project-paths.js';
3
+ import { resourceFolders } from './resource-folders.js';
4
+
5
+ const appEnvironments={'development':'development','production':'production','test':folders['test'],'staging':'staging','demo':resourceFolders['demo']};const launchMode={'direct':'direct','proxy':'proxy'};
3
6
 
4
7
  export { appEnvironments, launchMode };
@@ -1,4 +1,4 @@
1
1
  'use strict';
2
- const headerNames={'authHeaderName':'authorization','authHeaderValuePrefix':'Bearer\x20','shippoAuthPrefix':'ShippoToken\x20','cfAccessTokenHeaderName':'cf-access-token','xStorageBucket':'x-storage-bucket','cacheControl':'Cache-Control','eTag':'ETag'};const httpContentTypes={'contentTypeApplicationForm':'application/x-www-form-urlencoded','contentTypeApplicationJson':'application/json','contentTypeHeaderName':'content-type','contentTypeHeaderValue':'application/json','contentTypeHeaderOctetStream':'application/octet-stream','contentTypeXFileName':'x-file-name','contentTypeDisposition':'Content-Disposition','contentTypeMultipartFormData':'multipart/form-data'};
2
+ const headerNames={'authHeaderName':'authorization','authHeaderValuePrefix':'Bearer\x20','shippoAuthPrefix':'ShippoToken\x20','cfAccessTokenHeaderName':'cf-access-token','xStorageBucket':'x-storage-bucket','cacheControl':'Cache-Control','eTag':'ETag','accept':'Accept'};const httpContentTypes={'contentTypeApplicationForm':'application/x-www-form-urlencoded','contentTypeApplicationJson':'application/json','contentTypeHeaderName':'content-type','contentTypeHeaderOctetStream':'application/octet-stream','contentTypeXFileName':'x-file-name','contentTypeDisposition':'Content-Disposition','contentTypeMultipartFormData':'multipart/form-data'};
3
3
 
4
4
  export { headerNames, httpContentTypes };
@@ -1,4 +1,7 @@
1
1
  'use strict';
2
- const metaQueryParams={'id':'id','userId':'userId','resource':'resource','viewName':'name','default':'default','relatedResourceName':'relatedResourceName','relatedResourceId':'relatedResourceId'};
2
+ import { wellKnownMetaProps } from '../../fd-toolbox-core/constants/meta-constants.js';
3
+ import { commonLowerCaseWords, wellKnownProps } from '../../base-repo/constants/internal-common-strings.js';
4
+
5
+ const metaQueryParams={'id':wellKnownMetaProps['id'],'userId':wellKnownProps['userId'],'resource':commonLowerCaseWords['resource'],'resourceName':'resourceName','viewName':commonLowerCaseWords['name'],'default':commonLowerCaseWords['default'],'relatedResourceName':'relatedResourceName','relatedResourceId':'relatedResourceId'};
3
6
 
4
7
  export { metaQueryParams };