{"_id":"@adobe/spacecat-shared-user-manager-client","_rev":"11-782a732a8d969fcb57791363c7372bca","name":"@adobe/spacecat-shared-user-manager-client","dist-tags":{"latest":"1.5.0"},"versions":{"1.0.0":{"name":"@adobe/spacecat-shared-user-manager-client","version":"1.0.0","author":"","license":"Apache-2.0","_id":"@adobe/spacecat-shared-user-manager-client@1.0.0","maintainers":[{"name":"marbec","email":"mabecker@adobe.com"},{"name":"tripod","email":"tripod@bocanegra.ch"},{"name":"garthdb","email":"garthdb@gmail.com"},{"name":"lazd","email":"lazdnet@gmail.com"},{"name":"adobe-admin","email":"grp-opensourceoffice@adobe.com"},{"name":"patrickfulton","email":"patrickfulton@gmail.com"},{"name":"trieloff","email":"lars@trieloff.net"},{"name":"shazron","email":"shazron@gmail.com"},{"name":"krisnye","email":"krisnye@gmail.com"},{"name":"dcpfsdk","email":"dcpfsdk@adobe.com"},{"name":"natebaldwin","email":"natebaldwindesign@gmail.com"},{"name":"devongovett","email":"devongovett@gmail.com"},{"name":"aspro83","email":"danniintheus@gmail.com"},{"name":"symanovi","email":"symanovi@adobe.com"},{"name":"dpfister","email":"dominique.pfister@gmail.com"},{"name":"stefan-guggisberg","email":"sg@adobe.com"},{"name":"rofe","email":"npm@rofe.com"},{"name":"kptdobe","email":"kptdobe@gmail.com"},{"name":"adobehalls","email":"halls@adobe.com"},{"name":"fullcolorcoder","email":"bradjohn@adobe.com"},{"name":"djaeggi","email":"djaeggi@adobe.com"},{"name":"dylandepass","email":"dylandepass@gmail.com"},{"name":"mhaack","email":"mhaack@adobe.com"},{"name":"amol-anand","email":"amol@adobe.com"},{"name":"stopp-adobe","email":"stopp@adobe.com"},{"name":"doten","email":"doten@adobe.com"},{"name":"duh_schmidt","email":"schmidt@adobe.com"},{"name":"asthabh23","email":"astha.bhargava23@gmail.com"},{"name":"zdahbi","email":"zouhir.dahbi@outlook.com"},{"name":"tuicu","email":"tuicu@adobe.com"},{"name":"fmeschbe","email":"fmeschbe@adobe.com"}],"homepage":"https://github.com/adobe/spacecat-shared/packages/spacecat-shared-user-manager-client/#readme","bugs":{"url":"https://github.com/adobe/spacecat-shared/issues"},"dist":{"shasum":"ca676d56dc3199063a9a8838a95bb741836d4250","tarball":"https://registry.npmjs.org/@adobe/spacecat-shared-user-manager-client/-/spacecat-shared-user-manager-client-1.0.0.tgz","fileCount":8,"integrity":"sha512-aDOWRoUM955QTDFsvKUAGiNFYpRhTnKSTWhbRirYfFQLUWGWiAAMdWGDAnOfKW8+KRAgKl2FeXwHAff9Qqda8Q==","signatures":[{"sig":"MEUCIDpNHXAG9mtWmLziQtMUVKZfoN7DcQ+KiFDffHsbdlgwAiEA+SMmDB5SV87UdwwBzHyBrbN6nTNbi9SVU+KniJiiSjY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":865913},"main":"src/index.js","type":"module","mocha":{"spec":"test/**/*.test.js","reporter":"mocha-multi-reporters","reporter-options":"configFile=.mocha-multi.json"},"types":"src/index.d.ts","engines":{"npm":">=10.9.0 <12.0.0","node":">=22.0.0 <25.0.0"},"exports":{".":{"types":"./src/index.d.ts","default":"./src/index.js"}},"gitHead":"8cd66bda1fe1a35af2ae17f4e4ecc67dabfec993","scripts":{"lint":"eslint .","mock":"counterfact spec/usermanager_swagger.yaml .counterfact --port 4010","test":"c8 mocha","clean":"rm -rf node_modules build .counterfact","generate":"npm run spec:convert && npm run spec:overlay && npm run generate:ts && npm run generate:pydantic","lint:fix":"eslint --fix .","generate:ts":"openapi-typescript build/openapi3.json --output src/generated/types.ts","spec:convert":"mkdir -p build && swagger2openapi spec/usermanager_swagger.yaml --patch --outfile build/openapi3.json","spec:overlay":"node scripts/apply-overlay.mjs","generate:pydantic":"command -v datamodel-codegen >/dev/null 2>&1 || { echo 'ERROR: datamodel-codegen not found on PATH. Install it first: pip install datamodel-code-generator'; exit 1; }; datamodel-codegen --input build/openapi3.json --input-file-type openapi --output python/serenity_user_manager/ --output-model-type pydantic_v2.BaseModel"},"_npmUser":{"name":"djaeggi","email":"djaeggi@adobe.com"},"repository":{"url":"git+https://github.com/adobe/spacecat-shared.git","type":"git"},"_npmVersion":"11.13.0","description":"Shared modules of the Spacecat Services - Semrush User Manager client and generated types","directories":{},"_nodeVersion":"24.11.1","dependencies":{"openapi-fetch":"0.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"11.0.0","chai":"6.2.2","mocha":"11.7.6","sinon":"22.0.0","js-yaml":"4.2.0","counterfact":"2.14.0","swagger2openapi":"7.0.8","openapi-typescript":"7.13.0","mocha-multi-reporters":"1.5.1"},"_npmOperationalInternal":{"tmp":"tmp/spacecat-shared-user-manager-client_1.0.0_1782233473875_0.25769545111882275","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@adobe/spacecat-shared-user-manager-client","version":"1.1.0","author":"","license":"Apache-2.0","_id":"@adobe/spacecat-shared-user-manager-client@1.1.0","maintainers":[{"name":"marbec","email":"mabecker@adobe.com"},{"name":"tripod","email":"tripod@bocanegra.ch"},{"name":"garthdb","email":"garthdb@gmail.com"},{"name":"lazd","email":"lazdnet@gmail.com"},{"name":"adobe-admin","email":"grp-opensourceoffice@adobe.com"},{"name":"patrickfulton","email":"patrickfulton@gmail.com"},{"name":"trieloff","email":"lars@trieloff.net"},{"name":"shazron","email":"shazron@gmail.com"},{"name":"krisnye","email":"krisnye@gmail.com"},{"name":"dcpfsdk","email":"dcpfsdk@adobe.com"},{"name":"natebaldwin","email":"natebaldwindesign@gmail.com"},{"name":"devongovett","email":"devongovett@gmail.com"},{"name":"aspro83","email":"danniintheus@gmail.com"},{"name":"symanovi","email":"symanovi@adobe.com"},{"name":"dpfister","email":"dominique.pfister@gmail.com"},{"name":"stefan-guggisberg","email":"sg@adobe.com"},{"name":"rofe","email":"npm@rofe.com"},{"name":"kptdobe","email":"kptdobe@gmail.com"},{"name":"adobehalls","email":"halls@adobe.com"},{"name":"fullcolorcoder","email":"bradjohn@adobe.com"},{"name":"djaeggi","email":"djaeggi@adobe.com"},{"name":"dylandepass","email":"dylandepass@gmail.com"},{"name":"mhaack","email":"mhaack@adobe.com"},{"name":"amol-anand","email":"amol@adobe.com"},{"name":"stopp-adobe","email":"stopp@adobe.com"},{"name":"doten","email":"doten@adobe.com"},{"name":"duh_schmidt","email":"schmidt@adobe.com"},{"name":"asthabh23","email":"astha.bhargava23@gmail.com"},{"name":"zdahbi","email":"zouhir.dahbi@outlook.com"},{"name":"tuicu","email":"tuicu@adobe.com"},{"name":"fmeschbe","email":"fmeschbe@adobe.com"}],"homepage":"https://github.com/adobe/spacecat-shared/packages/spacecat-shared-user-manager-client/#readme","bugs":{"url":"https://github.com/adobe/spacecat-shared/issues"},"dist":{"shasum":"dca5acd328fd9a9ddc656130949f55549c39f684","tarball":"https://registry.npmjs.org/@adobe/spacecat-shared-user-manager-client/-/spacecat-shared-user-manager-client-1.1.0.tgz","fileCount":8,"integrity":"sha512-lNCJDWMUy8/JMlZV9KTBB5uMsMZs494LyJLYBmCVplrquEO+pOizyrh6obPVsofhTS67UAfmvSv/WNRbFDNN9A==","signatures":[{"sig":"MEYCIQCiL8UpLe2USIG1MnSYWCJEtFaW7BqJ4krdT1Y9BZ33tgIhALmZ0ceSeTlVGgvK/BKBqcFh5Uugh7Y7S9XiHQbWI/UI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adobe%2fspacecat-shared-user-manager-client@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":865913},"main":"src/index.js","type":"module","mocha":{"spec":"test/**/*.test.js","reporter":"mocha-multi-reporters","reporter-options":"configFile=.mocha-multi.json"},"types":"src/index.d.ts","engines":{"npm":">=10.9.0 <12.0.0","node":">=22.0.0 <25.0.0"},"exports":{".":{"types":"./src/index.d.ts","default":"./src/index.js"}},"gitHead":"10e3041e73f0b11d04c039b3832fc082107bc0e3","scripts":{"lint":"eslint .","mock":"counterfact spec/usermanager_swagger.yaml .counterfact --port 4010","test":"c8 mocha","clean":"rm -rf node_modules build .counterfact","generate":"npm run spec:convert && npm run spec:overlay && npm run generate:ts && npm run generate:pydantic","lint:fix":"eslint --fix .","generate:ts":"openapi-typescript build/openapi3.json --output src/generated/types.ts","spec:convert":"mkdir -p build && swagger2openapi spec/usermanager_swagger.yaml --patch --outfile build/openapi3.json","spec:overlay":"node scripts/apply-overlay.mjs","generate:pydantic":"command -v datamodel-codegen >/dev/null 2>&1 || { echo 'ERROR: datamodel-codegen not found on PATH. Install it first: pip install datamodel-code-generator'; exit 1; }; datamodel-codegen --input build/openapi3.json --input-file-type openapi --output python/serenity_user_manager/ --output-model-type pydantic_v2.BaseModel"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:18678325-ced7-49f7-864a-e29f80d2bcea"}},"repository":{"url":"git+https://github.com/adobe/spacecat-shared.git","type":"git"},"_npmVersion":"11.12.1","description":"Shared modules of the Spacecat Services - Semrush User Manager client and generated types","directories":{},"_nodeVersion":"24.16.0","dependencies":{"openapi-fetch":"0.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"11.0.0","chai":"6.2.2","mocha":"11.7.6","sinon":"22.0.0","js-yaml":"4.2.0","counterfact":"2.14.0","swagger2openapi":"7.0.8","openapi-typescript":"7.13.0","mocha-multi-reporters":"1.5.1"},"_npmOperationalInternal":{"tmp":"tmp/spacecat-shared-user-manager-client_1.1.0_1782241223182_0.8790907509283159","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@adobe/spacecat-shared-user-manager-client","version":"1.2.0","author":"","license":"Apache-2.0","_id":"@adobe/spacecat-shared-user-manager-client@1.2.0","maintainers":[{"name":"marbec","email":"mabecker@adobe.com"},{"name":"tripod","email":"tripod@bocanegra.ch"},{"name":"garthdb","email":"garthdb@gmail.com"},{"name":"lazd","email":"lazdnet@gmail.com"},{"name":"adobe-admin","email":"grp-opensourceoffice@adobe.com"},{"name":"patrickfulton","email":"patrickfulton@gmail.com"},{"name":"trieloff","email":"lars@trieloff.net"},{"name":"shazron","email":"shazron@gmail.com"},{"name":"krisnye","email":"krisnye@gmail.com"},{"name":"dcpfsdk","email":"dcpfsdk@adobe.com"},{"name":"natebaldwin","email":"natebaldwindesign@gmail.com"},{"name":"devongovett","email":"devongovett@gmail.com"},{"name":"aspro83","email":"danniintheus@gmail.com"},{"name":"symanovi","email":"symanovi@adobe.com"},{"name":"dpfister","email":"dominique.pfister@gmail.com"},{"name":"stefan-guggisberg","email":"sg@adobe.com"},{"name":"rofe","email":"npm@rofe.com"},{"name":"kptdobe","email":"kptdobe@gmail.com"},{"name":"adobehalls","email":"halls@adobe.com"},{"name":"fullcolorcoder","email":"bradjohn@adobe.com"},{"name":"djaeggi","email":"djaeggi@adobe.com"},{"name":"dylandepass","email":"dylandepass@gmail.com"},{"name":"mhaack","email":"mhaack@adobe.com"},{"name":"amol-anand","email":"amol@adobe.com"},{"name":"stopp-adobe","email":"stopp@adobe.com"},{"name":"namarora","email":"namarora@adobe.com"},{"name":"doten","email":"doten@adobe.com"},{"name":"duh_schmidt","email":"schmidt@adobe.com"},{"name":"asthabh23","email":"astha.bhargava23@gmail.com"},{"name":"zdahbi","email":"zouhir.dahbi@outlook.com"},{"name":"tuicu","email":"tuicu@adobe.com"},{"name":"fmeschbe","email":"fmeschbe@adobe.com"}],"homepage":"https://github.com/adobe/spacecat-shared/packages/spacecat-shared-user-manager-client/#readme","bugs":{"url":"https://github.com/adobe/spacecat-shared/issues"},"dist":{"shasum":"c1e808de0482c2527810e8f37847585e345cd5ad","tarball":"https://registry.npmjs.org/@adobe/spacecat-shared-user-manager-client/-/spacecat-shared-user-manager-client-1.2.0.tgz","fileCount":8,"integrity":"sha512-1EnWkbrU/0nvcxyRJvRwiJAxDSkQ2WO048YJLkk/q50p0LI/dQGDm6vwF/Y09h4sh7Gl10Rc0AOJSTyxMFF7bA==","signatures":[{"sig":"MEQCIC4KoxdgeLZSymI/trUQkqt1mPv6TRkVg/cL6vxtGOrJAiAKcPWVFbg88JKJdpBa7FUxD+55leSsaa20DhBo5ADxTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adobe%2fspacecat-shared-user-manager-client@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":866011},"main":"src/index.js","type":"module","mocha":{"spec":"test/**/*.test.js","reporter":"mocha-multi-reporters","reporter-options":"configFile=.mocha-multi.json"},"types":"src/index.d.ts","engines":{"npm":">=10.9.0 <12.0.0","node":">=22.0.0 <25.0.0"},"exports":{".":{"types":"./src/index.d.ts","default":"./src/index.js"},"./mock/*":"./mock/*"},"gitHead":"4210a2cce3c9cc14536037fe2f15985a64a42625","scripts":{"lint":"eslint .","mock":"node mock/run.js","test":"c8 mocha","clean":"rm -rf node_modules build .counterfact","generate":"npm run spec:convert && npm run spec:overlay && npm run generate:ts && npm run generate:pydantic","lint:fix":"eslint --fix .","test:e2e":"MOCK_E2E=1 mocha --no-package --reporter spec --timeout 60000 test/e2e/**/*.e2e.js","test:types":"tsc -p tsconfig.json","generate:ts":"openapi-typescript build/openapi3.json --output src/generated/types.ts","spec:convert":"mkdir -p build && swagger2openapi spec/usermanager_swagger.yaml --patch --outfile build/openapi3.json","spec:overlay":"node scripts/apply-overlay.mjs","generate:pydantic":"command -v datamodel-codegen >/dev/null 2>&1 || { echo 'ERROR: datamodel-codegen not found on PATH. Install it first: pip install datamodel-code-generator'; exit 1; }; datamodel-codegen --input build/openapi3.json --input-file-type openapi --output python/serenity_user_manager/ --output-model-type pydantic_v2.BaseModel"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:18678325-ced7-49f7-864a-e29f80d2bcea"}},"repository":{"url":"git+https://github.com/adobe/spacecat-shared.git","type":"git"},"_npmVersion":"11.12.1","description":"Shared modules of the Spacecat Services - Semrush User Manager client and generated types","directories":{},"_nodeVersion":"24.16.0","dependencies":{"openapi-fetch":"0.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"11.0.0","chai":"6.2.2","mocha":"11.7.6","sinon":"22.0.0","js-yaml":"4.2.0","typescript":"6.0.3","counterfact":"2.14.0","swagger2openapi":"7.0.8","openapi-typescript":"7.13.0","mocha-multi-reporters":"1.5.1"},"_npmOperationalInternal":{"tmp":"tmp/spacecat-shared-user-manager-client_1.2.0_1782466201744_0.2651937087753322","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@adobe/spacecat-shared-user-manager-client","version":"1.3.0","author":"","license":"Apache-2.0","_id":"@adobe/spacecat-shared-user-manager-client@1.3.0","maintainers":[{"name":"marbec","email":"mabecker@adobe.com"},{"name":"tripod","email":"tripod@bocanegra.ch"},{"name":"garthdb","email":"garthdb@gmail.com"},{"name":"lazd","email":"lazdnet@gmail.com"},{"name":"adobe-admin","email":"grp-opensourceoffice@adobe.com"},{"name":"patrickfulton","email":"patrickfulton@gmail.com"},{"name":"trieloff","email":"lars@trieloff.net"},{"name":"shazron","email":"shazron@gmail.com"},{"name":"krisnye","email":"krisnye@gmail.com"},{"name":"dcpfsdk","email":"dcpfsdk@adobe.com"},{"name":"natebaldwin","email":"natebaldwindesign@gmail.com"},{"name":"devongovett","email":"devongovett@gmail.com"},{"name":"aspro83","email":"danniintheus@gmail.com"},{"name":"symanovi","email":"symanovi@adobe.com"},{"name":"dpfister","email":"dominique.pfister@gmail.com"},{"name":"stefan-guggisberg","email":"sg@adobe.com"},{"name":"rofe","email":"npm@rofe.com"},{"name":"kptdobe","email":"kptdobe@gmail.com"},{"name":"adobehalls","email":"halls@adobe.com"},{"name":"fullcolorcoder","email":"bradjohn@adobe.com"},{"name":"djaeggi","email":"djaeggi@adobe.com"},{"name":"dylandepass","email":"dylandepass@gmail.com"},{"name":"mhaack","email":"mhaack@adobe.com"},{"name":"amol-anand","email":"amol@adobe.com"},{"name":"stopp-adobe","email":"stopp@adobe.com"},{"name":"namarora","email":"namarora@adobe.com"},{"name":"doten","email":"doten@adobe.com"},{"name":"duh_schmidt","email":"schmidt@adobe.com"},{"name":"asthabh23","email":"astha.bhargava23@gmail.com"},{"name":"zdahbi","email":"zouhir.dahbi@outlook.com"},{"name":"tuicu","email":"tuicu@adobe.com"},{"name":"fmeschbe","email":"fmeschbe@adobe.com"}],"homepage":"https://github.com/adobe/spacecat-shared/packages/spacecat-shared-user-manager-client/#readme","bugs":{"url":"https://github.com/adobe/spacecat-shared/issues"},"dist":{"shasum":"a0086357062049fda8d8bf877eb418b04a6062c3","tarball":"https://registry.npmjs.org/@adobe/spacecat-shared-user-manager-client/-/spacecat-shared-user-manager-client-1.3.0.tgz","fileCount":8,"integrity":"sha512-EQGmOMwf8BqsQIoc/8zAcQbUo8fc5eeZLSf+154yvesTT9o4/t1MnXtav9dpsV/JWE00jXC0ckPx6c+TY9dkPA==","signatures":[{"sig":"MEUCIBAVhe8nw2wiM4ndce6r3y4taYVNF5wkH1DAUH1fwc61AiEAuEifSmFJ1DpzBkN1QMF4RTWHZOPSJoJNA0Inathds9o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adobe%2fspacecat-shared-user-manager-client@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":866234},"main":"src/index.js","type":"module","mocha":{"spec":"test/**/*.test.js","reporter":"mocha-multi-reporters","reporter-options":"configFile=.mocha-multi.json"},"types":"src/index.d.ts","engines":{"npm":">=10.9.0 <12.0.0","node":">=22.0.0 <25.0.0"},"exports":{".":{"types":"./src/index.d.ts","default":"./src/index.js"},"./mock/*":"./mock/*"},"gitHead":"e6f927fafd366ea4c9b5210631d9ad2c5ac77f72","scripts":{"lint":"eslint .","mock":"node mock/run.js","test":"c8 mocha","clean":"rm -rf node_modules build .counterfact","generate":"npm run spec:convert && npm run spec:overlay && npm run generate:ts && npm run generate:pydantic","lint:fix":"eslint --fix .","test:e2e":"MOCK_E2E=1 mocha --no-package --reporter spec --timeout 60000 test/e2e/**/*.e2e.js","docker:run":"docker run --rm -p 127.0.0.1:8443:8443 ghcr.io/adobe/spacecat-shared-user-manager-client-mock:local","test:types":"tsc -p tsconfig.json","generate:ts":"openapi-typescript build/openapi3.json --output src/generated/types.ts","docker:build":"docker build -t ghcr.io/adobe/spacecat-shared-user-manager-client-mock:local .","spec:convert":"mkdir -p build && swagger2openapi spec/usermanager_swagger.yaml --patch --outfile build/openapi3.json","spec:overlay":"node scripts/apply-overlay.mjs","generate:pydantic":"command -v datamodel-codegen >/dev/null 2>&1 || { echo 'ERROR: datamodel-codegen not found on PATH. Install it first: pip install datamodel-code-generator'; exit 1; }; datamodel-codegen --input build/openapi3.json --input-file-type openapi --output python/serenity_user_manager/ --output-model-type pydantic_v2.BaseModel"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:18678325-ced7-49f7-864a-e29f80d2bcea"}},"repository":{"url":"git+https://github.com/adobe/spacecat-shared.git","type":"git"},"_npmVersion":"11.12.1","description":"Shared modules of the Spacecat Services - Semrush User Manager client and generated types","directories":{},"_nodeVersion":"24.16.0","dependencies":{"openapi-fetch":"0.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"11.0.0","chai":"6.2.2","mocha":"11.7.6","sinon":"22.0.0","js-yaml":"4.2.0","typescript":"6.0.3","counterfact":"2.14.0","swagger2openapi":"7.0.8","openapi-typescript":"7.13.0","mocha-multi-reporters":"1.5.1"},"_npmOperationalInternal":{"tmp":"tmp/spacecat-shared-user-manager-client_1.3.0_1782471197151_0.5005401422997822","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@adobe/spacecat-shared-user-manager-client","version":"1.3.1","author":"","license":"Apache-2.0","_id":"@adobe/spacecat-shared-user-manager-client@1.3.1","maintainers":[{"name":"marbec","email":"mabecker@adobe.com"},{"name":"tripod","email":"tripod@bocanegra.ch"},{"name":"garthdb","email":"garthdb@gmail.com"},{"name":"lazd","email":"lazdnet@gmail.com"},{"name":"adobe-admin","email":"grp-opensourceoffice@adobe.com"},{"name":"patrickfulton","email":"patrickfulton@gmail.com"},{"name":"trieloff","email":"lars@trieloff.net"},{"name":"shazron","email":"shazron@gmail.com"},{"name":"krisnye","email":"krisnye@gmail.com"},{"name":"dcpfsdk","email":"dcpfsdk@adobe.com"},{"name":"natebaldwin","email":"natebaldwindesign@gmail.com"},{"name":"devongovett","email":"devongovett@gmail.com"},{"name":"aspro83","email":"danniintheus@gmail.com"},{"name":"symanovi","email":"symanovi@adobe.com"},{"name":"dpfister","email":"dominique.pfister@gmail.com"},{"name":"stefan-guggisberg","email":"sg@adobe.com"},{"name":"rofe","email":"npm@rofe.com"},{"name":"kptdobe","email":"kptdobe@gmail.com"},{"name":"adobehalls","email":"halls@adobe.com"},{"name":"fullcolorcoder","email":"bradjohn@adobe.com"},{"name":"djaeggi","email":"djaeggi@adobe.com"},{"name":"dylandepass","email":"dylandepass@gmail.com"},{"name":"mhaack","email":"mhaack@adobe.com"},{"name":"amol-anand","email":"amol@adobe.com"},{"name":"stopp-adobe","email":"stopp@adobe.com"},{"name":"namarora","email":"namarora@adobe.com"},{"name":"doten","email":"doten@adobe.com"},{"name":"duh_schmidt","email":"schmidt@adobe.com"},{"name":"asthabh23","email":"astha.bhargava23@gmail.com"},{"name":"zdahbi","email":"zouhir.dahbi@outlook.com"},{"name":"tuicu","email":"tuicu@adobe.com"},{"name":"fmeschbe","email":"fmeschbe@adobe.com"}],"homepage":"https://github.com/adobe/spacecat-shared/packages/spacecat-shared-user-manager-client/#readme","bugs":{"url":"https://github.com/adobe/spacecat-shared/issues"},"dist":{"shasum":"0f44fbd24d7648433d3e350f12316f1573ac3262","tarball":"https://registry.npmjs.org/@adobe/spacecat-shared-user-manager-client/-/spacecat-shared-user-manager-client-1.3.1.tgz","fileCount":8,"integrity":"sha512-aZmgVJnJPlIR7VXgx3tYW4UMU76dkZ29AToxoFf9fmVo68dvbAQd0Tqzn5+0W66jI+icz2qNxJp5JZk32Y24ZQ==","signatures":[{"sig":"MEQCIFkQJnTJfHd0FW0XpzR44QaIKWmIuJ18JFghbHZcIuE6AiAuKVqtCTJhwvl93+ie7NKXRe1/sH0vFovVZdnSzsVlNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adobe%2fspacecat-shared-user-manager-client@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":866234},"main":"src/index.js","type":"module","mocha":{"spec":"test/**/*.test.js","reporter":"mocha-multi-reporters","reporter-options":"configFile=.mocha-multi.json"},"types":"src/index.d.ts","engines":{"npm":">=10.9.0 <12.0.0","node":">=22.0.0 <25.0.0"},"exports":{".":{"types":"./src/index.d.ts","default":"./src/index.js"},"./mock/*":"./mock/*"},"gitHead":"a1624f252ad24f22aefadc362206f81460aa9ac7","scripts":{"lint":"eslint .","mock":"node mock/run.js","test":"c8 mocha","clean":"rm -rf node_modules build .counterfact","generate":"npm run spec:convert && npm run spec:overlay && npm run generate:ts && npm run generate:pydantic","lint:fix":"eslint --fix .","test:e2e":"MOCK_E2E=1 mocha --no-package --reporter spec --timeout 60000 test/e2e/**/*.e2e.js","docker:run":"docker run --rm -p 127.0.0.1:8443:8443 ghcr.io/adobe/spacecat-shared-user-manager-client-mock:local","test:types":"tsc -p tsconfig.json","generate:ts":"openapi-typescript build/openapi3.json --output src/generated/types.ts","docker:build":"docker build -t ghcr.io/adobe/spacecat-shared-user-manager-client-mock:local .","spec:convert":"mkdir -p build && swagger2openapi spec/usermanager_swagger.yaml --patch --outfile build/openapi3.json","spec:overlay":"node scripts/apply-overlay.mjs","generate:pydantic":"command -v datamodel-codegen >/dev/null 2>&1 || { echo 'ERROR: datamodel-codegen not found on PATH. Install it first: pip install datamodel-code-generator'; exit 1; }; datamodel-codegen --input build/openapi3.json --input-file-type openapi --output python/serenity_user_manager/ --output-model-type pydantic_v2.BaseModel"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:18678325-ced7-49f7-864a-e29f80d2bcea"}},"repository":{"url":"git+https://github.com/adobe/spacecat-shared.git","type":"git"},"_npmVersion":"11.12.1","description":"Shared modules of the Spacecat Services - Semrush User Manager client and generated types","directories":{},"_nodeVersion":"24.16.0","dependencies":{"openapi-fetch":"0.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"11.0.0","chai":"6.2.2","mocha":"11.7.6","sinon":"22.0.0","js-yaml":"4.2.0","typescript":"6.0.3","counterfact":"2.14.0","swagger2openapi":"7.0.8","openapi-typescript":"7.13.0","mocha-multi-reporters":"1.5.1"},"_npmOperationalInternal":{"tmp":"tmp/spacecat-shared-user-manager-client_1.3.1_1782736857496_0.9245047474358146","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@adobe/spacecat-shared-user-manager-client","version":"1.4.0","author":"","license":"Apache-2.0","_id":"@adobe/spacecat-shared-user-manager-client@1.4.0","maintainers":[{"name":"marbec","email":"mabecker@adobe.com"},{"name":"tripod","email":"tripod@bocanegra.ch"},{"name":"garthdb","email":"garthdb@gmail.com"},{"name":"lazd","email":"lazdnet@gmail.com"},{"name":"adobe-admin","email":"grp-opensourceoffice@adobe.com"},{"name":"patrickfulton","email":"patrickfulton@gmail.com"},{"name":"trieloff","email":"lars@trieloff.net"},{"name":"shazron","email":"shazron@gmail.com"},{"name":"krisnye","email":"krisnye@gmail.com"},{"name":"dcpfsdk","email":"dcpfsdk@adobe.com"},{"name":"natebaldwin","email":"natebaldwindesign@gmail.com"},{"name":"devongovett","email":"devongovett@gmail.com"},{"name":"aspro83","email":"danniintheus@gmail.com"},{"name":"symanovi","email":"symanovi@adobe.com"},{"name":"dpfister","email":"dominique.pfister@gmail.com"},{"name":"stefan-guggisberg","email":"sg@adobe.com"},{"name":"rofe","email":"npm@rofe.com"},{"name":"kptdobe","email":"kptdobe@gmail.com"},{"name":"adobehalls","email":"halls@adobe.com"},{"name":"fullcolorcoder","email":"bradjohn@adobe.com"},{"name":"djaeggi","email":"djaeggi@adobe.com"},{"name":"dylandepass","email":"dylandepass@gmail.com"},{"name":"mhaack","email":"mhaack@adobe.com"},{"name":"amol-anand","email":"amol@adobe.com"},{"name":"stopp-adobe","email":"stopp@adobe.com"},{"name":"namarora","email":"namarora@adobe.com"},{"name":"doten","email":"doten@adobe.com"},{"name":"duh_schmidt","email":"schmidt@adobe.com"},{"name":"asthabh23","email":"astha.bhargava23@gmail.com"},{"name":"zdahbi","email":"zouhir.dahbi@outlook.com"},{"name":"tuicu","email":"tuicu@adobe.com"},{"name":"fmeschbe","email":"fmeschbe@adobe.com"}],"homepage":"https://github.com/adobe/spacecat-shared/packages/spacecat-shared-user-manager-client/#readme","bugs":{"url":"https://github.com/adobe/spacecat-shared/issues"},"dist":{"shasum":"cfeb8d9ba1b4234d58ea0b78a417c4a15be28694","tarball":"https://registry.npmjs.org/@adobe/spacecat-shared-user-manager-client/-/spacecat-shared-user-manager-client-1.4.0.tgz","fileCount":8,"integrity":"sha512-m3Lr25jKBsjzfNrFXs6ZYX1NuiOCSKjB3uWgHPhskgWJvuUDNBCbgZaIA6X6xNyUJjHM65rYaIRNZ0KYKiDsyQ==","signatures":[{"sig":"MEUCIB0hNC0KXEK4WEd3MidDzANgG7G+XwIjBX+llBrwXtwvAiEAz8jgCq1QeFAHICH1US0W3BXBF1IZJ3XQmkOm0OHAArc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adobe%2fspacecat-shared-user-manager-client@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":866234},"main":"src/index.js","type":"module","mocha":{"spec":"test/**/*.test.js","reporter":"mocha-multi-reporters","reporter-options":"configFile=.mocha-multi.json"},"types":"src/index.d.ts","engines":{"npm":">=10.9.0 <12.0.0","node":">=22.0.0 <25.0.0"},"exports":{".":{"types":"./src/index.d.ts","default":"./src/index.js"},"./mock/*":"./mock/*"},"gitHead":"ca1474ead27b233057ed4b458a5f5cdd8d729d89","scripts":{"lint":"eslint .","mock":"node mock/run.js","test":"c8 mocha","clean":"rm -rf node_modules build .counterfact","generate":"npm run spec:convert && npm run spec:overlay && npm run generate:ts && npm run generate:pydantic","lint:fix":"eslint --fix .","test:e2e":"MOCK_E2E=1 mocha --no-package --reporter spec --timeout 60000 test/e2e/**/*.e2e.js","docker:run":"docker run --rm -p 127.0.0.1:8443:8443 ghcr.io/adobe/spacecat-shared-user-manager-client-mock:local","test:types":"tsc -p tsconfig.json","generate:ts":"openapi-typescript build/openapi3.json --output src/generated/types.ts","docker:build":"docker build -t ghcr.io/adobe/spacecat-shared-user-manager-client-mock:local .","spec:convert":"mkdir -p build && swagger2openapi spec/usermanager_swagger.yaml --patch --outfile build/openapi3.json","spec:overlay":"node scripts/apply-overlay.mjs","generate:pydantic":"command -v datamodel-codegen >/dev/null 2>&1 || { echo 'ERROR: datamodel-codegen not found on PATH. Install it first: pip install datamodel-code-generator'; exit 1; }; datamodel-codegen --input build/openapi3.json --input-file-type openapi --output python/serenity_user_manager/ --output-model-type pydantic_v2.BaseModel"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:18678325-ced7-49f7-864a-e29f80d2bcea"}},"repository":{"url":"git+https://github.com/adobe/spacecat-shared.git","type":"git"},"_npmVersion":"11.12.1","description":"Shared modules of the Spacecat Services - Semrush User Manager client and generated types","directories":{},"_nodeVersion":"24.16.0","dependencies":{"openapi-fetch":"0.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"11.0.0","chai":"6.2.2","mocha":"11.7.6","sinon":"22.0.0","js-yaml":"4.2.0","typescript":"6.0.3","counterfact":"2.14.0","swagger2openapi":"7.0.8","openapi-typescript":"7.13.0","mocha-multi-reporters":"1.5.1"},"_npmOperationalInternal":{"tmp":"tmp/spacecat-shared-user-manager-client_1.4.0_1782907341282_0.7172650233397593","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@adobe/spacecat-shared-user-manager-client","version":"1.5.0","description":"Shared modules of the Spacecat Services - Semrush User Manager client and generated types","type":"module","main":"src/index.js","types":"src/index.d.ts","exports":{".":{"types":"./src/index.d.ts","default":"./src/index.js"},"./mock/*":"./mock/*"},"engines":{"node":">=22.0.0 <25.0.0","npm":">=10.9.0 <12.0.0"},"scripts":{"test":"c8 mocha","lint":"eslint .","lint:fix":"eslint --fix .","clean":"rm -rf node_modules build .counterfact","spec:convert":"mkdir -p build && swagger2openapi spec/usermanager_swagger.yaml --patch --outfile build/openapi3.json","spec:overlay":"node scripts/apply-overlay.mjs","generate:ts":"openapi-typescript build/openapi3.json --output src/generated/types.ts","generate:pydantic":"command -v datamodel-codegen >/dev/null 2>&1 || { echo 'ERROR: datamodel-codegen not found on PATH. Install it first: pip install datamodel-code-generator'; exit 1; }; datamodel-codegen --input build/openapi3.json --input-file-type openapi --output python/serenity_user_manager/ --output-model-type pydantic_v2.BaseModel","generate":"npm run spec:convert && npm run spec:overlay && npm run generate:ts && npm run generate:pydantic","mock":"node mock/run.js","docker:build":"docker build -t ghcr.io/adobe/spacecat-shared-user-manager-client-mock:local .","docker:run":"docker run --rm -p 127.0.0.1:8443:8443 ghcr.io/adobe/spacecat-shared-user-manager-client-mock:local","test:e2e":"MOCK_E2E=1 mocha --no-package --reporter spec --timeout 60000 test/e2e/**/*.e2e.js","test:types":"tsc -p tsconfig.json"},"mocha":{"reporter":"mocha-multi-reporters","reporter-options":"configFile=.mocha-multi.json","spec":"test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/adobe/spacecat-shared.git"},"author":"","license":"Apache-2.0","bugs":{"url":"https://github.com/adobe/spacecat-shared/issues"},"homepage":"https://github.com/adobe/spacecat-shared/packages/spacecat-shared-user-manager-client/#readme","publishConfig":{"access":"public"},"dependencies":{"openapi-fetch":"0.17.0"},"devDependencies":{"c8":"11.0.0","chai":"6.2.2","counterfact":"2.14.0","js-yaml":"4.2.0","mocha":"11.7.6","mocha-multi-reporters":"1.5.1","openapi-typescript":"7.13.0","sinon":"22.0.0","swagger2openapi":"7.0.8","typescript":"6.0.3"},"gitHead":"1ee21c98290442e80ad44f1631c12112f4f0201d","_id":"@adobe/spacecat-shared-user-manager-client@1.5.0","_nodeVersion":"24.16.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-ut7smhF4L592MrCrV6ZG9RQqN1CRH9tKtzePa6w3xbPyn+65ZUdrXI6MmbFg+TpXI1rL8Mygg9Jm6rBAWAC4BA==","shasum":"c95802b11af61f9056acbc522ea8a00fe0098445","tarball":"https://registry.npmjs.org/@adobe/spacecat-shared-user-manager-client/-/spacecat-shared-user-manager-client-1.5.0.tgz","fileCount":8,"unpackedSize":866234,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adobe%2fspacecat-shared-user-manager-client@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCqDlzQe+bIzEeeFsoCKCqI8q75uw3WnP8pLmQrSev88QIhAOkztJb6jPhkZtQESkoVfngSqW6OZtEWLVOSPy06UeC8"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:18678325-ced7-49f7-864a-e29f80d2bcea"}},"directories":{},"maintainers":[{"name":"marbec","email":"mabecker@adobe.com"},{"name":"tripod","email":"tripod@bocanegra.ch"},{"name":"garthdb","email":"garthdb@gmail.com"},{"name":"lazd","email":"lazdnet@gmail.com"},{"name":"adobe-admin","email":"grp-opensourceoffice@adobe.com"},{"name":"patrickfulton","email":"patrickfulton@gmail.com"},{"name":"trieloff","email":"lars@trieloff.net"},{"name":"krisnye","email":"krisnye@gmail.com"},{"name":"dcpfsdk","email":"dcpfsdk@adobe.com"},{"name":"natebaldwin","email":"natebaldwindesign@gmail.com"},{"name":"devongovett","email":"devongovett@gmail.com"},{"name":"aspro83","email":"danniintheus@gmail.com"},{"name":"symanovi","email":"symanovi@adobe.com"},{"name":"dpfister","email":"dominique.pfister@gmail.com"},{"name":"stefan-guggisberg","email":"sg@adobe.com"},{"name":"rofe","email":"npm@rofe.com"},{"name":"kptdobe","email":"kptdobe@gmail.com"},{"name":"adobehalls","email":"halls@adobe.com"},{"name":"fullcolorcoder","email":"bradjohn@adobe.com"},{"name":"djaeggi","email":"djaeggi@adobe.com"},{"name":"dylandepass","email":"dylandepass@gmail.com"},{"name":"mhaack","email":"mhaack@adobe.com"},{"name":"amol-anand","email":"amol@adobe.com"},{"name":"stopp-adobe","email":"stopp@adobe.com"},{"name":"namarora","email":"namarora@adobe.com"},{"name":"doten","email":"doten@adobe.com"},{"name":"duh_schmidt","email":"schmidt@adobe.com"},{"name":"asthabh23","email":"astha.bhargava23@gmail.com"},{"name":"zdahbi","email":"zouhir.dahbi@outlook.com"},{"name":"tuicu","email":"tuicu@adobe.com"},{"name":"fmeschbe","email":"fmeschbe@adobe.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/spacecat-shared-user-manager-client_1.5.0_1783946523925_0.005474732756269196"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-23T16:51:13.671Z","modified":"2026-07-13T12:42:05.067Z","1.0.0":"2026-06-23T16:51:14.034Z","1.1.0":"2026-06-23T19:00:23.319Z","1.2.0":"2026-06-26T09:30:01.923Z","1.3.0":"2026-06-26T10:53:17.293Z","1.3.1":"2026-06-29T12:40:57.646Z","1.4.0":"2026-07-01T12:02:21.448Z","1.5.0":"2026-07-13T12:42:04.063Z"},"bugs":{"url":"https://github.com/adobe/spacecat-shared/issues"},"license":"Apache-2.0","homepage":"https://github.com/adobe/spacecat-shared/packages/spacecat-shared-user-manager-client/#readme","repository":{"type":"git","url":"git+https://github.com/adobe/spacecat-shared.git"},"description":"Shared modules of the Spacecat Services - Semrush User Manager client and generated types","maintainers":[{"name":"marbec","email":"mabecker@adobe.com"},{"name":"tripod","email":"tripod@bocanegra.ch"},{"name":"garthdb","email":"garthdb@gmail.com"},{"name":"lazd","email":"lazdnet@gmail.com"},{"name":"adobe-admin","email":"grp-opensourceoffice@adobe.com"},{"name":"patrickfulton","email":"patrickfulton@gmail.com"},{"name":"trieloff","email":"lars@trieloff.net"},{"name":"krisnye","email":"krisnye@gmail.com"},{"name":"dcpfsdk","email":"dcpfsdk@adobe.com"},{"name":"natebaldwin","email":"natebaldwindesign@gmail.com"},{"name":"devongovett","email":"devongovett@gmail.com"},{"name":"aspro83","email":"danniintheus@gmail.com"},{"name":"symanovi","email":"symanovi@adobe.com"},{"name":"dpfister","email":"dominique.pfister@gmail.com"},{"name":"stefan-guggisberg","email":"sg@adobe.com"},{"name":"rofe","email":"npm@rofe.com"},{"name":"kptdobe","email":"kptdobe@gmail.com"},{"name":"adobehalls","email":"halls@adobe.com"},{"name":"fullcolorcoder","email":"bradjohn@adobe.com"},{"name":"djaeggi","email":"djaeggi@adobe.com"},{"name":"dylandepass","email":"dylandepass@gmail.com"},{"name":"mhaack","email":"mhaack@adobe.com"},{"name":"amol-anand","email":"amol@adobe.com"},{"name":"stopp-adobe","email":"stopp@adobe.com"},{"name":"namarora","email":"namarora@adobe.com"},{"name":"doten","email":"doten@adobe.com"},{"name":"duh_schmidt","email":"schmidt@adobe.com"},{"name":"asthabh23","email":"astha.bhargava23@gmail.com"},{"name":"zdahbi","email":"zouhir.dahbi@outlook.com"},{"name":"tuicu","email":"tuicu@adobe.com"},{"name":"fmeschbe","email":"fmeschbe@adobe.com"}],"readme":"# @adobe/spacecat-shared-user-manager-client\n\nTyped integration with the Semrush **User Manager API** (`/enterprise/users/api`):\n\n- a thin, typed **client wrapper** (`createSerenityUserManagerApiClient`) over the generated `paths` — owns the base URL, IMS-Bearer auth, and retries (see [Client](#client)),\n- generated **TypeScript** (`src/generated/types.ts`) and **Pydantic v2** (`python/serenity_user_manager/`) types,\n- a generation-time **spec-correction overlay** (`spec/overlays/corrections.yaml`) that aligns the vendored swagger with the live API (see [Spec corrections](#spec-corrections)),\n- a **Counterfact mock** for E2E tests and local dev (`npm run mock`).\n\n## Client\n\n`createSerenityUserManagerApiClient(options)` returns an [`openapi-fetch`](https://openapi-ts.dev/openapi-fetch/)\nclient fully typed over the generated `paths`. It owns the fixed `/enterprise/users/api` prefix,\nforwards the caller's IMS JWT as `Authorization: Bearer <token>` (no minting or exchange — Semrush\naccepts the IMS bearer directly), and retries `429` / retryable `5xx` / network errors with\njittered exponential backoff that honours `Retry-After`.\n\n```js\nimport { createSerenityUserManagerApiClient } from '@adobe/spacecat-shared-user-manager-client';\n\nconst client = createSerenityUserManagerApiClient({\n  // origin only — the client appends `/enterprise/users/api` itself. The host is shared with\n  // Project Engine (`SEMRUSH_PROJECTS_BASE_URL`), or the Counterfact mock's origin for E2E.\n  baseUrl: 'https://adobe-hackathon.semrush.com',\n  // a raw IMS JWT, or a (sync/async) getter resolved per request\n  authToken: () => getCurrentImsToken(),\n});\n\nconst { data, error, response } = await client.GET('/v1/countries');\n```\n\nOptions: `baseUrl` and `authToken` are required; `maxRetries` (default `2`), `retryBaseDelayMs`\n(default `200`), `onRetry` (best-effort observability hook), and `fetch` (injectable, for tests)\nare optional. Request/response shapes come straight from the generated types — see `src/index.d.ts`.\n\nThis package follows the Project Engine client (LLMO-5461) applied to a second, larger API\n(LLMO-5558).\n\nThis package follows the `spacecat-shared` convention: **JS + ESM**, JSDoc-typed source,\n`mocha` + `chai` + `c8` for tests, and `@adobe/eslint-config-helix` for lint. The scaffold's\nTypeScript surface is ported to JS + JSDoc; the generated `types.ts` is a **type artifact only**,\nconsumed by the client via JSDoc `import(...)` and by `openapi-fetch` at type-check time.\n\n## Spec source\n\nThe spec is a **vendored file** — `spec/usermanager_swagger.yaml` — kept under version\ncontrol. Semrush only provides the file (no endpoint access in the near term), and it's\n**Swagger 2.0** (no v3/v3.1 on offer). It is large: ~234 paths / ~284 operations across\n~30 tags (Admin, Users, Workspaces, Projects, Keywords, Limits, Service Units,\nActivationPanel, …), ~187 user-facing operations and ~97 admin/internal operations.\n\nThe vendored file is **never edited**; where it diverges from the live API, a generation-time\noverlay corrects the converted artifact instead (see [Spec corrections](#spec-corrections)).\nRefresh is **manual**: drop in the newer file, re-run `npm run generate`, and review the diff.\nThere is no automated drift detection while endpoint access is restricted.\n\n## Pipeline\n\n```\nspec/usermanager_swagger.yaml  (vendored, Swagger 2.0)\n        │\n        ├── Counterfact ── reads v2 directly ──►  mock (no conversion)   [npm run mock]\n        │\n        └── swagger2openapi (v2 → 3.x) ──►  build/openapi3.json\n                                                │\n                                                ├── apply-overlay (corrections) ──► build/openapi3.json (in place)\n                                                │\n                                                ├── openapi-typescript ──► src/generated/types.ts\n                                                └── datamodel-code-generator ──► python/serenity_user_manager/\n```\n\nThe v2 → 3.x conversion exists **only** to feed the type generators (`openapi-typescript`\nis v3-only, and 3.x yields cleaner TS/Pydantic); the overlay then corrects that converted\nartifact before the generators run. **Counterfact reads the raw v2 file directly**, so the mock\npath never touches the converted artifact (and so does not see the corrections — a known gap the\nclient wrapper's follow-up addresses).\n\n| Command | Does |\n| --- | --- |\n| `npm run spec:convert` | v2 → 3.x via `swagger2openapi --patch` → `build/openapi3.json` |\n| `npm run spec:overlay` | apply `spec/overlays/corrections.yaml` to `build/openapi3.json` in place |\n| `npm run generate:ts` | `openapi-typescript` → `src/generated/types.ts` |\n| `npm run generate:pydantic` | `datamodel-code-generator` → `python/serenity_user_manager/` package |\n| `npm run generate` | all of the above, in order |\n| `npm run mock` | Counterfact mock on `:4010`, straight off the v2 spec |\n\n`datamodel-code-generator` is a **Python** tool, not an npm dependency. Install it once on\nyour `PATH` before running `generate:pydantic`:\n\n```bash\npip install datamodel-code-generator\n```\n\n## Spec corrections\n\nThe vendored swagger diverges from the live API in two places. A small OpenAPI Overlay\n(`spec/overlays/corrections.yaml`), applied to the converted OAS3 artifact at generation time by\n`scripts/apply-overlay.mjs`, corrects them; the vendored `spec/usermanager_swagger.yaml` is never\ntouched.\n\n- **CR1 — auth.** The spec models a required `Auth-Data-Jwt` header on ~187 operations, but the\n  live API authenticates on `Authorization: Bearer <IMS>` only — Semrush accepts the IMS bearer\n  directly. The overlay removes `Auth-Data-Jwt` from every operation and adds an `imsBearer`\n  security scheme. (Verified rainer-friederich 2026-06-15: `Auth-Data-Jwt` alone → 401; both\n  headers → 401; `Authorization: Bearer` → 200.)\n- **CR2 — workspace status shape.** `GET /v1/workspaces/{id}/status` is typed as an array of\n  `WorkspaceCheckResponse`, but the live API returns a single object\n  (`{ status: \"not ready\" | \"created\" | \"error\" }`) — the deployed api-service transport reads it\n  as `status.status === 'created'`. The overlay drops the array wrapper.\n\nGuard tests in `test/foundation.test.js` pin CR1 and CR2 against the generated surface, so a\nfuture Semrush spec refresh that silently drops the overlay fails loudly instead of regressing the\ngenerated types. `test/overlay.test.js` covers the overlay applier itself.\n\n## Committed vs generated\n\n- **Committed:** the vendored spec (`spec/usermanager_swagger.yaml`).\n- **Generated, committed in its own commit** and marked `linguist-generated` (see\n  `.gitattributes`) so it's collapsed in review and excluded from diff counts:\n  `src/generated/**`, `python/serenity_user_manager/**`.\n\n  `datamodel-code-generator` may emit a **package** (`model.py`, `__init__.py`, plus one\n  module per dotted schema-name prefix) rather than a single `models.py`, mirroring the\n  vendored spec's modular schema references. This is a tool-driven layout choice, not a\n  spec edit.\n- **Gitignored intermediate:** `build/openapi3.json`, `.counterfact/`.\n\n## Notes\n\n- The package is `@adobe/spacecat-shared-*` and lives under the monorepo `packages/` layout.\n- Pydantic v2 is the default target; switch the `--output-model-type` flag in\n  `generate:pydantic` if a consumer needs v1.\n- The base host is shared with Project Engine (`SEMRUSH_PROJECTS_BASE_URL`, e.g. the dev\n  `https://adobe-hackathon.semrush.com`); only the basePath differs (`/enterprise/users/api`\n  vs `/enterprise/projects/api`). The live API authenticates on `Authorization: Bearer <IMS>` —\n  Semrush accepts the IMS bearer directly (see [Spec corrections](#spec-corrections)).\n","readmeFilename":"README.md"}