@fernir2/saas-kit-cli 0.1.33 → 0.1.34

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 (101) hide show
  1. package/base-repo/app-constants/aliases.cjs.js +1 -1
  2. package/base-repo/app-constants/aliases.js +1 -1
  3. package/cli/.env +55 -0
  4. package/cli/src/app/api/v1/[resourceName]/[id]/route.ts +11 -0
  5. package/cli/src/app/api/v1/[resourceName]/route.ts +14 -0
  6. package/cli/src/app/api/v1/[resourceName]/upsert/route.ts +3 -0
  7. package/cli/src/app/api/v1/log/route.ts +7 -0
  8. package/cli/src/app/api/v1/otheruser/[id]/route.ts +14 -0
  9. package/cli/src/app/api/v1/otheruser/route.ts +7 -0
  10. package/cli/src/app/api/v1/password/forgotpassword/route.ts +3 -0
  11. package/cli/src/app/api/v1/password/resetpassword/route.ts +3 -0
  12. package/cli/src/app/api/v1/payment/method/route.ts +4 -0
  13. package/cli/src/app/api/v1/payment/route.ts +3 -0
  14. package/cli/src/app/api/v1/payment/verify-fail/route.ts +3 -0
  15. package/cli/src/app/api/v1/payment/verify-success/route.ts +3 -0
  16. package/cli/src/app/api/v1/preload/route.ts +3 -0
  17. package/cli/src/app/api/v1/searchable-resources/route.ts +11 -0
  18. package/cli/src/app/api/v1/searchresult/route.ts +35 -0
  19. package/cli/src/app/api/v1/sign-in/route.ts +3 -0
  20. package/cli/src/app/api/v1/sign-out/route.ts +3 -0
  21. package/cli/src/app/api/v1/sign-up/route.ts +3 -0
  22. package/cli/src/app/api/v1/subscription/cancel/route.ts +3 -0
  23. package/cli/src/app/api/v1/subscription/create/route.ts +3 -0
  24. package/cli/src/app/api/v1/subscription/update/route.ts +3 -0
  25. package/cli/src/app/api/v1/uimeta/route.ts +3 -0
  26. package/cli/src/app/api/v1/uimetas/route.ts +3 -0
  27. package/cli/src/app/api/v1/userpermission/route.ts +3 -0
  28. package/cli/src/app/api/v1/visible-workspace/route.ts +5 -0
  29. package/cli/src/app/api/v1/workspace/change/route.ts +5 -0
  30. package/level2/cli/create-saas-kit-app/bin/index.cjs.js +4 -4
  31. package/level2/cli/create-saas-kit-app/bin/index.js +3 -3
  32. package/level2/fd-toolbox/api/api-client.cjs.js +1 -1
  33. package/level2/fd-toolbox/api/api-client.js +1 -1
  34. package/level2/fd-toolbox/api/api-path-names.cjs.js +2 -2
  35. package/level2/fd-toolbox/api/api-paths.cjs.js +1 -1
  36. package/level2/fd-toolbox/api/api-paths.js +1 -1
  37. package/level2/fd-toolbox/api/base-api.cjs.js +1 -1
  38. package/level2/fd-toolbox/api/base-api.js +1 -1
  39. package/level2/fd-toolbox/auth/login-states.cjs.js +1 -1
  40. package/level2/fd-toolbox/auth/login-states.js +1 -1
  41. package/level2/fd-toolbox/auth/session-storage.cjs.js +1 -1
  42. package/level2/fd-toolbox/auth/session-storage.js +1 -1
  43. package/level2/fd-toolbox/auth/tokens.cjs.js +1 -1
  44. package/level2/fd-toolbox/auth/tokens.js +1 -1
  45. package/level2/fd-toolbox/constants/constants.cjs.js +1 -1
  46. package/level2/fd-toolbox/constants/constants.js +1 -1
  47. package/level2/fd-toolbox/enums/enums.cjs.js +1 -1
  48. package/level2/fd-toolbox/enums/enums.js +1 -1
  49. package/level2/fd-toolbox/errors/error-handler.cjs.js +1 -1
  50. package/level2/fd-toolbox/errors/error-handler.js +1 -1
  51. package/level2/fd-toolbox/errors/errors.cjs.js +1 -1
  52. package/level2/fd-toolbox/errors/errors.js +1 -1
  53. package/level2/fd-toolbox/errors/problem-details.cjs.js +1 -1
  54. package/level2/fd-toolbox/errors/problem-details.js +1 -1
  55. package/level2/fd-toolbox/functions/value-checking-functions.cjs.js +1 -1
  56. package/level2/fd-toolbox/functions/value-checking-functions.js +1 -1
  57. package/level2/fd-toolbox/http/url/urls.cjs.js +1 -1
  58. package/level2/fd-toolbox/http/url/urls.js +1 -1
  59. package/level2/fd-toolbox/infra/env-config.cjs.js +2 -2
  60. package/level2/fd-toolbox/infra/env-config.js +2 -2
  61. package/level2/fd-toolbox/infra/env-functions.cjs.js +1 -1
  62. package/level2/fd-toolbox/infra/env-functions.js +1 -1
  63. package/level2/fd-toolbox/infra/env-schema.cjs.js +2 -2
  64. package/level2/fd-toolbox/infra/env-schema.js +2 -2
  65. package/level2/fd-toolbox/infra/env-store.cjs.js +1 -1
  66. package/level2/fd-toolbox/infra/env-store.js +1 -1
  67. package/level2/fd-toolbox/lib/environments.cjs.js +1 -1
  68. package/level2/fd-toolbox/lib/environments.js +1 -1
  69. package/level2/fd-toolbox/lib/utils.cjs.js +1 -1
  70. package/level2/fd-toolbox/lib/utils.js +1 -1
  71. package/level2/fd-toolbox/local-storage/local-storage.cjs.js +1 -1
  72. package/level2/fd-toolbox/local-storage/local-storage.js +1 -1
  73. package/level2/fd-toolbox/logging/loggers.cjs.js +1 -1
  74. package/level2/fd-toolbox/logging/loggers.js +1 -1
  75. package/level2/fd-toolbox/notifications.cjs.js +2 -2
  76. package/level2/fd-toolbox/notifications.js +2 -2
  77. package/level2/fd-toolbox/odata/odata-constants.cjs.js +1 -1
  78. package/level2/fd-toolbox/odata/odata-constants.js +1 -1
  79. package/level2/fd-toolbox/odata/odatas.cjs.js +1 -1
  80. package/level2/fd-toolbox/odata/odatas.js +1 -1
  81. package/level2/fd-toolbox/odata/services/odata-filters.cjs.js +1 -1
  82. package/level2/fd-toolbox/odata/services/odata-filters.js +1 -1
  83. package/level2/fd-toolbox/paths/paths-names.cjs.js +2 -2
  84. package/level2/fd-toolbox/paths/paths-names.js +1 -1
  85. package/level2/fd-toolbox/routing/login-routers.cjs.js +1 -1
  86. package/level2/fd-toolbox/routing/login-routers.js +1 -1
  87. package/level2/fd-toolbox/routing/paths.cjs.js +1 -1
  88. package/level2/fd-toolbox/routing/paths.js +1 -1
  89. package/level2/fd-toolbox/strings/strings-constants.cjs.js +1 -1
  90. package/level2/fd-toolbox/strings/strings-constants.js +1 -1
  91. package/level2/fd-toolbox/strings/strings.cjs.js +1 -1
  92. package/level2/fd-toolbox/strings/strings.js +1 -1
  93. package/level2/fd-toolbox/types/ensure-type.cjs.js +1 -1
  94. package/level2/fd-toolbox/types/ensure-type.js +1 -1
  95. package/level2/fd-toolbox-core/core/name-of.cjs.js +1 -1
  96. package/level2/fd-toolbox-core/core/name-of.js +1 -1
  97. package/level2/fd-toolbox-core/types/resource-with-id.cjs.js +1 -1
  98. package/level2/fd-toolbox-core/types/resource-with-id.js +1 -1
  99. package/level2/npm-commands/build-npm/path.cjs.js +1 -1
  100. package/level2/npm-commands/build-npm/path.js +1 -1
  101. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  'use strict';
3
3
 
4
- const aliasSymbols={'atSign':'@','rootAlias':'@root/'};const typescriptAliases={'@':'./src','@cli':'./packages/level2/cli','@server':'./packages/level2/server','@schemas':'./generated','@npm-commands':'./packages/level2/npm-commands','@root':'.','@enricher':'./packages/level2/enricher','@packages':'./packages','@common':'./packages/level2/common','@meta':'./packages/level2/meta','@fd-toolbox':'./packages/level2/fd-toolbox','@fd-toolbox-core':'./packages/level2/fd-toolbox-core','@fd-component-toolbox':'./packages/level2/fd-component-toolbox','@fd-app-toolbox':'./packages/level2/fd-app-toolbox','@client':'./packages/level2/client'};const modulePathAliases=Object['fromEntries'](Object['entries'](typescriptAliases)['map'](([_0x430ccf,_0x5eba46])=>[_0x430ccf+'/*',[_0x5eba46+'/*']]));
4
+ const aliasSymbols={'atSign':'@','rootAlias':'@root/'};const typescriptAliases={'@':'./src','@cli':'./packages/level2/cli','@server':'./packages/level2/server','@schemas':'./generated','@npm-commands':'./packages/level2/npm-commands','@root':'.','@enricher':'./packages/level2/enricher','@packages':'./packages','@common':'./packages/level2/common','@meta':'./packages/level2/meta','@fd-toolbox':'./packages/level2/fd-toolbox','@fd-toolbox-core':'./packages/level2/fd-toolbox-core','@fd-component-toolbox':'./packages/level2/fd-component-toolbox','@fd-app-toolbox':'./packages/level2/fd-app-toolbox','@client':'./packages/level2/client'};const modulePathAliases=Object['fromEntries'](Object['entries'](typescriptAliases)['map'](([_0x4d7490,_0xb869d7])=>[_0x4d7490+'/*',[_0xb869d7+'/*']]));
5
5
 
6
6
  exports.aliasSymbols = aliasSymbols;
7
7
  exports.modulePathAliases = modulePathAliases;
@@ -1,4 +1,4 @@
1
1
  'use strict';
2
- const aliasSymbols={'atSign':'@','rootAlias':'@root/'};const typescriptAliases={'@':'./src','@cli':'./packages/level2/cli','@server':'./packages/level2/server','@schemas':'./generated','@npm-commands':'./packages/level2/npm-commands','@root':'.','@enricher':'./packages/level2/enricher','@packages':'./packages','@common':'./packages/level2/common','@meta':'./packages/level2/meta','@fd-toolbox':'./packages/level2/fd-toolbox','@fd-toolbox-core':'./packages/level2/fd-toolbox-core','@fd-component-toolbox':'./packages/level2/fd-component-toolbox','@fd-app-toolbox':'./packages/level2/fd-app-toolbox','@client':'./packages/level2/client'};const modulePathAliases=Object['fromEntries'](Object['entries'](typescriptAliases)['map'](([_0x430ccf,_0x5eba46])=>[_0x430ccf+'/*',[_0x5eba46+'/*']]));
2
+ const aliasSymbols={'atSign':'@','rootAlias':'@root/'};const typescriptAliases={'@':'./src','@cli':'./packages/level2/cli','@server':'./packages/level2/server','@schemas':'./generated','@npm-commands':'./packages/level2/npm-commands','@root':'.','@enricher':'./packages/level2/enricher','@packages':'./packages','@common':'./packages/level2/common','@meta':'./packages/level2/meta','@fd-toolbox':'./packages/level2/fd-toolbox','@fd-toolbox-core':'./packages/level2/fd-toolbox-core','@fd-component-toolbox':'./packages/level2/fd-component-toolbox','@fd-app-toolbox':'./packages/level2/fd-app-toolbox','@client':'./packages/level2/client'};const modulePathAliases=Object['fromEntries'](Object['entries'](typescriptAliases)['map'](([_0x4d7490,_0xb869d7])=>[_0x4d7490+'/*',[_0xb869d7+'/*']]));
3
3
 
4
4
  export { aliasSymbols, modulePathAliases, typescriptAliases };
package/cli/.env ADDED
@@ -0,0 +1,55 @@
1
+ NEXT_PUBLIC_FD_STRIPE_PUBLIC_KEY=pk_test_51RHmZWQqF1vu19lrVvc7sjoc4eOkW7CD2wvGAjintWGs6917z22kCen6nh6k3fcbOwqEji9otdH6spKhOQz4DNmz00lIUmF4fI
2
+ FD_STRIPE_SECRET_KEY=sk_test_51RHmZWQqF1vu19lrhmYvV2eoKqRY1gVMFHYLdbJE4n3cJeHJMyBYu2F7VgoWaBlhgXQymn0TzpWPAeGd7hwzdNZ600HgJc7z8W
3
+
4
+ FD_INTEGRATION_ENABLED=true
5
+
6
+ FD_DATABASE_CONNECTION_STRING="postgresql://postgres:root@localhost:5432/saas-kit"
7
+
8
+ NEXT_PUBLIC_FD_SEED_DEMO_RESOURCES=true
9
+ FD_SEED_DEV_RESOURCES=true
10
+
11
+ FD_GOOGLE_PLACES_API_KEY=AIzaSyC3GcaKWMHoCOrCxFaGZpNH6-Y3tzCilZA
12
+ FD_GOOGLE_CLIENT_ID=
13
+ FD_GOOGLE_SPREADSHEET_ID=
14
+ FD_GOOGLE_SPREADSHEET_SHEET_NAME=
15
+
16
+ FD_USE_MIGRATIONS=false
17
+
18
+ FD_PLAID_CLIENT_ID=
19
+ FD_PLAID_SECRET=
20
+ FD_PLAID_ENV=
21
+
22
+ FD_SCREENSHOT_ONE_ACCESS_KEY=1L2ZnUQtaGASpg
23
+ FD_SCREENSHOT_ONE_SECRET_KEY=0cXkkSa0OBFKgg
24
+
25
+ FD_SENDER_EMAIL=
26
+ FD_EMAIL_SERVICE_URL=
27
+ FD_EMAIL_SERVICE_KEY=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
28
+
29
+ NEXT_PUBLIC_FD_SHOW_SIDEBAR=true
30
+
31
+ FD_AI_API_KEY=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
32
+ FD_STORE_SESSION_IN_HEADER=false
33
+
34
+ FD_SHIPPO_API_KEY=shippo_test_fdafbbd9fdba49ff38b26277c4251586c63d9fb1
35
+ FD_FEDEX_SECRET_KEY=ba4d4fe3e0b94e66a9fb4a0b1adf0f88
36
+ FD_FEDEX_API_KEY=l714232a806a684a008a28e879eb6db770
37
+
38
+ FD_S3_COMPATIBLE_ACCESS_KEY=
39
+ FD_S3_COMPATIBLE_SECRET_ACCESS_KEY=
40
+ FD_S3_COMPATIBLE_BUCKET_NAME=
41
+ FD_S3_COMPATIBLE_ENDPOINT=https://e0ed8fb91d4055df5c33d876e7c84482.r2.cloudflarestorage.com
42
+ FD_S3_COMPATIBLE_ENDPOINT_DEV=https://pub-7a5f8c3ab46946ae96d8d2e497a36f7b.r2.dev
43
+
44
+ NODE_OPTIONS="--import=tsx"
45
+
46
+ NEXT_PUBLIC_FD_LAUNCH_MODE=direct
47
+
48
+ FD_GITLAB_PRIVATE_TOKEN=
49
+ FD_GITLAB_PROJECT_ID=
50
+ FD_GITLAB_HOST=
51
+ FD_DEFAULT_BRANCH_NAME=
52
+ FD_GIT_USERNAME=
53
+ FD_GIT_PASSWORD=
54
+ FD_REPO_OWNER=
55
+ FD_REPO_NAME=
@@ -0,0 +1,11 @@
1
+ import {
2
+ deleteResourceByIdRoute,
3
+ getResourceByIdRoute,
4
+ putResourceByIdRoute,
5
+ } from "@meta/server/basic-crud/crud-api";
6
+
7
+ export const GET = getResourceByIdRoute;
8
+
9
+ export const PUT = putResourceByIdRoute;
10
+
11
+ export const DELETE = deleteResourceByIdRoute;
@@ -0,0 +1,14 @@
1
+ import {
2
+ deleteResourceRoute,
3
+ getResourceRoute,
4
+ postResourceRoute,
5
+ putResourceRoute,
6
+ } from "@meta/server/basic-crud/crud-api";
7
+
8
+ export const PUT = putResourceRoute;
9
+
10
+ export const GET = getResourceRoute;
11
+
12
+ export const POST = postResourceRoute;
13
+
14
+ export const DELETE = deleteResourceRoute;
@@ -0,0 +1,3 @@
1
+ import { upsertResourceRoute } from "@meta/server/basic-crud/crud-api";
2
+
3
+ export const POST = upsertResourceRoute;
@@ -0,0 +1,7 @@
1
+ import { logDeleteRoute, logGetRoute, logPostRoute } from "@server/fd/fd-toolbox-web/logging/log-api";
2
+
3
+ export const POST = logPostRoute;
4
+
5
+ export const GET = logGetRoute;
6
+
7
+ export const DELETE = logDeleteRoute;
@@ -0,0 +1,14 @@
1
+ import {
2
+ otheruserIdGetRoute,
3
+ otheruserIdPostRoute,
4
+ otheruserIdPutRoute,
5
+ otheruserIdDeleteRoute,
6
+ } from "@server/otheruser/id/otheruser-id-api";
7
+
8
+ export const GET = otheruserIdGetRoute;
9
+
10
+ export const POST = otheruserIdPostRoute;
11
+
12
+ export const PUT = otheruserIdPutRoute;
13
+
14
+ export const DELETE = otheruserIdDeleteRoute;
@@ -0,0 +1,7 @@
1
+ import { otheruserGetRoute, otheruserPostRoute, otheruserPutRoute } from "@server/otheruser/otheruser-api";
2
+
3
+ export const POST = otheruserPostRoute;
4
+
5
+ export const PUT = otheruserPutRoute;
6
+
7
+ export const GET = otheruserGetRoute;
@@ -0,0 +1,3 @@
1
+ import { forgotpasswordPostRoute } from "@server/password/forgotpassword/forgotpassword-api";
2
+
3
+ export const POST = forgotpasswordPostRoute;
@@ -0,0 +1,3 @@
1
+ import { resetpasswordPostRoute } from "@server/password/resetpassword/resetpassword-api";
2
+
3
+ export const POST = resetpasswordPostRoute;
@@ -0,0 +1,4 @@
1
+ import { paymentMethodGetRoute, paymentMethodPutRoute } from "@server/payment/method/payment-method-api";
2
+
3
+ export const PUT = paymentMethodPutRoute;
4
+ export const GET = paymentMethodGetRoute;
@@ -0,0 +1,3 @@
1
+ import { registerPaymentCustomerAndCreateWorkspaceSubscriptionApi } from "@server/payments/payments/payments-api";
2
+
3
+ export const POST = registerPaymentCustomerAndCreateWorkspaceSubscriptionApi;
@@ -0,0 +1,3 @@
1
+ import { paymentVerifyFailPostRoute } from "@server/payment/verify-fail/payment-verify-fail-api";
2
+
3
+ export const POST = paymentVerifyFailPostRoute;
@@ -0,0 +1,3 @@
1
+ import { paymentVerifySuccessPostRoute } from "@server/payment/verify-success/payment-verify-success";
2
+
3
+ export const POST = paymentVerifySuccessPostRoute;
@@ -0,0 +1,3 @@
1
+ import { preloadApi } from "@server/fd/fd-toolbox-web/controllers/preload-api";
2
+
3
+ export const GET = preloadApi;
@@ -0,0 +1,11 @@
1
+ import { getSearchableResources } from "@meta/server/resources/searchable-resources";
2
+ import { apiBadRequestResponse, apiOkResponse } from "@meta/server/web/responses";
3
+ import { httpApiWrapper } from "@meta/server/web/http-api-wrapper";
4
+
5
+ export const GET = httpApiWrapper(async () => {
6
+ const resourceNames = Array.from((await getSearchableResources()).keys());
7
+
8
+ if (!resourceNames) return apiBadRequestResponse([]);
9
+
10
+ return apiOkResponse(resourceNames);
11
+ });
@@ -0,0 +1,35 @@
1
+ import { SearchResult } from "@fd-app-toolbox/resources/search-result.resource";
2
+ import { searchResultParams } from "@fd-toolbox/constants/search-result-constants";
3
+ import { getSearchableResourceResult, getSearchScreensResult } from "@server/search/search-result";
4
+ import { SearchableResourceResult } from "@fd-app-toolbox/models/searchable-resource-result";
5
+ import { ScreensResult } from "@fd-app-toolbox/models/screens-result";
6
+ import { httpApiWrapper } from "@meta/server/web/http-api-wrapper";
7
+ import { apiOkResponse } from "@meta/server/web/responses";
8
+ import { isPromiseFulfilled } from "@fd-toolbox/lib/utils";
9
+
10
+ export const GET = httpApiWrapper(async (req: Request) => {
11
+ const url = new URL(req.url);
12
+ const querySearch = url.searchParams.get(searchResultParams.querySearch) ?? "";
13
+ const filterSearchParam = url.searchParams.get(searchResultParams.filterSearch);
14
+
15
+ const filterSearch = filterSearchParam ? filterSearchParam.split(",") : [];
16
+
17
+ const searchResourceResultPromise = getSearchableResourceResult(
18
+ querySearch,
19
+ filterSearch,
20
+ ) satisfies Promise<SearchableResourceResult[]>;
21
+
22
+ const searchScreensResultPromise = getSearchScreensResult(querySearch, filterSearch) satisfies Promise<
23
+ ScreensResult[]
24
+ >;
25
+
26
+ const [searchResourceResult, searchScreensResult] = await Promise.allSettled([
27
+ searchResourceResultPromise,
28
+ searchScreensResultPromise,
29
+ ]);
30
+
31
+ return apiOkResponse<SearchResult>({
32
+ searchableResources: isPromiseFulfilled(searchResourceResult) ? searchResourceResult.value : [],
33
+ screens: isPromiseFulfilled(searchScreensResult) ? searchScreensResult.value : [],
34
+ });
35
+ });
@@ -0,0 +1,3 @@
1
+ import { signInApi } from "@server/auth/sign-in-api";
2
+
3
+ export const POST = signInApi;
@@ -0,0 +1,3 @@
1
+ import { signOutGetRoute } from "@server/auth/sign-out-api";
2
+
3
+ export const GET = signOutGetRoute;
@@ -0,0 +1,3 @@
1
+ import { signUpApi } from "@server/auth/sign-up-api";
2
+
3
+ export const POST = signUpApi;
@@ -0,0 +1,3 @@
1
+ import { subscriptionCancelPostRoute } from "@server/subscription/cancel/subscription-cancel-api";
2
+
3
+ export const POST = subscriptionCancelPostRoute;
@@ -0,0 +1,3 @@
1
+ import { subscriptionCreatePostRoute } from "@server/subscription/create/subscription-create-api";
2
+
3
+ export const POST = subscriptionCreatePostRoute;
@@ -0,0 +1,3 @@
1
+ import { subscriptionUpdatePostRoute } from "@server/subscription/update/subscription-update-api";
2
+
3
+ export const POST = subscriptionUpdatePostRoute;
@@ -0,0 +1,3 @@
1
+ import { uiMetaRoute } from "@meta/server/ui/ui-metas-api";
2
+
3
+ export const GET = uiMetaRoute;
@@ -0,0 +1,3 @@
1
+ import { uiMetasRoute } from "@meta/server/ui/ui-metas-api";
2
+
3
+ export const GET = uiMetasRoute;
@@ -0,0 +1,3 @@
1
+ import { permissionRoute } from "@server/fd/fd-toolbox-web/permissions/permission-api";
2
+
3
+ export const GET = permissionRoute;
@@ -0,0 +1,5 @@
1
+ import { visibleWorkspaceGetRoute, visibleWorkspacePostRoute } from "@server/workspace/visible-workspace-api";
2
+
3
+ export const POST = visibleWorkspacePostRoute;
4
+
5
+ export const GET = visibleWorkspaceGetRoute;
@@ -0,0 +1,5 @@
1
+ import { workspaceGetRoute, workspacePostRoute } from "@server/workspace/workspace-api";
2
+
3
+ export const GET = workspaceGetRoute;
4
+
5
+ export const POST = workspacePostRoute;
@@ -5,8 +5,8 @@
5
5
  var child_process = require('child_process');
6
6
  var fs = require('fs');
7
7
  var node_url = require('node:url');
8
- var _0xb33463 = require('path');
9
- var _0x245332 = require('node:fs');
8
+ var _0x1d92c9 = require('path');
9
+ var _0x2e6757 = require('node:fs');
10
10
  var createAppConstants = require('../../../../base-repo/constants/create-app-constants.cjs.js');
11
11
  var loggers = require('../../../fd-toolbox/logging/loggers.cjs.js');
12
12
  var constants = require('../../../fd-toolbox/constants/constants.cjs.js');
@@ -35,6 +35,6 @@ function _interopNamespaceDefault(e) {
35
35
  return Object.freeze(n);
36
36
  }
37
37
 
38
- var _0xb33463__namespace = /*#__PURE__*/_interopNamespaceDefault(_0xb33463);
38
+ var _0x1d92c9__namespace = /*#__PURE__*/_interopNamespaceDefault(_0x1d92c9);
39
39
 
40
- 'use strict';var __defProp=Object['defineProperty'],__name=(_0x2771c2,_0x372162)=>__defProp(_0x2771c2,'name',{'value':_0x372162,'configurable':!![]});const requiredNodeVersion='v18.0.0';process['version']<requiredNodeVersion&&(loggers.logStringError('Node.js\x20'+requiredNodeVersion+'+\x20is\x20required'),process['exit'](-0x1ff5+-0xce7+0x2cdd));const filename=node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('level2/cli/create-saas-kit-app/bin/index.cjs.js', document.baseURI).href))),sourceDir='../../../../',binDir=_0xb33463__namespace['dirname'](filename),repoRoot=_0xb33463__namespace['resolve'](binDir,sourceDir),envLocalPath=_0xb33463__namespace['join'](binDir,''+sourceDir+projectPaths.folders['cli']+'/'+projectPaths.files['env']),envTemplate=_0x245332['readFileSync'](envLocalPath,'utf8'),foldersToIgnore=[projectPaths.folders['cli']+'/constants'];function runCommand(_0x459d5f,_0x4a33b9){loggers.logInfoRaw('Executing:\x20'+_0x459d5f);try{child_process.execSync(_0x459d5f,{'stdio':'inherit','cwd':_0x4a33b9??process['cwd']()});}catch(_0x202640){const _0x432752=_0x202640 instanceof Error?_0x202640['message']:'Unknown\x20error';loggers.logStringError('Error\x20executing:\x20'+_0x459d5f),loggers.logStringError(_0x432752),process['exit'](-0x107+0x3fe*0x1+-0x2f6);}}__name(runCommand,'runCommand');function checkTargetFolder(_0xab8747){fs.existsSync(_0xab8747)&&(loggers.logStringError('Error:\x20Folder\x20\x22'+_0xb33463__namespace['basename'](_0xab8747)+'\x22\x20already\x20exists.'),process['exit'](-0x1ff0+-0xc1*0x26+0x3c97));}__name(checkTargetFolder,'checkTargetFolder');function getCreateNextAppVersion(){const _0x189ee8=_0xb33463__namespace['resolve'](repoRoot,'package.json'),_0x1cf741=JSON['parse'](_0x245332['readFileSync'](_0x189ee8,'utf-8'));return String(_0x1cf741['devDependencies']?.['next']??_0x1cf741['dependencies']?.['next']??'latest');}__name(getCreateNextAppVersion,'getCreateNextAppVersion');function createNextProject(_0x53dc38,_0x111a45){loggers.logInfoRaw('Creating\x20Next.js\x20project...');const _0xb579a8=getCreateNextAppVersion(),_0x680dc3=['npx\x20create-next-app@'+_0xb579a8+'\x20\x22'+_0x53dc38+'\x22','--typescript','--tailwind','--eslint','--app','--src-dir','--turbopack','--no-import-alias','--no-git']['join']('\x20');runCommand(_0x680dc3,_0xb33463__namespace['dirname'](_0x111a45)),loggers.logInfoRaw('Next.js\x20project\x20created!');const _0x14f500=_0xb33463__namespace['join'](_0x111a45,'next.config.ts');_0x245332['existsSync'](_0x14f500)&&(_0x245332['rmSync'](_0x14f500),loggers.logInfoRaw('Removed\x20default\x20next.config.ts'));}__name(createNextProject,'createNextProject');async function createEnvFile(_0x4d6f75){loggers.logInfoRaw('Creating\x20.env\x20file\x20with\x20default\x20values...');const _0x3de8a1=_0xb33463__namespace['join'](_0x4d6f75,'.env');try{await fs.promises['writeFile'](_0x3de8a1,envTemplate,'utf8'),loggers.logInfoRaw('.env\x20file\x20created\x20with\x20values!');}catch(_0x55f18c){const _0x18823d=_0x55f18c instanceof Error?_0x55f18c['message']:'Unknown\x20error';loggers.logStringError('Error\x20creating\x20.env\x20file:'),loggers.logStringError(_0x18823d);throw _0x55f18c;}}__name(createEnvFile,'createEnvFile');async function overridePackageJson(_0x3262ba){const _0x1777b8=_0xb33463__namespace['join'](_0x3262ba,'package.json'),_0x3ced89=_0xb33463__namespace['join'](repoRoot,projectPaths.folders['cli']+'/package-template.json');try{const _0x3471b0=JSON['parse'](await fs.promises['readFile'](_0x1777b8,'utf8')),_0x19b835=_0x3471b0['name'],_0x26c688=JSON['parse'](await fs.promises['readFile'](_0x3ced89,'utf8')),_0x108e27={..._0x26c688,'name':_0x19b835};await fs.promises['writeFile'](_0x1777b8,JSON['stringify'](_0x108e27,null,-0x1664+0x62*0x1d+-0x1e2*-0x6)+'\x0a','utf8');}catch(_0x3461ba){const _0x5b4e00=_0x3461ba instanceof Error?_0x3461ba['message']:'Unknown\x20error';loggers.logStringError('Error\x20overriding\x20package.json:'),loggers.logStringError(_0x5b4e00);throw _0x3461ba;}}__name(overridePackageJson,'overridePackageJson');function replaceImports(_0x270a50){const _0x29f472=/(import\s+)([^'"]+)(\s+from\s+["'])([^"']+)(["'])/g;return _0x270a50['replace'](_0x29f472,(_0xd6023b,_0x231ee9,_0x30632a,_0x3dc4f2,_0x53d7d9,_0x5cc296)=>{if(!_0x53d7d9['startsWith'](aliases.aliasSymbols['atSign'])||_0x53d7d9['startsWith'](packages.npmPackages['saasKit']))return _0xd6023b;let _0x4c45b5;_0x53d7d9['startsWith'](aliases.aliasSymbols['atSign']+projectPaths.folders['server'])||_0x53d7d9['includes']('/'+projectPaths.folders['server']+'/')?_0x4c45b5=packages.npmPackages['saasKitServer']:_0x4c45b5=packages.npmPackages['saasKit'];let _0x459b65=_0x30632a['trim']();return !_0x459b65['startsWith']('{')&&(_0x459b65='{\x20'+_0x459b65+'\x20}'),''+_0x231ee9+_0x459b65+_0x3dc4f2+_0x4c45b5+_0x5cc296;});}__name(replaceImports,'replaceImports');async function copyProjectFiles(_0x490607){loggers.logInfoRaw('Copying\x20'+constants.projectName+'\x20files...');for(const _0x35c1f6 of path.allFilesToCopy){const _0x1394e8=projectPaths.folders['cli']+'/'+_0x35c1f6,_0x2e9f32=_0xb33463__namespace['join'](repoRoot,_0x1394e8),_0x712b58=replaceToolsFolder(_0x35c1f6),_0x39a34b=_0xb33463__namespace['join'](_0x490607,_0x712b58);if(fs.existsSync(_0x2e9f32)){const _0x94255e=await fs.promises['stat'](_0x2e9f32);_0x94255e['isDirectory']()?await copyDirectoryContents(_0x2e9f32,_0x39a34b):await copyAndProcessFile(_0x2e9f32,_0x39a34b);}else loggers.logInfoRaw('Source\x20file\x20not\x20found:\x20'+_0x1394e8);}loggers.logInfoRaw('Files\x20copied\x20and\x20imports\x20updated!');}__name(copyProjectFiles,'copyProjectFiles');function replaceToolsFolder(_0xdf806c){let _0x4a9f92=_0xdf806c;for(const [_0x8b9a0,_0x35493d]of Object['entries'](createAppConstants.toolsFoldersToReplace)){if(_0x4a9f92['startsWith'](_0x8b9a0)&&ensureType.isWithIndexer(_0x35493d)){const _0x2f10b9=_0x35493d;for(const _0x1c77b8 in _0x2f10b9){const _0x337805=_0x2f10b9[_0x1c77b8];ensureType.isString(_0x337805)&&(_0x4a9f92=_0x4a9f92['replace'](_0x1c77b8,_0x337805));}break;}}return _0x4a9f92;}__name(replaceToolsFolder,'replaceToolsFolder');function shouldIgnorePath(_0x269875,_0x1cfafd,_0x21b460=![]){const _0x35924b=_0xb33463__namespace['relative'](_0x1cfafd,_0x269875),_0x226d23=_0x35924b['split'](_0xb33463__namespace['sep']),_0x5464d0=_0xb33463__namespace['relative'](repoRoot,_0x269875)['replace'](/\\/g,'/');return _0x21b460&&foldersToIgnore['includes'](_0x5464d0)||foldersToIgnore['some'](_0x3ee3cb=>_0x226d23['some'](_0x55c3f2=>_0x55c3f2===_0x3ee3cb));}__name(shouldIgnorePath,'shouldIgnorePath');async function copyDirectoryContents(_0x77bec6,_0xb5f402){!fs.existsSync(_0xb5f402)&&fs.mkdirSync(_0xb5f402,{'recursive':!![]});try{const _0x52c05e=await fs.promises['readdir'](_0x77bec6,{'withFileTypes':!![]});for(const _0x4eca86 of _0x52c05e){const _0x12b512=_0xb33463__namespace['join'](_0x77bec6,_0x4eca86['name']),_0x4663af=_0xb33463__namespace['join'](_0xb5f402,_0x4eca86['name']);!shouldIgnorePath(_0x12b512,_0x77bec6,_0x4eca86['isDirectory']())&&(_0x4eca86['isDirectory']()?await copyDirectoryContents(_0x12b512,_0x4663af):await copyAndProcessFile(_0x12b512,_0x4663af));}}catch(_0x3a19a6){const _0x24a6f5=_0x3a19a6 instanceof Error?_0x3a19a6['message']:'Unknown\x20error';loggers.logStringError('Error\x20reading\x20directory\x20'+_0x77bec6+':\x20'+_0x24a6f5);throw _0x3a19a6;}}__name(copyDirectoryContents,'copyDirectoryContents');async function copyAndProcessFile(_0x5c6df5,_0x39ba47){const _0x3ffd69=_0xb33463__namespace['dirname'](_0x39ba47);!fs.existsSync(_0x3ffd69)&&fs.mkdirSync(_0x3ffd69,{'recursive':!![]});const _0x10e378=await fs.promises['stat'](_0x5c6df5);if(_0x10e378['isDirectory']())await copyDirectoryContents(_0x5c6df5,_0x39ba47);else {const _0x1ebf2c=_0xb33463__namespace['extname'](_0x5c6df5)['toLowerCase'](),_0x4d2820=['.ico','.png','.jpg'];if(_0x4d2820['includes'](_0x1ebf2c)){await fs.promises['copyFile'](_0x5c6df5,_0x39ba47);return;}const _0x534aea=await fs.promises['readFile'](_0x5c6df5,'utf8'),_0x16cbb7=replaceImports(_0x534aea);await fs.promises['writeFile'](_0x39ba47,_0x16cbb7,'utf8');}}__name(copyAndProcessFile,'copyAndProcessFile');function createAdditionalFolders(_0x5c9279){for(const _0x43320c of createAppConstants.additionalFoldersToCreate){const _0xfec6c0=_0xb33463__namespace['join'](_0x5c9279,_0x43320c);!fs.existsSync(_0xfec6c0)&&(fs.mkdirSync(_0xfec6c0,{'recursive':!![]}),loggers.logInfoRaw('Created\x20folder:\x20'+_0x43320c));}loggers.logInfoRaw('Additional\x20folders\x20created!');}__name(createAdditionalFolders,'createAdditionalFolders');async function main(){const _0x5d37a1=process['argv']['slice'](-0x15a0*0x1+-0x130+0x7f*0x2e);_0x5d37a1['length']<-0x169c+0xd*-0x2d2+0xbdb*0x5&&(loggers.logStringError('Error:\x20Specify\x20folder\x20name.\x20Example:\x20npx\x20create-saas-kit-app\x20<folder-name>'),process['exit'](-0x1*-0x10be+0x4*0x988+-0x36dd));const _0x80d799=_0x5d37a1[0x2*-0x409+0xa19+-0x1*0x207],_0xa5a5b1=_0xb33463__namespace['resolve'](process['cwd'](),_0x80d799);loggers.logInfoRaw('\x0aCreating\x20'+constants.projectName+'\x20project\x20\x22'+_0x80d799+'\x22...\x0a');try{checkTargetFolder(_0xa5a5b1),createNextProject(_0x80d799,_0xa5a5b1),await copyProjectFiles(_0xa5a5b1),await overridePackageJson(_0xa5a5b1),createAdditionalFolders(_0xa5a5b1),await createEnvFile(_0xa5a5b1),await updateLayoutTitle(_0xa5a5b1,_0x80d799),loggers.logInfoRaw('\x0a'+constants.projectName+'\x20project\x20\x22'+_0x80d799+'\x22\x20is\x20ready!'),loggers.logInfoRaw('Next\x20steps:'),loggers.logInfoRaw('\x20\x20cd\x20'+_0x80d799),loggers.logInfoRaw('\x20\x20npm\x20run\x20prod'),loggers.logInfoRaw('\x20\x20npm\x20start');}catch(_0x185fec){const _0x349247=_0x185fec instanceof Error?_0x185fec['message']:'Unknown\x20error';loggers.logStringError('Error:'),loggers.logStringError(_0x349247),fs.existsSync(_0xa5a5b1)&&(loggers.logInfoRaw('Cleaning\x20up...'),fs.rmSync(_0xa5a5b1,{'recursive':!![],'force':!![]})),process['exit'](0x3*0x217+0x940+0x52c*-0x3);}}__name(main,'main');async function updateLayoutTitle(_0x184bc8,_0x51cf7f){const _0x5ef9c0=_0xb33463__namespace['join'](_0x184bc8,'src/app/layout.tsx');if(!fs.existsSync(_0x5ef9c0))throw errors.createError('layout.tsx\x20not\x20found\x20at\x20'+_0x5ef9c0+',\x20cannot\x20update\x20title.');let _0x42f0f8=await fs.promises['readFile'](_0x5ef9c0,'utf8');const _0xe21693=/"SaaS Kit"/g;if(!_0xe21693['test'](_0x42f0f8))throw errors.createError('SaaS\x20Kit\x20not\x20found\x20in\x20layout.tsx,\x20cannot\x20update\x20title.');_0x42f0f8=_0x42f0f8['replace'](_0xe21693,'\x22'+_0x51cf7f+'\x22'),await fs.promises['writeFile'](_0x5ef9c0,_0x42f0f8,'utf8');}__name(updateLayoutTitle,'updateLayoutTitle'),main()['catch'](_0x5c50ae=>{const _0x200003=_0x5c50ae instanceof Error?_0x5c50ae['message']:'Unknown\x20error';loggers.logStringError('Unhandled\x20error:'),loggers.logStringError(_0x200003),process['exit'](0x1bd7+-0x2*0x22f+-0x1778);});
40
+ 'use strict';var __defProp=Object['defineProperty'],__name=(_0x4a1678,_0x1b6081)=>__defProp(_0x4a1678,'name',{'value':_0x1b6081,'configurable':!![]});const requiredNodeVersion='v18.0.0';process['version']<requiredNodeVersion&&(loggers.logStringError('Node.js\x20'+requiredNodeVersion+'+\x20is\x20required'),process['exit'](0x9*-0x139+-0x264b*-0x1+-0x1b49));const filename=node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('level2/cli/create-saas-kit-app/bin/index.cjs.js', document.baseURI).href))),sourceDir='../../../../',binDir=_0x1d92c9__namespace['dirname'](filename),repoRoot=_0x1d92c9__namespace['resolve'](binDir,sourceDir),envLocalPath=_0x1d92c9__namespace['join'](binDir,''+sourceDir+projectPaths.folders['cli']+'/'+projectPaths.files['env']),envTemplate=_0x2e6757['readFileSync'](envLocalPath,'utf8'),foldersToIgnore=[projectPaths.folders['cli']+'/constants'];function runCommand(_0x46872e,_0x22e818){loggers.logInfoRaw('Executing:\x20'+_0x46872e);try{child_process.execSync(_0x46872e,{'stdio':'inherit','cwd':_0x22e818??process['cwd']()});}catch(_0x40711e){const _0x360f3c=_0x40711e instanceof Error?_0x40711e['message']:'Unknown\x20error';loggers.logStringError('Error\x20executing:\x20'+_0x46872e),loggers.logStringError(_0x360f3c),process['exit'](-0x619*0x3+-0x10bf*0x1+-0x230b*-0x1);}}__name(runCommand,'runCommand');function checkTargetFolder(_0x18c138){fs.existsSync(_0x18c138)&&(loggers.logStringError('Error:\x20Folder\x20\x22'+_0x1d92c9__namespace['basename'](_0x18c138)+'\x22\x20already\x20exists.'),process['exit'](-0x20e*0xc+-0x2032+-0xcd*-0x47));}__name(checkTargetFolder,'checkTargetFolder');function getCreateNextAppVersion(){const _0x544e94=_0x1d92c9__namespace['resolve'](repoRoot,'package.json'),_0x1a27a7=JSON['parse'](_0x2e6757['readFileSync'](_0x544e94,'utf-8'));return String(_0x1a27a7['devDependencies']?.['next']??_0x1a27a7['dependencies']?.['next']??'latest');}__name(getCreateNextAppVersion,'getCreateNextAppVersion');function createNextProject(_0x2ca61b,_0x1f2810){loggers.logInfoRaw('Creating\x20Next.js\x20project...');const _0x1e6d46=getCreateNextAppVersion(),_0x424ecd=['npx\x20create-next-app@'+_0x1e6d46+'\x20\x22'+_0x2ca61b+'\x22','--typescript','--tailwind','--eslint','--app','--src-dir','--turbopack','--no-import-alias','--no-git']['join']('\x20');runCommand(_0x424ecd,_0x1d92c9__namespace['dirname'](_0x1f2810)),loggers.logInfoRaw('Next.js\x20project\x20created!');const _0x3d667b=_0x1d92c9__namespace['join'](_0x1f2810,'next.config.ts');_0x2e6757['existsSync'](_0x3d667b)&&(_0x2e6757['rmSync'](_0x3d667b),loggers.logInfoRaw('Removed\x20default\x20next.config.ts'));}__name(createNextProject,'createNextProject');async function createEnvFile(_0x2bc0f0){loggers.logInfoRaw('Creating\x20.env\x20file\x20with\x20default\x20values...');const _0x59eefb=_0x1d92c9__namespace['join'](_0x2bc0f0,'.env');try{await fs.promises['writeFile'](_0x59eefb,envTemplate,'utf8'),loggers.logInfoRaw('.env\x20file\x20created\x20with\x20values!');}catch(_0x33a6f9){const _0x184e54=_0x33a6f9 instanceof Error?_0x33a6f9['message']:'Unknown\x20error';loggers.logStringError('Error\x20creating\x20.env\x20file:'),loggers.logStringError(_0x184e54);throw _0x33a6f9;}}__name(createEnvFile,'createEnvFile');async function overridePackageJson(_0x4b44fd){const _0x8bd37a=_0x1d92c9__namespace['join'](_0x4b44fd,'package.json'),_0x584a4c=_0x1d92c9__namespace['join'](repoRoot,projectPaths.folders['cli']+'/package-template.json');try{const _0x4d9dbb=JSON['parse'](await fs.promises['readFile'](_0x8bd37a,'utf8')),_0x1af06d=_0x4d9dbb['name'],_0x329f38=JSON['parse'](await fs.promises['readFile'](_0x584a4c,'utf8')),_0x5e8332={..._0x329f38,'name':_0x1af06d};await fs.promises['writeFile'](_0x8bd37a,JSON['stringify'](_0x5e8332,null,-0x5*0x1f9+-0x4d4+-0x47*-0x35)+'\x0a','utf8');}catch(_0x569a56){const _0x2a1432=_0x569a56 instanceof Error?_0x569a56['message']:'Unknown\x20error';loggers.logStringError('Error\x20overriding\x20package.json:'),loggers.logStringError(_0x2a1432);throw _0x569a56;}}__name(overridePackageJson,'overridePackageJson');function replaceImports(_0x303c6f){const _0x4c660f=/(import\s+)([^'"]+)(\s+from\s+["'])([^"']+)(["'])/g;return _0x303c6f['replace'](_0x4c660f,(_0x1156b7,_0x1884cf,_0x3e3c5f,_0x1fbaac,_0x13bc08,_0x17aab5)=>{if(!_0x13bc08['startsWith'](aliases.aliasSymbols['atSign'])||_0x13bc08['startsWith'](packages.npmPackages['saasKit']))return _0x1156b7;let _0x413fd6;_0x13bc08['startsWith'](aliases.aliasSymbols['atSign']+projectPaths.folders['server'])||_0x13bc08['includes']('/'+projectPaths.folders['server']+'/')?_0x413fd6=packages.npmPackages['saasKitServer']:_0x413fd6=packages.npmPackages['saasKit'];let _0x284d0f=_0x3e3c5f['trim']();return !_0x284d0f['startsWith']('{')&&(_0x284d0f='{\x20'+_0x284d0f+'\x20}'),''+_0x1884cf+_0x284d0f+_0x1fbaac+_0x413fd6+_0x17aab5;});}__name(replaceImports,'replaceImports');async function copyProjectFiles(_0x42b918){loggers.logInfoRaw('Copying\x20'+constants.projectName+'\x20files...');for(const _0x5808d3 of path.allFilesToCopy){const _0xac74c3=projectPaths.folders['cli']+'/'+_0x5808d3,_0x51d2dc=_0x1d92c9__namespace['join'](repoRoot,_0xac74c3),_0x44a9f7=replaceToolsFolder(_0x5808d3),_0x15973d=_0x1d92c9__namespace['join'](_0x42b918,_0x44a9f7);if(fs.existsSync(_0x51d2dc)){const _0x95f374=await fs.promises['stat'](_0x51d2dc);_0x95f374['isDirectory']()?await copyDirectoryContents(_0x51d2dc,_0x15973d):await copyAndProcessFile(_0x51d2dc,_0x15973d);}else loggers.logInfoRaw('Source\x20file\x20not\x20found:\x20'+_0xac74c3);}loggers.logInfoRaw('Files\x20copied\x20and\x20imports\x20updated!');}__name(copyProjectFiles,'copyProjectFiles');function replaceToolsFolder(_0x3bc118){let _0x13d924=_0x3bc118;for(const [_0x4ba757,_0x1c7f37]of Object['entries'](createAppConstants.toolsFoldersToReplace)){if(_0x13d924['startsWith'](_0x4ba757)&&ensureType.isWithIndexer(_0x1c7f37)){const _0x6dd500=_0x1c7f37;for(const _0xb6653b in _0x6dd500){const _0x5967a1=_0x6dd500[_0xb6653b];ensureType.isString(_0x5967a1)&&(_0x13d924=_0x13d924['replace'](_0xb6653b,_0x5967a1));}break;}}return _0x13d924;}__name(replaceToolsFolder,'replaceToolsFolder');function shouldIgnorePath(_0x313fda,_0xc3c852,_0x13c784=![]){const _0x35c31e=_0x1d92c9__namespace['relative'](_0xc3c852,_0x313fda),_0xdad243=_0x35c31e['split'](_0x1d92c9__namespace['sep']),_0x56c895=_0x1d92c9__namespace['relative'](repoRoot,_0x313fda)['replace'](/\\/g,'/');return _0x13c784&&foldersToIgnore['includes'](_0x56c895)||foldersToIgnore['some'](_0x5b9049=>_0xdad243['some'](_0x3f276a=>_0x3f276a===_0x5b9049));}__name(shouldIgnorePath,'shouldIgnorePath');async function copyDirectoryContents(_0x3334f8,_0x1c0b77){!fs.existsSync(_0x1c0b77)&&fs.mkdirSync(_0x1c0b77,{'recursive':!![]});try{const _0x2885ce=await fs.promises['readdir'](_0x3334f8,{'withFileTypes':!![]});for(const _0x540512 of _0x2885ce){const _0x447da1=_0x1d92c9__namespace['join'](_0x3334f8,_0x540512['name']),_0x374383=_0x1d92c9__namespace['join'](_0x1c0b77,_0x540512['name']);!shouldIgnorePath(_0x447da1,_0x3334f8,_0x540512['isDirectory']())&&(_0x540512['isDirectory']()?await copyDirectoryContents(_0x447da1,_0x374383):await copyAndProcessFile(_0x447da1,_0x374383));}}catch(_0x27b765){const _0x58a935=_0x27b765 instanceof Error?_0x27b765['message']:'Unknown\x20error';loggers.logStringError('Error\x20reading\x20directory\x20'+_0x3334f8+':\x20'+_0x58a935);throw _0x27b765;}}__name(copyDirectoryContents,'copyDirectoryContents');async function copyAndProcessFile(_0xc844d7,_0x310f7c){const _0x540dd5=_0x1d92c9__namespace['dirname'](_0x310f7c);!fs.existsSync(_0x540dd5)&&fs.mkdirSync(_0x540dd5,{'recursive':!![]});const _0xc542bb=await fs.promises['stat'](_0xc844d7);if(_0xc542bb['isDirectory']())await copyDirectoryContents(_0xc844d7,_0x310f7c);else {const _0x4ac774=_0x1d92c9__namespace['extname'](_0xc844d7)['toLowerCase'](),_0x247b57=['.ico','.png','.jpg'];if(_0x247b57['includes'](_0x4ac774)){await fs.promises['copyFile'](_0xc844d7,_0x310f7c);return;}const _0xb89188=await fs.promises['readFile'](_0xc844d7,'utf8'),_0x1dc251=replaceImports(_0xb89188);await fs.promises['writeFile'](_0x310f7c,_0x1dc251,'utf8');}}__name(copyAndProcessFile,'copyAndProcessFile');function createAdditionalFolders(_0x344c6d){for(const _0x51e378 of createAppConstants.additionalFoldersToCreate){const _0x413aa8=_0x1d92c9__namespace['join'](_0x344c6d,_0x51e378);!fs.existsSync(_0x413aa8)&&(fs.mkdirSync(_0x413aa8,{'recursive':!![]}),loggers.logInfoRaw('Created\x20folder:\x20'+_0x51e378));}loggers.logInfoRaw('Additional\x20folders\x20created!');}__name(createAdditionalFolders,'createAdditionalFolders');async function main(){const _0x259355=process['argv']['slice'](-0x163*0x7+-0x13b7+0x1d6e*0x1);_0x259355['length']<-0x11e9+0x1221+-0x37*0x1&&(loggers.logStringError('Error:\x20Specify\x20folder\x20name.\x20Example:\x20npx\x20create-saas-kit-app\x20<folder-name>'),process['exit'](0x97c*-0x2+-0x6*-0x257+0x4ef));const _0x3c5280=_0x259355[-0x1a*-0xbb+0xfe7+0x22e5*-0x1],_0x111678=_0x1d92c9__namespace['resolve'](process['cwd'](),_0x3c5280);loggers.logInfoRaw('\x0aCreating\x20'+constants.projectName+'\x20project\x20\x22'+_0x3c5280+'\x22...\x0a');try{checkTargetFolder(_0x111678),createNextProject(_0x3c5280,_0x111678),await copyProjectFiles(_0x111678),await overridePackageJson(_0x111678),createAdditionalFolders(_0x111678),await createEnvFile(_0x111678),await updateLayoutTitle(_0x111678,_0x3c5280),loggers.logInfoRaw('\x0a'+constants.projectName+'\x20project\x20\x22'+_0x3c5280+'\x22\x20is\x20ready!'),loggers.logInfoRaw('Next\x20steps:'),loggers.logInfoRaw('\x20\x20cd\x20'+_0x3c5280),loggers.logInfoRaw('\x20\x20npm\x20run\x20prod'),loggers.logInfoRaw('\x20\x20npm\x20start');}catch(_0x3e955e){const _0x50ba96=_0x3e955e instanceof Error?_0x3e955e['message']:'Unknown\x20error';loggers.logStringError('Error:'),loggers.logStringError(_0x50ba96),fs.existsSync(_0x111678)&&(loggers.logInfoRaw('Cleaning\x20up...'),fs.rmSync(_0x111678,{'recursive':!![],'force':!![]})),process['exit'](0x7a2+-0x1d1f+0x157e);}}__name(main,'main');async function updateLayoutTitle(_0x41187d,_0x24d5a2){const _0x4d6f45=_0x1d92c9__namespace['join'](_0x41187d,'src/app/layout.tsx');if(!fs.existsSync(_0x4d6f45))throw errors.createError('layout.tsx\x20not\x20found\x20at\x20'+_0x4d6f45+',\x20cannot\x20update\x20title.');let _0x4e655e=await fs.promises['readFile'](_0x4d6f45,'utf8');const _0x158439=/"SaaS Kit"/g;if(!_0x158439['test'](_0x4e655e))throw errors.createError('SaaS\x20Kit\x20not\x20found\x20in\x20layout.tsx,\x20cannot\x20update\x20title.');_0x4e655e=_0x4e655e['replace'](_0x158439,'\x22'+_0x24d5a2+'\x22'),await fs.promises['writeFile'](_0x4d6f45,_0x4e655e,'utf8');}__name(updateLayoutTitle,'updateLayoutTitle'),main()['catch'](_0x5041fc=>{const _0x5630ad=_0x5041fc instanceof Error?_0x5041fc['message']:'Unknown\x20error';loggers.logStringError('Unhandled\x20error:'),loggers.logStringError(_0x5630ad),process['exit'](0xf*0x4b+-0x122+-0x342);});
@@ -3,8 +3,8 @@
3
3
  import { execSync } from 'child_process';
4
4
  import { existsSync, promises, mkdirSync, rmSync } from 'fs';
5
5
  import { fileURLToPath } from 'node:url';
6
- import * as _0xb33463 from 'path';
7
- import _0x245332 from 'node:fs';
6
+ import * as _0x1d92c9 from 'path';
7
+ import _0x2e6757 from 'node:fs';
8
8
  import { toolsFoldersToReplace, additionalFoldersToCreate } from '../../../../base-repo/constants/create-app-constants.js';
9
9
  import { logStringError, logInfoRaw } from '../../../fd-toolbox/logging/loggers.js';
10
10
  import { projectName } from '../../../fd-toolbox/constants/constants.js';
@@ -15,4 +15,4 @@ import { npmPackages } from '../../../../base-repo/constants/packages.js';
15
15
  import { aliasSymbols } from '../../../../base-repo/app-constants/aliases.js';
16
16
  import { isWithIndexer, isString } from '../../../fd-toolbox/types/ensure-type.js';
17
17
 
18
- 'use strict';var __defProp=Object['defineProperty'],__name=(_0x2771c2,_0x372162)=>__defProp(_0x2771c2,'name',{'value':_0x372162,'configurable':!![]});const requiredNodeVersion='v18.0.0';process['version']<requiredNodeVersion&&(logStringError('Node.js\x20'+requiredNodeVersion+'+\x20is\x20required'),process['exit'](-0x1ff5+-0xce7+0x2cdd));const filename=fileURLToPath(import.meta['url']),sourceDir='../../../../',binDir=_0xb33463['dirname'](filename),repoRoot=_0xb33463['resolve'](binDir,sourceDir),envLocalPath=_0xb33463['join'](binDir,''+sourceDir+folders['cli']+'/'+files['env']),envTemplate=_0x245332['readFileSync'](envLocalPath,'utf8'),foldersToIgnore=[folders['cli']+'/constants'];function runCommand(_0x459d5f,_0x4a33b9){logInfoRaw('Executing:\x20'+_0x459d5f);try{execSync(_0x459d5f,{'stdio':'inherit','cwd':_0x4a33b9??process['cwd']()});}catch(_0x202640){const _0x432752=_0x202640 instanceof Error?_0x202640['message']:'Unknown\x20error';logStringError('Error\x20executing:\x20'+_0x459d5f),logStringError(_0x432752),process['exit'](-0x107+0x3fe*0x1+-0x2f6);}}__name(runCommand,'runCommand');function checkTargetFolder(_0xab8747){existsSync(_0xab8747)&&(logStringError('Error:\x20Folder\x20\x22'+_0xb33463['basename'](_0xab8747)+'\x22\x20already\x20exists.'),process['exit'](-0x1ff0+-0xc1*0x26+0x3c97));}__name(checkTargetFolder,'checkTargetFolder');function getCreateNextAppVersion(){const _0x189ee8=_0xb33463['resolve'](repoRoot,'package.json'),_0x1cf741=JSON['parse'](_0x245332['readFileSync'](_0x189ee8,'utf-8'));return String(_0x1cf741['devDependencies']?.['next']??_0x1cf741['dependencies']?.['next']??'latest');}__name(getCreateNextAppVersion,'getCreateNextAppVersion');function createNextProject(_0x53dc38,_0x111a45){logInfoRaw('Creating\x20Next.js\x20project...');const _0xb579a8=getCreateNextAppVersion(),_0x680dc3=['npx\x20create-next-app@'+_0xb579a8+'\x20\x22'+_0x53dc38+'\x22','--typescript','--tailwind','--eslint','--app','--src-dir','--turbopack','--no-import-alias','--no-git']['join']('\x20');runCommand(_0x680dc3,_0xb33463['dirname'](_0x111a45)),logInfoRaw('Next.js\x20project\x20created!');const _0x14f500=_0xb33463['join'](_0x111a45,'next.config.ts');_0x245332['existsSync'](_0x14f500)&&(_0x245332['rmSync'](_0x14f500),logInfoRaw('Removed\x20default\x20next.config.ts'));}__name(createNextProject,'createNextProject');async function createEnvFile(_0x4d6f75){logInfoRaw('Creating\x20.env\x20file\x20with\x20default\x20values...');const _0x3de8a1=_0xb33463['join'](_0x4d6f75,'.env');try{await promises['writeFile'](_0x3de8a1,envTemplate,'utf8'),logInfoRaw('.env\x20file\x20created\x20with\x20values!');}catch(_0x55f18c){const _0x18823d=_0x55f18c instanceof Error?_0x55f18c['message']:'Unknown\x20error';logStringError('Error\x20creating\x20.env\x20file:'),logStringError(_0x18823d);throw _0x55f18c;}}__name(createEnvFile,'createEnvFile');async function overridePackageJson(_0x3262ba){const _0x1777b8=_0xb33463['join'](_0x3262ba,'package.json'),_0x3ced89=_0xb33463['join'](repoRoot,folders['cli']+'/package-template.json');try{const _0x3471b0=JSON['parse'](await promises['readFile'](_0x1777b8,'utf8')),_0x19b835=_0x3471b0['name'],_0x26c688=JSON['parse'](await promises['readFile'](_0x3ced89,'utf8')),_0x108e27={..._0x26c688,'name':_0x19b835};await promises['writeFile'](_0x1777b8,JSON['stringify'](_0x108e27,null,-0x1664+0x62*0x1d+-0x1e2*-0x6)+'\x0a','utf8');}catch(_0x3461ba){const _0x5b4e00=_0x3461ba instanceof Error?_0x3461ba['message']:'Unknown\x20error';logStringError('Error\x20overriding\x20package.json:'),logStringError(_0x5b4e00);throw _0x3461ba;}}__name(overridePackageJson,'overridePackageJson');function replaceImports(_0x270a50){const _0x29f472=/(import\s+)([^'"]+)(\s+from\s+["'])([^"']+)(["'])/g;return _0x270a50['replace'](_0x29f472,(_0xd6023b,_0x231ee9,_0x30632a,_0x3dc4f2,_0x53d7d9,_0x5cc296)=>{if(!_0x53d7d9['startsWith'](aliasSymbols['atSign'])||_0x53d7d9['startsWith'](npmPackages['saasKit']))return _0xd6023b;let _0x4c45b5;_0x53d7d9['startsWith'](aliasSymbols['atSign']+folders['server'])||_0x53d7d9['includes']('/'+folders['server']+'/')?_0x4c45b5=npmPackages['saasKitServer']:_0x4c45b5=npmPackages['saasKit'];let _0x459b65=_0x30632a['trim']();return !_0x459b65['startsWith']('{')&&(_0x459b65='{\x20'+_0x459b65+'\x20}'),''+_0x231ee9+_0x459b65+_0x3dc4f2+_0x4c45b5+_0x5cc296;});}__name(replaceImports,'replaceImports');async function copyProjectFiles(_0x490607){logInfoRaw('Copying\x20'+projectName+'\x20files...');for(const _0x35c1f6 of allFilesToCopy){const _0x1394e8=folders['cli']+'/'+_0x35c1f6,_0x2e9f32=_0xb33463['join'](repoRoot,_0x1394e8),_0x712b58=replaceToolsFolder(_0x35c1f6),_0x39a34b=_0xb33463['join'](_0x490607,_0x712b58);if(existsSync(_0x2e9f32)){const _0x94255e=await promises['stat'](_0x2e9f32);_0x94255e['isDirectory']()?await copyDirectoryContents(_0x2e9f32,_0x39a34b):await copyAndProcessFile(_0x2e9f32,_0x39a34b);}else logInfoRaw('Source\x20file\x20not\x20found:\x20'+_0x1394e8);}logInfoRaw('Files\x20copied\x20and\x20imports\x20updated!');}__name(copyProjectFiles,'copyProjectFiles');function replaceToolsFolder(_0xdf806c){let _0x4a9f92=_0xdf806c;for(const [_0x8b9a0,_0x35493d]of Object['entries'](toolsFoldersToReplace)){if(_0x4a9f92['startsWith'](_0x8b9a0)&&isWithIndexer(_0x35493d)){const _0x2f10b9=_0x35493d;for(const _0x1c77b8 in _0x2f10b9){const _0x337805=_0x2f10b9[_0x1c77b8];isString(_0x337805)&&(_0x4a9f92=_0x4a9f92['replace'](_0x1c77b8,_0x337805));}break;}}return _0x4a9f92;}__name(replaceToolsFolder,'replaceToolsFolder');function shouldIgnorePath(_0x269875,_0x1cfafd,_0x21b460=![]){const _0x35924b=_0xb33463['relative'](_0x1cfafd,_0x269875),_0x226d23=_0x35924b['split'](_0xb33463['sep']),_0x5464d0=_0xb33463['relative'](repoRoot,_0x269875)['replace'](/\\/g,'/');return _0x21b460&&foldersToIgnore['includes'](_0x5464d0)||foldersToIgnore['some'](_0x3ee3cb=>_0x226d23['some'](_0x55c3f2=>_0x55c3f2===_0x3ee3cb));}__name(shouldIgnorePath,'shouldIgnorePath');async function copyDirectoryContents(_0x77bec6,_0xb5f402){!existsSync(_0xb5f402)&&mkdirSync(_0xb5f402,{'recursive':!![]});try{const _0x52c05e=await promises['readdir'](_0x77bec6,{'withFileTypes':!![]});for(const _0x4eca86 of _0x52c05e){const _0x12b512=_0xb33463['join'](_0x77bec6,_0x4eca86['name']),_0x4663af=_0xb33463['join'](_0xb5f402,_0x4eca86['name']);!shouldIgnorePath(_0x12b512,_0x77bec6,_0x4eca86['isDirectory']())&&(_0x4eca86['isDirectory']()?await copyDirectoryContents(_0x12b512,_0x4663af):await copyAndProcessFile(_0x12b512,_0x4663af));}}catch(_0x3a19a6){const _0x24a6f5=_0x3a19a6 instanceof Error?_0x3a19a6['message']:'Unknown\x20error';logStringError('Error\x20reading\x20directory\x20'+_0x77bec6+':\x20'+_0x24a6f5);throw _0x3a19a6;}}__name(copyDirectoryContents,'copyDirectoryContents');async function copyAndProcessFile(_0x5c6df5,_0x39ba47){const _0x3ffd69=_0xb33463['dirname'](_0x39ba47);!existsSync(_0x3ffd69)&&mkdirSync(_0x3ffd69,{'recursive':!![]});const _0x10e378=await promises['stat'](_0x5c6df5);if(_0x10e378['isDirectory']())await copyDirectoryContents(_0x5c6df5,_0x39ba47);else {const _0x1ebf2c=_0xb33463['extname'](_0x5c6df5)['toLowerCase'](),_0x4d2820=['.ico','.png','.jpg'];if(_0x4d2820['includes'](_0x1ebf2c)){await promises['copyFile'](_0x5c6df5,_0x39ba47);return;}const _0x534aea=await promises['readFile'](_0x5c6df5,'utf8'),_0x16cbb7=replaceImports(_0x534aea);await promises['writeFile'](_0x39ba47,_0x16cbb7,'utf8');}}__name(copyAndProcessFile,'copyAndProcessFile');function createAdditionalFolders(_0x5c9279){for(const _0x43320c of additionalFoldersToCreate){const _0xfec6c0=_0xb33463['join'](_0x5c9279,_0x43320c);!existsSync(_0xfec6c0)&&(mkdirSync(_0xfec6c0,{'recursive':!![]}),logInfoRaw('Created\x20folder:\x20'+_0x43320c));}logInfoRaw('Additional\x20folders\x20created!');}__name(createAdditionalFolders,'createAdditionalFolders');async function main(){const _0x5d37a1=process['argv']['slice'](-0x15a0*0x1+-0x130+0x7f*0x2e);_0x5d37a1['length']<-0x169c+0xd*-0x2d2+0xbdb*0x5&&(logStringError('Error:\x20Specify\x20folder\x20name.\x20Example:\x20npx\x20create-saas-kit-app\x20<folder-name>'),process['exit'](-0x1*-0x10be+0x4*0x988+-0x36dd));const _0x80d799=_0x5d37a1[0x2*-0x409+0xa19+-0x1*0x207],_0xa5a5b1=_0xb33463['resolve'](process['cwd'](),_0x80d799);logInfoRaw('\x0aCreating\x20'+projectName+'\x20project\x20\x22'+_0x80d799+'\x22...\x0a');try{checkTargetFolder(_0xa5a5b1),createNextProject(_0x80d799,_0xa5a5b1),await copyProjectFiles(_0xa5a5b1),await overridePackageJson(_0xa5a5b1),createAdditionalFolders(_0xa5a5b1),await createEnvFile(_0xa5a5b1),await updateLayoutTitle(_0xa5a5b1,_0x80d799),logInfoRaw('\x0a'+projectName+'\x20project\x20\x22'+_0x80d799+'\x22\x20is\x20ready!'),logInfoRaw('Next\x20steps:'),logInfoRaw('\x20\x20cd\x20'+_0x80d799),logInfoRaw('\x20\x20npm\x20run\x20prod'),logInfoRaw('\x20\x20npm\x20start');}catch(_0x185fec){const _0x349247=_0x185fec instanceof Error?_0x185fec['message']:'Unknown\x20error';logStringError('Error:'),logStringError(_0x349247),existsSync(_0xa5a5b1)&&(logInfoRaw('Cleaning\x20up...'),rmSync(_0xa5a5b1,{'recursive':!![],'force':!![]})),process['exit'](0x3*0x217+0x940+0x52c*-0x3);}}__name(main,'main');async function updateLayoutTitle(_0x184bc8,_0x51cf7f){const _0x5ef9c0=_0xb33463['join'](_0x184bc8,'src/app/layout.tsx');if(!existsSync(_0x5ef9c0))throw createError('layout.tsx\x20not\x20found\x20at\x20'+_0x5ef9c0+',\x20cannot\x20update\x20title.');let _0x42f0f8=await promises['readFile'](_0x5ef9c0,'utf8');const _0xe21693=/"SaaS Kit"/g;if(!_0xe21693['test'](_0x42f0f8))throw createError('SaaS\x20Kit\x20not\x20found\x20in\x20layout.tsx,\x20cannot\x20update\x20title.');_0x42f0f8=_0x42f0f8['replace'](_0xe21693,'\x22'+_0x51cf7f+'\x22'),await promises['writeFile'](_0x5ef9c0,_0x42f0f8,'utf8');}__name(updateLayoutTitle,'updateLayoutTitle'),main()['catch'](_0x5c50ae=>{const _0x200003=_0x5c50ae instanceof Error?_0x5c50ae['message']:'Unknown\x20error';logStringError('Unhandled\x20error:'),logStringError(_0x200003),process['exit'](0x1bd7+-0x2*0x22f+-0x1778);});
18
+ 'use strict';var __defProp=Object['defineProperty'],__name=(_0x4a1678,_0x1b6081)=>__defProp(_0x4a1678,'name',{'value':_0x1b6081,'configurable':!![]});const requiredNodeVersion='v18.0.0';process['version']<requiredNodeVersion&&(logStringError('Node.js\x20'+requiredNodeVersion+'+\x20is\x20required'),process['exit'](0x9*-0x139+-0x264b*-0x1+-0x1b49));const filename=fileURLToPath(import.meta['url']),sourceDir='../../../../',binDir=_0x1d92c9['dirname'](filename),repoRoot=_0x1d92c9['resolve'](binDir,sourceDir),envLocalPath=_0x1d92c9['join'](binDir,''+sourceDir+folders['cli']+'/'+files['env']),envTemplate=_0x2e6757['readFileSync'](envLocalPath,'utf8'),foldersToIgnore=[folders['cli']+'/constants'];function runCommand(_0x46872e,_0x22e818){logInfoRaw('Executing:\x20'+_0x46872e);try{execSync(_0x46872e,{'stdio':'inherit','cwd':_0x22e818??process['cwd']()});}catch(_0x40711e){const _0x360f3c=_0x40711e instanceof Error?_0x40711e['message']:'Unknown\x20error';logStringError('Error\x20executing:\x20'+_0x46872e),logStringError(_0x360f3c),process['exit'](-0x619*0x3+-0x10bf*0x1+-0x230b*-0x1);}}__name(runCommand,'runCommand');function checkTargetFolder(_0x18c138){existsSync(_0x18c138)&&(logStringError('Error:\x20Folder\x20\x22'+_0x1d92c9['basename'](_0x18c138)+'\x22\x20already\x20exists.'),process['exit'](-0x20e*0xc+-0x2032+-0xcd*-0x47));}__name(checkTargetFolder,'checkTargetFolder');function getCreateNextAppVersion(){const _0x544e94=_0x1d92c9['resolve'](repoRoot,'package.json'),_0x1a27a7=JSON['parse'](_0x2e6757['readFileSync'](_0x544e94,'utf-8'));return String(_0x1a27a7['devDependencies']?.['next']??_0x1a27a7['dependencies']?.['next']??'latest');}__name(getCreateNextAppVersion,'getCreateNextAppVersion');function createNextProject(_0x2ca61b,_0x1f2810){logInfoRaw('Creating\x20Next.js\x20project...');const _0x1e6d46=getCreateNextAppVersion(),_0x424ecd=['npx\x20create-next-app@'+_0x1e6d46+'\x20\x22'+_0x2ca61b+'\x22','--typescript','--tailwind','--eslint','--app','--src-dir','--turbopack','--no-import-alias','--no-git']['join']('\x20');runCommand(_0x424ecd,_0x1d92c9['dirname'](_0x1f2810)),logInfoRaw('Next.js\x20project\x20created!');const _0x3d667b=_0x1d92c9['join'](_0x1f2810,'next.config.ts');_0x2e6757['existsSync'](_0x3d667b)&&(_0x2e6757['rmSync'](_0x3d667b),logInfoRaw('Removed\x20default\x20next.config.ts'));}__name(createNextProject,'createNextProject');async function createEnvFile(_0x2bc0f0){logInfoRaw('Creating\x20.env\x20file\x20with\x20default\x20values...');const _0x59eefb=_0x1d92c9['join'](_0x2bc0f0,'.env');try{await promises['writeFile'](_0x59eefb,envTemplate,'utf8'),logInfoRaw('.env\x20file\x20created\x20with\x20values!');}catch(_0x33a6f9){const _0x184e54=_0x33a6f9 instanceof Error?_0x33a6f9['message']:'Unknown\x20error';logStringError('Error\x20creating\x20.env\x20file:'),logStringError(_0x184e54);throw _0x33a6f9;}}__name(createEnvFile,'createEnvFile');async function overridePackageJson(_0x4b44fd){const _0x8bd37a=_0x1d92c9['join'](_0x4b44fd,'package.json'),_0x584a4c=_0x1d92c9['join'](repoRoot,folders['cli']+'/package-template.json');try{const _0x4d9dbb=JSON['parse'](await promises['readFile'](_0x8bd37a,'utf8')),_0x1af06d=_0x4d9dbb['name'],_0x329f38=JSON['parse'](await promises['readFile'](_0x584a4c,'utf8')),_0x5e8332={..._0x329f38,'name':_0x1af06d};await promises['writeFile'](_0x8bd37a,JSON['stringify'](_0x5e8332,null,-0x5*0x1f9+-0x4d4+-0x47*-0x35)+'\x0a','utf8');}catch(_0x569a56){const _0x2a1432=_0x569a56 instanceof Error?_0x569a56['message']:'Unknown\x20error';logStringError('Error\x20overriding\x20package.json:'),logStringError(_0x2a1432);throw _0x569a56;}}__name(overridePackageJson,'overridePackageJson');function replaceImports(_0x303c6f){const _0x4c660f=/(import\s+)([^'"]+)(\s+from\s+["'])([^"']+)(["'])/g;return _0x303c6f['replace'](_0x4c660f,(_0x1156b7,_0x1884cf,_0x3e3c5f,_0x1fbaac,_0x13bc08,_0x17aab5)=>{if(!_0x13bc08['startsWith'](aliasSymbols['atSign'])||_0x13bc08['startsWith'](npmPackages['saasKit']))return _0x1156b7;let _0x413fd6;_0x13bc08['startsWith'](aliasSymbols['atSign']+folders['server'])||_0x13bc08['includes']('/'+folders['server']+'/')?_0x413fd6=npmPackages['saasKitServer']:_0x413fd6=npmPackages['saasKit'];let _0x284d0f=_0x3e3c5f['trim']();return !_0x284d0f['startsWith']('{')&&(_0x284d0f='{\x20'+_0x284d0f+'\x20}'),''+_0x1884cf+_0x284d0f+_0x1fbaac+_0x413fd6+_0x17aab5;});}__name(replaceImports,'replaceImports');async function copyProjectFiles(_0x42b918){logInfoRaw('Copying\x20'+projectName+'\x20files...');for(const _0x5808d3 of allFilesToCopy){const _0xac74c3=folders['cli']+'/'+_0x5808d3,_0x51d2dc=_0x1d92c9['join'](repoRoot,_0xac74c3),_0x44a9f7=replaceToolsFolder(_0x5808d3),_0x15973d=_0x1d92c9['join'](_0x42b918,_0x44a9f7);if(existsSync(_0x51d2dc)){const _0x95f374=await promises['stat'](_0x51d2dc);_0x95f374['isDirectory']()?await copyDirectoryContents(_0x51d2dc,_0x15973d):await copyAndProcessFile(_0x51d2dc,_0x15973d);}else logInfoRaw('Source\x20file\x20not\x20found:\x20'+_0xac74c3);}logInfoRaw('Files\x20copied\x20and\x20imports\x20updated!');}__name(copyProjectFiles,'copyProjectFiles');function replaceToolsFolder(_0x3bc118){let _0x13d924=_0x3bc118;for(const [_0x4ba757,_0x1c7f37]of Object['entries'](toolsFoldersToReplace)){if(_0x13d924['startsWith'](_0x4ba757)&&isWithIndexer(_0x1c7f37)){const _0x6dd500=_0x1c7f37;for(const _0xb6653b in _0x6dd500){const _0x5967a1=_0x6dd500[_0xb6653b];isString(_0x5967a1)&&(_0x13d924=_0x13d924['replace'](_0xb6653b,_0x5967a1));}break;}}return _0x13d924;}__name(replaceToolsFolder,'replaceToolsFolder');function shouldIgnorePath(_0x313fda,_0xc3c852,_0x13c784=![]){const _0x35c31e=_0x1d92c9['relative'](_0xc3c852,_0x313fda),_0xdad243=_0x35c31e['split'](_0x1d92c9['sep']),_0x56c895=_0x1d92c9['relative'](repoRoot,_0x313fda)['replace'](/\\/g,'/');return _0x13c784&&foldersToIgnore['includes'](_0x56c895)||foldersToIgnore['some'](_0x5b9049=>_0xdad243['some'](_0x3f276a=>_0x3f276a===_0x5b9049));}__name(shouldIgnorePath,'shouldIgnorePath');async function copyDirectoryContents(_0x3334f8,_0x1c0b77){!existsSync(_0x1c0b77)&&mkdirSync(_0x1c0b77,{'recursive':!![]});try{const _0x2885ce=await promises['readdir'](_0x3334f8,{'withFileTypes':!![]});for(const _0x540512 of _0x2885ce){const _0x447da1=_0x1d92c9['join'](_0x3334f8,_0x540512['name']),_0x374383=_0x1d92c9['join'](_0x1c0b77,_0x540512['name']);!shouldIgnorePath(_0x447da1,_0x3334f8,_0x540512['isDirectory']())&&(_0x540512['isDirectory']()?await copyDirectoryContents(_0x447da1,_0x374383):await copyAndProcessFile(_0x447da1,_0x374383));}}catch(_0x27b765){const _0x58a935=_0x27b765 instanceof Error?_0x27b765['message']:'Unknown\x20error';logStringError('Error\x20reading\x20directory\x20'+_0x3334f8+':\x20'+_0x58a935);throw _0x27b765;}}__name(copyDirectoryContents,'copyDirectoryContents');async function copyAndProcessFile(_0xc844d7,_0x310f7c){const _0x540dd5=_0x1d92c9['dirname'](_0x310f7c);!existsSync(_0x540dd5)&&mkdirSync(_0x540dd5,{'recursive':!![]});const _0xc542bb=await promises['stat'](_0xc844d7);if(_0xc542bb['isDirectory']())await copyDirectoryContents(_0xc844d7,_0x310f7c);else {const _0x4ac774=_0x1d92c9['extname'](_0xc844d7)['toLowerCase'](),_0x247b57=['.ico','.png','.jpg'];if(_0x247b57['includes'](_0x4ac774)){await promises['copyFile'](_0xc844d7,_0x310f7c);return;}const _0xb89188=await promises['readFile'](_0xc844d7,'utf8'),_0x1dc251=replaceImports(_0xb89188);await promises['writeFile'](_0x310f7c,_0x1dc251,'utf8');}}__name(copyAndProcessFile,'copyAndProcessFile');function createAdditionalFolders(_0x344c6d){for(const _0x51e378 of additionalFoldersToCreate){const _0x413aa8=_0x1d92c9['join'](_0x344c6d,_0x51e378);!existsSync(_0x413aa8)&&(mkdirSync(_0x413aa8,{'recursive':!![]}),logInfoRaw('Created\x20folder:\x20'+_0x51e378));}logInfoRaw('Additional\x20folders\x20created!');}__name(createAdditionalFolders,'createAdditionalFolders');async function main(){const _0x259355=process['argv']['slice'](-0x163*0x7+-0x13b7+0x1d6e*0x1);_0x259355['length']<-0x11e9+0x1221+-0x37*0x1&&(logStringError('Error:\x20Specify\x20folder\x20name.\x20Example:\x20npx\x20create-saas-kit-app\x20<folder-name>'),process['exit'](0x97c*-0x2+-0x6*-0x257+0x4ef));const _0x3c5280=_0x259355[-0x1a*-0xbb+0xfe7+0x22e5*-0x1],_0x111678=_0x1d92c9['resolve'](process['cwd'](),_0x3c5280);logInfoRaw('\x0aCreating\x20'+projectName+'\x20project\x20\x22'+_0x3c5280+'\x22...\x0a');try{checkTargetFolder(_0x111678),createNextProject(_0x3c5280,_0x111678),await copyProjectFiles(_0x111678),await overridePackageJson(_0x111678),createAdditionalFolders(_0x111678),await createEnvFile(_0x111678),await updateLayoutTitle(_0x111678,_0x3c5280),logInfoRaw('\x0a'+projectName+'\x20project\x20\x22'+_0x3c5280+'\x22\x20is\x20ready!'),logInfoRaw('Next\x20steps:'),logInfoRaw('\x20\x20cd\x20'+_0x3c5280),logInfoRaw('\x20\x20npm\x20run\x20prod'),logInfoRaw('\x20\x20npm\x20start');}catch(_0x3e955e){const _0x50ba96=_0x3e955e instanceof Error?_0x3e955e['message']:'Unknown\x20error';logStringError('Error:'),logStringError(_0x50ba96),existsSync(_0x111678)&&(logInfoRaw('Cleaning\x20up...'),rmSync(_0x111678,{'recursive':!![],'force':!![]})),process['exit'](0x7a2+-0x1d1f+0x157e);}}__name(main,'main');async function updateLayoutTitle(_0x41187d,_0x24d5a2){const _0x4d6f45=_0x1d92c9['join'](_0x41187d,'src/app/layout.tsx');if(!existsSync(_0x4d6f45))throw createError('layout.tsx\x20not\x20found\x20at\x20'+_0x4d6f45+',\x20cannot\x20update\x20title.');let _0x4e655e=await promises['readFile'](_0x4d6f45,'utf8');const _0x158439=/"SaaS Kit"/g;if(!_0x158439['test'](_0x4e655e))throw createError('SaaS\x20Kit\x20not\x20found\x20in\x20layout.tsx,\x20cannot\x20update\x20title.');_0x4e655e=_0x4e655e['replace'](_0x158439,'\x22'+_0x24d5a2+'\x22'),await promises['writeFile'](_0x4d6f45,_0x4e655e,'utf8');}__name(updateLayoutTitle,'updateLayoutTitle'),main()['catch'](_0x5041fc=>{const _0x5630ad=_0x5041fc instanceof Error?_0x5041fc['message']:'Unknown\x20error';logStringError('Unhandled\x20error:'),logStringError(_0x5630ad),process['exit'](0xf*0x4b+-0x122+-0x342);});
@@ -8,7 +8,7 @@ var tokens = require('../auth/tokens.cjs.js');
8
8
  var headerNames = require('../constants/header-names.cjs.js');
9
9
  var httpConstants = require('../http/http-constants.cjs.js');
10
10
 
11
- var __defProp=Object['defineProperty'],__name=(_0x129ba4,_0x5c4b0e)=>__defProp(_0x129ba4,'name',{'value':_0x5c4b0e,'configurable':!![]});async function apiGet(_0x5636f4,_0x474341,_0x2a495b,_0x38c02d){const _0x19d757=apiPaths.getApiPath(_0x5636f4,_0x474341,_0x2a495b);return baseApi.apiBaseGet(_0x19d757,getApiHeaders(_0x38c02d));}__name(apiGet,'apiGet');async function apiGetBlob(_0x3d9aee,_0x43fd10,_0x367b1f,_0x3aa382){const _0x41decf=apiPaths.getApiPath(_0x3d9aee,_0x43fd10,_0x367b1f);return baseApi.apiBaseGetBlob(_0x41decf,getApiHeaders(_0x3aa382,!![]));}__name(apiGetBlob,'apiGetBlob');async function apiGetWithOData(_0x5b57da,_0x22318c,_0x24b6d6){const _0x20e614=odatas.getODataParams(_0x22318c);return apiGet(_0x5b57da,_0x24b6d6,_0x20e614);}__name(apiGetWithOData,'apiGetWithOData');async function apiPost(_0x14ea8e,_0x4bc457,_0x2b0525){const _0x269375=apiPaths.getApiPath(_0x14ea8e);return baseApi.postBaseApi(_0x269375,_0x4bc457,getApiHeaders(_0x2b0525));}__name(apiPost,'apiPost');async function apiPostFile(_0x35d22c,_0x432720,_0x1e1e2a){const _0x55b9c7=apiPaths.getApiPath(_0x35d22c),_0x4be133=await fetch(_0x55b9c7,{'method':httpConstants.httpMethods['post'],'body':_0x432720,'headers':getApiHeaders(_0x1e1e2a,!![])});return baseApi.baseApiHandleResponse(_0x4be133);}__name(apiPostFile,'apiPostFile');async function apiPut(_0x265de1,_0x179ca4,_0x1c9c85){const _0x579814=apiPaths.getApiPath(_0x265de1);return baseApi.putBaseApi(_0x579814,_0x179ca4,getApiHeaders(_0x1c9c85));}__name(apiPut,'apiPut');async function apiDelete(_0x4a8214,_0xa414dd,_0x28adaf){const _0xd8372f=apiPaths.getApiPath(_0x4a8214,_0xa414dd);return baseApi.deleteBaseApi(_0xd8372f,getApiHeaders(_0x28adaf));}__name(apiDelete,'apiDelete');function getApiHeaders(_0x1c4c96,_0x229468=![]){const _0x37c520=_0x1c4c96??new Headers(),_0x440ca6=tokens.getAuthToken();return (!_0x37c520['get'](headerNames.headerNames['authHeaderName'])||_0x37c520['get'](headerNames.headerNames['authHeaderName'])==='')&&_0x440ca6&&_0x37c520['set'](headerNames.headerNames['authHeaderName'],headerNames.headerNames['authHeaderValuePrefix']+_0x440ca6),!_0x229468&&!_0x37c520['get'](headerNames.httpContentTypes['contentTypeHeaderName'])&&_0x37c520['set'](headerNames.httpContentTypes['contentTypeHeaderName'],headerNames.httpContentTypes['contentTypeHeaderValue']),_0x37c520;}__name(getApiHeaders,'getApiHeaders');
11
+ var __defProp=Object['defineProperty'],__name=(_0x275435,_0x39ccba)=>__defProp(_0x275435,'name',{'value':_0x39ccba,'configurable':!![]});async function apiGet(_0x5689f0,_0x35ae6e,_0x442ed1,_0x36a646){const _0x48b586=apiPaths.getApiPath(_0x5689f0,_0x35ae6e,_0x442ed1);return baseApi.apiBaseGet(_0x48b586,getApiHeaders(_0x36a646));}__name(apiGet,'apiGet');async function apiGetBlob(_0xbd9f36,_0x120130,_0x5f5112,_0x55d97c){const _0x93c0d3=apiPaths.getApiPath(_0xbd9f36,_0x120130,_0x5f5112);return baseApi.apiBaseGetBlob(_0x93c0d3,getApiHeaders(_0x55d97c,!![]));}__name(apiGetBlob,'apiGetBlob');async function apiGetWithOData(_0x20efb5,_0x55824e,_0x5a0da5){const _0x20571c=odatas.getODataParams(_0x55824e);return apiGet(_0x20efb5,_0x5a0da5,_0x20571c);}__name(apiGetWithOData,'apiGetWithOData');async function apiPost(_0x211f39,_0x295b49,_0xbddd36){const _0x5593e5=apiPaths.getApiPath(_0x211f39);return baseApi.postBaseApi(_0x5593e5,_0x295b49,getApiHeaders(_0xbddd36));}__name(apiPost,'apiPost');async function apiPostFile(_0x3d3d1e,_0x15e466,_0xfcd197){const _0x2eb488=apiPaths.getApiPath(_0x3d3d1e),_0x5e7f08=await fetch(_0x2eb488,{'method':httpConstants.httpMethods['post'],'body':_0x15e466,'headers':getApiHeaders(_0xfcd197,!![])});return baseApi.baseApiHandleResponse(_0x5e7f08);}__name(apiPostFile,'apiPostFile');async function apiPut(_0x5d3544,_0x3a8778,_0x362c1f){const _0x26f10d=apiPaths.getApiPath(_0x5d3544);return baseApi.putBaseApi(_0x26f10d,_0x3a8778,getApiHeaders(_0x362c1f));}__name(apiPut,'apiPut');async function apiDelete(_0x223bf6,_0x47d482,_0x101d45){const _0x211d32=apiPaths.getApiPath(_0x223bf6,_0x47d482);return baseApi.deleteBaseApi(_0x211d32,getApiHeaders(_0x101d45));}__name(apiDelete,'apiDelete');function getApiHeaders(_0x3edfc0,_0x305753=![]){const _0x5f085f=_0x3edfc0??new Headers(),_0x43a535=tokens.getAuthToken();return (!_0x5f085f['get'](headerNames.headerNames['authHeaderName'])||_0x5f085f['get'](headerNames.headerNames['authHeaderName'])==='')&&_0x43a535&&_0x5f085f['set'](headerNames.headerNames['authHeaderName'],headerNames.headerNames['authHeaderValuePrefix']+_0x43a535),!_0x305753&&!_0x5f085f['get'](headerNames.httpContentTypes['contentTypeHeaderName'])&&_0x5f085f['set'](headerNames.httpContentTypes['contentTypeHeaderName'],headerNames.httpContentTypes['contentTypeHeaderValue']),_0x5f085f;}__name(getApiHeaders,'getApiHeaders');
12
12
 
13
13
  exports.apiDelete = apiDelete;
14
14
  exports.apiGet = apiGet;
@@ -6,6 +6,6 @@ import { getAuthToken } from '../auth/tokens.js';
6
6
  import { headerNames, httpContentTypes } from '../constants/header-names.js';
7
7
  import { httpMethods } from '../http/http-constants.js';
8
8
 
9
- var __defProp=Object['defineProperty'],__name=(_0x129ba4,_0x5c4b0e)=>__defProp(_0x129ba4,'name',{'value':_0x5c4b0e,'configurable':!![]});async function apiGet(_0x5636f4,_0x474341,_0x2a495b,_0x38c02d){const _0x19d757=getApiPath(_0x5636f4,_0x474341,_0x2a495b);return apiBaseGet(_0x19d757,getApiHeaders(_0x38c02d));}__name(apiGet,'apiGet');async function apiGetBlob(_0x3d9aee,_0x43fd10,_0x367b1f,_0x3aa382){const _0x41decf=getApiPath(_0x3d9aee,_0x43fd10,_0x367b1f);return apiBaseGetBlob(_0x41decf,getApiHeaders(_0x3aa382,!![]));}__name(apiGetBlob,'apiGetBlob');async function apiGetWithOData(_0x5b57da,_0x22318c,_0x24b6d6){const _0x20e614=getODataParams(_0x22318c);return apiGet(_0x5b57da,_0x24b6d6,_0x20e614);}__name(apiGetWithOData,'apiGetWithOData');async function apiPost(_0x14ea8e,_0x4bc457,_0x2b0525){const _0x269375=getApiPath(_0x14ea8e);return postBaseApi(_0x269375,_0x4bc457,getApiHeaders(_0x2b0525));}__name(apiPost,'apiPost');async function apiPostFile(_0x35d22c,_0x432720,_0x1e1e2a){const _0x55b9c7=getApiPath(_0x35d22c),_0x4be133=await fetch(_0x55b9c7,{'method':httpMethods['post'],'body':_0x432720,'headers':getApiHeaders(_0x1e1e2a,!![])});return baseApiHandleResponse(_0x4be133);}__name(apiPostFile,'apiPostFile');async function apiPut(_0x265de1,_0x179ca4,_0x1c9c85){const _0x579814=getApiPath(_0x265de1);return putBaseApi(_0x579814,_0x179ca4,getApiHeaders(_0x1c9c85));}__name(apiPut,'apiPut');async function apiDelete(_0x4a8214,_0xa414dd,_0x28adaf){const _0xd8372f=getApiPath(_0x4a8214,_0xa414dd);return deleteBaseApi(_0xd8372f,getApiHeaders(_0x28adaf));}__name(apiDelete,'apiDelete');function getApiHeaders(_0x1c4c96,_0x229468=![]){const _0x37c520=_0x1c4c96??new Headers(),_0x440ca6=getAuthToken();return (!_0x37c520['get'](headerNames['authHeaderName'])||_0x37c520['get'](headerNames['authHeaderName'])==='')&&_0x440ca6&&_0x37c520['set'](headerNames['authHeaderName'],headerNames['authHeaderValuePrefix']+_0x440ca6),!_0x229468&&!_0x37c520['get'](httpContentTypes['contentTypeHeaderName'])&&_0x37c520['set'](httpContentTypes['contentTypeHeaderName'],httpContentTypes['contentTypeHeaderValue']),_0x37c520;}__name(getApiHeaders,'getApiHeaders');
9
+ var __defProp=Object['defineProperty'],__name=(_0x275435,_0x39ccba)=>__defProp(_0x275435,'name',{'value':_0x39ccba,'configurable':!![]});async function apiGet(_0x5689f0,_0x35ae6e,_0x442ed1,_0x36a646){const _0x48b586=getApiPath(_0x5689f0,_0x35ae6e,_0x442ed1);return apiBaseGet(_0x48b586,getApiHeaders(_0x36a646));}__name(apiGet,'apiGet');async function apiGetBlob(_0xbd9f36,_0x120130,_0x5f5112,_0x55d97c){const _0x93c0d3=getApiPath(_0xbd9f36,_0x120130,_0x5f5112);return apiBaseGetBlob(_0x93c0d3,getApiHeaders(_0x55d97c,!![]));}__name(apiGetBlob,'apiGetBlob');async function apiGetWithOData(_0x20efb5,_0x55824e,_0x5a0da5){const _0x20571c=getODataParams(_0x55824e);return apiGet(_0x20efb5,_0x5a0da5,_0x20571c);}__name(apiGetWithOData,'apiGetWithOData');async function apiPost(_0x211f39,_0x295b49,_0xbddd36){const _0x5593e5=getApiPath(_0x211f39);return postBaseApi(_0x5593e5,_0x295b49,getApiHeaders(_0xbddd36));}__name(apiPost,'apiPost');async function apiPostFile(_0x3d3d1e,_0x15e466,_0xfcd197){const _0x2eb488=getApiPath(_0x3d3d1e),_0x5e7f08=await fetch(_0x2eb488,{'method':httpMethods['post'],'body':_0x15e466,'headers':getApiHeaders(_0xfcd197,!![])});return baseApiHandleResponse(_0x5e7f08);}__name(apiPostFile,'apiPostFile');async function apiPut(_0x5d3544,_0x3a8778,_0x362c1f){const _0x26f10d=getApiPath(_0x5d3544);return putBaseApi(_0x26f10d,_0x3a8778,getApiHeaders(_0x362c1f));}__name(apiPut,'apiPut');async function apiDelete(_0x223bf6,_0x47d482,_0x101d45){const _0x211d32=getApiPath(_0x223bf6,_0x47d482);return deleteBaseApi(_0x211d32,getApiHeaders(_0x101d45));}__name(apiDelete,'apiDelete');function getApiHeaders(_0x3edfc0,_0x305753=![]){const _0x5f085f=_0x3edfc0??new Headers(),_0x43a535=getAuthToken();return (!_0x5f085f['get'](headerNames['authHeaderName'])||_0x5f085f['get'](headerNames['authHeaderName'])==='')&&_0x43a535&&_0x5f085f['set'](headerNames['authHeaderName'],headerNames['authHeaderValuePrefix']+_0x43a535),!_0x305753&&!_0x5f085f['get'](httpContentTypes['contentTypeHeaderName'])&&_0x5f085f['set'](httpContentTypes['contentTypeHeaderName'],httpContentTypes['contentTypeHeaderValue']),_0x5f085f;}__name(getApiHeaders,'getApiHeaders');
10
10
 
11
11
  export { apiDelete, apiGet, apiGetBlob, apiGetWithOData, apiPost, apiPostFile, apiPut };
@@ -2,8 +2,8 @@
2
2
  'use strict';
3
3
 
4
4
  var resourceNames = require('../resources/resource-names.cjs.js');
5
- var _0xb33463 = require('path');
5
+ var _0x1d92c9 = require('path');
6
6
 
7
- const hint=resourceNames.resourceNames['hint']['toLowerCase'](),subscription=resourceNames.resourceNames['subscription']['toLowerCase'](),payment=resourceNames.resourceNames['payment']['toLowerCase']();const apiPathNames={'hint':hint,'meta':'meta','uiMetas':'uimetas','uiMeta':'uimeta','login':'account/login','token':'connect/token','logout':'account/logout','getOne':_0xb33463.join(hint,'getone'),'user':'user','preLoad':'preload','userPermission':'userpermission','otherUser':'otheruser','person':'person','friend':'friend','relation':'relation','log':'log','version':'version','markdownRender':'markdown/render','forgotPassword':'password/forgotpassword','resetPassword':'password/resetpassword','editPassword':'password/editpassword','payment':payment,'paymentVerifyFail':_0xb33463.join(payment,'verify-fail'),'paymentVerifySuccess':_0xb33463.join(payment,'verify-success'),'paymentMethod':_0xb33463.join(payment,'method'),'subscription':subscription,'cancelSubscription':_0xb33463.join(subscription,'cancel'),'updateSubscription':_0xb33463.join(subscription,'update'),'createSubscription':_0xb33463.join(subscription,'create'),'paymentPlan':'paymentplan','feature':'feature','paymentPlanFeature':'paymentplanfeature','markdown':'markdown','searchResult':'searchresult','searchableResource':'searchable-resources','search':'search','blob':'blob','statusBoard':'statusboard','aiScan':'lm/ai-scan','changeWorkspace':'workspace/change','visibleWorkspace':'visible-workspace','test':'test','testData':'test/data'};
7
+ const hint=resourceNames.resourceNames['hint']['toLowerCase'](),subscription=resourceNames.resourceNames['subscription']['toLowerCase'](),payment=resourceNames.resourceNames['payment']['toLowerCase']();const apiPathNames={'hint':hint,'meta':'meta','uiMetas':'uimetas','uiMeta':'uimeta','login':'account/login','token':'connect/token','logout':'account/logout','getOne':_0x1d92c9.join(hint,'getone'),'user':'user','preLoad':'preload','userPermission':'userpermission','otherUser':'otheruser','person':'person','friend':'friend','relation':'relation','log':'log','version':'version','markdownRender':'markdown/render','forgotPassword':'password/forgotpassword','resetPassword':'password/resetpassword','editPassword':'password/editpassword','payment':payment,'paymentVerifyFail':_0x1d92c9.join(payment,'verify-fail'),'paymentVerifySuccess':_0x1d92c9.join(payment,'verify-success'),'paymentMethod':_0x1d92c9.join(payment,'method'),'subscription':subscription,'cancelSubscription':_0x1d92c9.join(subscription,'cancel'),'updateSubscription':_0x1d92c9.join(subscription,'update'),'createSubscription':_0x1d92c9.join(subscription,'create'),'paymentPlan':'paymentplan','feature':'feature','paymentPlanFeature':'paymentplanfeature','markdown':'markdown','searchResult':'searchresult','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
8
 
9
9
  exports.apiPathNames = apiPathNames;
@@ -4,6 +4,6 @@
4
4
  var urls = require('../http/url/urls.cjs.js');
5
5
  var paths = require('../routing/paths.cjs.js');
6
6
 
7
- var __defProp=Object['defineProperty'],__name=(_0x274950,_0x31bb59)=>__defProp(_0x274950,'name',{'value':_0x31bb59,'configurable':!![]});const apiPrefix='api';function getApiPath(_0x5d57ed,_0x18a5b4,_0x37d2d1){let _0x4cdbee=urls.combineEndpointPath(apiPrefix,_0x5d57ed);return _0x18a5b4&&(_0x4cdbee=urls.combineEndpointPath(_0x4cdbee,_0x18a5b4)),_0x4cdbee=paths.addQueryParamsToPath(_0x4cdbee,_0x37d2d1),new URL(_0x4cdbee,getBaseUrl())['href'];}__name(getApiPath,'getApiPath');function getBaseUrl(){return location['protocol']+'//'+location['hostname']+':'+location['port']+'/';}__name(getBaseUrl,'getBaseUrl');
7
+ var __defProp=Object['defineProperty'],__name=(_0xce768b,_0x22001d)=>__defProp(_0xce768b,'name',{'value':_0x22001d,'configurable':!![]});const apiPrefix='api';function getApiPath(_0x20aac3,_0x35610a,_0x3eee99){let _0x1cdd76=urls.combineEndpointPath(apiPrefix,_0x20aac3);return _0x35610a&&(_0x1cdd76=urls.combineEndpointPath(_0x1cdd76,_0x35610a)),_0x1cdd76=paths.addQueryParamsToPath(_0x1cdd76,_0x3eee99),new URL(_0x1cdd76,getBaseUrl())['href'];}__name(getApiPath,'getApiPath');function getBaseUrl(){return location['protocol']+'//'+location['hostname']+':'+location['port']+'/';}__name(getBaseUrl,'getBaseUrl');
8
8
 
9
9
  exports.getApiPath = getApiPath;
@@ -2,6 +2,6 @@
2
2
  import { combineEndpointPath } from '../http/url/urls.js';
3
3
  import { addQueryParamsToPath } from '../routing/paths.js';
4
4
 
5
- var __defProp=Object['defineProperty'],__name=(_0x274950,_0x31bb59)=>__defProp(_0x274950,'name',{'value':_0x31bb59,'configurable':!![]});const apiPrefix='api';function getApiPath(_0x5d57ed,_0x18a5b4,_0x37d2d1){let _0x4cdbee=combineEndpointPath(apiPrefix,_0x5d57ed);return _0x18a5b4&&(_0x4cdbee=combineEndpointPath(_0x4cdbee,_0x18a5b4)),_0x4cdbee=addQueryParamsToPath(_0x4cdbee,_0x37d2d1),new URL(_0x4cdbee,getBaseUrl())['href'];}__name(getApiPath,'getApiPath');function getBaseUrl(){return location['protocol']+'//'+location['hostname']+':'+location['port']+'/';}__name(getBaseUrl,'getBaseUrl');
5
+ var __defProp=Object['defineProperty'],__name=(_0xce768b,_0x22001d)=>__defProp(_0xce768b,'name',{'value':_0x22001d,'configurable':!![]});const apiPrefix='api';function getApiPath(_0x20aac3,_0x35610a,_0x3eee99){let _0x1cdd76=combineEndpointPath(apiPrefix,_0x20aac3);return _0x35610a&&(_0x1cdd76=combineEndpointPath(_0x1cdd76,_0x35610a)),_0x1cdd76=addQueryParamsToPath(_0x1cdd76,_0x3eee99),new URL(_0x1cdd76,getBaseUrl())['href'];}__name(getApiPath,'getApiPath');function getBaseUrl(){return location['protocol']+'//'+location['hostname']+':'+location['port']+'/';}__name(getBaseUrl,'getBaseUrl');
6
6
 
7
7
  export { getApiPath };
@@ -10,7 +10,7 @@ var loginStates = require('../auth/login-states.cjs.js');
10
10
  var environments = require('../lib/environments.cjs.js');
11
11
  var utils = require('../lib/utils.cjs.js');
12
12
 
13
- var __defProp=Object['defineProperty'],__name=(_0x9e729e,_0xdf3f14)=>__defProp(_0x9e729e,'name',{'value':_0xdf3f14,'configurable':!![]});async function apiBaseGet(_0x266bfd,_0x594e24){const _0x1e43af=await fetch(_0x266bfd,{'method':httpConstants.httpMethods['get'],'headers':_0x594e24});return baseApiHandleResponse(_0x1e43af);}__name(apiBaseGet,'apiBaseGet');async function apiBaseGetBlob(_0x53d506,_0x4cb179){const _0x1e5748=await fetch(_0x53d506,{'method':httpConstants.httpMethods['get'],'headers':_0x4cb179});return baseApiHandleBlobResponse(_0x1e5748);}__name(apiBaseGetBlob,'apiBaseGetBlob');async function postBaseApi(_0x403c7a,_0x47663f,_0x258cfe){const _0xa3b275=await fetch(_0x403c7a,{'method':httpConstants.httpMethods['post'],'headers':_0x258cfe,'body':_0x47663f instanceof URLSearchParams?_0x47663f:JSON['stringify'](_0x47663f)});return baseApiHandleResponse(_0xa3b275);}__name(postBaseApi,'postBaseApi');async function putBaseApi(_0x3c3cff,_0xc5cd27,_0x3629d6){const _0x2d56e8=await fetch(_0x3c3cff,{'method':httpConstants.httpMethods['put'],'headers':_0x3629d6,'body':JSON['stringify'](_0xc5cd27)});return baseApiHandleResponse(_0x2d56e8);}__name(putBaseApi,'putBaseApi');async function deleteBaseApi(_0x21b497,_0x31c795){const _0x5c1c82=await fetch(_0x21b497,{'method':httpConstants.httpMethods['delete'],'headers':_0x31c795});if(!_0x5c1c82['ok'])handleErrorResponse(_0x5c1c82);}__name(deleteBaseApi,'deleteBaseApi');async function baseApiHandleResponse(_0x3dd258){const _0x3d8999=_0x3dd258['headers']['get']('content-type'),_0x5f54f9=_0x3d8999?.['includes']('application/json');isUnauthorizedError(_0x3dd258['status'])&&(loginStates.removeLoginState(),loginRouters.goToLogin());if(!_0x3dd258['ok'])return handleErrorResponse(_0x3dd258);if(_0x3dd258['status']===httpStatusCodes.httpStatusCodes['noContent']||!_0x5f54f9)return null;return utils.getJsonFromResponse(_0x3dd258);}__name(baseApiHandleResponse,'baseApiHandleResponse');async function baseApiHandleBlobResponse(_0x54deb4){isUnauthorizedError(_0x54deb4['status'])&&loginRouters.goToLogin();if(!_0x54deb4['ok']){const _0x4816e0=await handleErrorResponse(_0x54deb4);return _0x4816e0;}if(_0x54deb4['status']===httpStatusCodes.httpStatusCodes['noContent'])return null;const _0x2645d8=await _0x54deb4['blob']();return _0x2645d8;}__name(baseApiHandleBlobResponse,'baseApiHandleBlobResponse');async function handleErrorResponse(_0x4cf3e8){const _0xdfa112=_0x4cf3e8['headers']['get']('content-type'),_0x29a1e3=_0xdfa112?.['includes']('application/json');let _0x4372bf='',_0x1a2cca='';if(_0x29a1e3){const _0x3bb1cb=await utils.getJsonFromResponse(_0x4cf3e8);_0x4372bf=_0x3bb1cb?.['message'],_0x1a2cca=_0x3bb1cb?.['description']||'';}_0x4372bf=_0x4372bf?_0x4372bf:_0x4cf3e8['statusText'];const _0x25422c={'status':_0x4cf3e8['status'],'message':_0x4372bf},_0x55b563={'originalUrl':_0x4cf3e8['url']};return _0x4cf3e8['status']!==httpStatusCodes.httpStatusCodes['unauthorized']&&errorHandler.logAndNotify(new Error(_0x4372bf)),problemDetails.getProblemDetails(_0x25422c,_0x55b563,_0x1a2cca);}__name(handleErrorResponse,'handleErrorResponse');function isUnauthorizedError(_0x3e4cc4){return _0x3e4cc4===httpStatusCodes.httpStatusCodes['unauthorized']&&environments.isBrowser()&&window['location']['pathname']!==loginRouters.getRelativeLoginUrl();}__name(isUnauthorizedError,'isUnauthorizedError');
13
+ var __defProp=Object['defineProperty'],__name=(_0x19066c,_0x398907)=>__defProp(_0x19066c,'name',{'value':_0x398907,'configurable':!![]});async function apiBaseGet(_0x4907df,_0x29522e){const _0x5ccf02=await fetch(_0x4907df,{'method':httpConstants.httpMethods['get'],'headers':_0x29522e});return baseApiHandleResponse(_0x5ccf02);}__name(apiBaseGet,'apiBaseGet');async function apiBaseGetBlob(_0x423617,_0x131b5a){const _0x1b100d=await fetch(_0x423617,{'method':httpConstants.httpMethods['get'],'headers':_0x131b5a});return baseApiHandleBlobResponse(_0x1b100d);}__name(apiBaseGetBlob,'apiBaseGetBlob');async function postBaseApi(_0x4db24b,_0xf9aafa,_0x4ea8b6){const _0x5661d3=await fetch(_0x4db24b,{'method':httpConstants.httpMethods['post'],'headers':_0x4ea8b6,'body':_0xf9aafa instanceof URLSearchParams?_0xf9aafa:JSON['stringify'](_0xf9aafa)});return baseApiHandleResponse(_0x5661d3);}__name(postBaseApi,'postBaseApi');async function putBaseApi(_0x51adcd,_0x58cf19,_0x20eeab){const _0x56aa73=await fetch(_0x51adcd,{'method':httpConstants.httpMethods['put'],'headers':_0x20eeab,'body':JSON['stringify'](_0x58cf19)});return baseApiHandleResponse(_0x56aa73);}__name(putBaseApi,'putBaseApi');async function deleteBaseApi(_0x1fcf92,_0x29ed42){const _0x2f54da=await fetch(_0x1fcf92,{'method':httpConstants.httpMethods['delete'],'headers':_0x29ed42});if(!_0x2f54da['ok'])handleErrorResponse(_0x2f54da);}__name(deleteBaseApi,'deleteBaseApi');async function baseApiHandleResponse(_0x3ea44e){const _0x21da44=_0x3ea44e['headers']['get']('content-type'),_0x2f7373=_0x21da44?.['includes']('application/json');isUnauthorizedError(_0x3ea44e['status'])&&(loginStates.removeLoginState(),loginRouters.goToLogin());if(!_0x3ea44e['ok'])return handleErrorResponse(_0x3ea44e);if(_0x3ea44e['status']===httpStatusCodes.httpStatusCodes['noContent']||!_0x2f7373)return null;return utils.getJsonFromResponse(_0x3ea44e);}__name(baseApiHandleResponse,'baseApiHandleResponse');async function baseApiHandleBlobResponse(_0x11da5e){isUnauthorizedError(_0x11da5e['status'])&&loginRouters.goToLogin();if(!_0x11da5e['ok']){const _0x493ee7=await handleErrorResponse(_0x11da5e);return _0x493ee7;}if(_0x11da5e['status']===httpStatusCodes.httpStatusCodes['noContent'])return null;const _0x326dd1=await _0x11da5e['blob']();return _0x326dd1;}__name(baseApiHandleBlobResponse,'baseApiHandleBlobResponse');async function handleErrorResponse(_0x476b32){const _0x1acf5a=_0x476b32['headers']['get']('content-type'),_0x1fee28=_0x1acf5a?.['includes']('application/json');let _0x52f0c8='',_0x539a8c='';if(_0x1fee28){const _0x473be0=await utils.getJsonFromResponse(_0x476b32);_0x52f0c8=_0x473be0?.['message'],_0x539a8c=_0x473be0?.['description']||'';}_0x52f0c8=_0x52f0c8?_0x52f0c8:_0x476b32['statusText'];const _0x19b50d={'status':_0x476b32['status'],'message':_0x52f0c8},_0x6e61ea={'originalUrl':_0x476b32['url']};return _0x476b32['status']!==httpStatusCodes.httpStatusCodes['unauthorized']&&errorHandler.logAndNotify(new Error(_0x52f0c8)),problemDetails.getProblemDetails(_0x19b50d,_0x6e61ea,_0x539a8c);}__name(handleErrorResponse,'handleErrorResponse');function isUnauthorizedError(_0x58a079){return _0x58a079===httpStatusCodes.httpStatusCodes['unauthorized']&&environments.isBrowser()&&window['location']['pathname']!==loginRouters.getRelativeLoginUrl();}__name(isUnauthorizedError,'isUnauthorizedError');
14
14
 
15
15
  exports.apiBaseGet = apiBaseGet;
16
16
  exports.apiBaseGetBlob = apiBaseGetBlob;