@fernir2/saas-kit-cli 0.1.40 → 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 -453
  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 -57
  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 -35
  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 -12
  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 +49 -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 -23
  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
+ }
@@ -1,12 +1,8 @@
1
- FD_INTEGRATION_ENABLED=true
2
-
3
- FD_DATABASE_CONNECTION_STRING="postgresql://postgres:root@localhost:5432/saas-kit"
4
-
5
- NEXT_PUBLIC_FD_SEED_DEMO_RESOURCES=true
6
- FD_SEED_DEV_RESOURCES=true
7
-
8
- FD_SENDER_EMAIL=
9
- FD_EMAIL_SERVICE_URL=
10
- FD_EMAIL_SERVICE_KEY=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
11
-
12
- NODE_OPTIONS="--import=tsx"
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=(_0x3ed8bd,_0x2e2b8)=>__defProp(_0x3ed8bd,'name',{'value':_0x2e2b8,'configurable':!![]});async function apiGet(_0x54aee0,_0x5ba0a5,_0x4c8f6b,_0x32a8b5){const _0x5f2d80=getApiPath(_0x54aee0,_0x5ba0a5,_0x4c8f6b);return apiBaseGet(_0x5f2d80,getApiHeaders(_0x32a8b5));}__name(apiGet,'apiGet');async function apiGetBlob(_0x8b3505,_0x17717f,_0x1fe237,_0x45b56b){const _0x17e64f=getApiPath(_0x8b3505,_0x17717f,_0x1fe237);return apiBaseGetBlob(_0x17e64f,getApiHeaders(_0x45b56b,!![]));}__name(apiGetBlob,'apiGetBlob');async function apiGetWithOData(_0x4e335c,_0x5913f5,_0x485e65){const _0x4ae7f6=getODataParams(_0x5913f5);return apiGet(_0x4e335c,_0x485e65,_0x4ae7f6);}__name(apiGetWithOData,'apiGetWithOData');async function apiPost(_0x1159ad,_0x12931f,_0x2cb5db){const _0x3896bd=getApiPath(_0x1159ad);return postBaseApi(_0x3896bd,_0x12931f,getApiHeaders(_0x2cb5db));}__name(apiPost,'apiPost');async function apiPostFile(_0x6c348c,_0x158fd7,_0x9e476f){const _0x1a1f4d=getApiPath(_0x6c348c),_0x2351f7=await fetch(_0x1a1f4d,{'method':httpMethods['post'],'body':_0x158fd7,'headers':getApiHeaders(_0x9e476f,!![])});return baseApiHandleResponse(_0x2351f7);}__name(apiPostFile,'apiPostFile');async function apiPut(_0x466342,_0x208eb7,_0x298c7b){const _0x59e086=getApiPath(_0x466342);return putBaseApi(_0x59e086,_0x208eb7,getApiHeaders(_0x298c7b));}__name(apiPut,'apiPut');async function apiDelete(_0x53b172,_0x3969f6,_0x1ca35c){const _0x29f840=getApiPath(_0x53b172,_0x3969f6);return deleteBaseApi(_0x29f840,getApiHeaders(_0x1ca35c));}__name(apiDelete,'apiDelete');function getApiHeaders(_0x2d2dc0,_0x4dac17=![]){const _0x118a69=_0x2d2dc0??new Headers(),_0x2a595f=getAuthToken();return (!_0x118a69['get'](headerNames['authHeaderName'])||_0x118a69['get'](headerNames['authHeaderName'])==='')&&_0x2a595f&&_0x118a69['set'](headerNames['authHeaderName'],headerNames['authHeaderValuePrefix']+_0x2a595f),!_0x4dac17&&!_0x118a69['get'](httpContentTypes['contentTypeHeaderName'])&&_0x118a69['set'](httpContentTypes['contentTypeHeaderName'],httpContentTypes['contentTypeHeaderValue']),_0x118a69;}__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=(_0x596bbf,_0x1ac308)=>__defProp(_0x596bbf,'name',{'value':_0x1ac308,'configurable':!![]});const apiPrefix='api';function getApiPath(_0x557dbc,_0x58f435,_0x5be9c3){let _0x46197b=combineEndpointPath(apiPrefix,_0x557dbc);return _0x58f435&&(_0x46197b=combineEndpointPath(_0x46197b,_0x58f435)),_0x46197b=addQueryParamsToPath(_0x46197b,_0x5be9c3),new URL(_0x46197b,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=(_0x35b0ae,_0x3536e0)=>__defProp(_0x35b0ae,'name',{'value':_0x3536e0,'configurable':!![]});async function apiBaseGet(_0x3658c6,_0x4220a1){const _0x14d2b9=await fetch(_0x3658c6,{'method':httpMethods['get'],'headers':_0x4220a1});return baseApiHandleResponse(_0x14d2b9);}__name(apiBaseGet,'apiBaseGet');async function apiBaseGetBlob(_0x2a3715,_0x5bbaa2){const _0x161e03=await fetch(_0x2a3715,{'method':httpMethods['get'],'headers':_0x5bbaa2});return baseApiHandleBlobResponse(_0x161e03);}__name(apiBaseGetBlob,'apiBaseGetBlob');async function postBaseApi(_0x11bd31,_0x425e92,_0x1c73f2){const _0x368618=await fetch(_0x11bd31,{'method':httpMethods['post'],'headers':_0x1c73f2,'body':_0x425e92 instanceof URLSearchParams?_0x425e92:JSON['stringify'](_0x425e92)});return baseApiHandleResponse(_0x368618);}__name(postBaseApi,'postBaseApi');async function putBaseApi(_0x4dbf02,_0x5cd2bc,_0x4a89ee){const _0x921a32=await fetch(_0x4dbf02,{'method':httpMethods['put'],'headers':_0x4a89ee,'body':JSON['stringify'](_0x5cd2bc)});return baseApiHandleResponse(_0x921a32);}__name(putBaseApi,'putBaseApi');async function deleteBaseApi(_0x538028,_0x4083bf){const _0x461b03=await fetch(_0x538028,{'method':httpMethods['delete'],'headers':_0x4083bf});if(!_0x461b03['ok'])handleErrorResponse(_0x461b03);}__name(deleteBaseApi,'deleteBaseApi');async function baseApiHandleResponse(_0x281cd0){const _0x4358e6=_0x281cd0['headers']['get']('content-type'),_0x239587=_0x4358e6?.['includes']('application/json');isUnauthorizedError(_0x281cd0['status'])&&(removeLoginState(),goToLogin());if(!_0x281cd0['ok'])return handleErrorResponse(_0x281cd0);if(_0x281cd0['status']===httpStatusCodes['noContent']||!_0x239587)return null;return getJsonFromResponse(_0x281cd0);}__name(baseApiHandleResponse,'baseApiHandleResponse');async function baseApiHandleBlobResponse(_0x3585e5){isUnauthorizedError(_0x3585e5['status'])&&goToLogin();if(!_0x3585e5['ok']){const _0x45f075=await handleErrorResponse(_0x3585e5);return _0x45f075;}if(_0x3585e5['status']===httpStatusCodes['noContent'])return null;const _0x29479a=await _0x3585e5['blob']();return _0x29479a;}__name(baseApiHandleBlobResponse,'baseApiHandleBlobResponse');async function handleErrorResponse(_0x3f2449){const _0x2ff6c5=_0x3f2449['headers']['get']('content-type'),_0xc769dd=_0x2ff6c5?.['includes']('application/json');let _0x3a7372='',_0x3507ec='';if(_0xc769dd){const _0x15bf03=await getJsonFromResponse(_0x3f2449);_0x3a7372=_0x15bf03?.['message'],_0x3507ec=_0x15bf03?.['description']||'';}_0x3a7372=_0x3a7372?_0x3a7372:_0x3f2449['statusText'];const _0x99a928={'status':_0x3f2449['status'],'message':_0x3a7372},_0x51b219={'originalUrl':_0x3f2449['url']};return _0x3f2449['status']!==httpStatusCodes['unauthorized']&&logAndNotify(new Error(_0x3a7372)),getProblemDetails(_0x99a928,_0x51b219,_0x3507ec);}__name(handleErrorResponse,'handleErrorResponse');function isUnauthorizedError(_0x3378d7){return _0x3378d7===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=(_0x356974,_0x108eac)=>__defProp(_0x356974,'name',{'value':_0x108eac,'configurable':!![]});const loginStateKey='LoginState',afterLoginRedirectUrlKey='AfterLoginRedirectUrl';function isLoggedIn(){return getLoginState()['loggedIn'];}__name(isLoggedIn,'isLoggedIn');function setLoginState(_0x4e0b5c){setLocalStorage(loginStateKey,_0x4e0b5c);}__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 _0x4a76a1=(window['location']['pathname']+window['location']['search'])['slice'](-0x1*-0x14d4+0x76d*0x3+-0x4ca*0x9);setSessionStorage(afterLoginRedirectUrlKey,_0x4a76a1);}__name(setAfterLoginRedirectUrl,'setAfterLoginRedirectUrl');function removeAfterLoginRedirectUrl(){removeSessionStorage(afterLoginRedirectUrlKey);}__name(removeAfterLoginRedirectUrl,'removeAfterLoginRedirectUrl');function getEmptyLoginState(){const _0x4bad9e={'email':'','loggedIn':![],'displayName':'','userId':emptyGuid,'imageUrl':'/'+publicImages['user']+'/'+emptyGuid+'.'+extensions['webp']};return _0x4bad9e;}__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=(_0x310855,_0x311c83)=>__defProp(_0x310855,'name',{'value':_0x311c83,'configurable':!![]});function sessionStorageGetAsString(_0x550587){if(isBrowser()){const _0x254b45=sessionStorage['getItem'](_0x550587);return _0x254b45??void(0x25ab+0xa2*-0x9+-0x1*0x1ff9);}return void(-0x948+-0xe1+-0x1*-0xa29);}__name(sessionStorageGetAsString,'sessionStorageGetAsString');function getSessionStorage(_0x2f3bac){const _0x1a52ea=sessionStorageGetAsString(_0x2f3bac);return _0x1a52ea?parseJson(_0x1a52ea):void(-0xb*0x2bb+0x5ce*-0x1+0x23d7);}__name(getSessionStorage,'getSessionStorage');function setSessionStorage(_0x241c87,_0x3543f7){if(_0x3543f7===void(0x1*-0x2429+0x14e2+-0xf47*-0x1))return;sessionStorage['setItem'](_0x241c87,JSON['stringify'](_0x3543f7));}__name(setSessionStorage,'setSessionStorage');function removeSessionStorage(_0x3fd7ab){sessionStorage['removeItem'](_0x3fd7ab);}__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=(_0x2920c5,_0x2b855f)=>__defProp(_0x2920c5,'name',{'value':_0x2b855f,'configurable':!![]});const tokenKey='token';function getAuthToken(){return getLocalStorage(tokenKey);}__name(getAuthToken,'getAuthToken');function rememberAuthToken(_0x289adb){setLocalStorage(tokenKey,_0x289adb);}__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=-0x8*-0x35+0x25ba+0x2761*-0x1;const englishLanguageCode='en-US';const emptySelectValue='empty';const emptySelectIndex=0xff*-0x6+-0x3db*-0x7+-0x3*0x701;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 };