diff --git a/.talismanrc b/.talismanrc index 9c33f5e845..eefb4908d6 100644 --- a/.talismanrc +++ b/.talismanrc @@ -1,226 +1,206 @@ fileignoreconfig: -- filename: package-lock.json - checksum: 4b6996c8623626a9e0907ef1e447e596e2b8eb6e4708e0b7c71a4efde4d8ecd2 -- filename: pnpm-lock.yaml - checksum: 9815aa2ed9c6148ef4567459ec0bc60a6cd57eeffd4d9f011327e6f4348bf44f -- filename: packages/contentstack-import-setup/test/unit/backup-handler.test.ts - checksum: 0582d62b88834554cf12951c8690a73ef3ddbb78b82d2804d994cf4148e1ef93 -- filename: packages/contentstack-import-setup/test/config.json - checksum: 187fd202d00e7d2c3d8b00f983ff21d8535e0fdb76cebec3f39c400258c88d05 -- filename: packages/contentstack-command/test/config.json - checksum: 7c15663b3a6562b99d3082ead5035932b0276e4fd53774b3f838372a19b291ef -- filename: packages/contentstack-import-setup/test/unit/modules/content-types.test.ts - checksum: ce8772281171927e7dee7d6a761a029c902393b808e2696624fdcf0f5b80ea5c -- filename: packages/contentstack-import-setup/test/unit/modules/entries.test.ts - checksum: 17652bfc125879bb37facf8ea9f54dc4f97627ca625ec148c9d551a20196d85b -- filename: packages/contentstack-import-setup/test/unit/modules/extensions.test.ts - checksum: eaafdf39fc8a947aa490232bfc7da950c882bd69b5b27a0362ef2bee21f6a177 -- filename: packages/contentstack-import-setup/test/unit/modules/global-fields.test.ts - checksum: fd49cfab6d374254c0c6eb4c7e7ee8ff4fe6c2b46e7b0d7f7437cbe665d1ce8b -- filename: packages/contentstack-import-setup/test/unit/modules/marketplace-apps.test.ts - checksum: c35dfe96d685fb12427de4b77c9240b34b9bee5e158ad7489acaa0d061ad562e -- filename: packages/contentstack-import-setup/test/unit/modules/taxonomies.test.ts - checksum: 3868ff9e8833a670350590f070c6f635807f2a1f534accba677af4709fab0e4a -- filename: packages/contentstack-import-setup/test/unit/import-config-handler.test.ts - checksum: f2f2c994543c388f2eecaf8128f789eab2895f1f78d659e58ef9491972c6f9a8 -- filename: packages/contentstack-import-setup/test/unit/common-helper.test.ts - checksum: a0c98c6f0ee88a398e3f1bd80cac0a6cc0ede7eee01957cf7d6e1f199f3da643 -- filename: packages/contentstack-import-setup/test/unit/base-setup.test.ts - checksum: 862c52e2bbd1975b963f45ce3e89c243d047858cdbe7339918395ce2fc52bf89 -- filename: packages/contentstack-import-setup/test/unit/import-setup.test.ts - checksum: 1eee4f461fa5b115894d1806a14af6f45336cbe6c0392f16078bd2877fadff67 -- filename: packages/contentstack-import-setup/test/unit/login-handler.test.ts - checksum: e549f9ca3a9aae0d93b7284f7e771d55c0610725ddcb4333612df2f215e92769 -- filename: packages/contentstack/README.md - checksum: 97b2fd7499f21eb330e66b712dc1a9b9bb315db8d8614b46ae0c6966024d5895 -- filename: packages/contentstack-import-setup/test/unit/modules/assets.test.ts - checksum: 449a5e3383631a6f78d1291aa3c28c91681879289398f0a933158fba5c5d5acf -- filename: packages/contentstack-auth/env.example - checksum: 72c9ed18a449c42b03ec54795898f6bad4e15d23a3d701c05b96fb17c3bbd93b -- filename: packages/contentstack-auth/test/integration/auth.test.ts - checksum: 9933a64d17d6d6dd7dd87ff210ce5e8a215bf36fac0cfd333894612ed10fb81b -- filename: packages/contentstack-auth/src/utils/mfa-handler.ts - checksum: ca9c34a3fe6c3b957debff987aefbceb641bf4954f15541d07d901f91e5ff014 -- filename: packages/contentstack-auth/messages/index.json - checksum: 95856ad6273f17a9e853cda9c2cf0bdd782e47aeab93385e73ab870b5e814f89 -- filename: packages/contentstack-auth/test/utils/auth-handler.test.ts - checksum: f88dded3a326f191844e39258e7fe390a72fefeb387d09c7f97e4e8aed520c97 -- filename: packages/contentstack-auth/src/commands/auth/login.ts - checksum: 89204be8dfc1f670a568af992b54f34845e49bd4a8046c0cf041dd3759150718 -- filename: packages/contentstack-auth/test/unit/commands/tokens-add.test.ts - checksum: 1e7247908e1887998210381c03caca93a3983e1c8967483464cf1c3bd3209cd1 -- filename: packages/contentstack-auth/test/unit/commands/logout.test.ts - checksum: cd22dd04bd6a77cafa7dd0960cd4691201a3e228216d5a10041b8e39d7ebba1f -- filename: packages/contentstack-auth/src/utils/auth-handler.ts - checksum: 1261d02e8215da2db28557b77d6a8c8c604e11df88520e1cc5c8561e26bdd150 -- filename: packages/contentstack-auth/test/unit/commands/login.test.ts - checksum: f93aa9b0c964608b60c88d4c72ff33840b58ec900297c4bae1f4ea365aa51048 -- filename: packages/contentstack-auth/test/utils/mfa-handler.test.ts - checksum: b067f93cf0185d794e8419cc41e8fac96ed790dea8fc48dc083ee242ccacbd4d -- filename: packages/contentstack-import/src/import/module-importer.ts - checksum: f0ec2d9205aab0571cabef092e1933f840e8bcdb34bf519c662c34519c233155 -- filename: packages/contentstack-import/src/utils/import-config-handler.ts - checksum: bb8093633dc7de888541990623c3e02a482b7e6f5db0ba396bedc20c4c74b782 -- filename: packages/contentstack-import/src/utils/setup-branch.ts - checksum: a4a968a20d5ab7cbc08c266819907541bbf793cc098521a5e810ada3cbacbee6 -- filename: packages/contentstack-bulk-publish/src/producer/publish-unpublished-env.js - checksum: 96fd15e027f38b156c69f10943ea1d5a70e580fa8a5efeb3286cd7132145c72d -- filename: packages/contentstack-import/src/import/modules/entries.ts - checksum: 2fd4e8ecf75e077632a6408d09997f0921d2a3508f9f2cb8f47fe79a28592300 -- filename: packages/contentstack-utilities/src/logger/logger.ts - checksum: 0a5d7f66e1a207691787f856456b18b62366f8711a5a8b13eb8a052920be2e87 -- filename: packages/contentstack-bootstrap/src/bootstrap/utils.ts - checksum: e66a08cb3cd444071688fbad1e14da309f8504f584cfaed85499d32b623e29e8 -- filename: packages/contentstack-bootstrap/messages/index.json - checksum: c435ceaa709a7504da303a6ea674e07a89030d8ad4152e7917cd17e7f3e58052 -- filename: packages/contentstack-bootstrap/src/config.ts - checksum: cc3270acd9d37479b24792f45a108e0f1c99265f92d59c35c0ec3ee2d1cc390d -- filename: packages/contentstack-clone/src/commands/cm/stacks/clone.js - checksum: 433a84a882ea3f12b27127d47d289dfc64dda6b6fc956369f5851daaa57ae493 -- filename: packages/contentstack-clone/src/lib/util/clone-handler.js - checksum: 7024f22a6ed3908d7cf074bbd8e7107e2d9f43bbcc42939b28d360c89d44cc29 -- filename: packages/contentstack-bulk-publish/src/util/generate-bulk-publish-url.js - checksum: 5f7c1e2fac3e7fab21e861d609c54ca7191ee09fd076dd0adc66604043bf7a43 -- filename: packages/contentstack-import/src/commands/cm/stacks/import.ts - checksum: 0dbf0a6bc447206260b8acd41b85781d60ca50c948bb3ca62f444f97d64d1fb2 -- filename: packages/contentstack-utilities/src/interfaces/index.ts - checksum: d0b0042e643ce0c0489b86f15f3b64f60a837c2ae928b6275028e5e0184b0a7a -- filename: packages/contentstack-variants/src/import/attribute.ts - checksum: 03e764ee2032c44d9493f2be194f91a2337026b7fd8037df90240327e6bcaabb -- filename: packages/contentstack-variants/src/import/audiences.ts - checksum: f24697ef86e928bb4d16f93c021b647639cc344a7f02463d79d69f9434ebed56 -- filename: packages/contentstack-variants/src/import/events.ts - checksum: 88256a99c8ff8d6904df2e3767b39f4761d35ce680b3cabd712c33889bd02fca -- filename: packages/contentstack-import/src/import/modules/personalize.ts - checksum: 1311a613177160637e21b3983b281b384c2cb15837d001a398b67afef30a393a -- filename: packages/contentstack-export/src/export/modules/environments.ts - checksum: fd33318628321583dbeedd70ba7ba97f1e167d364dd26847771d745db295b16f -- filename: packages/contentstack-import/src/import/modules/environments.ts - checksum: 25ec3da4b218c5bbabcfa1af59f26d62e99110bf361a77aab30bfa3ab402da05 -- filename: packages/contentstack-variants/src/utils/constants.ts - checksum: 0ceef8ec8489a05d8ecf07cfa7e92575b0da7d5a6c0ed65b64f46d23aab7074d -- filename: packages/contentstack-export/src/utils/marketplace-app-helper.ts - checksum: fcd17c120a0359baeb61b7bd0f8d1ace2662f7f7293d355867f578312fe3a1a0 -- filename: packages/contentstack-variants/src/import/variant-entries.ts - checksum: 6e645a3d95903058f32306d306912353272e86e60571919a34125a9cd7b69a59 -- filename: packages/contentstack-import/src/utils/interactive.ts - checksum: b401a6166313c184712ff623ea8d95d5548fb3d8b8229c053ae44a1850b54a72 -- filename: packages/contentstack-import-setup/src/utils/backup-handler.ts - checksum: 7db02c6f2627400b28fc96d505bf074d477080a45ba13943709d4845b6ca0908 -- filename: packages/contentstack-import/src/utils/backup-handler.ts - checksum: 0a9accdafce01837166223ed00cd801e2ebb39a4ef952231f67232859a5beea8 -- filename: packages/contentstack-audit/src/modules/global-fields.ts - checksum: 556bd27f78e8261491a7f918919128b8c2cc9d2d55113f440b89384a30481e5f -- filename: packages/contentstack-audit/src/audit-base-command.ts - checksum: 2c710267332619d310dd24461076fc9ca00cc1c991c2913e74a98808fac42c39 -- filename: packages/contentstack-audit/src/modules/custom-roles.ts - checksum: bbe1130f5f5ebf2fa452daef743fe4d40ae9f8fc05c7f8c59c82a3d3d1ed69e8 -- filename: packages/contentstack-audit/src/modules/extensions.ts - checksum: 32af019f0df8288448d11559fe9f7ef61d3e43c3791d45eeec25fd0937c6baad -- filename: packages/contentstack-audit/src/modules/modulesData.ts - checksum: bac8f1971ac2e39bc04d9297b81951fe34ed265dfc985137135f9bbe775cd63c -- filename: packages/contentstack-audit/src/modules/assets.ts - checksum: 5a007804c75976dd192ed2284b7b7edbc5b5fc269fc0e883908b52e4d4f206a8 -- filename: packages/contentstack-audit/src/modules/workflows.ts - checksum: 20d1f1985ea2657d3f9fc41b565a44000cbda47e2a60a576fee2aaff06f49352 -- filename: packages/contentstack-audit/src/modules/field_rules.ts - checksum: 3eaca968126c9e0e12115491f7942341124c9962d5285dd1cfb355d9e60c6106 -- filename: packages/contentstack-audit/src/modules/entries.ts - checksum: 305af34194771343fee4e1d4bef60d065f1b8d1d8c1059a332f5d6c52e637ff1 -- filename: packages/contentstack-audit/test/unit/base-command.test.ts - checksum: b0fa8088fcbb17510fa275bd0dde3f6f4246f2525741c30426f07dd62fe497b0 -- filename: packages/contentstack-audit/src/modules/content-types.ts - checksum: ddf7b08e6a80af09c6a7019a637c26089fb76572c7c3d079a8af244b02985f16 -- filename: packages/contentstack-import/test/unit/commands/cm/stacks/import.test.ts - checksum: b11e57f1b824d405f86438e9e7c59183f8c59b66b42d8d16dbeaf76195a30548 -- filename: packages/contentstack-import/test/unit/utils/asset-helper.test.ts - checksum: 8e83200ac8028f9289ff1bd3a50d191b35c8e28f1854141c90fa1b0134d6bf8a -- filename: packages/contentstack-import/test/unit/import/modules/marketplace-apps.test.ts - checksum: 0d4db99c346e35f49c9da647b4e60c2e3c0203471772e1897affb71cb28f53d8 -- filename: packages/contentstack-import/test/unit/import/modules/mock-data/entries/empty-environments.json - checksum: 1db7db30b8491f79f2881bb862986748c54f75d63d7ee6343517083f7e42a6bf -- filename: packages/contentstack-import/test/unit/import/modules/mock-data/entries/environments.json - checksum: 17f94f500dcb265575b60f8d2cb7464372a234e452527b3bdec6052c606cee28 -- filename: packages/contentstack-import/test/unit/import/modules/entries.test.ts - checksum: 7b984d292a534f9d075d801de2aeff802b2832bc5e2efadf8613a7059f4317fc -- filename: packages/contentstack-import/test/unit/import/modules/labels.test.ts - checksum: 46fe0d1602ab386f7eaee9839bc376b98ab8d4262f823784eda9cfa2bf893758 -- filename: packages/contentstack-export/test/unit/export/modules/assets.test.ts - checksum: 9245c4d4842493e0599e0e5044404be5a01907e64f11825ff169e537758f2cb2 -- filename: packages/contentstack-export/test/unit/export/modules/base-class.test.ts - checksum: c7f9801faeb300f8bd97534ac72441bde5aac625dd4beaf5531945d14d9d4db0 -- filename: packages/contentstack-import/test/unit/import/modules/environments.test.ts - checksum: 58165d06d92f55be8abb04c4ecc47df775a1a47f1cee529f1be5277187700f97 -- filename: packages/contentstack-import/test/unit/import/modules/locales.test.ts - checksum: 011ec3efd7a29ed274f073f8678229eaef46f33e272e7e1db1206fa1a20383f0 -- filename: packages/contentstack-export/test/unit/export/modules/environments.test.ts - checksum: 530573c4c92387b755ca1b4eef88ae8bb2ae076be9a726bba7b67a525cba23e9 -- filename: packages/contentstack-export/test/unit/export/modules/extensions.test.ts - checksum: 857978a21ea981183254245f6b3cb5f51778d68fc726ddb26005ac96c706650f -- filename: packages/contentstack-export/test/unit/export/modules/webhooks.test.ts - checksum: 2e2d75281a57f873fb7f5fff0e5a9e863b631efd2fd92c4d2c81d9c8aeb3e252 -- filename: packages/contentstack-export/test/unit/export/modules/locales.test.ts - checksum: 93bdd99ee566fd38545b38a8b528947af1d42a31908aca85e2cb221e39a5b6cc -- filename: packages/contentstack-export/test/unit/export/modules/stack.test.ts - checksum: bb0f20845d85fd56197f1a8c67b8f71c57dcd1836ed9cfd86d1f49f41e84d3a0 -- filename: packages/contentstack-export/test/unit/export/modules/taxonomies.test.ts - checksum: 5b1d2ba5ec9100fd6174e9c6771b7e49c93a09fa2d6aedadd338e56bc3e3610f -- filename: packages/contentstack-export/test/unit/export/modules/custom-roles.test.ts - checksum: 39f0166a8030ee8f504301f3a42cc71b46ddc027189b90029ef19800b79a46e5 -- filename: packages/contentstack-export/test/unit/export/modules/workflows.test.ts - checksum: c5ddb72558ffbe044abd2da7c1e2a922dbc0a99b3f31fa9df743ad1628ffd1e5 -- filename: packages/contentstack-export/test/unit/export/modules/content-types.test.ts - checksum: 457912f0f1ad3cadabbdf19cff6c325164e76063f12b968a00af37ec15a875e9 -- filename: packages/contentstack-export/test/unit/export/modules/global-fields.test.ts - checksum: 64d204d0ff6232d161275b1df5b2ea5612b53c72d9ba2c22bd13564229353c4d -- filename: packages/contentstack-import/test/unit/import/modules/webhooks.test.ts - checksum: 9f6dc9fb12f0d30600dac28846c7a9972e1dafe7c7bf5385ea677100a1d8fbd1 -- filename: packages/contentstack-import/test/unit/import/module-importer.test.ts - checksum: aa265917b806286c8d4d1d3f422cf5d6736a0cf6a5f50f2e9c04ec0f81eee376 -- filename: packages/contentstack-import/test/unit/import/modules/index.test.ts - checksum: aab773ccbe05b990a4b934396ee2fcd2a780e7d886d080740cfddd8a4d4f73f7 -- filename: packages/contentstack-import/test/unit/import/modules/personalize.test.ts - checksum: ea4140a1516630fbfcdd61c4fe216414b733b4df2410b5d090d58ab1a22e7dbf -- filename: packages/contentstack-import/test/unit/import/modules/variant-entries.test.ts - checksum: abcc2ce0b305afb655eb46a1652b3d9e807a2a2e0eef1caeb16c8ae83af4f1a1 -- filename: packages/contentstack-export/test/unit/utils/common-helper.test.ts - checksum: 276e850e4caddc89372f09f4eee5832cc4ab5b513da2a662a821f5feb8561349 -- filename: packages/contentstack-export/test/unit/utils/file-helper.test.ts - checksum: a16f5833515ececd93c582b35d19b8a5df4880f22126fba18f110692c679025b -- filename: packages/contentstack-export/test/unit/utils/export-config-handler.test.ts - checksum: ba02c3d580e02fc4ecd5e6a0fc59e6c7d56d7de735339aa00e2c2241ffe22176 -- filename: packages/contentstack-export/test/unit/utils/interactive.test.ts - checksum: b619744ebba28dbafe3a0e65781a61a6823ccaa3eb84e2b380a323c105324c1a -- filename: packages/contentstack-import/test/unit/utils/backup-handler.test.ts - checksum: 696aea5f9a4ccd75fe22e4a839f9ad279077f59d738ed62864b91aed7b54f053 -- filename: packages/contentstack-import/test/unit/utils/mock-data/common-helper/import-configs.json - checksum: 1f48841db580d53ec39db163c8ef45bff26545dd51cdeb9b201a66ff96c31693 -- filename: packages/contentstack-import/test/unit/utils/mock-data/file-helper/test-data.json - checksum: db64a1f13a3079080ffd0aeea36a3a7576e56f27b57befc6e077aa45f147a3de -- filename: packages/contentstack-import/test/unit/utils/file-helper.test.ts - checksum: a5cd371d7f327c083027da4157b3c5b4df548f2c2c3ad6193aa133031994252e -- filename: packages/contentstack-import/test/unit/utils/common-helper.test.ts - checksum: 61b3cfe0c0571dcc366e372990e3c11ced2b49703ac88155110d33897e58ca5d -- filename: packages/contentstack-import/test/unit/import/module-importer.test.ts - checksum: aa265917b806286c8d4d1d3f422cf5d6736a0cf6a5f50f2e9c04ec0f81eee376 -- filename: packages/contentstack-export/test/unit/utils/interactive.test.ts - checksum: b619744ebba28dbafe3a0e65781a61a6823ccaa3eb84e2b380a323c105324c1a -- filename: packages/contentstack-import/test/unit/import/modules/index.test.ts - checksum: aab773ccbe05b990a4b934396ee2fcd2a780e7d886d080740cfddd8a4d4f73f7 -- filename: packages/contentstack-import/test/unit/import/modules/personalize.test.ts - checksum: ea4140a1516630fbfcdd61c4fe216414b733b4df2410b5d090d58ab1a22e7dbf -- filename: packages/contentstack-import/test/unit/import/modules/variant-entries.test.ts - checksum: abcc2ce0b305afb655eb46a1652b3d9e807a2a2e0eef1caeb16c8ae83af4f1a1 -- filename: packages/contentstack-import/test/unit/utils/import-path-resolver.test.ts - checksum: 05436c24619b2d79b51eda9ce9a338182cc69b078ede60d310bfd55a62db8369 -- filename: packages/contentstack-import/test/unit/utils/interactive.test.ts - checksum: 77a45bd7326062053b98d1333fa59147757a5a8abdb34057a347ca2a1b95b343 -- filename: packages/contentstack-import/test/unit/utils/import-config-handler.test.ts - checksum: 20bbfb405a183b577f8ae8f2b47013bc42729aa817d617264e0c3a70b3fa752b -- filename: packages/contentstack-import/test/unit/utils/login-handler.test.ts - checksum: bea00781cdffc2d085b3c85d6bde75f12faa3ee51930c92e59777750a6727325 -- filename: packages/contentstack-import/test/unit/utils/marketplace-app-helper.test.ts - checksum: eca2702d1f7ed075b9b857964b9e56f69b16e4a31942423d6b1265e4bf398db5 -- filename: packages/contentstack-import/test/unit/utils/logger.test.ts - checksum: 794e06e657a7337c8f094d6042fb04c779683f97b860efae14e075098d2af024 -version: "1.0" \ No newline at end of file + - filename: package-lock.json + checksum: d3b93fad9630655f037e36b78fea3354f1a038988562254afdad0f6e54ece12d + - filename: pnpm-lock.yaml + checksum: aa6177859aaa87caf2892e8034657fd485c3abe7c13a833fd28449a1d33fa950 + - filename: packages/contentstack-import-setup/test/unit/backup-handler.test.ts + checksum: 0582d62b88834554cf12951c8690a73ef3ddbb78b82d2804d994cf4148e1ef93 + - filename: packages/contentstack-import-setup/test/config.json + checksum: 187fd202d00e7d2c3d8b00f983ff21d8535e0fdb76cebec3f39c400258c88d05 + - filename: packages/contentstack-command/test/config.json + checksum: 7c15663b3a6562b99d3082ead5035932b0276e4fd53774b3f838372a19b291ef + - filename: packages/contentstack-import-setup/test/unit/modules/content-types.test.ts + checksum: ce8772281171927e7dee7d6a761a029c902393b808e2696624fdcf0f5b80ea5c + - filename: packages/contentstack-import-setup/test/unit/modules/entries.test.ts + checksum: 17652bfc125879bb37facf8ea9f54dc4f97627ca625ec148c9d551a20196d85b + - filename: packages/contentstack-import-setup/test/unit/modules/extensions.test.ts + checksum: eaafdf39fc8a947aa490232bfc7da950c882bd69b5b27a0362ef2bee21f6a177 + - filename: packages/contentstack-import-setup/test/unit/modules/global-fields.test.ts + checksum: fd49cfab6d374254c0c6eb4c7e7ee8ff4fe6c2b46e7b0d7f7437cbe665d1ce8b + - filename: packages/contentstack-import-setup/test/unit/modules/marketplace-apps.test.ts + checksum: c35dfe96d685fb12427de4b77c9240b34b9bee5e158ad7489acaa0d061ad562e + - filename: packages/contentstack-import-setup/test/unit/modules/taxonomies.test.ts + checksum: 3868ff9e8833a670350590f070c6f635807f2a1f534accba677af4709fab0e4a + - filename: packages/contentstack-import-setup/test/unit/import-config-handler.test.ts + checksum: f2f2c994543c388f2eecaf8128f789eab2895f1f78d659e58ef9491972c6f9a8 + - filename: packages/contentstack-import-setup/test/unit/common-helper.test.ts + checksum: a0c98c6f0ee88a398e3f1bd80cac0a6cc0ede7eee01957cf7d6e1f199f3da643 + - filename: packages/contentstack-import-setup/test/unit/base-setup.test.ts + checksum: 862c52e2bbd1975b963f45ce3e89c243d047858cdbe7339918395ce2fc52bf89 + - filename: packages/contentstack-import-setup/test/unit/import-setup.test.ts + checksum: 1eee4f461fa5b115894d1806a14af6f45336cbe6c0392f16078bd2877fadff67 + - filename: packages/contentstack-import-setup/test/unit/login-handler.test.ts + checksum: e549f9ca3a9aae0d93b7284f7e771d55c0610725ddcb4333612df2f215e92769 + - filename: packages/contentstack/README.md + checksum: 10f580c697d0b70b813428954b946e60609f41c42e78ca95ca3232443e725615 + - filename: packages/contentstack-import-setup/test/unit/modules/assets.test.ts + checksum: 449a5e3383631a6f78d1291aa3c28c91681879289398f0a933158fba5c5d5acf + - filename: packages/contentstack-auth/env.example + checksum: 72c9ed18a449c42b03ec54795898f6bad4e15d23a3d701c05b96fb17c3bbd93b + - filename: packages/contentstack-auth/test/integration/auth.test.ts + checksum: 9933a64d17d6d6dd7dd87ff210ce5e8a215bf36fac0cfd333894612ed10fb81b + - filename: packages/contentstack-auth/src/utils/mfa-handler.ts + checksum: ca9c34a3fe6c3b957debff987aefbceb641bf4954f15541d07d901f91e5ff014 + - filename: packages/contentstack-auth/messages/index.json + checksum: 95856ad6273f17a9e853cda9c2cf0bdd782e47aeab93385e73ab870b5e814f89 + - filename: packages/contentstack-auth/test/utils/auth-handler.test.ts + checksum: f88dded3a326f191844e39258e7fe390a72fefeb387d09c7f97e4e8aed520c97 + - filename: packages/contentstack-auth/src/commands/auth/login.ts + checksum: 89204be8dfc1f670a568af992b54f34845e49bd4a8046c0cf041dd3759150718 + - filename: packages/contentstack-auth/test/unit/commands/tokens-add.test.ts + checksum: 1e7247908e1887998210381c03caca93a3983e1c8967483464cf1c3bd3209cd1 + - filename: packages/contentstack-auth/test/unit/commands/logout.test.ts + checksum: cd22dd04bd6a77cafa7dd0960cd4691201a3e228216d5a10041b8e39d7ebba1f + - filename: packages/contentstack-auth/src/utils/auth-handler.ts + checksum: 1261d02e8215da2db28557b77d6a8c8c604e11df88520e1cc5c8561e26bdd150 + - filename: packages/contentstack-auth/test/unit/commands/login.test.ts + checksum: f93aa9b0c964608b60c88d4c72ff33840b58ec900297c4bae1f4ea365aa51048 + - filename: packages/contentstack-auth/test/utils/mfa-handler.test.ts + checksum: b067f93cf0185d794e8419cc41e8fac96ed790dea8fc48dc083ee242ccacbd4d + - filename: packages/contentstack-import/src/import/module-importer.ts + checksum: 93fac2407e20070aa393f783e5a21093e99424e5fd2873aabc2099ac3ea02b27 + - filename: packages/contentstack-import/src/utils/import-config-handler.ts + checksum: bb8093633dc7de888541990623c3e02a482b7e6f5db0ba396bedc20c4c74b782 + - filename: packages/contentstack-import/src/utils/setup-branch.ts + checksum: a4a968a20d5ab7cbc08c266819907541bbf793cc098521a5e810ada3cbacbee6 + - filename: packages/contentstack-bulk-publish/src/producer/publish-unpublished-env.js + checksum: 96fd15e027f38b156c69f10943ea1d5a70e580fa8a5efeb3286cd7132145c72d + - filename: packages/contentstack-import/src/import/modules/entries.ts + checksum: 2fd4e8ecf75e077632a6408d09997f0921d2a3508f9f2cb8f47fe79a28592300 + - filename: packages/contentstack-utilities/src/logger/logger.ts + checksum: 76429bc87e279624b386f00e7eb3f4ec25621ace7056289f812b9a076d6e184e + - filename: packages/contentstack-bootstrap/src/bootstrap/utils.ts + checksum: e66a08cb3cd444071688fbad1e14da309f8504f584cfaed85499d32b623e29e8 + - filename: packages/contentstack-bootstrap/messages/index.json + checksum: c435ceaa709a7504da303a6ea674e07a89030d8ad4152e7917cd17e7f3e58052 + - filename: packages/contentstack-bootstrap/src/config.ts + checksum: cc3270acd9d37479b24792f45a108e0f1c99265f92d59c35c0ec3ee2d1cc390d + - filename: packages/contentstack-clone/src/commands/cm/stacks/clone.js + checksum: 433a84a882ea3f12b27127d47d289dfc64dda6b6fc956369f5851daaa57ae493 + - filename: packages/contentstack-clone/src/lib/util/clone-handler.js + checksum: 7024f22a6ed3908d7cf074bbd8e7107e2d9f43bbcc42939b28d360c89d44cc29 + - filename: packages/contentstack-bulk-publish/src/util/generate-bulk-publish-url.js + checksum: 5f7c1e2fac3e7fab21e861d609c54ca7191ee09fd076dd0adc66604043bf7a43 + - filename: packages/contentstack-import/src/utils/interactive.ts + checksum: b401a6166313c184712ff623ea8d95d5548fb3d8b8229c053ae44a1850b54a72 + - filename: packages/contentstack-import-setup/src/utils/backup-handler.ts + checksum: 7db02c6f2627400b28fc96d505bf074d477080a45ba13943709d4845b6ca0908 + - filename: packages/contentstack-import/src/utils/backup-handler.ts + checksum: 0a9accdafce01837166223ed00cd801e2ebb39a4ef952231f67232859a5beea8 + - filename: packages/contentstack-audit/src/modules/global-fields.ts + checksum: 556bd27f78e8261491a7f918919128b8c2cc9d2d55113f440b89384a30481e5f + - filename: packages/contentstack-audit/src/audit-base-command.ts + checksum: 2c710267332619d310dd24461076fc9ca00cc1c991c2913e74a98808fac42c39 + - filename: packages/contentstack-audit/src/modules/custom-roles.ts + checksum: bbe1130f5f5ebf2fa452daef743fe4d40ae9f8fc05c7f8c59c82a3d3d1ed69e8 + - filename: packages/contentstack-audit/src/modules/extensions.ts + checksum: 32af019f0df8288448d11559fe9f7ef61d3e43c3791d45eeec25fd0937c6baad + - filename: packages/contentstack-audit/src/modules/modulesData.ts + checksum: bac8f1971ac2e39bc04d9297b81951fe34ed265dfc985137135f9bbe775cd63c + - filename: packages/contentstack-audit/src/modules/assets.ts + checksum: 5a007804c75976dd192ed2284b7b7edbc5b5fc269fc0e883908b52e4d4f206a8 + - filename: packages/contentstack-audit/src/modules/workflows.ts + checksum: 20d1f1985ea2657d3f9fc41b565a44000cbda47e2a60a576fee2aaff06f49352 + - filename: packages/contentstack-audit/src/modules/field_rules.ts + checksum: 3eaca968126c9e0e12115491f7942341124c9962d5285dd1cfb355d9e60c6106 + - filename: packages/contentstack-audit/src/modules/entries.ts + checksum: 305af34194771343fee4e1d4bef60d065f1b8d1d8c1059a332f5d6c52e637ff1 + - filename: packages/contentstack-audit/test/unit/base-command.test.ts + checksum: b0fa8088fcbb17510fa275bd0dde3f6f4246f2525741c30426f07dd62fe497b0 + - filename: packages/contentstack-audit/src/modules/content-types.ts + checksum: ddf7b08e6a80af09c6a7019a637c26089fb76572c7c3d079a8af244b02985f16 + - filename: packages/contentstack-import/test/unit/commands/cm/stacks/import.test.ts + checksum: b11e57f1b824d405f86438e9e7c59183f8c59b66b42d8d16dbeaf76195a30548 + - filename: packages/contentstack-import/test/unit/utils/asset-helper.test.ts + checksum: 8e83200ac8028f9289ff1bd3a50d191b35c8e28f1854141c90fa1b0134d6bf8a + - filename: packages/contentstack-import/test/unit/import/modules/marketplace-apps.test.ts + checksum: 0d4db99c346e35f49c9da647b4e60c2e3c0203471772e1897affb71cb28f53d8 + - filename: packages/contentstack-import/test/unit/import/modules/mock-data/entries/empty-environments.json + checksum: 1db7db30b8491f79f2881bb862986748c54f75d63d7ee6343517083f7e42a6bf + - filename: packages/contentstack-import/test/unit/import/modules/mock-data/entries/environments.json + checksum: 17f94f500dcb265575b60f8d2cb7464372a234e452527b3bdec6052c606cee28 + - filename: packages/contentstack-import/test/unit/import/modules/entries.test.ts + checksum: 7b984d292a534f9d075d801de2aeff802b2832bc5e2efadf8613a7059f4317fc + - filename: packages/contentstack-import/test/unit/import/modules/labels.test.ts + checksum: 46fe0d1602ab386f7eaee9839bc376b98ab8d4262f823784eda9cfa2bf893758 + - filename: packages/contentstack-export/test/unit/export/modules/assets.test.ts + checksum: 9245c4d4842493e0599e0e5044404be5a01907e64f11825ff169e537758f2cb2 + - filename: packages/contentstack-export/test/unit/export/modules/base-class.test.ts + checksum: c7f9801faeb300f8bd97534ac72441bde5aac625dd4beaf5531945d14d9d4db0 + - filename: packages/contentstack-import/test/unit/import/modules/environments.test.ts + checksum: 58165d06d92f55be8abb04c4ecc47df775a1a47f1cee529f1be5277187700f97 + - filename: packages/contentstack-import/test/unit/import/modules/locales.test.ts + checksum: 011ec3efd7a29ed274f073f8678229eaef46f33e272e7e1db1206fa1a20383f0 + - filename: packages/contentstack-export/test/unit/export/modules/environments.test.ts + checksum: 530573c4c92387b755ca1b4eef88ae8bb2ae076be9a726bba7b67a525cba23e9 + - filename: packages/contentstack-export/test/unit/export/modules/extensions.test.ts + checksum: 857978a21ea981183254245f6b3cb5f51778d68fc726ddb26005ac96c706650f + - filename: packages/contentstack-export/test/unit/export/modules/webhooks.test.ts + checksum: 2e2d75281a57f873fb7f5fff0e5a9e863b631efd2fd92c4d2c81d9c8aeb3e252 + - filename: packages/contentstack-export/test/unit/export/modules/locales.test.ts + checksum: 93bdd99ee566fd38545b38a8b528947af1d42a31908aca85e2cb221e39a5b6cc + - filename: packages/contentstack-export/test/unit/export/modules/stack.test.ts + checksum: bb0f20845d85fd56197f1a8c67b8f71c57dcd1836ed9cfd86d1f49f41e84d3a0 + - filename: packages/contentstack-export/test/unit/export/modules/taxonomies.test.ts + checksum: 5b1d2ba5ec9100fd6174e9c6771b7e49c93a09fa2d6aedadd338e56bc3e3610f + - filename: packages/contentstack-export/test/unit/export/modules/custom-roles.test.ts + checksum: 39f0166a8030ee8f504301f3a42cc71b46ddc027189b90029ef19800b79a46e5 + - filename: packages/contentstack-export/test/unit/export/modules/workflows.test.ts + checksum: c5ddb72558ffbe044abd2da7c1e2a922dbc0a99b3f31fa9df743ad1628ffd1e5 + - filename: packages/contentstack-export/test/unit/export/modules/content-types.test.ts + checksum: 457912f0f1ad3cadabbdf19cff6c325164e76063f12b968a00af37ec15a875e9 + - filename: packages/contentstack-export/test/unit/export/modules/global-fields.test.ts + checksum: 64d204d0ff6232d161275b1df5b2ea5612b53c72d9ba2c22bd13564229353c4d + - filename: packages/contentstack-import/test/unit/import/modules/webhooks.test.ts + checksum: 9f6dc9fb12f0d30600dac28846c7a9972e1dafe7c7bf5385ea677100a1d8fbd1 + - filename: packages/contentstack-import/test/unit/import/module-importer.test.ts + checksum: aa265917b806286c8d4d1d3f422cf5d6736a0cf6a5f50f2e9c04ec0f81eee376 + - filename: packages/contentstack-import/test/unit/import/modules/index.test.ts + checksum: aab773ccbe05b990a4b934396ee2fcd2a780e7d886d080740cfddd8a4d4f73f7 + - filename: packages/contentstack-import/test/unit/import/modules/personalize.test.ts + checksum: ea4140a1516630fbfcdd61c4fe216414b733b4df2410b5d090d58ab1a22e7dbf + - filename: packages/contentstack-import/test/unit/import/modules/variant-entries.test.ts + checksum: abcc2ce0b305afb655eb46a1652b3d9e807a2a2e0eef1caeb16c8ae83af4f1a1 + - filename: packages/contentstack-export/test/unit/utils/common-helper.test.ts + checksum: 276e850e4caddc89372f09f4eee5832cc4ab5b513da2a662a821f5feb8561349 + - filename: packages/contentstack-export/test/unit/utils/file-helper.test.ts + checksum: a16f5833515ececd93c582b35d19b8a5df4880f22126fba18f110692c679025b + - filename: packages/contentstack-export/test/unit/utils/export-config-handler.test.ts + checksum: ba02c3d580e02fc4ecd5e6a0fc59e6c7d56d7de735339aa00e2c2241ffe22176 + - filename: packages/contentstack-export/test/unit/utils/interactive.test.ts + checksum: b619744ebba28dbafe3a0e65781a61a6823ccaa3eb84e2b380a323c105324c1a + - filename: packages/contentstack-import/test/unit/utils/backup-handler.test.ts + checksum: 696aea5f9a4ccd75fe22e4a839f9ad279077f59d738ed62864b91aed7b54f053 + - filename: packages/contentstack-import/test/unit/utils/mock-data/common-helper/import-configs.json + checksum: 1f48841db580d53ec39db163c8ef45bff26545dd51cdeb9b201a66ff96c31693 + - filename: packages/contentstack-import/test/unit/utils/mock-data/file-helper/test-data.json + checksum: db64a1f13a3079080ffd0aeea36a3a7576e56f27b57befc6e077aa45f147a3de + - filename: packages/contentstack-import/test/unit/utils/file-helper.test.ts + checksum: a5cd371d7f327c083027da4157b3c5b4df548f2c2c3ad6193aa133031994252e + - filename: packages/contentstack-import/test/unit/utils/common-helper.test.ts + checksum: 61b3cfe0c0571dcc366e372990e3c11ced2b49703ac88155110d33897e58ca5d + - filename: packages/contentstack-import/test/unit/import/module-importer.test.ts + checksum: aa265917b806286c8d4d1d3f422cf5d6736a0cf6a5f50f2e9c04ec0f81eee376 + - filename: packages/contentstack-export/test/unit/utils/interactive.test.ts + checksum: b619744ebba28dbafe3a0e65781a61a6823ccaa3eb84e2b380a323c105324c1a + - filename: packages/contentstack-import/test/unit/import/modules/index.test.ts + checksum: aab773ccbe05b990a4b934396ee2fcd2a780e7d886d080740cfddd8a4d4f73f7 + - filename: packages/contentstack-import/test/unit/import/modules/personalize.test.ts + checksum: ea4140a1516630fbfcdd61c4fe216414b733b4df2410b5d090d58ab1a22e7dbf + - filename: packages/contentstack-import/test/unit/import/modules/variant-entries.test.ts + checksum: abcc2ce0b305afb655eb46a1652b3d9e807a2a2e0eef1caeb16c8ae83af4f1a1 + - filename: packages/contentstack-import/test/unit/utils/import-path-resolver.test.ts + checksum: 05436c24619b2d79b51eda9ce9a338182cc69b078ede60d310bfd55a62db8369 + - filename: packages/contentstack-import/test/unit/utils/interactive.test.ts + checksum: 77a45bd7326062053b98d1333fa59147757a5a8abdb34057a347ca2a1b95b343 + - filename: packages/contentstack-import/test/unit/utils/import-config-handler.test.ts + checksum: 20bbfb405a183b577f8ae8f2b47013bc42729aa817d617264e0c3a70b3fa752b + - filename: packages/contentstack-import/test/unit/utils/login-handler.test.ts + checksum: bea00781cdffc2d085b3c85d6bde75f12faa3ee51930c92e59777750a6727325 + - filename: packages/contentstack-import/test/unit/utils/marketplace-app-helper.test.ts + checksum: eca2702d1f7ed075b9b857964b9e56f69b16e4a31942423d6b1265e4bf398db5 + - filename: packages/contentstack-import/test/unit/utils/logger.test.ts + checksum: 794e06e657a7337c8f094d6042fb04c779683f97b860efae14e075098d2af024 + - filename: packages/contentstack-import-setup/src/import/modules/taxonomies.ts + checksum: 49dd8e754a0d3635585a74e943ab097593f061089a7cddc22683ec6caddbb3c5 +version: '1.0' diff --git a/package-lock.json b/package-lock.json index 2616661021..77195390fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26894,8 +26894,8 @@ "@contentstack/cli-cm-export": "~2.0.0-beta.2", "@contentstack/cli-cm-export-to-csv": "~1.10.0", "@contentstack/cli-cm-import": "~2.0.0-beta.2", - "@contentstack/cli-cm-import-setup": "1.6.1", - "@contentstack/cli-cm-migrate-rte": "~1.6.2", + "@contentstack/cli-cm-import-setup": "1.7.0", + "@contentstack/cli-cm-migrate-rte": "~1.7.0", "@contentstack/cli-cm-seed": "~2.0.0-beta.2", "@contentstack/cli-command": "~1.6.2", "@contentstack/cli-config": "~1.15.3", @@ -28370,7 +28370,7 @@ }, "packages/contentstack-import-setup": { "name": "@contentstack/cli-cm-import-setup", - "version": "1.6.1", + "version": "1.7.0", "license": "MIT", "dependencies": { "@contentstack/cli-command": "~1.6.1", diff --git a/packages/contentstack-import-setup/README.md b/packages/contentstack-import-setup/README.md index 490c7e5d61..41d492f0bc 100644 --- a/packages/contentstack-import-setup/README.md +++ b/packages/contentstack-import-setup/README.md @@ -47,7 +47,7 @@ $ npm install -g @contentstack/cli-cm-import-setup $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-cm-import-setup/1.6.1 darwin-arm64 node-v22.14.0 +@contentstack/cli-cm-import-setup/1.7.0 darwin-arm64 node-v22.13.1 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-import-setup/package.json b/packages/contentstack-import-setup/package.json index aa0439f788..fa80aab692 100644 --- a/packages/contentstack-import-setup/package.json +++ b/packages/contentstack-import-setup/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli-cm-import-setup", "description": "Contentstack CLI plugin to setup the mappers and configurations for the import command", - "version": "1.6.1", + "version": "1.7.0", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { diff --git a/packages/contentstack-import-setup/src/config/index.ts b/packages/contentstack-import-setup/src/config/index.ts index 782cce9ea4..ea7d40b0f9 100644 --- a/packages/contentstack-import-setup/src/config/index.ts +++ b/packages/contentstack-import-setup/src/config/index.ts @@ -22,6 +22,11 @@ const config: DefaultConfig = { fileName: 'custom-roles.json', dependencies: ['environments', 'entries'], }, + locales: { + dirName: 'locales', + fileName: 'locales.json', + dependencies: [], + }, environments: { dirName: 'environments', fileName: 'environments.json', @@ -43,7 +48,7 @@ const config: DefaultConfig = { entries: { dirName: 'entries', fileName: 'entries.json', - dependencies: ['assets', 'marketplace-apps', 'taxonomies'], + dependencies: ['assets', 'extensions', 'marketplace-apps', 'taxonomies'], }, 'global-fields': { dirName: 'global_fields', diff --git a/packages/contentstack-import-setup/src/import/modules/taxonomies.ts b/packages/contentstack-import-setup/src/import/modules/taxonomies.ts index 9cfe57ea0c..38dcad4c9c 100644 --- a/packages/contentstack-import-setup/src/import/modules/taxonomies.ts +++ b/packages/contentstack-import-setup/src/import/modules/taxonomies.ts @@ -2,13 +2,14 @@ import { join } from 'path'; import omit from 'lodash/omit'; import isEmpty from 'lodash/isEmpty'; -import { log, fsUtil } from '../../utils'; +import { log, fsUtil, fileHelper } from '../../utils'; import { ImportConfig, ModuleClassParams, TaxonomyQueryParams } from '../../types'; import { sanitizePath } from '@contentstack/cli-utilities'; export default class TaxonomiesImportSetup { private config: ImportConfig; private taxonomiesFilePath: string; + private taxonomiesFolderPath: string; private stackAPIClient: ModuleClassParams['stackAPIClient']; private dependencies: ModuleClassParams['dependencies']; private taxonomiesConfig: ImportConfig['modules']['taxonomies']; @@ -16,18 +17,33 @@ export default class TaxonomiesImportSetup { private taxSuccessPath: string; private taxonomiesMapperDirPath: string; private termsMapperDirPath: string; + private localesFilePath: string; + private isLocaleBasedStructure: boolean = false; public taxonomiesMapper: Record = {}; public termsMapper: Record = {}; + public masterLocaleFilePath: string; constructor({ config, stackAPIClient }: ModuleClassParams) { this.config = config; this.stackAPIClient = stackAPIClient; - this.taxonomiesFilePath = join(sanitizePath(this.config.contentDir), 'taxonomies', 'taxonomies.json'); + this.taxonomiesFolderPath = join(sanitizePath(this.config.contentDir), 'taxonomies'); + this.taxonomiesFilePath = join(this.taxonomiesFolderPath, 'taxonomies.json'); this.taxonomiesConfig = config.modules.taxonomies; this.taxonomiesMapperDirPath = join(sanitizePath(this.config.backupDir), 'mapper', 'taxonomies'); this.taxSuccessPath = join(sanitizePath(this.taxonomiesMapperDirPath), 'success.json'); this.termsMapperDirPath = join(sanitizePath(this.taxonomiesMapperDirPath), 'terms'); this.termsSuccessPath = join(sanitizePath(this.termsMapperDirPath), 'success.json'); + this.localesFilePath = join( + sanitizePath(this.config.contentDir), + config.modules.locales?.dirName || 'locales', + config.modules.locales?.fileName || 'locales.json', + ); + this.masterLocaleFilePath = join( + sanitizePath(this.config.contentDir), + config.modules.locales?.dirName || 'locales', + 'master-locale.json', + ); + this.taxonomiesMapper = {}; this.termsMapper = {}; } @@ -41,21 +57,19 @@ export default class TaxonomiesImportSetup { try { const taxonomies: any = fsUtil.readFile(this.taxonomiesFilePath); if (!isEmpty(taxonomies)) { + // 1. Detect locale-based structure + this.isLocaleBasedStructure = this.detectLocaleBasedStructure(); + // 2. Create mapper directory fsUtil.makeDirectory(this.taxonomiesMapperDirPath); fsUtil.makeDirectory(this.termsMapperDirPath); - for (const taxonomy of Object.values(taxonomies) as any) { - let targetTaxonomy: any = await this.getTaxonomies(taxonomy); - if (!targetTaxonomy) { - log(this.config, `Taxonomies with uid '${taxonomy.uid}' not found in the stack!`, 'info'); - continue; - } - targetTaxonomy = this.sanitizeTaxonomyAttribs(targetTaxonomy); - this.taxonomiesMapper[taxonomy.uid] = targetTaxonomy; - const terms = await this.getAllTermsOfTaxonomy(targetTaxonomy); - const sanitizedTerms = this.sanitizeTermsAttribs(terms); - this.termsMapper[taxonomy.uid] = sanitizedTerms; + if (this.isLocaleBasedStructure) { + log(this.config, 'Detected locale-based folder structure for taxonomies', 'info'); + await this.setupTaxonomiesByLocale(taxonomies); + } else { + log(this.config, 'Using legacy folder structure for taxonomies', 'info'); + await this.setupTaxonomiesLegacy(taxonomies); } if (this.taxonomiesMapper !== undefined && !isEmpty(this.taxonomiesMapper)) { @@ -74,18 +88,176 @@ export default class TaxonomiesImportSetup { } } + /** + * Setup taxonomies using legacy format (root-level taxonomy files) + */ + async setupTaxonomiesLegacy(taxonomies: any): Promise { + for (const taxonomy of Object.values(taxonomies) as any) { + let targetTaxonomy: any = await this.getTaxonomies(taxonomy); + if (!targetTaxonomy) { + log(this.config, `Taxonomies with uid '${taxonomy.uid}' not found in the stack!`, 'info'); + continue; + } + targetTaxonomy = this.sanitizeTaxonomyAttribs(targetTaxonomy); + this.taxonomiesMapper[taxonomy.uid] = targetTaxonomy; + const terms = await this.getAllTermsOfTaxonomy(targetTaxonomy); + if (Array.isArray(terms) && terms.length > 0) { + log(this.config, `Terms found for taxonomy '${taxonomy.uid}', processing...`, 'info'); + const sanitizedTerms = this.sanitizeTermsAttribs(terms); + this.termsMapper[taxonomy.uid] = sanitizedTerms; + } else { + log(this.config, `No terms found for taxonomy '${taxonomy.uid}', skipping...`, 'info'); + } + } + } + + /** + * Setup taxonomies using locale-based format (taxonomies organized by locale) + * For locale-based structure, we query the target stack for each taxonomy+locale combination + */ + async setupTaxonomiesByLocale(taxonomies: any): Promise { + const locales = this.loadAvailableLocales(); + + for (const localeCode of Object.keys(locales)) { + log(this.config, `Processing taxonomies for locale: ${localeCode}`, 'info'); + + for (const taxonomy of Object.values(taxonomies) as any) { + // Query target stack for this taxonomy in this locale + let targetTaxonomy: any = await this.getTaxonomies(taxonomy, localeCode); + if (!targetTaxonomy) { + log(this.config, `Taxonomy '${taxonomy.uid}' not found in target stack for locale: ${localeCode}`, 'info'); + continue; + } + + targetTaxonomy = this.sanitizeTaxonomyAttribs(targetTaxonomy); + + // Store with composite key: taxonomyUID_locale + // const mapperKey = `${taxonomy.uid}_${localeCode}`; // TODO: Unsure about this required or not + this.taxonomiesMapper[taxonomy.uid] = targetTaxonomy; + const terms = await this.getAllTermsOfTaxonomy(targetTaxonomy, localeCode); + if (Array.isArray(terms) && terms.length > 0) { + log( + this.config, + `Terms found for taxonomy '${taxonomy.uid} for locale: ${localeCode}', processing...`, + 'info', + ); + const sanitizedTerms = this.sanitizeTermsAttribs(terms); + this.termsMapper[taxonomy.uid] = sanitizedTerms; + } else { + log( + this.config, + `No terms found for taxonomy '${taxonomy.uid} for locale: ${localeCode}', skipping...`, + 'info', + ); + } + } + } + } + + /** + * Detect if locale-based folder structure exists + * @returns {boolean} true if locale-based structure detected, false otherwise + */ + detectLocaleBasedStructure(): boolean { + const masterLocaleCode = this.getMasterLocaleCode(); + const masterLocaleFolder = join(this.taxonomiesFolderPath, masterLocaleCode); + + // Check if master locale folder exists (indicates new locale-based structure) + if (!fileHelper.fileExistsSync(masterLocaleFolder)) { + log(this.config, 'No locale-based folder structure detected', 'info'); + return false; + } + + log(this.config, 'Locale-based folder structure detected', 'info'); + return true; + } + + /** + * Get the master locale code + * First tries to read from master-locale.json, then falls back to config, then 'en-us' + * @returns {string} The master locale code + */ + getMasterLocaleCode(): string { + // Try to read from master-locale.json file + if (fileHelper.fileExistsSync(this.masterLocaleFilePath)) { + try { + const masterLocaleData = fsUtil.readFile(this.masterLocaleFilePath, true) as Record< + string, + Record + >; + // The file contains an object with UID as key, extract the code + const firstLocale = Object.values(masterLocaleData)[0]; + if (firstLocale?.code) { + log(this.config, `Master locale loaded from file: ${firstLocale.code}`, 'info'); + return firstLocale.code; + } + } catch (error) { + log(this.config, 'Error reading master-locale.json, using fallback', 'warn'); + } + } + + // Fallback to config or default + const fallbackCode = this.config.master_locale?.code || 'en-us'; + log(this.config, `Using fallback master locale: ${fallbackCode}`, 'info'); + return fallbackCode; + } + + /** + * Load available locales from locales file + * @returns {Record} Map of locale codes + */ + loadAvailableLocales(): Record { + const locales: Record = {}; + + // First, get the master locale + const masterLocaleCode = this.getMasterLocaleCode(); + locales[masterLocaleCode] = masterLocaleCode; + + // Then load additional locales from locales.json if it exists + if (!fileHelper.fileExistsSync(this.localesFilePath)) { + log(this.config, 'No locales file found, using only master locale', 'info'); + return locales; + } + + try { + const localesData = fsUtil.readFile(this.localesFilePath, true) as Record>; + + for (const [uid, locale] of Object.entries(localesData)) { + if (locale?.code) { + locales[locale.code] = locale.code; + } + } + + log( + this.config, + `Loaded ${Object.keys(locales).length} locales (1 master + ${Object.keys(locales).length - 1} additional)`, + 'info', + ); + return locales; + } catch (error) { + log(this.config, 'Error loading locales file, using only master locale', 'error'); + return locales; + } + } + /** * Retrieves the taxonomies based on the provided taxonomy UID. * * @param taxonomy - The UID of the taxonomy to retrieve. + * @param locale - Optional locale code to query taxonomy in specific locale * @returns A promise that resolves to the retrieved taxonomies. */ - async getTaxonomies(taxonomy: any): Promise { + async getTaxonomies(taxonomy: any, locale?: string): Promise { + const query: any = {}; + if (locale) { + query.locale = locale; + } + return await this.stackAPIClient .taxonomy(taxonomy.uid) - .fetch() + .fetch(query) .then((data: any) => data) - .catch((err: any) => this.handleTaxonomyErrorMsg(err)); + .catch((err: any) => this.handleTaxonomyErrorMsg(err, taxonomy.uid, locale)); } /** @@ -102,19 +274,22 @@ export default class TaxonomiesImportSetup { * Retrieves all terms of a taxonomy. * * @param taxonomy - The taxonomy object. + * @param locale - Optional locale code to query terms in specific locale * @param skip - The number of terms to skip (default: 0). * @param terms - An array to store the retrieved terms (default: []). * @returns A promise that resolves to an array of terms. */ - async getAllTermsOfTaxonomy(taxonomy: any, skip = 0, terms: any[] = []): Promise { + async getAllTermsOfTaxonomy(taxonomy: any, locale?: string, skip = 0, terms: any[] = []): Promise { const queryParams: TaxonomyQueryParams = { include_count: true, limit: 100, skip, + depth: 0, }; - if (skip >= 0) queryParams['skip'] = skip || 0; - queryParams['depth'] = 0; + if (locale) { + queryParams.locale = locale; + } await this.stackAPIClient .taxonomy(taxonomy.uid) @@ -124,10 +299,10 @@ export default class TaxonomiesImportSetup { .then((data: any) => { terms = terms.concat(data.items); if (data.count >= skip + queryParams.limit) { - return this.getAllTermsOfTaxonomy(taxonomy, skip + 100, terms); + return this.getAllTermsOfTaxonomy(taxonomy, locale, skip + 100, terms); } }) - .catch((err: any) => this.handleTaxonomyErrorMsg(err)); + .catch((err: any) => this.handleTaxonomyErrorMsg(err, taxonomy.uid, locale)); return terms; } @@ -144,12 +319,15 @@ export default class TaxonomiesImportSetup { return terms; } - handleTaxonomyErrorMsg(err: any) { + handleTaxonomyErrorMsg(err: any, taxonomyUid?: string, locale?: string) { + const context = locale ? ` for locale: ${locale}` : ''; + const taxInfo = taxonomyUid ? ` (${taxonomyUid}${context})` : ''; + if (err?.errorMessage || err?.message) { const errorMsg = err?.errorMessage || err?.errors?.taxonomy || err?.errors?.term || err?.message; - log(this.config, errorMsg, 'error'); + log(this.config, `${errorMsg}${taxInfo}`, 'error'); } else { - log(this.config, 'Error fetching taxonomy data!', 'error'); + log(this.config, `Error fetching taxonomy data${taxInfo}!`, 'error'); log(this.config, err, 'error'); } } diff --git a/packages/contentstack-import-setup/src/types/default-config.ts b/packages/contentstack-import-setup/src/types/default-config.ts index 7a4d4e345f..364f929334 100644 --- a/packages/contentstack-import-setup/src/types/default-config.ts +++ b/packages/contentstack-import-setup/src/types/default-config.ts @@ -14,6 +14,11 @@ export default interface DefaultConfig { fileName: string; dependencies?: Modules[]; }; + locales: { + dirName: string; + fileName: string; + dependencies?: Modules[]; + }; extensions: { dirName: string; fileName: string; diff --git a/packages/contentstack-import-setup/src/types/index.ts b/packages/contentstack-import-setup/src/types/index.ts index 6c33397f9b..844e765f5a 100644 --- a/packages/contentstack-import-setup/src/types/index.ts +++ b/packages/contentstack-import-setup/src/types/index.ts @@ -150,4 +150,5 @@ export type TaxonomyQueryParams = { limit: number; skip: number; depth?: number; + locale?: string; }; diff --git a/packages/contentstack/package.json b/packages/contentstack/package.json index 2c592b86a6..1866983ad9 100755 --- a/packages/contentstack/package.json +++ b/packages/contentstack/package.json @@ -31,7 +31,7 @@ "@contentstack/cli-cm-export": "~2.0.0-beta.2", "@contentstack/cli-cm-export-to-csv": "~1.10.0", "@contentstack/cli-cm-import": "~2.0.0-beta.2", - "@contentstack/cli-cm-import-setup": "1.6.1", + "@contentstack/cli-cm-import-setup": "1.7.0", "@contentstack/cli-cm-migrate-rte": "~1.6.2", "@contentstack/cli-cm-seed": "~2.0.0-beta.2", "@contentstack/cli-command": "~1.6.2",