├── .cursor └── rules │ ├── error-handling.mdc │ ├── logging.mdc │ ├── naming-conventions.mdc │ └── project-structure.mdc ├── .env.example ├── .gitignore ├── .shops.example.json ├── CLAUDE.md ├── README.md ├── REFACTORING.md ├── cli.js ├── codehawk.json ├── constants.js ├── eslint.config.cjs ├── graphql ├── CollectionCreate.graphql.js ├── CollectionDelete.graphql.js ├── CollectionFetchAll.graphql.js ├── CollectionFetchByHandle.graphql.js ├── CollectionFetchById.graphql.js ├── CollectionUpdate.graphql.js ├── MenuCreate.graphql.js ├── MenuFetchAll.graphql.js ├── MenuUpdate.graphql.js ├── MetafieldDefinitionCreate.graphql.js ├── MetafieldDefinitionDelete.graphql.js ├── MetafieldDefinitionUpdate.graphql.js ├── MetafieldDefinitionsFetch.graphql.js ├── MetaobjectCreate.graphql.js ├── MetaobjectCreateDefinition.graphql.js ├── MetaobjectDefinitionIdFetch.graphql.js ├── MetaobjectDefinitionTypeFetch.graphql.js ├── MetaobjectFetch.graphql.js ├── MetaobjectFetchAllDefinitions.graphql.js ├── MetaobjectFetchById.graphql.js ├── MetaobjectFetchDefinitionById.graphql.js ├── MetaobjectUpdate.graphql.js ├── MetaobjectUpdateDefinition.graphql.js ├── PageCreate.graphql.js ├── PageFetchAll.graphql.js ├── PageUpdate.graphql.js ├── ProductDelete.graphql.js ├── ProductFetchAll.graphql.js ├── ProductFetchByHandle.graphql.js └── index.js ├── jest.config.js ├── metasync.example.yaml ├── package.json ├── strategies ├── AllResourcesSyncStrategy.js ├── BaseMetafieldSyncStrategy.js ├── CollectionMetafieldSyncStrategy.js ├── CollectionSyncStrategy.js ├── CompanyMetafieldSyncStrategy.js ├── CustomerMetafieldSyncStrategy.js ├── EverythingSyncStrategy.js ├── MenuSyncStrategy.js ├── MetaobjectSyncStrategy.js ├── OrderMetafieldSyncStrategy.js ├── PageSyncStrategy.js ├── ProductMetafieldSyncStrategy.js ├── ProductSyncStrategy.js └── VariantMetafieldSyncStrategy.js ├── test ├── cli.test.js ├── data-product.test.js └── define-metafields.test.js └── utils ├── CollectionRuleSetHandler.js ├── CommandSetup.js ├── ErrorHandler.js ├── Logger.js ├── MetafieldFilterUtils.js ├── MetafieldHandler.js ├── MetafieldReferenceHandler.js ├── MetaobjectDataHandler.js ├── MetaobjectDefinitionHandler.js ├── ProductBaseHandler.js ├── ProductBatchProcessor.js ├── ProductImageHandler.js ├── ProductMetafieldProcessor.js ├── ProductOperationHandler.js ├── ProductPublicationHandler.js ├── ProductVariantHandler.js ├── ShopConfig.js ├── ShopifyClient.js ├── ShopifyIDUtils.js ├── StrategyLoader.js ├── SyncResultTracker.js ├── Validators.js └── collection ├── CollectionFetchHandler.js ├── CollectionMetafieldHandler.js ├── CollectionOperationHandler.js ├── CollectionProductHandler.js └── CollectionPublicationHandler.js /.cursor/rules/error-handling.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/.cursor/rules/error-handling.mdc -------------------------------------------------------------------------------- /.cursor/rules/logging.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/.cursor/rules/logging.mdc -------------------------------------------------------------------------------- /.cursor/rules/naming-conventions.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/.cursor/rules/naming-conventions.mdc -------------------------------------------------------------------------------- /.cursor/rules/project-structure.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/.cursor/rules/project-structure.mdc -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | LOG_TO_FILE=true 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | metasync.yaml 2 | node_modules 3 | logs/ 4 | .env 5 | -------------------------------------------------------------------------------- /.shops.example.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/.shops.example.json -------------------------------------------------------------------------------- /CLAUDE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/CLAUDE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/README.md -------------------------------------------------------------------------------- /REFACTORING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/REFACTORING.md -------------------------------------------------------------------------------- /cli.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/cli.js -------------------------------------------------------------------------------- /codehawk.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/codehawk.json -------------------------------------------------------------------------------- /constants.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/constants.js -------------------------------------------------------------------------------- /eslint.config.cjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/eslint.config.cjs -------------------------------------------------------------------------------- /graphql/CollectionCreate.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/CollectionCreate.graphql.js -------------------------------------------------------------------------------- /graphql/CollectionDelete.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/CollectionDelete.graphql.js -------------------------------------------------------------------------------- /graphql/CollectionFetchAll.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/CollectionFetchAll.graphql.js -------------------------------------------------------------------------------- /graphql/CollectionFetchByHandle.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/CollectionFetchByHandle.graphql.js -------------------------------------------------------------------------------- /graphql/CollectionFetchById.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/CollectionFetchById.graphql.js -------------------------------------------------------------------------------- /graphql/CollectionUpdate.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/CollectionUpdate.graphql.js -------------------------------------------------------------------------------- /graphql/MenuCreate.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/MenuCreate.graphql.js -------------------------------------------------------------------------------- /graphql/MenuFetchAll.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/MenuFetchAll.graphql.js -------------------------------------------------------------------------------- /graphql/MenuUpdate.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/MenuUpdate.graphql.js -------------------------------------------------------------------------------- /graphql/MetafieldDefinitionCreate.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/MetafieldDefinitionCreate.graphql.js -------------------------------------------------------------------------------- /graphql/MetafieldDefinitionDelete.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/MetafieldDefinitionDelete.graphql.js -------------------------------------------------------------------------------- /graphql/MetafieldDefinitionUpdate.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/MetafieldDefinitionUpdate.graphql.js -------------------------------------------------------------------------------- /graphql/MetafieldDefinitionsFetch.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/MetafieldDefinitionsFetch.graphql.js -------------------------------------------------------------------------------- /graphql/MetaobjectCreate.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/MetaobjectCreate.graphql.js -------------------------------------------------------------------------------- /graphql/MetaobjectCreateDefinition.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/MetaobjectCreateDefinition.graphql.js -------------------------------------------------------------------------------- /graphql/MetaobjectDefinitionIdFetch.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/MetaobjectDefinitionIdFetch.graphql.js -------------------------------------------------------------------------------- /graphql/MetaobjectDefinitionTypeFetch.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/MetaobjectDefinitionTypeFetch.graphql.js -------------------------------------------------------------------------------- /graphql/MetaobjectFetch.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/MetaobjectFetch.graphql.js -------------------------------------------------------------------------------- /graphql/MetaobjectFetchAllDefinitions.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/MetaobjectFetchAllDefinitions.graphql.js -------------------------------------------------------------------------------- /graphql/MetaobjectFetchById.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/MetaobjectFetchById.graphql.js -------------------------------------------------------------------------------- /graphql/MetaobjectFetchDefinitionById.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/MetaobjectFetchDefinitionById.graphql.js -------------------------------------------------------------------------------- /graphql/MetaobjectUpdate.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/MetaobjectUpdate.graphql.js -------------------------------------------------------------------------------- /graphql/MetaobjectUpdateDefinition.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/MetaobjectUpdateDefinition.graphql.js -------------------------------------------------------------------------------- /graphql/PageCreate.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/PageCreate.graphql.js -------------------------------------------------------------------------------- /graphql/PageFetchAll.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/PageFetchAll.graphql.js -------------------------------------------------------------------------------- /graphql/PageUpdate.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/PageUpdate.graphql.js -------------------------------------------------------------------------------- /graphql/ProductDelete.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/ProductDelete.graphql.js -------------------------------------------------------------------------------- /graphql/ProductFetchAll.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/ProductFetchAll.graphql.js -------------------------------------------------------------------------------- /graphql/ProductFetchByHandle.graphql.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/ProductFetchByHandle.graphql.js -------------------------------------------------------------------------------- /graphql/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/graphql/index.js -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/jest.config.js -------------------------------------------------------------------------------- /metasync.example.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/metasync.example.yaml -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/package.json -------------------------------------------------------------------------------- /strategies/AllResourcesSyncStrategy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/strategies/AllResourcesSyncStrategy.js -------------------------------------------------------------------------------- /strategies/BaseMetafieldSyncStrategy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/strategies/BaseMetafieldSyncStrategy.js -------------------------------------------------------------------------------- /strategies/CollectionMetafieldSyncStrategy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/strategies/CollectionMetafieldSyncStrategy.js -------------------------------------------------------------------------------- /strategies/CollectionSyncStrategy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/strategies/CollectionSyncStrategy.js -------------------------------------------------------------------------------- /strategies/CompanyMetafieldSyncStrategy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/strategies/CompanyMetafieldSyncStrategy.js -------------------------------------------------------------------------------- /strategies/CustomerMetafieldSyncStrategy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/strategies/CustomerMetafieldSyncStrategy.js -------------------------------------------------------------------------------- /strategies/EverythingSyncStrategy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/strategies/EverythingSyncStrategy.js -------------------------------------------------------------------------------- /strategies/MenuSyncStrategy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/strategies/MenuSyncStrategy.js -------------------------------------------------------------------------------- /strategies/MetaobjectSyncStrategy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/strategies/MetaobjectSyncStrategy.js -------------------------------------------------------------------------------- /strategies/OrderMetafieldSyncStrategy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/strategies/OrderMetafieldSyncStrategy.js -------------------------------------------------------------------------------- /strategies/PageSyncStrategy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/strategies/PageSyncStrategy.js -------------------------------------------------------------------------------- /strategies/ProductMetafieldSyncStrategy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/strategies/ProductMetafieldSyncStrategy.js -------------------------------------------------------------------------------- /strategies/ProductSyncStrategy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/strategies/ProductSyncStrategy.js -------------------------------------------------------------------------------- /strategies/VariantMetafieldSyncStrategy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/strategies/VariantMetafieldSyncStrategy.js -------------------------------------------------------------------------------- /test/cli.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/test/cli.test.js -------------------------------------------------------------------------------- /test/data-product.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/test/data-product.test.js -------------------------------------------------------------------------------- /test/define-metafields.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/test/define-metafields.test.js -------------------------------------------------------------------------------- /utils/CollectionRuleSetHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/CollectionRuleSetHandler.js -------------------------------------------------------------------------------- /utils/CommandSetup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/CommandSetup.js -------------------------------------------------------------------------------- /utils/ErrorHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/ErrorHandler.js -------------------------------------------------------------------------------- /utils/Logger.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/Logger.js -------------------------------------------------------------------------------- /utils/MetafieldFilterUtils.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/MetafieldFilterUtils.js -------------------------------------------------------------------------------- /utils/MetafieldHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/MetafieldHandler.js -------------------------------------------------------------------------------- /utils/MetafieldReferenceHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/MetafieldReferenceHandler.js -------------------------------------------------------------------------------- /utils/MetaobjectDataHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/MetaobjectDataHandler.js -------------------------------------------------------------------------------- /utils/MetaobjectDefinitionHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/MetaobjectDefinitionHandler.js -------------------------------------------------------------------------------- /utils/ProductBaseHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/ProductBaseHandler.js -------------------------------------------------------------------------------- /utils/ProductBatchProcessor.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/ProductBatchProcessor.js -------------------------------------------------------------------------------- /utils/ProductImageHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/ProductImageHandler.js -------------------------------------------------------------------------------- /utils/ProductMetafieldProcessor.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/ProductMetafieldProcessor.js -------------------------------------------------------------------------------- /utils/ProductOperationHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/ProductOperationHandler.js -------------------------------------------------------------------------------- /utils/ProductPublicationHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/ProductPublicationHandler.js -------------------------------------------------------------------------------- /utils/ProductVariantHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/ProductVariantHandler.js -------------------------------------------------------------------------------- /utils/ShopConfig.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/ShopConfig.js -------------------------------------------------------------------------------- /utils/ShopifyClient.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/ShopifyClient.js -------------------------------------------------------------------------------- /utils/ShopifyIDUtils.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/ShopifyIDUtils.js -------------------------------------------------------------------------------- /utils/StrategyLoader.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/StrategyLoader.js -------------------------------------------------------------------------------- /utils/SyncResultTracker.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/SyncResultTracker.js -------------------------------------------------------------------------------- /utils/Validators.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/Validators.js -------------------------------------------------------------------------------- /utils/collection/CollectionFetchHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/collection/CollectionFetchHandler.js -------------------------------------------------------------------------------- /utils/collection/CollectionMetafieldHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/collection/CollectionMetafieldHandler.js -------------------------------------------------------------------------------- /utils/collection/CollectionOperationHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/collection/CollectionOperationHandler.js -------------------------------------------------------------------------------- /utils/collection/CollectionProductHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/collection/CollectionProductHandler.js -------------------------------------------------------------------------------- /utils/collection/CollectionPublicationHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kalenjordan/metasync/HEAD/utils/collection/CollectionPublicationHandler.js --------------------------------------------------------------------------------