@sitecore-content-sdk/core 1.3.0-canary.9 → 1.4.0-canary.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/dist/cjs/cache-client.js +55 -54
- package/dist/cjs/client/constants.js +7 -7
- package/dist/cjs/client/edge-proxy.js +24 -22
- package/dist/cjs/client/index.js +15 -15
- package/dist/cjs/client/models.js +2 -2
- package/dist/cjs/client/sitecore-client.js +421 -419
- package/dist/cjs/client/utils.js +47 -46
- package/dist/cjs/config/define-config.js +194 -193
- package/dist/cjs/config/index.js +7 -7
- package/dist/cjs/config/models.js +12 -11
- package/dist/cjs/config-cli/define-cli-config.js +23 -22
- package/dist/cjs/config-cli/index.js +7 -7
- package/dist/cjs/config-cli/models.js +8 -7
- package/dist/cjs/constants.js +49 -17
- package/dist/cjs/debug.js +48 -46
- package/dist/cjs/editing/codegen/index.js +14 -9
- package/dist/cjs/editing/codegen/preview.js +277 -193
- package/dist/cjs/editing/component-layout-service.js +62 -61
- package/dist/cjs/editing/design-library.js +183 -126
- package/dist/cjs/editing/editing-service.js +75 -74
- package/dist/cjs/editing/index.js +33 -27
- package/dist/cjs/editing/metadata.js +42 -42
- package/dist/cjs/editing/models.js +44 -38
- package/dist/cjs/editing/utils.js +108 -90
- package/dist/cjs/form/form.js +81 -78
- package/dist/cjs/form/index.js +7 -7
- package/dist/cjs/graphql-request-client.js +108 -107
- package/dist/cjs/i18n/dictionary-service.js +122 -121
- package/dist/cjs/i18n/index.js +7 -7
- package/dist/cjs/i18n/utils.js +16 -15
- package/dist/cjs/index.js +60 -60
- package/dist/cjs/layout/content-styles.js +72 -71
- package/dist/cjs/layout/index.js +24 -24
- package/dist/cjs/layout/layout-service.js +62 -57
- package/dist/cjs/layout/models.js +39 -34
- package/dist/cjs/layout/themes.js +76 -75
- package/dist/cjs/layout/utils.js +117 -110
- package/dist/cjs/media/index.js +38 -38
- package/dist/cjs/media/media-api.js +100 -96
- package/dist/cjs/models.js +2 -2
- package/dist/cjs/native-fetcher.js +194 -179
- package/dist/cjs/personalize/index.js +15 -15
- package/dist/cjs/personalize/layout-personalizer.js +98 -97
- package/dist/cjs/personalize/personalize-service.js +98 -94
- package/dist/cjs/personalize/utils.js +143 -136
- package/dist/cjs/retries.js +43 -42
- package/dist/cjs/site/error-pages-service.js +65 -64
- package/dist/cjs/site/index.js +26 -26
- package/dist/cjs/site/models.js +2 -2
- package/dist/cjs/site/redirects-service.js +94 -81
- package/dist/cjs/site/robots-service.js +66 -65
- package/dist/cjs/site/site-resolver.js +73 -72
- package/dist/cjs/site/siteinfo-service.js +84 -80
- package/dist/cjs/site/sitemap-xml-service.js +84 -83
- package/dist/cjs/site/sitepath-service.js +165 -164
- package/dist/cjs/site/utils.js +55 -47
- package/dist/cjs/sitecore-service-base.js +36 -36
- package/dist/cjs/tools/auth/flow.js +65 -64
- package/dist/cjs/tools/auth/index.js +5 -5
- package/dist/cjs/tools/auth/models.js +2 -2
- package/dist/cjs/tools/auth/tenant-store.js +38 -38
- package/dist/cjs/tools/codegen/component-generation.js +52 -50
- package/dist/cjs/tools/codegen/extract-files.js +105 -107
- package/dist/cjs/tools/codegen/import-map.js +401 -349
- package/dist/cjs/tools/codegen/utils.js +418 -418
- package/dist/cjs/tools/generate-map.js +2 -2
- package/dist/cjs/tools/generateMetadata.js +36 -35
- package/dist/cjs/tools/generateSites.js +59 -58
- package/dist/cjs/tools/index.js +75 -73
- package/dist/cjs/tools/scaffold.js +60 -59
- package/dist/cjs/tools/templating/components.js +96 -266
- package/dist/cjs/tools/templating/index.js +11 -14
- package/dist/cjs/tools/templating/plugins.js +80 -78
- package/dist/cjs/tools/templating/utils.js +67 -66
- package/dist/cjs/utils/ensurePath.js +20 -20
- package/dist/cjs/utils/env.js +28 -27
- package/dist/cjs/utils/globalCache.js +55 -0
- package/dist/cjs/utils/index.js +26 -21
- package/dist/cjs/utils/is-server.js +11 -10
- package/dist/cjs/utils/normalize-url.js +5 -5
- package/dist/cjs/utils/timeout-promise.js +31 -31
- package/dist/cjs/utils/utils.js +254 -229
- package/dist/esm/cache-client.js +51 -50
- package/dist/esm/client/constants.js +4 -4
- package/dist/esm/client/edge-proxy.js +19 -17
- package/dist/esm/client/index.js +5 -5
- package/dist/esm/client/models.js +1 -1
- package/dist/esm/client/sitecore-client.js +414 -412
- package/dist/esm/client/utils.js +43 -42
- package/dist/esm/config/define-config.js +188 -187
- package/dist/esm/config/index.js +2 -2
- package/dist/esm/config/models.js +9 -8
- package/dist/esm/config-cli/define-cli-config.js +19 -18
- package/dist/esm/config-cli/index.js +2 -2
- package/dist/esm/config-cli/models.js +5 -4
- package/dist/esm/constants.js +46 -14
- package/dist/esm/debug.js +41 -39
- package/dist/esm/editing/codegen/index.js +1 -1
- package/dist/esm/editing/codegen/preview.js +263 -185
- package/dist/esm/editing/component-layout-service.js +55 -54
- package/dist/esm/editing/design-library.js +171 -117
- package/dist/esm/editing/editing-service.js +68 -67
- package/dist/esm/editing/index.js +6 -5
- package/dist/esm/editing/metadata.js +39 -39
- package/dist/esm/editing/models.js +41 -35
- package/dist/esm/editing/utils.js +98 -80
- package/dist/esm/form/form.js +72 -69
- package/dist/esm/form/index.js +1 -1
- package/dist/esm/graphql-request-client.js +101 -100
- package/dist/esm/i18n/dictionary-service.js +115 -114
- package/dist/esm/i18n/index.js +2 -2
- package/dist/esm/i18n/utils.js +13 -12
- package/dist/esm/index.js +13 -13
- package/dist/esm/layout/content-styles.js +64 -63
- package/dist/esm/layout/index.js +6 -6
- package/dist/esm/layout/layout-service.js +55 -50
- package/dist/esm/layout/models.js +36 -31
- package/dist/esm/layout/themes.js +71 -70
- package/dist/esm/layout/utils.js +109 -102
- package/dist/esm/media/index.js +2 -2
- package/dist/esm/media/media-api.js +90 -86
- package/dist/esm/models.js +1 -1
- package/dist/esm/native-fetcher.js +187 -172
- package/dist/esm/personalize/index.js +3 -3
- package/dist/esm/personalize/layout-personalizer.js +93 -92
- package/dist/esm/personalize/personalize-service.js +91 -87
- package/dist/esm/personalize/utils.js +135 -128
- package/dist/esm/retries.js +39 -38
- package/dist/esm/site/error-pages-service.js +58 -57
- package/dist/esm/site/index.js +8 -8
- package/dist/esm/site/models.js +1 -1
- package/dist/esm/site/redirects-service.js +87 -74
- package/dist/esm/site/robots-service.js +59 -58
- package/dist/esm/site/site-resolver.js +69 -68
- package/dist/esm/site/siteinfo-service.js +77 -73
- package/dist/esm/site/sitemap-xml-service.js +77 -76
- package/dist/esm/site/sitepath-service.js +157 -156
- package/dist/esm/site/utils.js +49 -41
- package/dist/esm/sitecore-service-base.js +29 -29
- package/dist/esm/tools/auth/flow.js +62 -61
- package/dist/esm/tools/auth/index.js +1 -1
- package/dist/esm/tools/auth/models.js +1 -1
- package/dist/esm/tools/auth/tenant-store.js +35 -35
- package/dist/esm/tools/codegen/component-generation.js +44 -42
- package/dist/esm/tools/codegen/extract-files.js +99 -101
- package/dist/esm/tools/codegen/import-map.js +358 -306
- package/dist/esm/tools/codegen/utils.js +373 -373
- package/dist/esm/tools/generate-map.js +1 -1
- package/dist/esm/tools/generateMetadata.js +29 -28
- package/dist/esm/tools/generateSites.js +52 -51
- package/dist/esm/tools/index.js +28 -27
- package/dist/esm/tools/scaffold.js +52 -51
- package/dist/esm/tools/templating/components.js +59 -223
- package/dist/esm/tools/templating/index.js +3 -3
- package/dist/esm/tools/templating/plugins.js +72 -70
- package/dist/esm/tools/templating/utils.js +59 -58
- package/dist/esm/utils/ensurePath.js +13 -13
- package/dist/esm/utils/env.js +24 -23
- package/dist/esm/utils/globalCache.js +49 -0
- package/dist/esm/utils/index.js +4 -3
- package/dist/esm/utils/is-server.js +9 -8
- package/dist/esm/utils/normalize-url.js +1 -1
- package/dist/esm/utils/timeout-promise.js +28 -28
- package/dist/esm/utils/utils.js +238 -213
- package/package.json +73 -5
- package/types/cache-client.d.ts +68 -64
- package/types/cache-client.d.ts.map +1 -0
- package/types/client/constants.d.ts +5 -4
- package/types/client/constants.d.ts.map +1 -0
- package/types/client/edge-proxy.d.ts +18 -15
- package/types/client/edge-proxy.d.ts.map +1 -0
- package/types/client/index.d.ts +8 -7
- package/types/client/index.d.ts.map +1 -0
- package/types/client/models.d.ts +21 -19
- package/types/client/models.d.ts.map +1 -0
- package/types/client/sitecore-client.d.ts +338 -327
- package/types/client/sitecore-client.d.ts.map +1 -0
- package/types/client/utils.d.ts +15 -9
- package/types/client/utils.d.ts.map +1 -0
- package/types/config/define-config.d.ts +20 -18
- package/types/config/define-config.d.ts.map +1 -0
- package/types/config/index.d.ts +3 -2
- package/types/config/index.d.ts.map +1 -0
- package/types/config/models.d.ts +287 -268
- package/types/config/models.d.ts.map +1 -0
- package/types/config-cli/define-cli-config.d.ts +9 -7
- package/types/config-cli/define-cli-config.d.ts.map +1 -0
- package/types/config-cli/index.d.ts +3 -2
- package/types/config-cli/index.d.ts.map +1 -0
- package/types/config-cli/models.d.ts +6 -4
- package/types/config-cli/models.d.ts.map +1 -0
- package/types/constants.d.ts +44 -11
- package/types/constants.d.ts.map +1 -0
- package/types/debug.d.ts +35 -28
- package/types/debug.d.ts.map +1 -0
- package/types/editing/codegen/index.d.ts +2 -1
- package/types/editing/codegen/index.d.ts.map +1 -0
- package/types/editing/codegen/preview.d.ts +256 -195
- package/types/editing/codegen/preview.d.ts.map +1 -0
- package/types/editing/component-layout-service.d.ts +84 -80
- package/types/editing/component-layout-service.d.ts.map +1 -0
- package/types/editing/design-library.d.ts +111 -63
- package/types/editing/design-library.d.ts.map +1 -0
- package/types/editing/editing-service.d.ts +72 -62
- package/types/editing/editing-service.d.ts.map +1 -0
- package/types/editing/index.d.ts +7 -6
- package/types/editing/index.d.ts.map +1 -0
- package/types/editing/metadata.d.ts +8 -7
- package/types/editing/metadata.d.ts.map +1 -0
- package/types/editing/models.d.ts +103 -92
- package/types/editing/models.d.ts.map +1 -0
- package/types/editing/utils.d.ts +91 -74
- package/types/editing/utils.d.ts.map +1 -0
- package/types/form/form.d.ts +25 -21
- package/types/form/form.d.ts.map +1 -0
- package/types/form/index.d.ts +2 -1
- package/types/form/index.d.ts.map +1 -0
- package/types/graphql-request-client.d.ts +112 -105
- package/types/graphql-request-client.d.ts.map +1 -0
- package/types/i18n/dictionary-service.d.ts +135 -131
- package/types/i18n/dictionary-service.d.ts.map +1 -0
- package/types/i18n/index.d.ts +3 -2
- package/types/i18n/index.d.ts.map +1 -0
- package/types/i18n/utils.d.ts +9 -7
- package/types/i18n/utils.d.ts.map +1 -0
- package/types/index.d.ts +13 -12
- package/types/index.d.ts.map +1 -0
- package/types/layout/content-styles.d.ts +20 -18
- package/types/layout/content-styles.d.ts.map +1 -0
- package/types/layout/index.d.ts +6 -5
- package/types/layout/index.d.ts.map +1 -0
- package/types/layout/layout-service.d.ts +45 -35
- package/types/layout/layout-service.d.ts.map +1 -0
- package/types/layout/models.d.ts +174 -151
- package/types/layout/models.d.ts.map +1 -0
- package/types/layout/themes.d.ts +13 -11
- package/types/layout/themes.d.ts.map +1 -0
- package/types/layout/utils.d.ts +56 -41
- package/types/layout/utils.d.ts.map +1 -0
- package/types/media/index.d.ts +3 -2
- package/types/media/index.d.ts.map +1 -0
- package/types/media/media-api.d.ts +60 -55
- package/types/media/media-api.d.ts.map +1 -0
- package/types/models.d.ts +94 -84
- package/types/models.d.ts.map +1 -0
- package/types/native-fetcher.d.ts +124 -114
- package/types/native-fetcher.d.ts.map +1 -0
- package/types/personalize/index.d.ts +4 -3
- package/types/personalize/index.d.ts.map +1 -0
- package/types/personalize/layout-personalizer.d.ts +29 -27
- package/types/personalize/layout-personalizer.d.ts.map +1 -0
- package/types/personalize/personalize-service.d.ts +90 -80
- package/types/personalize/personalize-service.d.ts.map +1 -0
- package/types/personalize/utils.d.ts +78 -69
- package/types/personalize/utils.d.ts.map +1 -0
- package/types/retries.d.ts +26 -24
- package/types/retries.d.ts.map +1 -0
- package/types/site/error-pages-service.d.ts +64 -57
- package/types/site/error-pages-service.d.ts.map +1 -0
- package/types/site/index.d.ts +10 -9
- package/types/site/index.d.ts.map +1 -0
- package/types/site/models.d.ts +23 -18
- package/types/site/models.d.ts.map +1 -0
- package/types/site/redirects-service.d.ts +92 -69
- package/types/site/redirects-service.d.ts.map +1 -0
- package/types/site/robots-service.d.ts +57 -50
- package/types/site/robots-service.d.ts.map +1 -0
- package/types/site/site-resolver.d.ts +28 -26
- package/types/site/site-resolver.d.ts.map +1 -0
- package/types/site/siteinfo-service.d.ts +65 -52
- package/types/site/siteinfo-service.d.ts.map +1 -0
- package/types/site/sitemap-xml-service.d.ts +63 -56
- package/types/site/sitemap-xml-service.d.ts.map +1 -0
- package/types/site/sitepath-service.d.ts +137 -134
- package/types/site/sitepath-service.d.ts.map +1 -0
- package/types/site/utils.d.ts +41 -28
- package/types/site/utils.d.ts.map +1 -0
- package/types/sitecore-service-base.d.ts +31 -30
- package/types/sitecore-service-base.d.ts.map +1 -0
- package/types/tools/auth/flow.d.ts +29 -27
- package/types/tools/auth/flow.d.ts.map +1 -0
- package/types/tools/auth/index.d.ts +2 -1
- package/types/tools/auth/index.d.ts.map +1 -0
- package/types/tools/auth/models.d.ts +35 -33
- package/types/tools/auth/models.d.ts.map +1 -0
- package/types/tools/auth/tenant-store.d.ts +12 -11
- package/types/tools/auth/tenant-store.d.ts.map +1 -0
- package/types/tools/codegen/component-generation.d.ts +50 -47
- package/types/tools/codegen/component-generation.d.ts.map +1 -0
- package/types/tools/codegen/extract-files.d.ts +24 -22
- package/types/tools/codegen/extract-files.d.ts.map +1 -0
- package/types/tools/codegen/import-map.d.ts +103 -70
- package/types/tools/codegen/import-map.d.ts.map +1 -0
- package/types/tools/codegen/utils.d.ts +76 -75
- package/types/tools/codegen/utils.d.ts.map +1 -0
- package/types/tools/generate-map.d.ts +36 -26
- package/types/tools/generate-map.d.ts.map +1 -0
- package/types/tools/generateMetadata.d.ts +24 -22
- package/types/tools/generateMetadata.d.ts.map +1 -0
- package/types/tools/generateSites.d.ts +25 -22
- package/types/tools/generateSites.d.ts.map +1 -0
- package/types/tools/index.d.ts +22 -20
- package/types/tools/index.d.ts.map +1 -0
- package/types/tools/scaffold.d.ts +27 -25
- package/types/tools/scaffold.d.ts.map +1 -0
- package/types/tools/templating/components.d.ts +104 -103
- package/types/tools/templating/components.d.ts.map +1 -0
- package/types/tools/templating/index.d.ts +4 -3
- package/types/tools/templating/index.d.ts.map +1 -0
- package/types/tools/templating/plugins.d.ts +71 -67
- package/types/tools/templating/plugins.d.ts.map +1 -0
- package/types/tools/templating/utils.d.ts +42 -40
- package/types/tools/templating/utils.d.ts.map +1 -0
- package/types/utils/ensurePath.d.ts +7 -6
- package/types/utils/ensurePath.d.ts.map +1 -0
- package/types/utils/env.d.ts +9 -7
- package/types/utils/env.d.ts.map +1 -0
- package/types/utils/globalCache.d.ts +37 -0
- package/types/utils/globalCache.d.ts.map +1 -0
- package/types/utils/index.d.ts +5 -3
- package/types/utils/index.d.ts.map +1 -0
- package/types/utils/is-server.d.ts +8 -6
- package/types/utils/is-server.d.ts.map +1 -0
- package/types/utils/normalize-url.d.ts +2 -1
- package/types/utils/normalize-url.d.ts.map +1 -0
- package/types/utils/timeout-promise.d.ts +18 -17
- package/types/utils/timeout-promise.d.ts.map +1 -0
- package/types/utils/utils.d.ts +104 -79
- package/types/utils/utils.d.ts.map +1 -0
- package/client.js +0 -1
- package/codegen.js +0 -1
- package/config-cli.js +0 -1
- package/config.js +0 -1
- package/editing.js +0 -1
- package/i18n.js +0 -1
- package/layout.js +0 -1
- package/media.js +0 -1
- package/personalize.js +0 -1
- package/site.js +0 -1
- package/tools.js +0 -1
- package/utils.js +0 -1
|
@@ -1,266 +1,96 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
exports.
|
|
43
|
-
exports.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* {
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
function detectRouterType(projectRoot = process.cwd()) {
|
|
98
|
-
const appDirExists = fs_1.default.existsSync(`${projectRoot}/src/app`) || fs_1.default.existsSync(`${projectRoot}/app`);
|
|
99
|
-
const pagesDirExists = fs_1.default.existsSync(`${projectRoot}/src/pages`) || fs_1.default.existsSync(`${projectRoot}/pages`);
|
|
100
|
-
if (appDirExists) {
|
|
101
|
-
return 'app';
|
|
102
|
-
}
|
|
103
|
-
if (pagesDirExists) {
|
|
104
|
-
return 'pages';
|
|
105
|
-
}
|
|
106
|
-
return 'pages';
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Detects the component type based on directives, imports, and router context.
|
|
110
|
-
* - Checks for 'use client' directive
|
|
111
|
-
* - Checks for explicit componentType export
|
|
112
|
-
* - Checks for server-only imports (next/headers, etc.)
|
|
113
|
-
* - Defaults to 'server' for App Router, 'universal' for Pages Router
|
|
114
|
-
* @param {string} filePath - Path to the component file
|
|
115
|
-
* @param {RouterType} [routerType] - Optional router type override. Auto-detected if not provided.
|
|
116
|
-
* @returns {ComponentType} 'server', 'client', or 'universal'
|
|
117
|
-
*/
|
|
118
|
-
function detectComponentType(filePath, routerType) {
|
|
119
|
-
try {
|
|
120
|
-
const content = fs_1.default.readFileSync(filePath, 'utf-8');
|
|
121
|
-
// Parse using TypeScript AST (following patterns from import-map.ts and utils.ts)
|
|
122
|
-
const sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true);
|
|
123
|
-
let hasUseClientDirective = false;
|
|
124
|
-
let explicitComponentType = null;
|
|
125
|
-
let hasServerOnlyImports = false;
|
|
126
|
-
// Auto-detect router type if not provided
|
|
127
|
-
const detectedRouterType = routerType || detectRouterType();
|
|
128
|
-
// Track position to ensure directives come before imports/other statements
|
|
129
|
-
let foundFirstNonDirectiveStatement = false;
|
|
130
|
-
// Helper function to check if a node is a valid directive
|
|
131
|
-
const isValidDirective = (node) => {
|
|
132
|
-
return (ts.isExpressionStatement(node) &&
|
|
133
|
-
ts.isStringLiteral(node.expression) &&
|
|
134
|
-
!foundFirstNonDirectiveStatement);
|
|
135
|
-
};
|
|
136
|
-
// More comprehensive AST traversal (following patterns from import-map.ts and utils.ts)
|
|
137
|
-
const traverseNode = (node) => {
|
|
138
|
-
var _a;
|
|
139
|
-
// Check for 'use client'/'use server' directives (must be at top, before imports)
|
|
140
|
-
if (isValidDirective(node) &&
|
|
141
|
-
ts.isStringLiteral(node.expression)) {
|
|
142
|
-
const directiveText = node.expression
|
|
143
|
-
.text;
|
|
144
|
-
if (directiveText === 'use client') {
|
|
145
|
-
hasUseClientDirective = true;
|
|
146
|
-
return; // Don't mark as non-directive statement
|
|
147
|
-
}
|
|
148
|
-
if (directiveText === 'use server') {
|
|
149
|
-
explicitComponentType = 'server';
|
|
150
|
-
return; // Don't mark as non-directive statement
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
// Mark that we've seen a non-directive statement (imports, declarations, etc.)
|
|
154
|
-
if (ts.isImportDeclaration(node) ||
|
|
155
|
-
ts.isVariableStatement(node) ||
|
|
156
|
-
ts.isFunctionDeclaration(node) ||
|
|
157
|
-
ts.isExportDeclaration(node) ||
|
|
158
|
-
ts.isExportAssignment(node)) {
|
|
159
|
-
foundFirstNonDirectiveStatement = true;
|
|
160
|
-
}
|
|
161
|
-
// Check for import declarations with server-only modules
|
|
162
|
-
if (ts.isImportDeclaration(node)) {
|
|
163
|
-
const moduleSpecifier = node.moduleSpecifier;
|
|
164
|
-
if (ts.isStringLiteral(moduleSpecifier)) {
|
|
165
|
-
const importPath = moduleSpecifier.text;
|
|
166
|
-
// Expand server-only module detection
|
|
167
|
-
if (importPath === 'next/headers' ||
|
|
168
|
-
importPath === 'server-only' ||
|
|
169
|
-
importPath === 'next/cache' ||
|
|
170
|
-
importPath === 'next/cookies' ||
|
|
171
|
-
importPath.startsWith('node:') ||
|
|
172
|
-
importPath === 'fs' ||
|
|
173
|
-
importPath === 'path') {
|
|
174
|
-
hasServerOnlyImports = true;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
// Check for explicit componentType export (improved detection)
|
|
179
|
-
if (ts.isVariableStatement(node)) {
|
|
180
|
-
const hasExportModifier = (_a = node.modifiers) === null || _a === void 0 ? void 0 : _a.some((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword);
|
|
181
|
-
if (hasExportModifier) {
|
|
182
|
-
node.declarationList.declarations.forEach((declaration) => {
|
|
183
|
-
if (ts.isIdentifier(declaration.name) &&
|
|
184
|
-
declaration.name.text === 'componentType' &&
|
|
185
|
-
declaration.initializer) {
|
|
186
|
-
// Handle string literal
|
|
187
|
-
if (ts.isStringLiteral(declaration.initializer)) {
|
|
188
|
-
const typeValue = declaration.initializer.text;
|
|
189
|
-
if (typeValue === 'server' || typeValue === 'client' || typeValue === 'universal') {
|
|
190
|
-
explicitComponentType = typeValue;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
// Handle template literal (e.g., `client`)
|
|
194
|
-
else if (ts.isNoSubstitutionTemplateLiteral(declaration.initializer)) {
|
|
195
|
-
const typeValue = declaration.initializer.text;
|
|
196
|
-
if (typeValue === 'server' || typeValue === 'client' || typeValue === 'universal') {
|
|
197
|
-
explicitComponentType = typeValue;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
// Check for named export of componentType (export const componentType = ...)
|
|
205
|
-
if (ts.isExportDeclaration(node) &&
|
|
206
|
-
node.exportClause &&
|
|
207
|
-
ts.isNamedExports(node.exportClause)) {
|
|
208
|
-
node.exportClause.elements.forEach((exportSpecifier) => {
|
|
209
|
-
if (exportSpecifier.name.text === 'componentType') {
|
|
210
|
-
// This would need additional logic to resolve the actual value, but for now
|
|
211
|
-
// we'll rely on the variable declaration detection above
|
|
212
|
-
}
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
// Recursively traverse child nodes (following import-map.ts pattern)
|
|
216
|
-
ts.forEachChild(node, traverseNode);
|
|
217
|
-
};
|
|
218
|
-
// Start traversal from the source file (following utils.ts pattern)
|
|
219
|
-
ts.forEachChild(sourceFile, traverseNode);
|
|
220
|
-
// Priority: explicit componentType export > use client/server directives > server-only imports > universal default
|
|
221
|
-
if (explicitComponentType) {
|
|
222
|
-
return explicitComponentType;
|
|
223
|
-
}
|
|
224
|
-
if (hasUseClientDirective) {
|
|
225
|
-
return 'client';
|
|
226
|
-
}
|
|
227
|
-
if (hasServerOnlyImports) {
|
|
228
|
-
return 'server';
|
|
229
|
-
}
|
|
230
|
-
// Router-aware defaults:
|
|
231
|
-
// - App Router: defaults to server (RSC by default)
|
|
232
|
-
// - Pages Router: defaults to universal (isomorphic by default)
|
|
233
|
-
if (detectedRouterType === 'app') {
|
|
234
|
-
return 'server';
|
|
235
|
-
}
|
|
236
|
-
else {
|
|
237
|
-
return 'universal';
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
catch (error) {
|
|
241
|
-
console.warn(`Failed to parse component file ${filePath}, defaulting to universal:`, error);
|
|
242
|
-
return 'universal';
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* Get list of components with detected types (server, client, or universal).
|
|
247
|
-
* @param {string[]} paths - Paths to search for components
|
|
248
|
-
* @param {string[]} [exclude] - Paths and glob patterns to exclude from final result
|
|
249
|
-
* @param {boolean} includeVariants - Whether to include variant components
|
|
250
|
-
* @param {RouterType} [routerType] - Optional router type override for type detection. Auto-detected if not provided.
|
|
251
|
-
* @returns {ComponentFileWithType[]} Array of components with their detected types
|
|
252
|
-
*/
|
|
253
|
-
function getComponentListWithTypes(paths, exclude, includeVariants, routerType) {
|
|
254
|
-
const components = (0, exports.getComponentList)(paths, exclude, includeVariants);
|
|
255
|
-
const detectedRouterType = routerType || detectRouterType();
|
|
256
|
-
return components.map((component) => (Object.assign(Object.assign({}, component), { componentType: detectComponentType(component.filePath, detectedRouterType) })));
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
* Filters components by their detected type.
|
|
260
|
-
* @param {ComponentFileWithType[]} components - Array of components with types
|
|
261
|
-
* @param {ComponentType[]} allowedTypes - Array of allowed component types to filter by
|
|
262
|
-
* @returns {ComponentFileWithType[]} Filtered array containing only components matching allowed types
|
|
263
|
-
*/
|
|
264
|
-
function filterComponentsByType(components, allowedTypes) {
|
|
265
|
-
return components.filter((component) => allowedTypes.includes(component.componentType));
|
|
266
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.componentUnitMocks = exports.getComponentList = void 0;
|
|
37
|
+
exports.filterComponentsByType = filterComponentsByType;
|
|
38
|
+
const glob = __importStar(require("glob"));
|
|
39
|
+
/**
|
|
40
|
+
* @public
|
|
41
|
+
*/
|
|
42
|
+
exports.getComponentList = _getComponentList;
|
|
43
|
+
exports.componentUnitMocks = {
|
|
44
|
+
set getComponentList(mockImplementation) {
|
|
45
|
+
exports.getComponentList = mockImplementation;
|
|
46
|
+
},
|
|
47
|
+
get getComponentList() {
|
|
48
|
+
return _getComponentList;
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
const componentNamePattern = /^[\/]*(.+[\/\\])*(.+)\.[jt]sx?$/;
|
|
52
|
+
const componentPathPattern = /^([\/]*.+[\/\\].+)\..+$/;
|
|
53
|
+
/**
|
|
54
|
+
* Get list of components from @var path
|
|
55
|
+
* Returns a list of components in the following format:
|
|
56
|
+
* {
|
|
57
|
+
* path: 'path/to/component',
|
|
58
|
+
* componentName: 'ComponentName',
|
|
59
|
+
* moduleName: 'ComponentName'
|
|
60
|
+
* }
|
|
61
|
+
* @param {string[]} paths paths to search
|
|
62
|
+
* @param {string[]} [exclude] paths and glob patterns to exclude from final result
|
|
63
|
+
* @param {boolean} [includeVariants] whether to include variant components
|
|
64
|
+
*/
|
|
65
|
+
function _getComponentList(paths, exclude, includeVariants) {
|
|
66
|
+
const components = paths.reduce((result, path) => {
|
|
67
|
+
const globPath = glob.hasMagic(path, { magicalBraces: true }) || path.match(componentNamePattern)
|
|
68
|
+
? path
|
|
69
|
+
: path.replace(/\/$/, '').concat('/**/*.{js,jsx,ts,tsx}');
|
|
70
|
+
return result.concat(...glob
|
|
71
|
+
.sync(globPath, { ignore: exclude, nodir: true })
|
|
72
|
+
.filter((path) => path.match(componentNamePattern))
|
|
73
|
+
.map((filePath) => {
|
|
74
|
+
const name = filePath.match(componentNamePattern)[2];
|
|
75
|
+
return {
|
|
76
|
+
filePath,
|
|
77
|
+
importPath: filePath.match(componentPathPattern)[1].replace(/\\/g, '/'), // use forward slashes for consistency
|
|
78
|
+
componentName: name,
|
|
79
|
+
moduleName: name.replace(/[^\w]+/g, ''),
|
|
80
|
+
};
|
|
81
|
+
}));
|
|
82
|
+
}, []);
|
|
83
|
+
return includeVariants
|
|
84
|
+
? components
|
|
85
|
+
: components.filter((component) => !component.componentName.includes('.'));
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Filters components by their detected type.
|
|
89
|
+
* @param {ComponentFileWithType[]} components - Array of components with types
|
|
90
|
+
* @param {ComponentType[]} allowedTypes - Array of allowed component types to filter by
|
|
91
|
+
* @returns {ComponentFileWithType[]} Filtered array containing only components matching allowed types
|
|
92
|
+
* @internal
|
|
93
|
+
*/
|
|
94
|
+
function filterComponentsByType(components, allowedTypes) {
|
|
95
|
+
return components.filter((component) => allowedTypes.includes(component.componentType));
|
|
96
|
+
}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.matchPath = exports.ModuleType = exports.generatePlugins = exports.filterComponentsByType = exports.
|
|
4
|
-
var components_1 = require("./components");
|
|
5
|
-
Object.defineProperty(exports, "getComponentList", { enumerable: true, get: function () { return components_1.getComponentList; } });
|
|
6
|
-
Object.defineProperty(exports, "
|
|
7
|
-
|
|
8
|
-
Object.defineProperty(exports, "
|
|
9
|
-
Object.defineProperty(exports, "
|
|
10
|
-
var
|
|
11
|
-
Object.defineProperty(exports, "
|
|
12
|
-
Object.defineProperty(exports, "ModuleType", { enumerable: true, get: function () { return plugins_1.ModuleType; } });
|
|
13
|
-
var utils_1 = require("./utils");
|
|
14
|
-
Object.defineProperty(exports, "matchPath", { enumerable: true, get: function () { return utils_1.matchPath; } });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.matchPath = exports.ModuleType = exports.generatePlugins = exports.filterComponentsByType = exports.getComponentList = void 0;
|
|
4
|
+
var components_1 = require("./components");
|
|
5
|
+
Object.defineProperty(exports, "getComponentList", { enumerable: true, get: function () { return components_1.getComponentList; } });
|
|
6
|
+
Object.defineProperty(exports, "filterComponentsByType", { enumerable: true, get: function () { return components_1.filterComponentsByType; } });
|
|
7
|
+
var plugins_1 = require("./plugins");
|
|
8
|
+
Object.defineProperty(exports, "generatePlugins", { enumerable: true, get: function () { return plugins_1.generatePlugins; } });
|
|
9
|
+
Object.defineProperty(exports, "ModuleType", { enumerable: true, get: function () { return plugins_1.ModuleType; } });
|
|
10
|
+
var utils_1 = require("./utils");
|
|
11
|
+
Object.defineProperty(exports, "matchPath", { enumerable: true, get: function () { return utils_1.matchPath; } });
|
|
@@ -1,78 +1,80 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ModuleType = void 0;
|
|
7
|
-
exports.getPluginList = getPluginList;
|
|
8
|
-
exports.generatePlugins = generatePlugins;
|
|
9
|
-
const fs_1 = __importDefault(require("fs"));
|
|
10
|
-
const path_1 = __importDefault(require("path"));
|
|
11
|
-
const utils_1 = require("./utils");
|
|
12
|
-
/**
|
|
13
|
-
* Identifies the format of the module to be compiled
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
ModuleType[ModuleType["
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* @
|
|
29
|
-
* @param {
|
|
30
|
-
* @param {string} definition.
|
|
31
|
-
* @param {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
* @
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ModuleType = void 0;
|
|
7
|
+
exports.getPluginList = getPluginList;
|
|
8
|
+
exports.generatePlugins = generatePlugins;
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
const utils_1 = require("./utils");
|
|
12
|
+
/**
|
|
13
|
+
* Identifies the format of the module to be compiled
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
var ModuleType;
|
|
17
|
+
(function (ModuleType) {
|
|
18
|
+
ModuleType[ModuleType["CJS"] = 0] = "CJS";
|
|
19
|
+
ModuleType[ModuleType["ESM"] = 1] = "ESM";
|
|
20
|
+
})(ModuleType || (exports.ModuleType = ModuleType = {}));
|
|
21
|
+
/**
|
|
22
|
+
* Get list of plugins from @var path
|
|
23
|
+
* Returns a list of plugins in the following format:
|
|
24
|
+
* {
|
|
25
|
+
* path: 'path/to/plugin/foo',
|
|
26
|
+
* name: 'fooPlugin'
|
|
27
|
+
* }
|
|
28
|
+
* @example getPluginList('src/foo/plugins', 'Foo')
|
|
29
|
+
* @param {object} definition plugin definition
|
|
30
|
+
* @param {string} definition.path path to get plugin from
|
|
31
|
+
* @param {string} definition.pluginName plugin name
|
|
32
|
+
* @param {boolean} [definition.silent] whether to suppress console output
|
|
33
|
+
*/
|
|
34
|
+
function getPluginList({ path, pluginName, silent = false, }) {
|
|
35
|
+
const plugins = (0, utils_1.getItems)({
|
|
36
|
+
path,
|
|
37
|
+
resolveItem: (path, name) => ({
|
|
38
|
+
path: `${path}/${name}`,
|
|
39
|
+
name: `${name.replace(/-./g, (x) => x[1].toUpperCase())}Plugin`,
|
|
40
|
+
}),
|
|
41
|
+
cb: (name) => !silent && console.debug(`Registering ${pluginName} plugin ${name}`),
|
|
42
|
+
});
|
|
43
|
+
return plugins;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Generates the plugins file and saves it to the filesystem.
|
|
47
|
+
* By convention, we expect to find plugins under {pluginName}/plugins/** (subfolders are searched recursively).
|
|
48
|
+
* generated file will be saved to @var {distPath} and will contain a list of plugins in the following format:
|
|
49
|
+
* CJS: exports.fooPlugin = require('{pluginPath}');
|
|
50
|
+
* ESM: export { fooPlugin } from '{pluginPath}';
|
|
51
|
+
* @example generatePlugins({ distPath: 'src/temp/foo-plugins.js', rootPath: 'src/foo/plugins', moduleType: ModuleType.CJS })
|
|
52
|
+
* @param {PluginDefinition} definition plugin definition
|
|
53
|
+
* @public
|
|
54
|
+
*/
|
|
55
|
+
function generatePlugins(definition) {
|
|
56
|
+
const { rootPath, distPath, moduleType, relative = false, silent } = definition;
|
|
57
|
+
const segments = rootPath.split('/');
|
|
58
|
+
const pluginName = segments[segments.length - 2];
|
|
59
|
+
const plugins = getPluginList({ path: rootPath, pluginName, silent });
|
|
60
|
+
let fileContent = '';
|
|
61
|
+
fileContent = plugins
|
|
62
|
+
.map((plugin) => {
|
|
63
|
+
const sourcePath = relative
|
|
64
|
+
? path_1.default.relative(path_1.default.dirname(distPath), plugin.path).replace(/\\/g, '/')
|
|
65
|
+
: plugin.path;
|
|
66
|
+
return moduleType === ModuleType.CJS
|
|
67
|
+
? `exports.${plugin.name} = require('${sourcePath}');`
|
|
68
|
+
: `export { ${plugin.name} } from '${sourcePath}';`;
|
|
69
|
+
})
|
|
70
|
+
.join('\r\n')
|
|
71
|
+
.concat('\r\n');
|
|
72
|
+
if (!plugins.length) {
|
|
73
|
+
fileContent = moduleType === ModuleType.CJS ? 'module.exports = {};\r\n' : 'export {};\r\n';
|
|
74
|
+
}
|
|
75
|
+
const filePath = path_1.default.resolve(distPath);
|
|
76
|
+
!silent && console.log(`Writing ${pluginName} plugins to ${filePath}`);
|
|
77
|
+
fs_1.default.writeFileSync(filePath, fileContent, {
|
|
78
|
+
encoding: 'utf8',
|
|
79
|
+
});
|
|
80
|
+
}
|