{"version":3,"sources":["../../src/index.ts","../../src/snowflakeClient.ts","../../src/queries.ts","../../src/types.ts","../../src/utils.ts"],"sourcesContent":["export { SnowflakeClient } from \"./snowflakeClient\";\n\nexport {\n type AccountContract,\n type AccountId,\n type AccountPaymentEntityId,\n type AdjustmentType,\n type ContractTerm,\n ContractTermType,\n type SnowflakeClientOptions,\n type SnowflakeConfig,\n type StatementPeriod,\n type StatementPeriodId,\n StatementPeriodStatus,\n type Upc,\n type UpcVendor,\n} from \"./types\";\n\nexport { getConfig, getPool, getPrivateKey } from \"./utils\";\n","import { Readable } from \"node:stream\";\n\nimport { Connection, Pool } from \"snowflake-sdk\";\n\nimport { AbacusState, AbacusStateActionStatus } from \"@abacus/ows-state-client\";\nimport { AbacusEvent } from \"@abacus/ows-event-client\";\nimport { Environment, Logger, TypedReadable } from \"@abacus/common\";\n\nimport {\n GET_ABACUS_EVENTS,\n GET_ABACUS_STATES,\n GET_ACCOUNT_CONTRACTS_BY_ACCOUNT_IDS_AND_CONTRACT_IDS,\n GET_ACCOUNT_IDS_BY_ACCOUNT_IDS,\n GET_ACCOUNT_PAYMENT_ENTITY_IDS_BY_ACCOUNT_IDS,\n GET_ADJUSTMENT_TYPES,\n GET_CONTRACT_IDS_BY_CONTRACT_IDS,\n GET_CONTRACT_TERM_ATTACHMENTS_BY_TERM_TYPES_AND_CONTRACT_IDS,\n GET_CURRENT_STATEMENT_PERIOD_IDS_BY_STATEMENT_PERIOD_IDS,\n GET_STATEMENT_PERIODS_BY_YEARS,\n GET_UPCS_BY_DISPLAY_UPCS,\n GET_UPCS_BY_UPCS_AND_VENDOR_IDS,\n} from \"./queries\";\nimport {\n AccountContract,\n AccountId,\n AccountPaymentEntityId,\n AdjustmentType,\n ContractId,\n ContractTerm,\n ContractTermType,\n SnowflakeClientOptions,\n StatementPeriod,\n StatementPeriodId,\n Upc,\n UpcVendor,\n} from \"./types\";\n\nexport class SnowflakeClient {\n private db: string;\n private env: Environment;\n private logger?: Logger;\n private pool: Pool;\n\n constructor({ database, environment, logger, pool }: SnowflakeClientOptions) {\n this.db = database;\n this.env = environment;\n this.logger = logger;\n this.pool = pool;\n }\n\n private get(query: string): Promise> {\n this.logger?.debug(query);\n return this.pool.use(async (dbc) => {\n return dbc\n .execute({\n streamResult: true,\n sqlText: query,\n })\n .streamRows();\n });\n }\n\n async getAccountIdsByAccountIds(\n accountIds: number[],\n ): Promise> {\n if (accountIds.length < 1) {\n return Readable.from([]);\n }\n const query = GET_ACCOUNT_IDS_BY_ACCOUNT_IDS(this.db, this.env, accountIds);\n return this.get(query);\n }\n\n async getAccountContractsByAccountIdsAndContractIds(\n accountIds: number[],\n contractIds: number[],\n ): Promise> {\n if (accountIds.length < 1) {\n return Readable.from([]);\n }\n if (contractIds.length < 1) {\n return Readable.from([]);\n }\n const query = GET_ACCOUNT_CONTRACTS_BY_ACCOUNT_IDS_AND_CONTRACT_IDS(\n this.db,\n this.env,\n accountIds,\n contractIds,\n );\n return this.get(query);\n }\n\n async getAccountPaymentEntityIdsByAccountIds(\n accountIds: number[],\n ): Promise> {\n if (accountIds.length < 1) {\n return Readable.from([]);\n }\n const query = GET_ACCOUNT_PAYMENT_ENTITY_IDS_BY_ACCOUNT_IDS(\n this.db,\n this.env,\n accountIds,\n );\n return this.get(query);\n }\n\n async getAbacusEvents(\n targetIds: number[],\n eventName?: string,\n targetType?: string,\n createdBy?: string,\n ): Promise> {\n if (targetIds.length < 1) {\n return Readable.from([]);\n }\n const query = GET_ABACUS_EVENTS(\n this.db,\n this.env,\n targetIds,\n eventName,\n targetType,\n createdBy,\n );\n return this.get(query);\n }\n\n async getAbacusStates(\n parentTableName: string,\n parentTableIds: number[],\n actionName?: string,\n actionStatus?: AbacusStateActionStatus,\n ): Promise> {\n if (parentTableIds.length < 1) {\n return Readable.from([]);\n }\n const query = GET_ABACUS_STATES(\n this.db,\n this.env,\n parentTableName,\n parentTableIds,\n actionName,\n actionStatus,\n );\n return this.get(query);\n }\n\n getAdjustmentTypes(): Promise> {\n const query = GET_ADJUSTMENT_TYPES(this.db, this.env);\n return this.get(query);\n }\n\n async getContractIdsByContractIds(\n contractIds: number[],\n ): Promise> {\n if (contractIds.length < 1) {\n return Readable.from([]);\n }\n const query = GET_CONTRACT_IDS_BY_CONTRACT_IDS(this.db, this.env, contractIds);\n return this.get(query);\n }\n\n async getContractTermsByTermTypesAndContractIds(\n contractIds: number[],\n termTypes: ContractTermType[],\n ): Promise> {\n if (contractIds.length < 1) {\n return Readable.from([]);\n }\n if (termTypes.length < 1) {\n return Readable.from([]);\n }\n const query = GET_CONTRACT_TERM_ATTACHMENTS_BY_TERM_TYPES_AND_CONTRACT_IDS(\n this.db,\n this.env,\n contractIds,\n termTypes,\n );\n return this.get(query);\n }\n\n async getCurrentStatementPeriodIdsByIds(\n statementPeriodIds: number[],\n ): Promise> {\n if (statementPeriodIds.length < 1) {\n return Readable.from([]);\n }\n const query = GET_CURRENT_STATEMENT_PERIOD_IDS_BY_STATEMENT_PERIOD_IDS(\n this.db,\n this.env,\n statementPeriodIds,\n );\n return this.get(query);\n }\n\n async getStatementPeriodsByYears(\n years: number[],\n ): Promise> {\n if (years.length < 1) {\n return Readable.from([]);\n }\n const query = GET_STATEMENT_PERIODS_BY_YEARS(this.db, this.env, years);\n return this.get(query);\n }\n\n async getUpcsByDisplayUpcs(\n displayUpcs: string[],\n ): Promise> {\n if (displayUpcs.length < 1) {\n return Readable.from([]);\n }\n const query = GET_UPCS_BY_DISPLAY_UPCS(this.db, displayUpcs);\n return this.get(query);\n }\n\n async getUpcsByUpcsAndVendorIds(\n vendorIds: number[],\n upcs: string[],\n ): Promise> {\n if (vendorIds.length < 1) {\n return Readable.from([]);\n }\n if (upcs.length < 1) {\n return Readable.from([]);\n }\n const query = GET_UPCS_BY_UPCS_AND_VENDOR_IDS(this.db, vendorIds, upcs);\n return this.get(query);\n }\n}\n","import { AbacusStateActionStatus } from \"@abacus/ows-state-client\";\nimport { Environment } from \"@abacus/common\";\n\nexport function GET_ACCOUNT_CONTRACTS_BY_ACCOUNT_IDS_AND_CONTRACT_IDS(\n db: string,\n env: Environment,\n accountIds: number[],\n contractIds: number[],\n): string {\n if (accountIds.length < 1) {\n throw new RangeError(\"Must filter by at least 1 account ID\");\n }\n if (contractIds.length < 1) {\n throw new RangeError(\"Must filter by at least 1 contract ID\");\n }\n return `\n SELECT\n account_id AS \"accountId\",\n contract_id AS \"contractId\",\n created_at AS \"created\",\n created_by AS \"createdBy\",\n account_contract_id AS \"id\",\n is_primary_for_calc AS \"isCalcPrimary\",\n last_modified AS \"lastModified\",\n last_modified_by AS \"lastModifiedBy\"\n FROM \n ${db}.${env}_royalty_accounting_royalty_accounting.account_contract \n WHERE \n account_id IN (${accountIds.join(\",\")})\n AND contract_id IN (${contractIds.join(\",\")})\n ;`;\n}\n\nexport function GET_ACCOUNT_IDS_BY_ACCOUNT_IDS(\n db: string,\n env: Environment,\n accountIds: number[],\n): string {\n if (accountIds.length < 1) {\n throw new RangeError(\"Must filter by at least 1 account ID\");\n }\n return `\n SELECT \n account_id AS \"id\"\n FROM \n ${db}.${env}_royalty_accounting_royalty_accounting.account \n WHERE \n account_id IN (${accountIds.join(\",\")})\n ;`;\n}\n\nexport function GET_ACCOUNT_PAYMENT_ENTITY_IDS_BY_ACCOUNT_IDS(\n db: string,\n env: Environment,\n accountIds: number[],\n): string {\n if (accountIds.length < 1) {\n throw new RangeError(\"Must filter by at least 1 account ID\");\n }\n return `\n SELECT \n account_id AS \"accountId\",\n payment_entity_id AS \"paymentEntityId\"\n FROM \n ${db}.${env}_royalty_accounting_royalty_accounting.account_payment_term\n WHERE \n payment_entity_id IS NOT NULL\n AND account_id IN (${accountIds.join(\",\")})\n ;`;\n}\n\nexport function GET_ADJUSTMENT_TYPES(db: string, env: Environment): string {\n return `\n SELECT \n reference_adjustment_type_id AS \"id\",\n type_name AS \"name\",\n oa_category_name AS \"oaCategoryName\"\n FROM \n ${db}.${env}_royalty_accounting_royalty_accounting.reference_adjustment_type\n ;`;\n}\n\nexport function GET_CONTRACT_IDS_BY_CONTRACT_IDS(\n db: string,\n env: Environment,\n contractIds: number[],\n): string {\n if (contractIds.length < 1) {\n throw new RangeError(\"Must filter by at least 1 contract ID\");\n }\n return `\n SELECT \n contract_id AS \"id\"\n FROM \n ${db}.${env}_royalty_accounting_royalty_accounting.contract \n WHERE \n contract_id IN (${contractIds.join(\",\")})\n ;`;\n}\n\nexport function GET_CONTRACT_TERM_ATTACHMENTS_BY_TERM_TYPES_AND_CONTRACT_IDS(\n db: string,\n env: Environment,\n contractIds: number[],\n termTypes: string[],\n): string {\n if (contractIds.length < 1) {\n throw new RangeError(\"Must filter by at least 1 contract ID\");\n }\n if (termTypes.length < 1) {\n throw new RangeError(\"Must filter by at least 1 term type\");\n }\n return `\n SELECT\n attachments AS \"attachments\",\n contract_id AS \"contractId\",\n contract_term_id AS \"id\",\n term_type AS \"type\"\n FROM \n ${db}.${env}_royalty_accounting_royalty_accounting.contract_term \n WHERE \n deleted_by IS NULL \n AND deleted_at IS NULL\n AND term_type IN ('${termTypes.join(\"','\")}')\n AND contract_id IN (${contractIds.join(\",\")})\n ;`;\n}\n\nexport function GET_CURRENT_STATEMENT_PERIOD_IDS_BY_STATEMENT_PERIOD_IDS(\n db: string,\n env: Environment,\n statementPeriodIds: number[],\n): string {\n if (statementPeriodIds.length < 1) {\n throw new RangeError(\"Must filter by at least 1 statement period ID\");\n }\n return `\n SELECT\n statement_period_id AS \"id\"\n FROM \n ${db}.${env}_royalty_accounting_royalty_accounting.statement_period \n WHERE \n closed_date IS NULL \n AND statement_period_status = 'current'\n AND statement_period_id IN (${statementPeriodIds.join(\",\")})\n ;`;\n}\n\nexport function GET_ABACUS_EVENTS(\n db: string,\n env: Environment,\n targetIds: number[],\n eventName?: string,\n targetType?: string,\n createdBy?: string,\n): string {\n if (targetIds.length < 1) {\n throw new Error(\"Must filter by at least one target ID\");\n }\n const filters: string[] = [\"1 = 1\"];\n if (createdBy != null) {\n filters.push(`created_by = '${createdBy}'`);\n }\n if (eventName != null) {\n filters.push(`event_name = '${eventName}'`);\n }\n if (targetType != null) {\n filters.push(`target_type = '${targetType}'`);\n }\n return `\n SELECT \n ABACUS_EVENT_ID,\n CREATED_BY,\n EVENT_DATE,\n EVENT_NAME,\n PREVIOUS_ABACUS_EVENT_ID,\n ROLLED_BACK_AT,\n STATEMENT_PERIOD_ID,\n TARGET_ID,\n TARGET_TYPE\n FROM ${db}.${env}_ROYALTY_ACCOUNTING_ROYALTY_ACCOUNTING.abacus_event\n WHERE ${filters.join(\" AND \")}\n AND target_id IN (${targetIds.join(\",\")})\n `;\n}\n\nexport function GET_ABACUS_STATES(\n db: string,\n schema: string,\n parentTableName: string,\n parentTableIds: number[],\n actionName?: string,\n actionStatus?: AbacusStateActionStatus,\n): string {\n if (parentTableIds.length < 1) {\n throw new Error(\"Must filter by at least one parent table ID\");\n }\n const filters: string[] = [];\n if (actionName != null) {\n filters.push(`AND action_name = '${actionName}'`);\n }\n if (actionStatus != null) {\n filters.push(`AND action_status = '${actionStatus}'`);\n }\n return `\n SELECT\n ABACUS_STATE_ID AS \"abacus_state_id\",\n ACTION_NAME AS \"action_name\",\n ACTION_STATUS AS \"action_status\",\n CREATED_AT AS \"created_at\",\n CREATED_BY AS \"created_by\",\n LAST_MODIFIED AS \"last_modified\",\n LAST_MODIFIED_BY AS \"last_modified_by\",\n MESSAGE AS \"message\",\n PARENT_TABLE_ID AS \"parent_table_id\",\n PARENT_TABLE_NAME AS \"parent_table_name\"\n FROM ${db}.${schema}.abacus_state\n WHERE \n parent_table_name = '${parentTableName}'\n ${filters.join(\" \")}\n AND parent_table_id IN (${parentTableIds.join(\",\")})\n ;`;\n}\n\nexport function GET_STATEMENT_PERIODS_BY_YEARS(\n db: string,\n env: Environment,\n years: number[],\n): string {\n if (years.length < 1) {\n throw new RangeError(\"Must filter by at least 1 year\");\n }\n return `\n SELECT\n closed_by AS \"closedBy\",\n closed_date AS \"closedDate\",\n statement_period_id AS \"id\",\n statement_month AS \"month\",\n statement_period_name AS \"name\",\n statement_period_status AS \"status\",\n statement_year AS \"year\"\n FROM \n ${db}.${env}_royalty_accounting_royalty_accounting.statement_period \n WHERE \n statement_year IN (${years.join(\",\")})\n ;`;\n}\n\nexport function GET_UPCS_BY_DISPLAY_UPCS(\n db: string,\n displayUpcs: string[],\n): string {\n if (displayUpcs.length < 1) {\n throw new RangeError(\"Must filter by at least 1 display UPC\");\n }\n return `\n SELECT\n display_upc AS \"displayUpc\",\n upc AS \"upc\"\n FROM \n ${db}.art_relations_prod_art_relations.releases \n WHERE \n TO_VARCHAR(upc) != display_upc\n AND display_upc IN ('${displayUpcs.join(\"','\")}')\n ;`;\n}\n\nexport function GET_UPCS_BY_UPCS_AND_VENDOR_IDS(\n db: string,\n vendorIds: number[],\n upcs: string[],\n): string {\n if (vendorIds.length < 1) {\n throw new RangeError(\"Must filter by at least 1 label ID\");\n }\n if (upcs.length < 1) {\n throw new RangeError(\"Must filter by at least 1 upc\");\n }\n return `\n SELECT \n r.display_upc AS \"displayUpc\",\n r.upc AS \"upc\",\n v.vendor_id AS \"vendorId\"\n FROM \n ${db}.art_relations_prod_art_relations.releases AS r\n INNER JOIN ${db}.art_relations_prod_art_relations.project AS p\n USING (project_id)\n INNER JOIN ${db}.art_relations_prod_art_relations.vendor AS v\n USING (vendor_id)\n WHERE \n v.vendor_id IN (${vendorIds.join(\",\")})\n AND (\n r.upc IN (${upcs.join(\",\")})\n OR r.display_upc IN ('${upcs.join(\"','\")}')\n )\n ;`;\n}\n","import { Connection, Pool } from \"snowflake-sdk\";\n\nimport { Environment, Logger } from \"@abacus/common\";\n\nexport interface AccountContract {\n accountId: number;\n contractId: number;\n createdAt: Date;\n createdBy: string;\n id: number;\n isCalcPrimary: boolean;\n lastModified: Date;\n lastModifiedBy: string;\n}\n\nexport interface AccountId {\n id: number;\n}\n\nexport interface ContractId {\n id: number;\n}\n\nexport interface AccountPaymentEntityId {\n accountId: number;\n paymentEntityId: number;\n}\n\nexport interface AdjustmentType {\n id: number;\n name: string;\n oaCategoryName: string;\n}\n\nexport interface ContractTerm {\n attachments: string[];\n contractId: number;\n id: number;\n type: ContractTermType;\n}\n\nexport enum ContractTermType {\n Contribution = \"contribution\",\n ContributionSchedule = \"contribution_schedule\",\n ContributorSchedule = \"contributor_schedule\",\n Label = \"label\",\n Product = \"product\",\n Track = \"track\",\n}\n\nexport interface SnowflakeClientOptions {\n database: string;\n environment: Environment;\n logger?: Logger;\n pool: Pool;\n}\n\nexport interface SnowflakeConfig {\n account: string;\n authenticator: string;\n database: string;\n environment: Environment;\n host?: string;\n privateKey?: string;\n privateKeyPath?: string;\n privateKeyPass?: string;\n role?: string;\n username?: string;\n warehouse?: string;\n}\n\nexport interface StatementPeriod {\n closedBy: string;\n closedDate: Date;\n id: number;\n month: number;\n name: string;\n status: StatementPeriodStatus;\n year: number;\n}\n\nexport interface StatementPeriodId {\n id: number;\n}\n\nexport enum StatementPeriodStatus {\n Closed = \"closed\",\n Current = \"current\",\n Open = \"open\",\n}\n\nexport interface Upc {\n displayUpc: string;\n upc: number;\n}\n\nexport interface UpcVendor {\n displayUpc: string;\n upc: number;\n vendorId: number;\n}\n","import { createPrivateKey } from \"node:crypto\";\nimport { homedir } from \"node:os\";\n\nimport snowflake from \"snowflake-sdk\";\n\nimport { Environment } from \"@abacus/common\";\nimport { SecretsManager } from \"@abacus/secrets-manager\";\n\nimport { SnowflakeConfig } from \"./types\";\n\nexport function getConfig(\n processEnv: NodeJS.ProcessEnv = process.env,\n): SnowflakeConfig {\n // Account\n const account = processEnv.SNOWFLAKE_ACCOUNT;\n if (account == null) {\n throw new Error(\"Missing required env variable 'SNOWFLAKE_ACCOUNT'\");\n }\n\n // Database\n const database = processEnv.SNOWFLAKE_DATABASE ?? \"orchard_app_reporting_v2\";\n\n // Environment\n let environment = (processEnv.SNOWFLAKE_ENVIRONMENT ??\n processEnv.ENVIRONMENT ??\n processEnv.ENV) as Environment;\n const isEnv = Object.values(Environment).includes(environment);\n if (!isEnv || environment == Environment.Dev) {\n environment = Environment.QA;\n }\n\n // Private key path\n let privateKeyPath = processEnv.SNOWFLAKE_PRIVATE_KEY_PATH;\n privateKeyPath = privateKeyPath?.replace(\"~\", homedir());\n\n // Config\n return {\n account,\n authenticator: \"SNOWFLAKE_JWT\",\n database,\n environment,\n host: processEnv.SNOWFLAKE_HOST,\n privateKey: processEnv.SNOWFLAKE_PRIVATE_KEY,\n privateKeyPass: processEnv.SNOWFLAKE_KEY_PASS,\n privateKeyPath,\n role: processEnv.SNOWFLAKE_ROLE,\n username: processEnv.SNOWFLAKE_USER,\n warehouse: processEnv.SNOWFLAKE_WAREHOUSE,\n };\n}\n\nexport function getPool(\n config: SnowflakeConfig,\n): snowflake.Pool {\n return snowflake.createPool(config);\n}\n\nexport async function getPrivateKey(\n secretsManager: SecretsManager,\n): Promise {\n // Get key and passphrase\n const key = (await secretsManager.getCred(\"SNOWFLAKE_PRIVATE_KEY\")) as string;\n const passphrase = (await secretsManager.getCred(\n \"SNOWFLAKE_KEY_PASSPHRASE\",\n )) as string;\n\n // Decrypt the private key\n const keyObj = createPrivateKey({ key, passphrase });\n\n // Export the private key as a string in pem format of type pkcs8\n return keyObj.export({ format: \"pem\", type: \"pkcs8\" }) as string;\n}\n"],"mappings":"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","names":["index_exports","__export","ContractTermType","SnowflakeClient","StatementPeriodStatus","getConfig","getPool","getPrivateKey","__toCommonJS","import_node_stream","GET_ACCOUNT_CONTRACTS_BY_ACCOUNT_IDS_AND_CONTRACT_IDS","db","env","accountIds","contractIds","GET_ACCOUNT_IDS_BY_ACCOUNT_IDS","GET_ACCOUNT_PAYMENT_ENTITY_IDS_BY_ACCOUNT_IDS","GET_ADJUSTMENT_TYPES","GET_CONTRACT_IDS_BY_CONTRACT_IDS","GET_CONTRACT_TERM_ATTACHMENTS_BY_TERM_TYPES_AND_CONTRACT_IDS","termTypes","GET_CURRENT_STATEMENT_PERIOD_IDS_BY_STATEMENT_PERIOD_IDS","statementPeriodIds","GET_ABACUS_EVENTS","targetIds","eventName","targetType","createdBy","filters","GET_ABACUS_STATES","schema","parentTableName","parentTableIds","actionName","actionStatus","GET_STATEMENT_PERIODS_BY_YEARS","years","GET_UPCS_BY_DISPLAY_UPCS","displayUpcs","GET_UPCS_BY_UPCS_AND_VENDOR_IDS","vendorIds","upcs","SnowflakeClient","database","environment","logger","pool","query","dbc","accountIds","GET_ACCOUNT_IDS_BY_ACCOUNT_IDS","contractIds","GET_ACCOUNT_CONTRACTS_BY_ACCOUNT_IDS_AND_CONTRACT_IDS","GET_ACCOUNT_PAYMENT_ENTITY_IDS_BY_ACCOUNT_IDS","targetIds","eventName","targetType","createdBy","GET_ABACUS_EVENTS","parentTableName","parentTableIds","actionName","actionStatus","GET_ABACUS_STATES","GET_ADJUSTMENT_TYPES","GET_CONTRACT_IDS_BY_CONTRACT_IDS","termTypes","GET_CONTRACT_TERM_ATTACHMENTS_BY_TERM_TYPES_AND_CONTRACT_IDS","statementPeriodIds","GET_CURRENT_STATEMENT_PERIOD_IDS_BY_STATEMENT_PERIOD_IDS","years","GET_STATEMENT_PERIODS_BY_YEARS","displayUpcs","GET_UPCS_BY_DISPLAY_UPCS","vendorIds","upcs","GET_UPCS_BY_UPCS_AND_VENDOR_IDS","ContractTermType","StatementPeriodStatus","import_node_crypto","import_node_os","import_snowflake_sdk","import_common","getConfig","processEnv","account","database","environment","privateKeyPath","getPool","config","snowflake","getPrivateKey","secretsManager","key","passphrase"]}