Skip to content

Commit 80075d2

Browse files
committed
merged latest changes
2 parents fb7fccd + 9f6bb8f commit 80075d2

27 files changed

Lines changed: 1849 additions & 1245 deletions

File tree

.talismanrc

Lines changed: 21 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -1,130 +1,26 @@
11
fileignoreconfig:
2-
- filename: packages/contentstack-import/src/utils/import-config-handler.ts
3-
checksum: 3194f537cee8041f07a7ea91cdc6351c84e400766696d9c3cf80b98f99961f76
4-
- filename: packages/contentstack-export/src/export/modules/environments.ts
5-
checksum: a92c5de7ed8e80f08f911727973a66e0416b4a52265c275d1d25c3095f912811
6-
- filename: packages/contentstack-import/src/utils/backup-handler.ts
7-
checksum: 9a892b5c4b5aac230fb5969e7f34afdac0b6f96208e64bf9d1195468c935c66c
8-
- filename: packages/contentstack-import/test/unit/utils/backup-handler.test.ts
9-
checksum: 69860727e9b3099d8e1e95db2af17fc8b161684f675477981d27877cd8e1b3bb
10-
- filename: packages/contentstack-query-export/.env-example
11-
checksum: 922c7aa9c788ab60b987de2b0a2aee6d90843c463a8bbc29201e4efe31081187
122
- filename: pnpm-lock.yaml
13-
checksum: 3d2eaabf1df366efee1759156465c6aefa68f30d372717de2cdc3e41946aa3d8
14-
- filename: packages/contentstack-import/src/utils/build-import-spaces-options.ts
15-
checksum: fe0cb6cb5903515982af1e3642f2a19233207d35f13dc205cebeda0aa399f8b5
16-
- filename: packages/contentstack-export/src/export/modules/stack.ts
17-
checksum: 00774a601a5d2b4a47a91fe5bbb0ea9c93c48fa785ee9887c0d74a6b6ec21296
18-
- filename: packages/contentstack-export/src/types/default-config.ts
19-
checksum: 5f0b0bb753242356edacb802241ec937a7741647813f9f347837368f08265667
20-
- filename: packages/contentstack-asset-management/.eslintrc
21-
checksum: 136f03481c8c59575d2eafd4c78d105119f85fb10fe88e02af8cffaf3eb7c090
22-
- filename: packages/contentstack-export/src/types/index.ts
23-
checksum: fa36c236abac338b03bf307102a99f25dddac9afe75b6b34fb82e318e7759799
3+
checksum: 0942b9ee7e4b284bfd9f0a2258ca8281cf8569b60dd293e08abf64373db12d59
4+
- filename: packages/contentstack-import/src/types/index.ts
5+
checksum: d61bcc581f6d7f684caa75a5880fb740af12404d271d4e8429610f856154089f
6+
- filename: packages/contentstack-import/test/unit/utils/extension-helper.test.ts
7+
checksum: c61c823716710a29248bba5fdae199af949876f06308b878e3cf8f3d89e13b48
8+
- filename: packages/contentstack-import/test/unit/import/modules/locales.test.ts
9+
checksum: bd7f0036cb0a853848876a3664c599f8538a1d84a02fe50fb6bdbdad8d70b49e
10+
- filename: packages/contentstack-import/src/config/index.ts
11+
checksum: 53e460b7ff7f7c9dae29d0b551352f3f89da0c5b08f753865ce73165a06259e5
12+
- filename: packages/contentstack-variants/src/types/export-config.ts
13+
checksum: e6df2394b6acb1f1ff30ed18baca686ba5b36c9de03b529f9980acbec4c8c8fc
2414
- filename: packages/contentstack-export/src/config/index.ts
25-
checksum: ae655e25cefff007c4ae4006c67b1529951350d9d2a3d179ef0a80d3da326d5a
26-
- filename: packages/contentstack-branches/README.md
27-
checksum: 2978e9a9c151cbbafb5dd542edf6815ccec12172ae4ca114a6c4e5e73a85a2b5
28-
- filename: packages/contentstack-branches/src/branch/diff-handler.ts
29-
checksum: 3cd4d26a2142cab7cbf2094c9251e028467d17d6a1ed6daf22f21975133805f1
30-
- filename: packages/contentstack-export/src/export/modules/assets.ts
31-
checksum: 1d0ec8a15b35fb71261556e1982f53e7c940ddde49497f64d7a6fd7a7707bae4
32-
- filename: packages/contentstack-asset-management/src/import/asset-types.ts
33-
checksum: 479dc445d8abe15664cca14e22ddcb0469e7f5e47d0b4f26b735b2b0c23a5b41
34-
- filename: packages/contentstack-asset-management/src/import/spaces.ts
35-
checksum: c3e97e8099ba81899c104a5b35c7a5cb70d10efb5bd9a507044b843ea1a9a976
36-
- filename: packages/contentstack-query-export/skills/framework/SKILL.md
37-
checksum: b45c4bc28025292c168053e95a3c570b9d67500e0ee5241553089bca6914bb3f
38-
- filename: packages/contentstack-query-export/src/types/index.ts
39-
checksum: 686c5ed7fadb6620201dc3f1ed19c5ba94afd73ad165c33379b8b33dec81e519
40-
- filename: packages/contentstack-query-export/test/unit/query-parser-simple.test.ts
41-
checksum: d187ad885a914b70406e343a92ad3ee1ca3c30207b0d8b040f36c6f287da3a6c
42-
- filename: packages/contentstack-query-export/skills/code-review/SKILL.md
43-
checksum: 1c1cb0b1ce20114b9e855278a63c098d87f9302f093b08eb7f05f667840b6166
44-
- filename: packages/contentstack-query-export/src/commands/cm/stacks/export-query.ts
45-
checksum: 7642419baffc58871fafd9b1811b875e6f9e3e3c0a7d24e8508d137f14414574
46-
- filename: packages/contentstack-query-export/test/unit/query-executor.test.ts
47-
checksum: afa11e89e913b05f4e8475aa27cf6de5ffd870da1c7e75dd59d864d268d11a1b
48-
- filename: packages/contentstack-query-export/src/core/query-executor.ts
49-
checksum: a6bd72f954dc7343a93c3e405c1bbe8f354daa051a2f7dcbf776d3ddf9faa51b
50-
- filename: packages/contentstack-asset-management/test/unit/utils/export-helpers.test.ts
51-
checksum: 0e8751163491fc45e7ae3999282d336ae1ab8a9f88e601cbb85b4f44e8db96b8
52-
- filename: packages/contentstack-export/test/unit/export/modules/base-class.test.ts
53-
checksum: 893a09567def9768c63310326e3bd35c2570bc436a9b9013147c6d383c949e11
15+
checksum: 5dddd4e482975bdb65f3d94383438f09c43fcc8a8d50753d9be4af73b5a171aa
16+
- filename: packages/contentstack-import/src/import/modules/publishing-rules.ts
17+
checksum: 429a803bc18e691db93bae3df1714071d0face6441b82cb938a83e8bf94ae14c
5418
- filename: packages/contentstack-import/src/types/default-config.ts
55-
checksum: 1c09acba953cfd7058a3e0d63f0a9bfbb8f28e903538eaa015fdc611402bbd4f
56-
- filename: packages/contentstack-query-export/test/unit/referenced-asset-handler.test.ts
57-
checksum: 3d19ad04a0306be741f9acd3a2d164d19e2b3803efc0a50342b156e8686c8b0c
58-
- filename: packages/contentstack-asset-management/src/types/export-types.ts
59-
checksum: 48add19a8466083905e15d6a8a925cd5341fa56cb945f91e411ffee9cd08975b
60-
- filename: packages/contentstack-asset-management/src/export/base.ts
61-
checksum: 9b6517336220c61daff94edc71af453ad38c85cd1d6dcf6f0f5c47625c2180a6
62-
- filename: packages/contentstack-asset-management/src/import/base.ts
63-
checksum: 0ac8dba5c5db698cdcaee19203db416554e27221d8ae515bd22006cec8733b3a
64-
- filename: packages/contentstack-asset-management/src/import/fields.ts
65-
checksum: cef6b63729834167a3b1fa78c19bf5af843c33c280f327b9b538b29998046d29
66-
- filename: packages/contentstack-asset-management/src/utils/export-helpers.ts
67-
checksum: 1a0a04d5d86a07307122c5b160d8c3a831f0e17b7a1d2b5aaf16b1a73e231981
68-
- filename: packages/contentstack-asset-management/src/import/assets.ts
69-
checksum: ed6af5d798282808c09643e1dcd1eaede89ce2b09bd0425998af64849b4f3f61
70-
- filename: packages/contentstack-asset-management/src/types/asset-management-api.ts
71-
checksum: 6629720575ab48371734d9455d591a431604b5afb2c5c682816e1571377a43ab
72-
- filename: packages/contentstack-branches/src/commands/cm/branches/merge-status.ts
73-
checksum: 6e5b959ddcc5ff68e03c066ea185fcf6c6e57b1819069730340af35aad8a93a8
74-
- filename: packages/contentstack-branches/src/utils/create-branch.ts
75-
checksum: d0613295ee26f7a77d026e40db0a4ab726fabd0a74965f729f1a66d1ef14768f
76-
- filename: packages/contentstack-branches/src/branch/merge-handler.ts
77-
checksum: 4fd8dba9b723733530b9ba12e81e1d3e5d60b73ac4c082defb10593f257bb133
78-
- filename: packages/contentstack-asset-management/src/utils/asset-management-api-adapter.ts
79-
checksum: 256ddcfbb10ee4ccfac2ea5c2d733199f8830a78896196d1e965109942b234e8
80-
- filename: packages/contentstack-asset-management/test/unit/export/base.test.ts
81-
checksum: 164fc2e5a4337a2739903499b66eecc66a85bb9b50aa2e71079bdd046a195a94
82-
- filename: packages/contentstack-export/test/unit/export/modules/assets.test.ts
83-
checksum: c4dc86b0973af171a11884e0bff9bb9ce5e41df68906d924588c0bf51b19ae9b
84-
- filename: packages/contentstack-asset-management/test/unit/utils/asset-management-api-adapter.test.ts
85-
checksum: ff688f37f40de3f7cbef378ec682ca1167720d902d8d84370464af7feb36c124
86-
- filename: packages/contentstack-export/test/unit/export/modules/stack.test.ts
87-
checksum: 79876b8f635037a2d8ba38dac055e7625bf85db6a3cf5729434e6a97e44857d6
88-
- filename: packages/contentstack-export/test/unit/export/module-exporter.test.ts
89-
checksum: 67b70c93ed679ccb2c61d0c277380676e33c91da8a423f948e81937e5d1d9479
90-
- filename: packages/contentstack-query-export/src/utils/common-helper.ts
91-
checksum: 924a9fbc57dd774a7957870d63366ffc16cd4242dbe684321b9b52a888cfa455
92-
- filename: packages/contentstack-export/test/unit/export/modules/marketplace-apps.test.ts
93-
checksum: 299b8f60cce1f64be7c20786d6a7c9c370474b97b06d1846114a76a70ec20cf7
94-
- filename: packages/contentstack-query-export/src/utils/config-handler.ts
95-
checksum: 2a17dfe46ff5e77bb585013719065db0b513b21d700eb54e6615e78a6811f885
96-
- filename: packages/contentstack-query-export/.eslintrc
97-
checksum: b34756122b251dc2feedc7c7b98a7772d4d763bc468c8291be483ae2ac3471be
98-
- filename: packages/contentstack-query-export/test/config.json
99-
checksum: 792e177efa078e31aa05a5136807fd1fed4b6ea7a4cd44d69353edd8b96ff33f
100-
- filename: packages/contentstack-query-export/test/unit/common-helper.test.ts
101-
checksum: c1d023d8c23e0400805448eb1466da5cb1fe891b6e838100fb12cbc7e1514a59
102-
- filename: packages/contentstack-query-export/src/utils/logger.ts
103-
checksum: de6dd816bc534aaddf9adbe4e1db935f152d32eedaad5b76445f4affa836fcc9
104-
- filename: packages/contentstack-query-export/src/utils/dependency-resolver.ts
105-
checksum: 79e3f53778385e964efa2a407b80a7f624a20e536ad576b684fe51cb224ed701
106-
- filename: packages/contentstack-audit/test/unit/logger-config.js
107-
checksum: 493e2e65939325f48d354469f409f1dbf84462adca995ed3a78461e80148d309
108-
- filename: packages/contentstack-audit/test/unit/base-command.test.ts
109-
checksum: 4208fae6e7cf1aeeb2b936d119c85cdc40e5e3560c7207e04bb94ba3e0305557
110-
- filename: packages/contentstack-audit/src/modules/assets.ts
111-
checksum: 551156796b5cd447a9abb580e95734198d33047d550258361cdd05c0cc9ce041
112-
- filename: packages/contentstack-query-export/test/unit/content-type-helper.test.ts
113-
checksum: 1b4b9724a1281032605b61f007f7a7da080731bd9e0e4b2c4bc00b212ff30242
114-
- filename: packages/contentstack-query-export/test/unit/config-handler.test.ts
115-
checksum: a1077cb686431fea29de839762dbc16c951b6d61171f525e311e4a34182b0d08
116-
- filename: skills/contentstack-cli/SKILL.md
117-
checksum: 36762d43bbacedd0b344f9d4f1179a88e3dbc7e2467341ba42198dcd1bf9e40c
118-
- filename: skills/code-review/SKILL.md
119-
checksum: 29673e16f6b41fcec7fa236912e7f72b920ed4a3d9a66a89308b4a058b247f3e
120-
- filename: packages/contentstack-query-export/README.md
121-
checksum: 9be27e9a5f027f2bbbbcc6d4c706b19071cf40f596ce3e778f33ea7579a52626
122-
- filename: packages/contentstack-query-export/test/unit/module-exporter.test.ts
123-
checksum: e27fab52e65a8d5430d268f3562a823828e9e3dd9eb9569342f1cdb83eef9ea3
124-
- filename: skills/testing/SKILL.md
125-
checksum: ee1c82f1bb51860cb26fb9f112a53df0127e316fcb22a094034024741251fa3c
126-
- filename: packages/contentstack-query-export/test/unit/dependency-resolver.test.ts
127-
checksum: 749931f9ae23ba044e19774ea802627220fd8bffa7d6fe7b9666e866189c3854
128-
- filename: packages/contentstack-audit/test/unit/modules/entries.test.ts
129-
checksum: aaf2e125c5e93ab15364e41559390502a18b83a4b3de5879c02572969381c0a6
19+
checksum: 84589b06580c88dc6722abd663c4b7bb352d1bcfa1f870f4237f6f97b2166f3d
20+
- filename: packages/contentstack-import/test/unit/import/modules/publishing-rules.test.ts
21+
checksum: 0fcbff5dab2f9e594fe2a316c3c96e8d86bcd5d72e7c1f9eb35c0e3458f87817
22+
- filename: packages/contentstack-export/src/types/default-config.ts
23+
checksum: 70c9ca7400c447f2b54f48a07965c7ba34706deee97d68951d6229d523c7e4b0
24+
- filename: packages/contentstack-export/src/types/index.ts
25+
checksum: 4d895dc8355b94847e3e1746d65eb51d5b9434de307ddcd91c0a33083b97b9ef
13026
version: '1.0'

packages/contentstack-bootstrap/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,4 @@
7070
}
7171
},
7272
"repository": "contentstack/cli"
73-
}
73+
}

packages/contentstack-clone/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,4 @@
7777
"cm:stacks:clone": "CLN"
7878
}
7979
}
80-
}
80+
}

packages/contentstack-export/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,4 +94,4 @@
9494
}
9595
},
9696
"repository": "https://github.com/contentstack/cli"
97-
}
97+
}

packages/contentstack-export/src/config/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ const config: DefaultConfig = {
3535
'content-types',
3636
'custom-roles',
3737
'workflows',
38+
'publishing-rules',
3839
'personalize',
3940
'entries',
4041
'labels',
@@ -85,6 +86,11 @@ const config: DefaultConfig = {
8586
fileName: 'workflows.json',
8687
invalidKeys: ['stackHeaders', 'urlPath', 'created_at', 'updated_at', 'created_by', 'updated_by'],
8788
},
89+
'publishing-rules': {
90+
dirName: 'workflows',
91+
fileName: 'publishing-rules.json',
92+
invalidKeys: ['stackHeaders', 'urlPath', 'created_at', 'updated_at', 'created_by', 'updated_by'],
93+
},
8894
globalfields: {
8995
dirName: 'global_fields',
9096
fileName: 'globalfields.json',
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
import omit from 'lodash/omit';
2+
import isEmpty from 'lodash/isEmpty';
3+
import { resolve as pResolve } from 'node:path';
4+
import { handleAndLogError, log } from '@contentstack/cli-utilities';
5+
6+
import BaseClass from './base-class';
7+
import { fsUtil } from '../../utils';
8+
import { PublishingRulesConfig, ModuleClassParams } from '../../types';
9+
10+
export default class ExportPublishingRules extends BaseClass {
11+
private readonly publishingRules: Record<string, Record<string, unknown>> = {};
12+
private readonly publishingRulesConfig: PublishingRulesConfig;
13+
private publishingRulesFolderPath: string;
14+
private readonly qs: { include_count: boolean; skip?: number };
15+
16+
constructor({ exportConfig, stackAPIClient }: ModuleClassParams) {
17+
super({ exportConfig, stackAPIClient });
18+
this.publishingRulesConfig = exportConfig.modules['publishing-rules'];
19+
this.qs = { include_count: true };
20+
this.exportConfig.context.module = 'publishing-rules';
21+
}
22+
23+
async start(): Promise<void> {
24+
this.publishingRulesFolderPath = pResolve(
25+
this.exportConfig.data,
26+
this.exportConfig.branchName || '',
27+
this.publishingRulesConfig.dirName,
28+
);
29+
log.debug(`Publishing rules folder path: ${this.publishingRulesFolderPath}`, this.exportConfig.context);
30+
31+
await fsUtil.makeDirectory(this.publishingRulesFolderPath);
32+
log.debug('Created publishing rules directory', this.exportConfig.context);
33+
34+
await this.fetchAllPublishingRules();
35+
36+
if (isEmpty(this.publishingRules)) {
37+
log.info('No Publishing Rules found', this.exportConfig.context);
38+
return;
39+
}
40+
41+
const outPath = pResolve(this.publishingRulesFolderPath, this.publishingRulesConfig.fileName);
42+
fsUtil.writeFile(outPath, this.publishingRules);
43+
log.success(
44+
`Publishing rules exported successfully! Total count: ${Object.keys(this.publishingRules).length}`,
45+
this.exportConfig.context,
46+
);
47+
}
48+
49+
private async fetchAllPublishingRules(skip = 0): Promise<void> {
50+
try {
51+
if (skip > 0) {
52+
this.qs.skip = skip;
53+
}
54+
55+
const data: { items?: Record<string, unknown>[]; count?: number } = await this.stack
56+
.workflow()
57+
.publishRule()
58+
.fetchAll(this.qs);
59+
60+
const items = data.items ?? [];
61+
const total = data.count ?? items.length;
62+
63+
if (!items.length) {
64+
log.debug('No publishing rules returned for this page', this.exportConfig.context);
65+
return;
66+
}
67+
68+
for (const rule of items) {
69+
const uid = rule.uid as string | undefined;
70+
if (uid) {
71+
this.publishingRules[uid] = omit(rule, this.publishingRulesConfig.invalidKeys) as Record<
72+
string,
73+
unknown
74+
>;
75+
}
76+
}
77+
78+
const nextSkip = skip + items.length;
79+
if (nextSkip < total) {
80+
await this.fetchAllPublishingRules(nextSkip);
81+
}
82+
} catch (error: unknown) {
83+
handleAndLogError(error as Error, { ...this.exportConfig.context });
84+
}
85+
}
86+
}

packages/contentstack-export/src/types/default-config.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,13 @@ export default interface DefaultConfig {
6666
invalidKeys: string[];
6767
dependencies?: Modules[];
6868
};
69+
'publishing-rules': {
70+
dirName: string;
71+
fileName: string;
72+
invalidKeys: string[];
73+
dependencies?: Modules[];
74+
limit?: number;
75+
};
6976
globalfields: {
7077
dirName: string;
7178
fileName: string;

packages/contentstack-export/src/types/index.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ export type Modules =
4747
| 'content-types'
4848
| 'custom-roles'
4949
| 'workflows'
50+
| 'publishing-rules'
5051
| 'labels'
5152
| 'marketplace-apps'
5253
| 'taxonomies'
@@ -118,6 +119,14 @@ export interface WorkflowConfig {
118119
limit?: number;
119120
}
120121

122+
export interface PublishingRulesConfig {
123+
dirName: string;
124+
fileName: string;
125+
invalidKeys: string[];
126+
dependencies?: Modules[];
127+
limit?: number;
128+
}
129+
121130
export interface CustomRoleConfig {
122131
dirName: string;
123132
fileName: string;

packages/contentstack-export/test/unit/export/modules/assets.test.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,11 @@ describe('ExportAssets', () => {
112112
fileName: 'workflows.json',
113113
invalidKeys: [],
114114
},
115+
'publishing-rules': {
116+
dirName: 'workflows',
117+
fileName: 'publishing-rules.json',
118+
invalidKeys: [],
119+
},
115120
globalfields: {
116121
dirName: 'global_fields',
117122
fileName: 'globalfields.json',
@@ -312,6 +317,7 @@ describe('ExportAssets', () => {
312317
return await fn();
313318
});
314319
sinon.stub(exportAssets as any, 'completeProgress');
320+
getAssetsCountStub.withArgs(false).resolves(10).withArgs(true).resolves(5);
315321
});
316322

317323
afterEach(() => {

packages/contentstack-export/test/unit/export/modules/base-class.test.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,11 @@ describe('BaseClass', () => {
129129
fileName: 'workflows.json',
130130
invalidKeys: [],
131131
},
132+
'publishing-rules': {
133+
dirName: 'workflows',
134+
fileName: 'publishing-rules.json',
135+
invalidKeys: [],
136+
},
132137
globalfields: {
133138
dirName: 'global_fields',
134139
fileName: 'globalfields.json',
@@ -240,7 +245,7 @@ describe('BaseClass', () => {
240245
dirName: 'composable_studio',
241246
fileName: 'composable_studio.json',
242247
apiBaseUrl: 'https://api.contentstack.io',
243-
apiVersion: 'v3'
248+
apiVersion: 'v3',
244249
},
245250
},
246251
} as ExportConfig;

0 commit comments

Comments
 (0)