@koda-sl/baker-cli 0.31.0-dev.31ee8d9c → 0.34.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +99 -12
- package/package.json +1 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -37
- package/dist/cli.js.map +0 -1
- package/dist/client.d.ts +0 -12
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -153
- package/dist/client.js.map +0 -1
- package/dist/commands/actions/claim.d.ts +0 -13
- package/dist/commands/actions/claim.d.ts.map +0 -1
- package/dist/commands/actions/claim.js +0 -45
- package/dist/commands/actions/claim.js.map +0 -1
- package/dist/commands/actions/complete.d.ts +0 -18
- package/dist/commands/actions/complete.d.ts.map +0 -1
- package/dist/commands/actions/complete.js +0 -42
- package/dist/commands/actions/complete.js.map +0 -1
- package/dist/commands/actions/create.d.ts +0 -24
- package/dist/commands/actions/create.d.ts.map +0 -1
- package/dist/commands/actions/create.js +0 -68
- package/dist/commands/actions/create.js.map +0 -1
- package/dist/commands/actions/discard.d.ts +0 -18
- package/dist/commands/actions/discard.d.ts.map +0 -1
- package/dist/commands/actions/discard.js +0 -44
- package/dist/commands/actions/discard.js.map +0 -1
- package/dist/commands/actions/get.d.ts +0 -13
- package/dist/commands/actions/get.d.ts.map +0 -1
- package/dist/commands/actions/get.js +0 -34
- package/dist/commands/actions/get.js.map +0 -1
- package/dist/commands/actions/index.d.ts +0 -2
- package/dist/commands/actions/index.d.ts.map +0 -1
- package/dist/commands/actions/index.js +0 -43
- package/dist/commands/actions/index.js.map +0 -1
- package/dist/commands/actions/link.d.ts +0 -13
- package/dist/commands/actions/link.d.ts.map +0 -1
- package/dist/commands/actions/link.js +0 -43
- package/dist/commands/actions/link.js.map +0 -1
- package/dist/commands/actions/list.d.ts +0 -19
- package/dist/commands/actions/list.d.ts.map +0 -1
- package/dist/commands/actions/list.js +0 -66
- package/dist/commands/actions/list.js.map +0 -1
- package/dist/commands/actions/release.d.ts +0 -13
- package/dist/commands/actions/release.d.ts.map +0 -1
- package/dist/commands/actions/release.js +0 -38
- package/dist/commands/actions/release.js.map +0 -1
- package/dist/commands/actions/shared.d.ts +0 -6
- package/dist/commands/actions/shared.d.ts.map +0 -1
- package/dist/commands/actions/shared.js +0 -28
- package/dist/commands/actions/shared.js.map +0 -1
- package/dist/commands/actions/tag/add.d.ts +0 -18
- package/dist/commands/actions/tag/add.d.ts.map +0 -1
- package/dist/commands/actions/tag/add.js +0 -47
- package/dist/commands/actions/tag/add.js.map +0 -1
- package/dist/commands/actions/tag/create.d.ts +0 -23
- package/dist/commands/actions/tag/create.d.ts.map +0 -1
- package/dist/commands/actions/tag/create.js +0 -50
- package/dist/commands/actions/tag/create.js.map +0 -1
- package/dist/commands/actions/tag/delete.d.ts +0 -13
- package/dist/commands/actions/tag/delete.d.ts.map +0 -1
- package/dist/commands/actions/tag/delete.js +0 -36
- package/dist/commands/actions/tag/delete.js.map +0 -1
- package/dist/commands/actions/tag/index.d.ts +0 -2
- package/dist/commands/actions/tag/index.d.ts.map +0 -1
- package/dist/commands/actions/tag/index.js +0 -32
- package/dist/commands/actions/tag/index.js.map +0 -1
- package/dist/commands/actions/tag/list.d.ts +0 -2
- package/dist/commands/actions/tag/list.d.ts.map +0 -1
- package/dist/commands/actions/tag/list.js +0 -24
- package/dist/commands/actions/tag/list.js.map +0 -1
- package/dist/commands/actions/tag/remove.d.ts +0 -18
- package/dist/commands/actions/tag/remove.d.ts.map +0 -1
- package/dist/commands/actions/tag/remove.js +0 -48
- package/dist/commands/actions/tag/remove.js.map +0 -1
- package/dist/commands/actions/tag/update.d.ts +0 -28
- package/dist/commands/actions/tag/update.d.ts.map +0 -1
- package/dist/commands/actions/tag/update.js +0 -50
- package/dist/commands/actions/tag/update.js.map +0 -1
- package/dist/commands/actions/unlink.d.ts +0 -13
- package/dist/commands/actions/unlink.d.ts.map +0 -1
- package/dist/commands/actions/unlink.js +0 -45
- package/dist/commands/actions/unlink.js.map +0 -1
- package/dist/commands/actions/update.d.ts +0 -23
- package/dist/commands/actions/update.d.ts.map +0 -1
- package/dist/commands/actions/update.js +0 -50
- package/dist/commands/actions/update.js.map +0 -1
- package/dist/commands/ads/cache.d.ts +0 -7
- package/dist/commands/ads/cache.d.ts.map +0 -1
- package/dist/commands/ads/cache.js +0 -73
- package/dist/commands/ads/cache.js.map +0 -1
- package/dist/commands/ads/cache.test.d.ts +0 -2
- package/dist/commands/ads/cache.test.d.ts.map +0 -1
- package/dist/commands/ads/cache.test.js +0 -44
- package/dist/commands/ads/cache.test.js.map +0 -1
- package/dist/commands/ads/field-descriptions.d.ts +0 -2
- package/dist/commands/ads/field-descriptions.d.ts.map +0 -1
- package/dist/commands/ads/field-descriptions.js +0 -91
- package/dist/commands/ads/field-descriptions.js.map +0 -1
- package/dist/commands/ads/google/accounts.d.ts +0 -14
- package/dist/commands/ads/google/accounts.d.ts.map +0 -1
- package/dist/commands/ads/google/accounts.js +0 -76
- package/dist/commands/ads/google/accounts.js.map +0 -1
- package/dist/commands/ads/google/changes.d.ts +0 -34
- package/dist/commands/ads/google/changes.d.ts.map +0 -1
- package/dist/commands/ads/google/changes.js +0 -80
- package/dist/commands/ads/google/changes.js.map +0 -1
- package/dist/commands/ads/google/correction-table.d.ts +0 -3
- package/dist/commands/ads/google/correction-table.d.ts.map +0 -1
- package/dist/commands/ads/google/correction-table.js +0 -352
- package/dist/commands/ads/google/correction-table.js.map +0 -1
- package/dist/commands/ads/google/currency.d.ts +0 -13
- package/dist/commands/ads/google/currency.d.ts.map +0 -1
- package/dist/commands/ads/google/currency.js +0 -68
- package/dist/commands/ads/google/currency.js.map +0 -1
- package/dist/commands/ads/google/error-parser.d.ts +0 -3
- package/dist/commands/ads/google/error-parser.d.ts.map +0 -1
- package/dist/commands/ads/google/error-parser.js +0 -91
- package/dist/commands/ads/google/error-parser.js.map +0 -1
- package/dist/commands/ads/google/error-parser.test.d.ts +0 -2
- package/dist/commands/ads/google/error-parser.test.d.ts.map +0 -1
- package/dist/commands/ads/google/error-parser.test.js +0 -48
- package/dist/commands/ads/google/error-parser.test.js.map +0 -1
- package/dist/commands/ads/google/index.d.ts +0 -2
- package/dist/commands/ads/google/index.d.ts.map +0 -1
- package/dist/commands/ads/google/index.js +0 -34
- package/dist/commands/ads/google/index.js.map +0 -1
- package/dist/commands/ads/google/keywords/discover.d.ts +0 -49
- package/dist/commands/ads/google/keywords/discover.d.ts.map +0 -1
- package/dist/commands/ads/google/keywords/discover.js +0 -151
- package/dist/commands/ads/google/keywords/discover.js.map +0 -1
- package/dist/commands/ads/google/keywords/index.d.ts +0 -2
- package/dist/commands/ads/google/keywords/index.d.ts.map +0 -1
- package/dist/commands/ads/google/keywords/index.js +0 -24
- package/dist/commands/ads/google/keywords/index.js.map +0 -1
- package/dist/commands/ads/google/keywords/languages.d.ts +0 -2
- package/dist/commands/ads/google/keywords/languages.d.ts.map +0 -1
- package/dist/commands/ads/google/keywords/languages.js +0 -23
- package/dist/commands/ads/google/keywords/languages.js.map +0 -1
- package/dist/commands/ads/google/keywords/locations.d.ts +0 -2
- package/dist/commands/ads/google/keywords/locations.d.ts.map +0 -1
- package/dist/commands/ads/google/keywords/locations.js +0 -23
- package/dist/commands/ads/google/keywords/locations.js.map +0 -1
- package/dist/commands/ads/google/keywords/metrics.d.ts +0 -34
- package/dist/commands/ads/google/keywords/metrics.d.ts.map +0 -1
- package/dist/commands/ads/google/keywords/metrics.js +0 -123
- package/dist/commands/ads/google/keywords/metrics.js.map +0 -1
- package/dist/commands/ads/google/library/index.d.ts +0 -3
- package/dist/commands/ads/google/library/index.d.ts.map +0 -1
- package/dist/commands/ads/google/library/index.js +0 -279
- package/dist/commands/ads/google/library/index.js.map +0 -1
- package/dist/commands/ads/google/library/index.test.d.ts +0 -2
- package/dist/commands/ads/google/library/index.test.d.ts.map +0 -1
- package/dist/commands/ads/google/library/index.test.js +0 -26
- package/dist/commands/ads/google/library/index.test.js.map +0 -1
- package/dist/commands/ads/google/preflight.d.ts +0 -3
- package/dist/commands/ads/google/preflight.d.ts.map +0 -1
- package/dist/commands/ads/google/preflight.js +0 -122
- package/dist/commands/ads/google/preflight.js.map +0 -1
- package/dist/commands/ads/google/preflight.test.d.ts +0 -2
- package/dist/commands/ads/google/preflight.test.d.ts.map +0 -1
- package/dist/commands/ads/google/preflight.test.js +0 -50
- package/dist/commands/ads/google/preflight.test.js.map +0 -1
- package/dist/commands/ads/google/presets.d.ts +0 -12
- package/dist/commands/ads/google/presets.d.ts.map +0 -1
- package/dist/commands/ads/google/presets.js +0 -85
- package/dist/commands/ads/google/presets.js.map +0 -1
- package/dist/commands/ads/google/presets.test.d.ts +0 -2
- package/dist/commands/ads/google/presets.test.d.ts.map +0 -1
- package/dist/commands/ads/google/presets.test.js +0 -79
- package/dist/commands/ads/google/presets.test.js.map +0 -1
- package/dist/commands/ads/google/query.d.ts +0 -64
- package/dist/commands/ads/google/query.d.ts.map +0 -1
- package/dist/commands/ads/google/query.js +0 -304
- package/dist/commands/ads/google/query.js.map +0 -1
- package/dist/commands/ads/index.d.ts +0 -2
- package/dist/commands/ads/index.d.ts.map +0 -1
- package/dist/commands/ads/index.js +0 -34
- package/dist/commands/ads/index.js.map +0 -1
- package/dist/commands/ads/linkedin/account.d.ts +0 -20
- package/dist/commands/ads/linkedin/account.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/account.js +0 -39
- package/dist/commands/ads/linkedin/account.js.map +0 -1
- package/dist/commands/ads/linkedin/accounts.d.ts +0 -20
- package/dist/commands/ads/linkedin/accounts.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/accounts.js +0 -56
- package/dist/commands/ads/linkedin/accounts.js.map +0 -1
- package/dist/commands/ads/linkedin/analytics.d.ts +0 -84
- package/dist/commands/ads/linkedin/analytics.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/analytics.js +0 -249
- package/dist/commands/ads/linkedin/analytics.js.map +0 -1
- package/dist/commands/ads/linkedin/audience-size.d.ts +0 -28
- package/dist/commands/ads/linkedin/audience-size.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/audience-size.js +0 -75
- package/dist/commands/ads/linkedin/audience-size.js.map +0 -1
- package/dist/commands/ads/linkedin/audit.d.ts +0 -35
- package/dist/commands/ads/linkedin/audit.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/audit.js +0 -136
- package/dist/commands/ads/linkedin/audit.js.map +0 -1
- package/dist/commands/ads/linkedin/bid-pricing.d.ts +0 -38
- package/dist/commands/ads/linkedin/bid-pricing.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/bid-pricing.js +0 -76
- package/dist/commands/ads/linkedin/bid-pricing.js.map +0 -1
- package/dist/commands/ads/linkedin/campaign-groups.d.ts +0 -32
- package/dist/commands/ads/linkedin/campaign-groups.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/campaign-groups.js +0 -50
- package/dist/commands/ads/linkedin/campaign-groups.js.map +0 -1
- package/dist/commands/ads/linkedin/campaigns.d.ts +0 -36
- package/dist/commands/ads/linkedin/campaigns.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/campaigns.js +0 -57
- package/dist/commands/ads/linkedin/campaigns.js.map +0 -1
- package/dist/commands/ads/linkedin/conversation.d.ts +0 -36
- package/dist/commands/ads/linkedin/conversation.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/conversation.js +0 -77
- package/dist/commands/ads/linkedin/conversation.js.map +0 -1
- package/dist/commands/ads/linkedin/conversions.d.ts +0 -2
- package/dist/commands/ads/linkedin/conversions.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/conversions.js +0 -102
- package/dist/commands/ads/linkedin/conversions.js.map +0 -1
- package/dist/commands/ads/linkedin/creatives.d.ts +0 -36
- package/dist/commands/ads/linkedin/creatives.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/creatives.js +0 -57
- package/dist/commands/ads/linkedin/creatives.js.map +0 -1
- package/dist/commands/ads/linkedin/demographics.d.ts +0 -40
- package/dist/commands/ads/linkedin/demographics.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/demographics.js +0 -117
- package/dist/commands/ads/linkedin/demographics.js.map +0 -1
- package/dist/commands/ads/linkedin/facets.d.ts +0 -2
- package/dist/commands/ads/linkedin/facets.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/facets.js +0 -95
- package/dist/commands/ads/linkedin/facets.js.map +0 -1
- package/dist/commands/ads/linkedin/forecast.d.ts +0 -50
- package/dist/commands/ads/linkedin/forecast.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/forecast.js +0 -83
- package/dist/commands/ads/linkedin/forecast.js.map +0 -1
- package/dist/commands/ads/linkedin/index.d.ts +0 -19
- package/dist/commands/ads/linkedin/index.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/index.js +0 -83
- package/dist/commands/ads/linkedin/index.js.map +0 -1
- package/dist/commands/ads/linkedin/leads.d.ts +0 -40
- package/dist/commands/ads/linkedin/leads.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/leads.js +0 -75
- package/dist/commands/ads/linkedin/leads.js.map +0 -1
- package/dist/commands/ads/linkedin/presets.d.ts +0 -40
- package/dist/commands/ads/linkedin/presets.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/presets.js +0 -193
- package/dist/commands/ads/linkedin/presets.js.map +0 -1
- package/dist/commands/ads/linkedin/presets.test.d.ts +0 -2
- package/dist/commands/ads/linkedin/presets.test.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/presets.test.js +0 -98
- package/dist/commands/ads/linkedin/presets.test.js.map +0 -1
- package/dist/commands/ads/linkedin/schemas.d.ts +0 -2
- package/dist/commands/ads/linkedin/schemas.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/schemas.js +0 -300
- package/dist/commands/ads/linkedin/schemas.js.map +0 -1
- package/dist/commands/ads/linkedin/shared.d.ts +0 -17
- package/dist/commands/ads/linkedin/shared.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/shared.js +0 -116
- package/dist/commands/ads/linkedin/shared.js.map +0 -1
- package/dist/commands/ads/linkedin/top-companies.d.ts +0 -44
- package/dist/commands/ads/linkedin/top-companies.d.ts.map +0 -1
- package/dist/commands/ads/linkedin/top-companies.js +0 -86
- package/dist/commands/ads/linkedin/top-companies.js.map +0 -1
- package/dist/commands/ads/meta/account.d.ts +0 -11
- package/dist/commands/ads/meta/account.d.ts.map +0 -1
- package/dist/commands/ads/meta/account.js +0 -32
- package/dist/commands/ads/meta/account.js.map +0 -1
- package/dist/commands/ads/meta/accounts.d.ts +0 -20
- package/dist/commands/ads/meta/accounts.d.ts.map +0 -1
- package/dist/commands/ads/meta/accounts.js +0 -55
- package/dist/commands/ads/meta/accounts.js.map +0 -1
- package/dist/commands/ads/meta/activities.d.ts +0 -24
- package/dist/commands/ads/meta/activities.d.ts.map +0 -1
- package/dist/commands/ads/meta/activities.js +0 -44
- package/dist/commands/ads/meta/activities.js.map +0 -1
- package/dist/commands/ads/meta/ads.d.ts +0 -36
- package/dist/commands/ads/meta/ads.d.ts.map +0 -1
- package/dist/commands/ads/meta/ads.js +0 -57
- package/dist/commands/ads/meta/ads.js.map +0 -1
- package/dist/commands/ads/meta/adsets.d.ts +0 -32
- package/dist/commands/ads/meta/adsets.d.ts.map +0 -1
- package/dist/commands/ads/meta/adsets.js +0 -50
- package/dist/commands/ads/meta/adsets.js.map +0 -1
- package/dist/commands/ads/meta/audiences.d.ts +0 -20
- package/dist/commands/ads/meta/audiences.d.ts.map +0 -1
- package/dist/commands/ads/meta/audiences.js +0 -41
- package/dist/commands/ads/meta/audiences.js.map +0 -1
- package/dist/commands/ads/meta/businesses.d.ts +0 -12
- package/dist/commands/ads/meta/businesses.d.ts.map +0 -1
- package/dist/commands/ads/meta/businesses.js +0 -35
- package/dist/commands/ads/meta/businesses.js.map +0 -1
- package/dist/commands/ads/meta/campaigns.d.ts +0 -28
- package/dist/commands/ads/meta/campaigns.d.ts.map +0 -1
- package/dist/commands/ads/meta/campaigns.js +0 -51
- package/dist/commands/ads/meta/campaigns.js.map +0 -1
- package/dist/commands/ads/meta/creatives.d.ts +0 -24
- package/dist/commands/ads/meta/creatives.d.ts.map +0 -1
- package/dist/commands/ads/meta/creatives.js +0 -51
- package/dist/commands/ads/meta/creatives.js.map +0 -1
- package/dist/commands/ads/meta/index.d.ts +0 -17
- package/dist/commands/ads/meta/index.d.ts.map +0 -1
- package/dist/commands/ads/meta/index.js +0 -79
- package/dist/commands/ads/meta/index.js.map +0 -1
- package/dist/commands/ads/meta/insights.d.ts +0 -92
- package/dist/commands/ads/meta/insights.d.ts.map +0 -1
- package/dist/commands/ads/meta/insights.js +0 -260
- package/dist/commands/ads/meta/insights.js.map +0 -1
- package/dist/commands/ads/meta/pixels.d.ts +0 -33
- package/dist/commands/ads/meta/pixels.d.ts.map +0 -1
- package/dist/commands/ads/meta/pixels.js +0 -76
- package/dist/commands/ads/meta/pixels.js.map +0 -1
- package/dist/commands/ads/meta/presets.d.ts +0 -30
- package/dist/commands/ads/meta/presets.d.ts.map +0 -1
- package/dist/commands/ads/meta/presets.js +0 -86
- package/dist/commands/ads/meta/presets.js.map +0 -1
- package/dist/commands/ads/meta/preview.d.ts +0 -32
- package/dist/commands/ads/meta/preview.d.ts.map +0 -1
- package/dist/commands/ads/meta/preview.js +0 -90
- package/dist/commands/ads/meta/preview.js.map +0 -1
- package/dist/commands/ads/meta/shared.d.ts +0 -18
- package/dist/commands/ads/meta/shared.d.ts.map +0 -1
- package/dist/commands/ads/meta/shared.js +0 -86
- package/dist/commands/ads/meta/shared.js.map +0 -1
- package/dist/commands/ads/output.d.ts +0 -22
- package/dist/commands/ads/output.d.ts.map +0 -1
- package/dist/commands/ads/output.js +0 -130
- package/dist/commands/ads/output.js.map +0 -1
- package/dist/commands/ads/output.test.d.ts +0 -2
- package/dist/commands/ads/output.test.d.ts.map +0 -1
- package/dist/commands/ads/output.test.js +0 -100
- package/dist/commands/ads/output.test.js.map +0 -1
- package/dist/commands/ads/types.d.ts +0 -69
- package/dist/commands/ads/types.d.ts.map +0 -1
- package/dist/commands/ads/types.js +0 -2
- package/dist/commands/ads/types.js.map +0 -1
- package/dist/commands/ads/x/accounts.d.ts +0 -14
- package/dist/commands/ads/x/accounts.d.ts.map +0 -1
- package/dist/commands/ads/x/accounts.js +0 -73
- package/dist/commands/ads/x/accounts.js.map +0 -1
- package/dist/commands/ads/x/active-entities.d.ts +0 -43
- package/dist/commands/ads/x/active-entities.d.ts.map +0 -1
- package/dist/commands/ads/x/active-entities.js +0 -88
- package/dist/commands/ads/x/active-entities.js.map +0 -1
- package/dist/commands/ads/x/audiences.d.ts +0 -19
- package/dist/commands/ads/x/audiences.d.ts.map +0 -1
- package/dist/commands/ads/x/audiences.js +0 -65
- package/dist/commands/ads/x/audiences.js.map +0 -1
- package/dist/commands/ads/x/campaigns.d.ts +0 -34
- package/dist/commands/ads/x/campaigns.d.ts.map +0 -1
- package/dist/commands/ads/x/campaigns.js +0 -56
- package/dist/commands/ads/x/campaigns.js.map +0 -1
- package/dist/commands/ads/x/cards.d.ts +0 -19
- package/dist/commands/ads/x/cards.d.ts.map +0 -1
- package/dist/commands/ads/x/cards.js +0 -65
- package/dist/commands/ads/x/cards.js.map +0 -1
- package/dist/commands/ads/x/error-parser.d.ts +0 -3
- package/dist/commands/ads/x/error-parser.d.ts.map +0 -1
- package/dist/commands/ads/x/error-parser.js +0 -80
- package/dist/commands/ads/x/error-parser.js.map +0 -1
- package/dist/commands/ads/x/funding.d.ts +0 -19
- package/dist/commands/ads/x/funding.d.ts.map +0 -1
- package/dist/commands/ads/x/funding.js +0 -65
- package/dist/commands/ads/x/funding.js.map +0 -1
- package/dist/commands/ads/x/index.d.ts +0 -2
- package/dist/commands/ads/x/index.d.ts.map +0 -1
- package/dist/commands/ads/x/index.js +0 -50
- package/dist/commands/ads/x/index.js.map +0 -1
- package/dist/commands/ads/x/line-items.d.ts +0 -34
- package/dist/commands/ads/x/line-items.d.ts.map +0 -1
- package/dist/commands/ads/x/line-items.js +0 -55
- package/dist/commands/ads/x/line-items.js.map +0 -1
- package/dist/commands/ads/x/media.d.ts +0 -24
- package/dist/commands/ads/x/media.d.ts.map +0 -1
- package/dist/commands/ads/x/media.js +0 -70
- package/dist/commands/ads/x/media.js.map +0 -1
- package/dist/commands/ads/x/output.d.ts +0 -13
- package/dist/commands/ads/x/output.d.ts.map +0 -1
- package/dist/commands/ads/x/output.js +0 -75
- package/dist/commands/ads/x/output.js.map +0 -1
- package/dist/commands/ads/x/presets.d.ts +0 -15
- package/dist/commands/ads/x/presets.d.ts.map +0 -1
- package/dist/commands/ads/x/presets.js +0 -60
- package/dist/commands/ads/x/presets.js.map +0 -1
- package/dist/commands/ads/x/promoted-tweets.d.ts +0 -29
- package/dist/commands/ads/x/promoted-tweets.d.ts.map +0 -1
- package/dist/commands/ads/x/promoted-tweets.js +0 -74
- package/dist/commands/ads/x/promoted-tweets.js.map +0 -1
- package/dist/commands/ads/x/run-list.d.ts +0 -17
- package/dist/commands/ads/x/run-list.d.ts.map +0 -1
- package/dist/commands/ads/x/run-list.js +0 -60
- package/dist/commands/ads/x/run-list.js.map +0 -1
- package/dist/commands/ads/x/stats/index.d.ts +0 -2
- package/dist/commands/ads/x/stats/index.d.ts.map +0 -1
- package/dist/commands/ads/x/stats/index.js +0 -32
- package/dist/commands/ads/x/stats/index.js.map +0 -1
- package/dist/commands/ads/x/stats/job-create.d.ts +0 -58
- package/dist/commands/ads/x/stats/job-create.d.ts.map +0 -1
- package/dist/commands/ads/x/stats/job-create.js +0 -95
- package/dist/commands/ads/x/stats/job-create.js.map +0 -1
- package/dist/commands/ads/x/stats/job-status.d.ts +0 -18
- package/dist/commands/ads/x/stats/job-status.d.ts.map +0 -1
- package/dist/commands/ads/x/stats/job-status.js +0 -58
- package/dist/commands/ads/x/stats/job-status.js.map +0 -1
- package/dist/commands/ads/x/stats/job.d.ts +0 -63
- package/dist/commands/ads/x/stats/job.d.ts.map +0 -1
- package/dist/commands/ads/x/stats/job.js +0 -183
- package/dist/commands/ads/x/stats/job.js.map +0 -1
- package/dist/commands/ads/x/stats/sync.d.ts +0 -73
- package/dist/commands/ads/x/stats/sync.d.ts.map +0 -1
- package/dist/commands/ads/x/stats/sync.js +0 -151
- package/dist/commands/ads/x/stats/sync.js.map +0 -1
- package/dist/commands/ads/x/targeting-constants.d.ts +0 -34
- package/dist/commands/ads/x/targeting-constants.d.ts.map +0 -1
- package/dist/commands/ads/x/targeting-constants.js +0 -80
- package/dist/commands/ads/x/targeting-constants.js.map +0 -1
- package/dist/commands/ads/x/targeting-criteria.d.ts +0 -24
- package/dist/commands/ads/x/targeting-criteria.d.ts.map +0 -1
- package/dist/commands/ads/x/targeting-criteria.js +0 -69
- package/dist/commands/ads/x/targeting-criteria.js.map +0 -1
- package/dist/commands/ga4/audit.d.ts +0 -13
- package/dist/commands/ga4/audit.d.ts.map +0 -1
- package/dist/commands/ga4/audit.js +0 -67
- package/dist/commands/ga4/audit.js.map +0 -1
- package/dist/commands/ga4/index.d.ts +0 -2
- package/dist/commands/ga4/index.d.ts.map +0 -1
- package/dist/commands/ga4/index.js +0 -26
- package/dist/commands/ga4/index.js.map +0 -1
- package/dist/commands/ga4/presets.d.ts +0 -8
- package/dist/commands/ga4/presets.d.ts.map +0 -1
- package/dist/commands/ga4/presets.js +0 -33
- package/dist/commands/ga4/presets.js.map +0 -1
- package/dist/commands/ga4/properties.d.ts +0 -14
- package/dist/commands/ga4/properties.d.ts.map +0 -1
- package/dist/commands/ga4/properties.js +0 -61
- package/dist/commands/ga4/properties.js.map +0 -1
- package/dist/commands/ga4/query.d.ts +0 -69
- package/dist/commands/ga4/query.d.ts.map +0 -1
- package/dist/commands/ga4/query.js +0 -184
- package/dist/commands/ga4/query.js.map +0 -1
- package/dist/commands/ga4/resolve.d.ts +0 -2
- package/dist/commands/ga4/resolve.d.ts.map +0 -1
- package/dist/commands/ga4/resolve.js +0 -57
- package/dist/commands/ga4/resolve.js.map +0 -1
- package/dist/commands/gsc/index.d.ts +0 -2
- package/dist/commands/gsc/index.d.ts.map +0 -1
- package/dist/commands/gsc/index.js +0 -26
- package/dist/commands/gsc/index.js.map +0 -1
- package/dist/commands/gsc/presets.d.ts +0 -9
- package/dist/commands/gsc/presets.d.ts.map +0 -1
- package/dist/commands/gsc/presets.js +0 -34
- package/dist/commands/gsc/presets.js.map +0 -1
- package/dist/commands/gsc/query.d.ts +0 -79
- package/dist/commands/gsc/query.d.ts.map +0 -1
- package/dist/commands/gsc/query.js +0 -196
- package/dist/commands/gsc/query.js.map +0 -1
- package/dist/commands/gsc/resolve.d.ts +0 -2
- package/dist/commands/gsc/resolve.d.ts.map +0 -1
- package/dist/commands/gsc/resolve.js +0 -57
- package/dist/commands/gsc/resolve.js.map +0 -1
- package/dist/commands/gsc/sitemaps.d.ts +0 -19
- package/dist/commands/gsc/sitemaps.d.ts.map +0 -1
- package/dist/commands/gsc/sitemaps.js +0 -65
- package/dist/commands/gsc/sitemaps.js.map +0 -1
- package/dist/commands/gsc/sites.d.ts +0 -14
- package/dist/commands/gsc/sites.d.ts.map +0 -1
- package/dist/commands/gsc/sites.js +0 -61
- package/dist/commands/gsc/sites.js.map +0 -1
- package/dist/commands/images/delete.d.ts +0 -19
- package/dist/commands/images/delete.d.ts.map +0 -1
- package/dist/commands/images/delete.js +0 -58
- package/dist/commands/images/delete.js.map +0 -1
- package/dist/commands/images/extract.d.ts +0 -23
- package/dist/commands/images/extract.d.ts.map +0 -1
- package/dist/commands/images/extract.js +0 -53
- package/dist/commands/images/extract.js.map +0 -1
- package/dist/commands/images/find.d.ts +0 -33
- package/dist/commands/images/find.d.ts.map +0 -1
- package/dist/commands/images/find.js +0 -70
- package/dist/commands/images/find.js.map +0 -1
- package/dist/commands/images/get.d.ts +0 -30
- package/dist/commands/images/get.d.ts.map +0 -1
- package/dist/commands/images/get.js +0 -42
- package/dist/commands/images/get.js.map +0 -1
- package/dist/commands/images/gif.d.ts +0 -33
- package/dist/commands/images/gif.d.ts.map +0 -1
- package/dist/commands/images/gif.js +0 -81
- package/dist/commands/images/gif.js.map +0 -1
- package/dist/commands/images/google.d.ts +0 -38
- package/dist/commands/images/google.d.ts.map +0 -1
- package/dist/commands/images/google.js +0 -77
- package/dist/commands/images/google.js.map +0 -1
- package/dist/commands/images/icon.d.ts +0 -23
- package/dist/commands/images/icon.d.ts.map +0 -1
- package/dist/commands/images/icon.js +0 -57
- package/dist/commands/images/icon.js.map +0 -1
- package/dist/commands/images/index.d.ts +0 -2
- package/dist/commands/images/index.d.ts.map +0 -1
- package/dist/commands/images/index.js +0 -63
- package/dist/commands/images/index.js.map +0 -1
- package/dist/commands/images/ingest.d.ts +0 -28
- package/dist/commands/images/ingest.d.ts.map +0 -1
- package/dist/commands/images/ingest.js +0 -60
- package/dist/commands/images/ingest.js.map +0 -1
- package/dist/commands/images/library.d.ts +0 -55
- package/dist/commands/images/library.d.ts.map +0 -1
- package/dist/commands/images/library.js +0 -86
- package/dist/commands/images/library.js.map +0 -1
- package/dist/commands/images/logo.d.ts +0 -18
- package/dist/commands/images/logo.d.ts.map +0 -1
- package/dist/commands/images/logo.js +0 -49
- package/dist/commands/images/logo.js.map +0 -1
- package/dist/commands/images/meme.d.ts +0 -28
- package/dist/commands/images/meme.d.ts.map +0 -1
- package/dist/commands/images/meme.js +0 -66
- package/dist/commands/images/meme.js.map +0 -1
- package/dist/commands/images/screenshot.d.ts +0 -23
- package/dist/commands/images/screenshot.d.ts.map +0 -1
- package/dist/commands/images/screenshot.js +0 -64
- package/dist/commands/images/screenshot.js.map +0 -1
- package/dist/commands/images/search.d.ts +0 -45
- package/dist/commands/images/search.d.ts.map +0 -1
- package/dist/commands/images/search.js +0 -74
- package/dist/commands/images/search.js.map +0 -1
- package/dist/commands/images/sticker.d.ts +0 -33
- package/dist/commands/images/sticker.d.ts.map +0 -1
- package/dist/commands/images/sticker.js +0 -81
- package/dist/commands/images/sticker.js.map +0 -1
- package/dist/commands/images/stock.d.ts +0 -58
- package/dist/commands/images/stock.d.ts.map +0 -1
- package/dist/commands/images/stock.js +0 -116
- package/dist/commands/images/stock.js.map +0 -1
- package/dist/commands/images/upload.d.ts +0 -24
- package/dist/commands/images/upload.d.ts.map +0 -1
- package/dist/commands/images/upload.js +0 -90
- package/dist/commands/images/upload.js.map +0 -1
- package/dist/commands/images/use.d.ts +0 -18
- package/dist/commands/images/use.d.ts.map +0 -1
- package/dist/commands/images/use.js +0 -57
- package/dist/commands/images/use.js.map +0 -1
- package/dist/commands/research/advertisers.d.ts +0 -34
- package/dist/commands/research/advertisers.d.ts.map +0 -1
- package/dist/commands/research/advertisers.js +0 -78
- package/dist/commands/research/advertisers.js.map +0 -1
- package/dist/commands/research/autocomplete.d.ts +0 -34
- package/dist/commands/research/autocomplete.d.ts.map +0 -1
- package/dist/commands/research/autocomplete.js +0 -73
- package/dist/commands/research/autocomplete.js.map +0 -1
- package/dist/commands/research/countries.d.ts +0 -2
- package/dist/commands/research/countries.d.ts.map +0 -1
- package/dist/commands/research/countries.js +0 -69
- package/dist/commands/research/countries.js.map +0 -1
- package/dist/commands/research/index.d.ts +0 -2
- package/dist/commands/research/index.d.ts.map +0 -1
- package/dist/commands/research/index.js +0 -50
- package/dist/commands/research/index.js.map +0 -1
- package/dist/commands/research/intent.d.ts +0 -24
- package/dist/commands/research/intent.d.ts.map +0 -1
- package/dist/commands/research/intent.js +0 -78
- package/dist/commands/research/intent.js.map +0 -1
- package/dist/commands/research/keyword-gap.d.ts +0 -49
- package/dist/commands/research/keyword-gap.d.ts.map +0 -1
- package/dist/commands/research/keyword-gap.js +0 -107
- package/dist/commands/research/keyword-gap.js.map +0 -1
- package/dist/commands/research/keywords-for-site.d.ts +0 -44
- package/dist/commands/research/keywords-for-site.d.ts.map +0 -1
- package/dist/commands/research/keywords-for-site.js +0 -90
- package/dist/commands/research/keywords-for-site.js.map +0 -1
- package/dist/commands/research/languages.d.ts +0 -2
- package/dist/commands/research/languages.d.ts.map +0 -1
- package/dist/commands/research/languages.js +0 -42
- package/dist/commands/research/languages.js.map +0 -1
- package/dist/commands/research/lighthouse.d.ts +0 -24
- package/dist/commands/research/lighthouse.d.ts.map +0 -1
- package/dist/commands/research/lighthouse.js +0 -60
- package/dist/commands/research/lighthouse.js.map +0 -1
- package/dist/commands/research/output.d.ts +0 -29
- package/dist/commands/research/output.d.ts.map +0 -1
- package/dist/commands/research/output.js +0 -81
- package/dist/commands/research/output.js.map +0 -1
- package/dist/commands/research/relevant-pages.d.ts +0 -34
- package/dist/commands/research/relevant-pages.d.ts.map +0 -1
- package/dist/commands/research/relevant-pages.js +0 -76
- package/dist/commands/research/relevant-pages.js.map +0 -1
- package/dist/commands/research/web.d.ts +0 -19
- package/dist/commands/research/web.d.ts.map +0 -1
- package/dist/commands/research/web.js +0 -112
- package/dist/commands/research/web.js.map +0 -1
- package/dist/commands/schema.d.ts +0 -8
- package/dist/commands/schema.d.ts.map +0 -1
- package/dist/commands/schema.js +0 -38
- package/dist/commands/schema.js.map +0 -1
- package/dist/commands/testimonials/get.d.ts +0 -30
- package/dist/commands/testimonials/get.d.ts.map +0 -1
- package/dist/commands/testimonials/get.js +0 -42
- package/dist/commands/testimonials/get.js.map +0 -1
- package/dist/commands/testimonials/index.d.ts +0 -2
- package/dist/commands/testimonials/index.d.ts.map +0 -1
- package/dist/commands/testimonials/index.js +0 -22
- package/dist/commands/testimonials/index.js.map +0 -1
- package/dist/commands/testimonials/list.d.ts +0 -60
- package/dist/commands/testimonials/list.d.ts.map +0 -1
- package/dist/commands/testimonials/list.js +0 -69
- package/dist/commands/testimonials/list.js.map +0 -1
- package/dist/commands/testimonials/search.d.ts +0 -40
- package/dist/commands/testimonials/search.d.ts.map +0 -1
- package/dist/commands/testimonials/search.js +0 -59
- package/dist/commands/testimonials/search.js.map +0 -1
- package/dist/commands/videos/delete.d.ts +0 -19
- package/dist/commands/videos/delete.d.ts.map +0 -1
- package/dist/commands/videos/delete.js +0 -58
- package/dist/commands/videos/delete.js.map +0 -1
- package/dist/commands/videos/get.d.ts +0 -30
- package/dist/commands/videos/get.d.ts.map +0 -1
- package/dist/commands/videos/get.js +0 -42
- package/dist/commands/videos/get.js.map +0 -1
- package/dist/commands/videos/index.d.ts +0 -2
- package/dist/commands/videos/index.d.ts.map +0 -1
- package/dist/commands/videos/index.js +0 -25
- package/dist/commands/videos/index.js.map +0 -1
- package/dist/commands/videos/search.d.ts +0 -35
- package/dist/commands/videos/search.d.ts.map +0 -1
- package/dist/commands/videos/search.js +0 -54
- package/dist/commands/videos/search.js.map +0 -1
- package/dist/commands/videos/upload.d.ts +0 -19
- package/dist/commands/videos/upload.d.ts.map +0 -1
- package/dist/commands/videos/upload.js +0 -92
- package/dist/commands/videos/upload.js.map +0 -1
- package/dist/env.d.ts +0 -15
- package/dist/env.d.ts.map +0 -1
- package/dist/env.js +0 -39
- package/dist/env.js.map +0 -1
- package/dist/error-handler.d.ts +0 -8
- package/dist/error-handler.d.ts.map +0 -1
- package/dist/error-handler.js +0 -46
- package/dist/error-handler.js.map +0 -1
- package/dist/geo-context.d.ts +0 -21
- package/dist/geo-context.d.ts.map +0 -1
- package/dist/geo-context.js +0 -208
- package/dist/geo-context.js.map +0 -1
- package/dist/output.d.ts +0 -43
- package/dist/output.d.ts.map +0 -1
- package/dist/output.js +0 -182
- package/dist/output.js.map +0 -1
- package/dist/output.test.d.ts +0 -2
- package/dist/output.test.d.ts.map +0 -1
- package/dist/output.test.js +0 -117
- package/dist/output.test.js.map +0 -1
- package/dist/schemas.d.ts +0 -17
- package/dist/schemas.d.ts.map +0 -1
- package/dist/schemas.js +0 -11
- package/dist/schemas.js.map +0 -1
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
import { apiGet } from "../../../client.js";
|
|
3
|
-
import { writeAdsJson, writeAdsOutput } from "../output.js";
|
|
4
|
-
import { csvOrJson, daysAgoIso, handleMetaError, resolveAccountIdArg, todayIso } from "./shared.js";
|
|
5
|
-
export const pixelsCommand = defineCommand({
|
|
6
|
-
meta: {
|
|
7
|
-
name: "pixels",
|
|
8
|
-
description: `List Meta Pixels for an ad account, or fetch firing stats for one pixel.
|
|
9
|
-
|
|
10
|
-
Examples:
|
|
11
|
-
baker ads meta pixels --account-id act_123
|
|
12
|
-
baker ads meta pixels --account-id act_123 --pixel-id 9876 --stats --days 7`,
|
|
13
|
-
},
|
|
14
|
-
args: {
|
|
15
|
-
"account-id": { type: "string", description: "Meta ad account ID" },
|
|
16
|
-
"pixel-id": { type: "string", description: "Pixel ID for --stats" },
|
|
17
|
-
stats: { type: "boolean", description: "Fetch firing stats for the pixel" },
|
|
18
|
-
aggregation: {
|
|
19
|
-
type: "string",
|
|
20
|
-
description: "stats aggregation: event|browser_type|host|pixel_fire",
|
|
21
|
-
default: "event",
|
|
22
|
-
},
|
|
23
|
-
days: { type: "string", description: "Lookback days for --stats (default 7)" },
|
|
24
|
-
"skip-cache": { type: "boolean", description: "Bypass server-side cache" },
|
|
25
|
-
output: { type: "string", description: "Output format", default: "json" },
|
|
26
|
-
},
|
|
27
|
-
run: async ({ args }) => {
|
|
28
|
-
try {
|
|
29
|
-
if (args.stats) {
|
|
30
|
-
await runStats(args);
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
await runList(args);
|
|
34
|
-
}
|
|
35
|
-
catch (err) {
|
|
36
|
-
handleMetaError(err);
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
async function runStats(args) {
|
|
41
|
-
const pixelId = args["pixel-id"];
|
|
42
|
-
if (!pixelId) {
|
|
43
|
-
handleMetaError(new Error("--pixel-id is required when --stats is set"));
|
|
44
|
-
}
|
|
45
|
-
const days = args.days ? Number(args.days) : 7;
|
|
46
|
-
if (!Number.isInteger(days) || days <= 0 || days > 90) {
|
|
47
|
-
handleMetaError(new Error("--days must be a positive integer ≤ 90"));
|
|
48
|
-
}
|
|
49
|
-
const params = {
|
|
50
|
-
"pixel-id": pixelId,
|
|
51
|
-
aggregation: args.aggregation ?? "event",
|
|
52
|
-
"start-time": daysAgoIso(days),
|
|
53
|
-
"end-time": todayIso(),
|
|
54
|
-
};
|
|
55
|
-
if (args["skip-cache"])
|
|
56
|
-
params["skip-cache"] = "true";
|
|
57
|
-
const data = await apiGet("/api/ads/meta/pixel-stats", params);
|
|
58
|
-
emit(data, args);
|
|
59
|
-
}
|
|
60
|
-
async function runList(args) {
|
|
61
|
-
const accountId = resolveAccountIdArg(args);
|
|
62
|
-
const params = { "account-id": accountId };
|
|
63
|
-
if (args["skip-cache"])
|
|
64
|
-
params["skip-cache"] = "true";
|
|
65
|
-
const data = await apiGet("/api/ads/meta/pixels", params);
|
|
66
|
-
emit(data, args);
|
|
67
|
-
}
|
|
68
|
-
function emit(data, args) {
|
|
69
|
-
const fmt = csvOrJson(args);
|
|
70
|
-
if (fmt !== "json") {
|
|
71
|
-
writeAdsOutput(data, fmt);
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
writeAdsJson({ ok: true, data });
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=pixels.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pixels.js","sourceRoot":"","sources":["../../../../src/commands/ads/meta/pixels.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Insights field bundles. Picked for AI agent ergonomics: small, focused field
|
|
3
|
-
* lists that answer one specific question without forcing the AI to enumerate
|
|
4
|
-
* Meta's 500+ insights fields.
|
|
5
|
-
*
|
|
6
|
-
* Two-axis design:
|
|
7
|
-
* --intent (field bundle, default: baseline) — what data to ask for
|
|
8
|
-
* --level (object granularity, default: account) — at what granularity
|
|
9
|
-
*
|
|
10
|
-
* Intents are independent of level — pass `--intent ranking --level ad` to flag
|
|
11
|
-
* creatives, or `--intent revenue --level campaign` for ROAS by campaign.
|
|
12
|
-
*
|
|
13
|
-
* Identity fields (campaign_name etc.) are appended automatically based on
|
|
14
|
-
* level so the AI can read rows without joining.
|
|
15
|
-
*/
|
|
16
|
-
export type InsightsLevel = "account" | "campaign" | "adset" | "ad";
|
|
17
|
-
export type InsightsIntent = "baseline" | "revenue" | "funnel" | "ranking" | "video" | "identity";
|
|
18
|
-
interface IntentDefinition {
|
|
19
|
-
name: InsightsIntent;
|
|
20
|
-
description: string;
|
|
21
|
-
fields: string[];
|
|
22
|
-
/** Action breakdowns to slice the actions[] array — empty if not needed. */
|
|
23
|
-
actionBreakdowns?: string[];
|
|
24
|
-
}
|
|
25
|
-
/** Compose final field list: intent metrics + level-specific identity fields, deduplicated. */
|
|
26
|
-
export declare function composeFields(intent: InsightsIntent, level: InsightsLevel): string[];
|
|
27
|
-
export declare function getIntent(name: string): IntentDefinition | undefined;
|
|
28
|
-
export declare function listIntents(): IntentDefinition[];
|
|
29
|
-
export {};
|
|
30
|
-
//# sourceMappingURL=presets.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../../src/commands/ads/meta/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC;AAEpE,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAElG,UAAU,gBAAgB;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAsDD,+FAA+F;AAC/F,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,CAYpF;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAEpE;AAED,wBAAgB,WAAW,IAAI,gBAAgB,EAAE,CAEhD"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Insights field bundles. Picked for AI agent ergonomics: small, focused field
|
|
3
|
-
* lists that answer one specific question without forcing the AI to enumerate
|
|
4
|
-
* Meta's 500+ insights fields.
|
|
5
|
-
*
|
|
6
|
-
* Two-axis design:
|
|
7
|
-
* --intent (field bundle, default: baseline) — what data to ask for
|
|
8
|
-
* --level (object granularity, default: account) — at what granularity
|
|
9
|
-
*
|
|
10
|
-
* Intents are independent of level — pass `--intent ranking --level ad` to flag
|
|
11
|
-
* creatives, or `--intent revenue --level campaign` for ROAS by campaign.
|
|
12
|
-
*
|
|
13
|
-
* Identity fields (campaign_name etc.) are appended automatically based on
|
|
14
|
-
* level so the AI can read rows without joining.
|
|
15
|
-
*/
|
|
16
|
-
const INSIGHTS_INTENTS = {
|
|
17
|
-
baseline: {
|
|
18
|
-
name: "baseline",
|
|
19
|
-
description: "Spend, impressions, clicks, CTR, CPC, CPM. The default question: 'how is delivery?'",
|
|
20
|
-
fields: ["impressions", "reach", "frequency", "spend", "clicks", "ctr", "cpc", "cpm"],
|
|
21
|
-
},
|
|
22
|
-
revenue: {
|
|
23
|
-
name: "revenue",
|
|
24
|
-
description: "Spend, conversions, action_values, purchase_roas. 'How much money are we making?'",
|
|
25
|
-
fields: ["spend", "actions", "action_values", "conversions", "conversion_values", "purchase_roas"],
|
|
26
|
-
actionBreakdowns: ["action_type"],
|
|
27
|
-
},
|
|
28
|
-
funnel: {
|
|
29
|
-
name: "funnel",
|
|
30
|
-
description: "Impression → click → landing page → action. 'Where do users drop off?'",
|
|
31
|
-
fields: ["impressions", "clicks", "inline_link_clicks", "outbound_clicks", "actions", "spend"],
|
|
32
|
-
actionBreakdowns: ["action_type"],
|
|
33
|
-
},
|
|
34
|
-
ranking: {
|
|
35
|
-
name: "ranking",
|
|
36
|
-
description: "Quality, engagement, conversion-rate rankings. 'Which creatives need a refresh?'",
|
|
37
|
-
fields: ["impressions", "spend", "ctr", "quality_ranking", "engagement_rate_ranking", "conversion_rate_ranking"],
|
|
38
|
-
},
|
|
39
|
-
video: {
|
|
40
|
-
name: "video",
|
|
41
|
-
description: "Watch funnel, thruplay cost. 'How are video creatives holding attention?'",
|
|
42
|
-
fields: [
|
|
43
|
-
"impressions",
|
|
44
|
-
"spend",
|
|
45
|
-
"video_play_actions",
|
|
46
|
-
"video_p25_watched_actions",
|
|
47
|
-
"video_p50_watched_actions",
|
|
48
|
-
"video_p75_watched_actions",
|
|
49
|
-
"video_p100_watched_actions",
|
|
50
|
-
"video_thruplay_watched_actions",
|
|
51
|
-
"cost_per_thruplay",
|
|
52
|
-
],
|
|
53
|
-
},
|
|
54
|
-
identity: {
|
|
55
|
-
name: "identity",
|
|
56
|
-
description: "Just the names + spend — for cheap roll-up summaries.",
|
|
57
|
-
fields: ["spend", "impressions"],
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
const IDENTITY_FIELDS_BY_LEVEL = {
|
|
61
|
-
account: ["account_id", "account_name", "account_currency"],
|
|
62
|
-
campaign: ["campaign_id", "campaign_name", "objective"],
|
|
63
|
-
adset: ["adset_id", "adset_name", "campaign_id", "campaign_name"],
|
|
64
|
-
ad: ["ad_id", "ad_name", "adset_id", "adset_name", "campaign_id", "campaign_name"],
|
|
65
|
-
};
|
|
66
|
-
/** Compose final field list: intent metrics + level-specific identity fields, deduplicated. */
|
|
67
|
-
export function composeFields(intent, level) {
|
|
68
|
-
const intentFields = INSIGHTS_INTENTS[intent].fields;
|
|
69
|
-
const identity = IDENTITY_FIELDS_BY_LEVEL[level];
|
|
70
|
-
const seen = new Set();
|
|
71
|
-
const out = [];
|
|
72
|
-
for (const f of [...identity, ...intentFields]) {
|
|
73
|
-
if (!seen.has(f)) {
|
|
74
|
-
seen.add(f);
|
|
75
|
-
out.push(f);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return out;
|
|
79
|
-
}
|
|
80
|
-
export function getIntent(name) {
|
|
81
|
-
return INSIGHTS_INTENTS[name];
|
|
82
|
-
}
|
|
83
|
-
export function listIntents() {
|
|
84
|
-
return Object.values(INSIGHTS_INTENTS);
|
|
85
|
-
}
|
|
86
|
-
//# sourceMappingURL=presets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../../src/commands/ads/meta/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAcH,MAAM,gBAAgB,GAA6C;IACjE,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,qFAAqF;QAClG,MAAM,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;KACtF;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,mFAAmF;QAChG,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,CAAC;QAClG,gBAAgB,EAAE,CAAC,aAAa,CAAC;KAClC;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,wEAAwE;QACrF,MAAM,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,CAAC;QAC9F,gBAAgB,EAAE,CAAC,aAAa,CAAC;KAClC;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,kFAAkF;QAC/F,MAAM,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,yBAAyB,CAAC;KACjH;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,2EAA2E;QACxF,MAAM,EAAE;YACN,aAAa;YACb,OAAO;YACP,oBAAoB;YACpB,2BAA2B;YAC3B,2BAA2B;YAC3B,2BAA2B;YAC3B,4BAA4B;YAC5B,gCAAgC;YAChC,mBAAmB;SACpB;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,uDAAuD;QACpE,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC;KACjC;CACF,CAAC;AAEF,MAAM,wBAAwB,GAAoC;IAChE,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,kBAAkB,CAAC;IAC3D,QAAQ,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,WAAW,CAAC;IACvD,KAAK,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,CAAC;IACjE,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,CAAC;CACnF,CAAC;AAEF,+FAA+F;AAC/F,MAAM,UAAU,aAAa,CAAC,MAAsB,EAAE,KAAoB;IACxE,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACrD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,EAAE,GAAG,YAAY,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,gBAAgB,CAAC,IAAsB,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export declare const previewCommand: import("citty").CommandDef<{
|
|
2
|
-
readonly "creative-id": {
|
|
3
|
-
readonly type: "string";
|
|
4
|
-
readonly description: "Existing creative ID";
|
|
5
|
-
};
|
|
6
|
-
readonly "ad-id": {
|
|
7
|
-
readonly type: "string";
|
|
8
|
-
readonly description: "Existing ad ID";
|
|
9
|
-
};
|
|
10
|
-
readonly "account-id": {
|
|
11
|
-
readonly type: "string";
|
|
12
|
-
readonly description: "Required when previewing an unpublished --creative spec";
|
|
13
|
-
};
|
|
14
|
-
readonly creative: {
|
|
15
|
-
readonly type: "string";
|
|
16
|
-
readonly description: "JSON spec of an unpublished creative (e.g. object_story_spec)";
|
|
17
|
-
};
|
|
18
|
-
readonly "ad-format": {
|
|
19
|
-
readonly type: "string";
|
|
20
|
-
readonly description: "Meta ad_format enum value";
|
|
21
|
-
readonly required: true;
|
|
22
|
-
};
|
|
23
|
-
readonly "out-file": {
|
|
24
|
-
readonly type: "string";
|
|
25
|
-
readonly description: "Save iframe HTML to this path";
|
|
26
|
-
};
|
|
27
|
-
readonly "skip-cache": {
|
|
28
|
-
readonly type: "boolean";
|
|
29
|
-
readonly description: "Bypass server-side cache";
|
|
30
|
-
};
|
|
31
|
-
}>;
|
|
32
|
-
//# sourceMappingURL=preview.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../../../src/commands/ads/meta/preview.ts"],"names":[],"mappings":"AAwCA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6CzB,CAAC"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { writeFileSync } from "node:fs";
|
|
2
|
-
import { defineCommand } from "citty";
|
|
3
|
-
import { apiPost } from "../../../client.js";
|
|
4
|
-
import { writeAdsJson } from "../output.js";
|
|
5
|
-
import { handleMetaError } from "./shared.js";
|
|
6
|
-
const VALID_AD_FORMATS = [
|
|
7
|
-
"DESKTOP_FEED_STANDARD",
|
|
8
|
-
"MOBILE_FEED_STANDARD",
|
|
9
|
-
"MOBILE_FEED_BASIC",
|
|
10
|
-
"RIGHT_COLUMN_STANDARD",
|
|
11
|
-
"MOBILE_FULLWIDTH",
|
|
12
|
-
"MOBILE_INTERSTITIAL",
|
|
13
|
-
"MOBILE_BANNER",
|
|
14
|
-
"MOBILE_MEDIUM_RECTANGLE",
|
|
15
|
-
"MOBILE_NATIVE",
|
|
16
|
-
"FACEBOOK_STORY_MOBILE",
|
|
17
|
-
"FACEBOOK_REELS_MOBILE",
|
|
18
|
-
"INSTAGRAM_STORY",
|
|
19
|
-
"INSTAGRAM_REELS",
|
|
20
|
-
"INSTAGRAM_REELS_OVERLAY",
|
|
21
|
-
"INSTAGRAM_STANDARD",
|
|
22
|
-
"INSTAGRAM_EXPLORE_CONTEXTUAL",
|
|
23
|
-
"INSTAGRAM_EXPLORE_GRID_HOME",
|
|
24
|
-
"INSTAGRAM_SHOP",
|
|
25
|
-
"INSTAGRAM_PROFILE_FEED",
|
|
26
|
-
"INSTREAM_VIDEO_DESKTOP",
|
|
27
|
-
"INSTREAM_VIDEO_MOBILE",
|
|
28
|
-
"FACEBOOK_REELS_BANNER",
|
|
29
|
-
"FACEBOOK_REELS_STICKER",
|
|
30
|
-
"MESSENGER_MOBILE_INBOX_MEDIA",
|
|
31
|
-
"MESSENGER_MOBILE_STORY_MEDIA",
|
|
32
|
-
"AUDIENCE_NETWORK_OUTSTREAM_VIDEO",
|
|
33
|
-
"AUDIENCE_NETWORK_INSTREAM_VIDEO_MOBILE",
|
|
34
|
-
"AUDIENCE_NETWORK_REWARDED_VIDEO",
|
|
35
|
-
"INSTANT_ARTICLE_STANDARD",
|
|
36
|
-
"MARKETPLACE_MOBILE",
|
|
37
|
-
"BIZ_DISCO_FEED_MOBILE",
|
|
38
|
-
];
|
|
39
|
-
export const previewCommand = defineCommand({
|
|
40
|
-
meta: {
|
|
41
|
-
name: "preview",
|
|
42
|
-
description: `Generate a Meta-hosted preview iframe for a creative or ad. Returns iframe HTML which you
|
|
43
|
-
can embed or save to a file. The iframe URL contains a short-lived access token — treat as secret.
|
|
44
|
-
|
|
45
|
-
Examples:
|
|
46
|
-
baker ads meta preview --creative-id 6123 --ad-format MOBILE_FEED_STANDARD
|
|
47
|
-
baker ads meta preview --ad-id 9988 --ad-format INSTAGRAM_REELS --out-file /tmp/preview.html
|
|
48
|
-
baker ads meta preview --account-id act_123 --creative '{"object_story_spec":{...}}' --ad-format MOBILE_FEED_STANDARD`,
|
|
49
|
-
},
|
|
50
|
-
args: {
|
|
51
|
-
"creative-id": { type: "string", description: "Existing creative ID" },
|
|
52
|
-
"ad-id": { type: "string", description: "Existing ad ID" },
|
|
53
|
-
"account-id": { type: "string", description: "Required when previewing an unpublished --creative spec" },
|
|
54
|
-
creative: { type: "string", description: "JSON spec of an unpublished creative (e.g. object_story_spec)" },
|
|
55
|
-
"ad-format": { type: "string", description: "Meta ad_format enum value", required: true },
|
|
56
|
-
"out-file": { type: "string", description: "Save iframe HTML to this path" },
|
|
57
|
-
"skip-cache": { type: "boolean", description: "Bypass server-side cache" },
|
|
58
|
-
},
|
|
59
|
-
run: async ({ args }) => {
|
|
60
|
-
const adFormat = args["ad-format"];
|
|
61
|
-
if (!VALID_AD_FORMATS.includes(adFormat)) {
|
|
62
|
-
handleMetaError(new Error(`Invalid --ad-format "${adFormat}". Run with --help to see supported values.`));
|
|
63
|
-
}
|
|
64
|
-
const body = { adFormat };
|
|
65
|
-
if (args["creative-id"])
|
|
66
|
-
body.creativeId = args["creative-id"];
|
|
67
|
-
if (args["ad-id"])
|
|
68
|
-
body.adId = args["ad-id"];
|
|
69
|
-
if (args["account-id"])
|
|
70
|
-
body.accountId = args["account-id"];
|
|
71
|
-
if (args.creative)
|
|
72
|
-
body.creative = args.creative;
|
|
73
|
-
if (args["skip-cache"])
|
|
74
|
-
body.skipCache = true;
|
|
75
|
-
try {
|
|
76
|
-
const data = await apiPost("/api/ads/meta/preview", body);
|
|
77
|
-
const html = data.map((d) => d.body).join("\n");
|
|
78
|
-
if (args["out-file"]) {
|
|
79
|
-
writeFileSync(args["out-file"], html, "utf-8");
|
|
80
|
-
writeAdsJson({ ok: true, data: { file: args["out-file"], rows: data.length } });
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
writeAdsJson({ ok: true, data });
|
|
84
|
-
}
|
|
85
|
-
catch (err) {
|
|
86
|
-
handleMetaError(err);
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
});
|
|
90
|
-
//# sourceMappingURL=preview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../../../src/commands/ads/meta/preview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export declare function handleMetaError(err: unknown): never;
|
|
2
|
-
/** Pull the default Meta ad account ID from `--account-id` arg or `BAKER_META_AD_ACCOUNT_ID` env. */
|
|
3
|
-
export declare function resolveAccountIdArg(args: Record<string, unknown>): string;
|
|
4
|
-
export declare function getDateRange(args: Record<string, unknown>): {
|
|
5
|
-
datePreset?: string;
|
|
6
|
-
since?: string;
|
|
7
|
-
until?: string;
|
|
8
|
-
};
|
|
9
|
-
export declare function todayIso(): string;
|
|
10
|
-
export declare function daysAgoIso(days: number): string;
|
|
11
|
-
export declare function csvOrJson(args: Record<string, unknown>): string;
|
|
12
|
-
/**
|
|
13
|
-
* Default to ACTIVE-only on listings — that's almost always what an AI agent or
|
|
14
|
-
* a human glance wants. Pass `--effective-status ACTIVE,PAUSED` to override, or
|
|
15
|
-
* `--all-statuses` to drop the filter entirely.
|
|
16
|
-
*/
|
|
17
|
-
export declare function resolveEffectiveStatus(args: Record<string, unknown>): string | undefined;
|
|
18
|
-
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/commands/ads/meta/shared.ts"],"names":[],"mappings":"AAQA,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAoBnD;AAID,qGAAqG;AACrG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAwBzE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAMnH;AAED,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CASxF"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { ApiError } from "../../../client.js";
|
|
2
|
-
import { getEnv } from "../../../env.js";
|
|
3
|
-
import { handleConnectionError } from "../../../error-handler.js";
|
|
4
|
-
import { writeAdsJson } from "../output.js";
|
|
5
|
-
const DAY_MS = 86_400_000;
|
|
6
|
-
export function handleMetaError(err) {
|
|
7
|
-
if (err instanceof ApiError) {
|
|
8
|
-
if (err.code === "UNAUTHORIZED" || err.code === "NOT_FOUND") {
|
|
9
|
-
handleConnectionError("meta_ads", err.message);
|
|
10
|
-
}
|
|
11
|
-
const envelope = {
|
|
12
|
-
ok: false,
|
|
13
|
-
error: {
|
|
14
|
-
code: err.code,
|
|
15
|
-
message: err.message,
|
|
16
|
-
fix: { action: "reject", explanation: err.message },
|
|
17
|
-
retryable: err.code === "RATE_LIMITED" || err.code === "INTERNAL_ERROR",
|
|
18
|
-
},
|
|
19
|
-
};
|
|
20
|
-
writeAdsJson(envelope);
|
|
21
|
-
process.exit(1);
|
|
22
|
-
}
|
|
23
|
-
const message = err instanceof Error ? err.message : "Unexpected error";
|
|
24
|
-
writeAdsJson({ ok: false, error: { code: "NETWORK_ERROR", message } });
|
|
25
|
-
process.exit(1);
|
|
26
|
-
}
|
|
27
|
-
const ACCOUNT_ID_RE = /^(act_)?[0-9]+$/;
|
|
28
|
-
/** Pull the default Meta ad account ID from `--account-id` arg or `BAKER_META_AD_ACCOUNT_ID` env. */
|
|
29
|
-
export function resolveAccountIdArg(args) {
|
|
30
|
-
const fromArgs = args["account-id"];
|
|
31
|
-
const id = fromArgs || getEnv().BAKER_META_AD_ACCOUNT_ID;
|
|
32
|
-
if (!id) {
|
|
33
|
-
writeAdsJson({
|
|
34
|
-
ok: false,
|
|
35
|
-
error: {
|
|
36
|
-
code: "MISSING_ACCOUNT_ID",
|
|
37
|
-
message: "Pass --account-id or set BAKER_META_AD_ACCOUNT_ID. Run `baker ads meta accounts` to find IDs.",
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
process.exit(1);
|
|
41
|
-
}
|
|
42
|
-
if (!ACCOUNT_ID_RE.test(id)) {
|
|
43
|
-
writeAdsJson({
|
|
44
|
-
ok: false,
|
|
45
|
-
error: {
|
|
46
|
-
code: "INVALID_ACCOUNT_ID",
|
|
47
|
-
message: `Invalid account ID "${id}". Expected numeric ID, optionally prefixed with "act_".`,
|
|
48
|
-
},
|
|
49
|
-
});
|
|
50
|
-
process.exit(1);
|
|
51
|
-
}
|
|
52
|
-
return id.startsWith("act_") ? id : `act_${id}`;
|
|
53
|
-
}
|
|
54
|
-
export function getDateRange(args) {
|
|
55
|
-
const datePreset = args["date-preset"];
|
|
56
|
-
const since = args.since;
|
|
57
|
-
const until = args.until;
|
|
58
|
-
if (since && until)
|
|
59
|
-
return { since, until };
|
|
60
|
-
return { datePreset: datePreset ?? "last_7d" };
|
|
61
|
-
}
|
|
62
|
-
export function todayIso() {
|
|
63
|
-
return new Date().toISOString().slice(0, 10);
|
|
64
|
-
}
|
|
65
|
-
export function daysAgoIso(days) {
|
|
66
|
-
return new Date(Date.now() - days * DAY_MS).toISOString().slice(0, 10);
|
|
67
|
-
}
|
|
68
|
-
export function csvOrJson(args) {
|
|
69
|
-
return args.output ?? "json";
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Default to ACTIVE-only on listings — that's almost always what an AI agent or
|
|
73
|
-
* a human glance wants. Pass `--effective-status ACTIVE,PAUSED` to override, or
|
|
74
|
-
* `--all-statuses` to drop the filter entirely.
|
|
75
|
-
*/
|
|
76
|
-
export function resolveEffectiveStatus(args) {
|
|
77
|
-
if (args["all-statuses"]) {
|
|
78
|
-
return undefined;
|
|
79
|
-
}
|
|
80
|
-
const explicit = args["effective-status"];
|
|
81
|
-
if (explicit) {
|
|
82
|
-
return explicit;
|
|
83
|
-
}
|
|
84
|
-
return "ACTIVE";
|
|
85
|
-
}
|
|
86
|
-
//# sourceMappingURL=shared.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/commands/ads/meta/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { QueryContext } from "../../geo-context.ts";
|
|
2
|
-
import type { AdsErrorEnvelope, AdsFileSummary, AdsSuccessEnvelope } from "./types.ts";
|
|
3
|
-
type AdsOutput = AdsSuccessEnvelope<unknown> | AdsErrorEnvelope | AdsFileSummary | {
|
|
4
|
-
ok: true;
|
|
5
|
-
data: unknown;
|
|
6
|
-
query_context?: QueryContext;
|
|
7
|
-
cached?: true;
|
|
8
|
-
fields?: Record<string, string>;
|
|
9
|
-
} | {
|
|
10
|
-
ok: false;
|
|
11
|
-
error: {
|
|
12
|
-
code: string;
|
|
13
|
-
message: string;
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
export declare function writeAdsJson(envelope: AdsOutput): void;
|
|
17
|
-
export declare function writeJsonEnvelope(envelope: Record<string, unknown>): void;
|
|
18
|
-
export declare function toCsvRow(values: string[]): string;
|
|
19
|
-
export declare function writeAdsOutput(data: Array<Record<string, unknown>>, format: string, fields?: string[]): void;
|
|
20
|
-
export declare function resolveCustomerId(args: Record<string, unknown>): Promise<string>;
|
|
21
|
-
export {};
|
|
22
|
-
//# sourceMappingURL=output.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/commands/ads/output.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEvF,KAAK,SAAS,GACV,kBAAkB,CAAC,OAAO,CAAC,GAC3B,gBAAgB,GAChB,cAAc,GACd;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,YAAY,CAAC;IAAC,MAAM,CAAC,EAAE,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACzG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAE5D,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAEtD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEzE;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CASjD;AAqCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAc5G;AAyBD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAkDtF"}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { apiGet } from "../../client.js";
|
|
2
|
-
import { getEnv } from "../../env.js";
|
|
3
|
-
import { cacheGet, cacheSet } from "./cache.js";
|
|
4
|
-
export function writeAdsJson(envelope) {
|
|
5
|
-
process.stdout.write(`${JSON.stringify(envelope, null, 2)}\n`);
|
|
6
|
-
}
|
|
7
|
-
export function writeJsonEnvelope(envelope) {
|
|
8
|
-
process.stdout.write(`${JSON.stringify(envelope, null, 2)}\n`);
|
|
9
|
-
}
|
|
10
|
-
export function toCsvRow(values) {
|
|
11
|
-
return values
|
|
12
|
-
.map((v) => {
|
|
13
|
-
if (v.includes(",") || v.includes('"') || v.includes("\n")) {
|
|
14
|
-
return `"${v.replace(/"/g, '""')}"`;
|
|
15
|
-
}
|
|
16
|
-
return v;
|
|
17
|
-
})
|
|
18
|
-
.join(",");
|
|
19
|
-
}
|
|
20
|
-
function flattenRow(row) {
|
|
21
|
-
const flat = {};
|
|
22
|
-
for (const [key, val] of Object.entries(row)) {
|
|
23
|
-
flat[key] = typeof val === "object" && val !== null ? JSON.stringify(val) : String(val ?? "");
|
|
24
|
-
}
|
|
25
|
-
return flat;
|
|
26
|
-
}
|
|
27
|
-
function writeAdsCsv(data, fields) {
|
|
28
|
-
if (data.length === 0)
|
|
29
|
-
return;
|
|
30
|
-
const cols = fields ?? Object.keys(data[0] ?? {});
|
|
31
|
-
process.stdout.write(`${toCsvRow(cols)}\n`);
|
|
32
|
-
for (const row of data) {
|
|
33
|
-
const flat = flattenRow(row);
|
|
34
|
-
process.stdout.write(`${toCsvRow(cols.map((f) => flat[f] ?? ""))}\n`);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
function writeAdsJsonl(data) {
|
|
38
|
-
for (const row of data) {
|
|
39
|
-
process.stdout.write(`${JSON.stringify(row)}\n`);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
function writeAdsMd(data, fields) {
|
|
43
|
-
if (data.length === 0)
|
|
44
|
-
return;
|
|
45
|
-
const cols = fields ?? Object.keys(data[0] ?? {});
|
|
46
|
-
process.stdout.write(`| ${cols.join(" | ")} |\n`);
|
|
47
|
-
process.stdout.write(`| ${cols.map(() => "---").join(" | ")} |\n`);
|
|
48
|
-
for (const row of data) {
|
|
49
|
-
const flat = flattenRow(row);
|
|
50
|
-
process.stdout.write(`| ${cols.map((f) => flat[f] ?? "").join(" | ")} |\n`);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
export function writeAdsOutput(data, format, fields) {
|
|
54
|
-
switch (format) {
|
|
55
|
-
case "csv":
|
|
56
|
-
writeAdsCsv(data, fields);
|
|
57
|
-
break;
|
|
58
|
-
case "jsonl":
|
|
59
|
-
writeAdsJsonl(data);
|
|
60
|
-
break;
|
|
61
|
-
case "md":
|
|
62
|
-
writeAdsMd(data, fields);
|
|
63
|
-
break;
|
|
64
|
-
default:
|
|
65
|
-
writeAdsJson({ ok: true, data });
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
async function fetchAccounts(useCache = true) {
|
|
69
|
-
if (useCache) {
|
|
70
|
-
const cached = cacheGet("accounts", "list");
|
|
71
|
-
if (cached)
|
|
72
|
-
return cached.data;
|
|
73
|
-
}
|
|
74
|
-
const params = !useCache ? { "skip-cache": "true" } : undefined;
|
|
75
|
-
const data = await apiGet("/api/ads/google/accounts", params);
|
|
76
|
-
if (useCache) {
|
|
77
|
-
cacheSet("accounts", "list", data, 60 * 60 * 1000);
|
|
78
|
-
}
|
|
79
|
-
return data;
|
|
80
|
-
}
|
|
81
|
-
import { handleConnectionError } from "../../error-handler.js";
|
|
82
|
-
export async function resolveCustomerId(args) {
|
|
83
|
-
const fromArgs = args["customer-id"];
|
|
84
|
-
const customerId = fromArgs || getEnv().BAKER_GOOGLE_ADS_CUSTOMER_ID;
|
|
85
|
-
if (customerId) {
|
|
86
|
-
if (!/^\d{10}$/.test(customerId)) {
|
|
87
|
-
writeAdsJson({
|
|
88
|
-
ok: false,
|
|
89
|
-
error: {
|
|
90
|
-
code: "INVALID_CUSTOMER_ID",
|
|
91
|
-
message: "Customer ID must be exactly 10 digits without dashes. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID.",
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
process.exit(1);
|
|
95
|
-
}
|
|
96
|
-
return customerId;
|
|
97
|
-
}
|
|
98
|
-
const useCache = !args["no-cache"];
|
|
99
|
-
try {
|
|
100
|
-
const accounts = await fetchAccounts(useCache);
|
|
101
|
-
const [single] = accounts;
|
|
102
|
-
if (accounts.length === 1 && single) {
|
|
103
|
-
process.stderr.write(`Using account "${single.name}" (${single.id})\n`);
|
|
104
|
-
return single.id;
|
|
105
|
-
}
|
|
106
|
-
if (accounts.length === 0) {
|
|
107
|
-
handleConnectionError("google_ads");
|
|
108
|
-
}
|
|
109
|
-
const list = accounts.map((a) => ` ${a.id} ${a.name}`).join("\n");
|
|
110
|
-
writeAdsJson({
|
|
111
|
-
ok: false,
|
|
112
|
-
error: {
|
|
113
|
-
code: "MULTIPLE_ACCOUNTS",
|
|
114
|
-
message: `Multiple accounts found. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID:\n${list}`,
|
|
115
|
-
},
|
|
116
|
-
});
|
|
117
|
-
process.exit(1);
|
|
118
|
-
}
|
|
119
|
-
catch {
|
|
120
|
-
writeAdsJson({
|
|
121
|
-
ok: false,
|
|
122
|
-
error: {
|
|
123
|
-
code: "INVALID_CUSTOMER_ID",
|
|
124
|
-
message: "Could not auto-detect account. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID.",
|
|
125
|
-
},
|
|
126
|
-
});
|
|
127
|
-
process.exit(1);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
//# sourceMappingURL=output.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/commands/ads/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAUhD,MAAM,UAAU,YAAY,CAAC,QAAmB;IAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAiC;IACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAgB;IACvC,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;QACtC,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,GAA4B;IAC9C,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,IAAoC,EAAE,MAAiB;IAC1E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC9B,MAAM,IAAI,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAoC;IACzD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAoC,EAAE,MAAiB;IACzE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC9B,MAAM,IAAI,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAoC,EAAE,MAAc,EAAE,MAAiB;IACpG,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,KAAK;YACR,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC1B,MAAM;QACR,KAAK,OAAO;YACV,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,MAAM;QACR,KAAK,IAAI;YACP,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACzB,MAAM;QACR;YACE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAUD,KAAK,UAAU,aAAa,CAAC,QAAQ,GAAG,IAAI;IAC1C,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,QAAQ,CAAgB,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACjC,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAgB,0BAA0B,EAAE,MAAM,CAAC,CAAC;IAC7E,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAA6B;IACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAuB,CAAC;IAC3D,MAAM,UAAU,GAAG,QAAQ,IAAI,MAAM,EAAE,CAAC,4BAA4B,CAAC;IAErE,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,YAAY,CAAC;gBACX,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EACL,+GAA+G;iBAClH;aACF,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;QAC1B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;YACxE,OAAO,MAAM,CAAC,EAAE,CAAC;QACnB,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,qBAAqB,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,YAAY,CAAC;YACX,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,qFAAqF,IAAI,EAAE;aACrG;SACF,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,YAAY,CAAC;YACX,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,wFAAwF;aAClG;SACF,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"output.test.d.ts","sourceRoot":"","sources":["../../../src/commands/ads/output.test.ts"],"names":[],"mappings":""}
|