{"version":3,"file":"index.mjs","names":[],"sources":["../../../../node_modules/@shopify/shopify-app-session-storage-memory/dist/esm/memory.mjs","../../../../node_modules/@shopify/shopify-api/dist/esm/test-helpers/const.mjs","../../../../src/server/test-helpers/test-config.ts"],"sourcesContent":["class MemorySessionStorage {\n    sessions = {};\n    async storeSession(session) {\n        this.sessions[session.id] = session;\n        return true;\n    }\n    async loadSession(id) {\n        return this.sessions[id] || undefined;\n    }\n    async deleteSession(id) {\n        if (this.sessions[id]) {\n            delete this.sessions[id];\n        }\n        return true;\n    }\n    async deleteSessions(ids) {\n        ids.forEach((id) => delete this.sessions[id]);\n        return true;\n    }\n    async findSessionsByShop(shop) {\n        const results = Object.values(this.sessions).filter((session) => session.shop === shop);\n        return results;\n    }\n}\n\nexport { MemorySessionStorage };\n//# sourceMappingURL=memory.mjs.map\n","const API_KEY = 'testApiKey';\nconst API_SECRET_KEY = 'testApiSecretKey';\nconst APP_URL = 'https://my-test-app.myshopify.io';\nconst TEST_SHOP_NAME = 'test-shop';\nconst TEST_SHOP = `${TEST_SHOP_NAME}.myshopify.com`;\nconst SHOPIFY_HOST = `admin.shopify.com/store/${TEST_SHOP_NAME}`;\nconst BASE64_HOST = Buffer.from(SHOPIFY_HOST).toString('base64');\nconst USER_ID = 12345;\n\nexport { API_KEY, API_SECRET_KEY, APP_URL, BASE64_HOST, SHOPIFY_HOST, TEST_SHOP, TEST_SHOP_NAME, USER_ID };\n//# sourceMappingURL=const.mjs.map\n","import {LogSeverity} from '@shopify/shopify-api';\nimport {SessionStorage} from '@shopify/shopify-app-session-storage';\nimport {MemorySessionStorage} from '@shopify/shopify-app-session-storage-memory';\nimport {\n  API_KEY,\n  API_SECRET_KEY,\n  APP_URL,\n} from '@shopify/shopify-api/test-helpers';\n\nimport type {AppConfigArg} from '../config-types';\nimport type {FutureFlagOptions} from '../future/flags';\n\nconst TEST_CONFIG = {\n  apiKey: API_KEY,\n  apiSecretKey: API_SECRET_KEY,\n  scopes: ['testScope'] as any,\n  appUrl: APP_URL,\n  adminApiAccessToken: API_KEY,\n  privateAppStorefrontAccessToken: API_KEY,\n  logger: {\n    level: LogSeverity.Debug,\n  },\n  sessionStorage: new MemorySessionStorage(),\n  isTesting: true,\n} as const;\n\nexport function testConfig<\n  Overrides extends TestOverridesArg,\n  Future extends FutureFlagOptions,\n>(\n  {future, ...overrides}: Overrides & {future?: Future} = {} as Overrides & {\n    future?: Future;\n  },\n): TestConfig<Overrides> {\n  return {\n    ...TEST_CONFIG,\n    ...overrides,\n    logger: {\n      ...TEST_CONFIG.logger,\n      ...(overrides as unknown as NonNullable<Overrides>).logger,\n    },\n    future,\n  } as any;\n}\n\n/*\n * This type combines both passed in types, by ignoring any keys from Type1 that are present (and not undefined)\n * in Type2, and then adding any keys from Type1 that are not present in Type2.\n *\n * This effectively enables us to create a type that is the const TEST_CONFIG below, plus any overrides passed in with\n * the output being a const object.\n */\ntype Modify<Type1, Type2> = {\n  [key in keyof Type2 as Type2[key] extends undefined\n    ? never\n    : key]: Type2[key];\n} & {\n  [key in keyof Type1 as key extends keyof Type2 ? never : key]: Type1[key];\n};\n\n/*\n * We omit the future prop and then redefine it with a partial of that object so we can pass the fully typed object in\n * to AppConfigArg.\n */\ntype TestOverrides = Partial<\n  Omit<AppConfigArg<SessionStorage, FutureFlagOptions>, 'future'> & {\n    future: Partial<FutureFlagOptions>;\n  }\n>;\n\nexport type TestOverridesArg = undefined | TestOverrides;\n\nexport type TestConfig<Overrides extends TestOverridesArg> = Modify<\n  typeof TEST_CONFIG,\n  Overrides\n> & {\n  future: FutureFlagOptions;\n  logger: AppConfigArg['logger'];\n};\n"],"x_google_ignoreList":[0,1],"mappings":"mDAAA,IAAM,EAAN,KAA2B,CACvB,SAAW,EAAE,CACb,MAAM,aAAa,EAAS,CAExB,MADA,MAAK,SAAS,EAAQ,IAAM,EACrB,GAEX,MAAM,YAAY,EAAI,CAClB,OAAO,KAAK,SAAS,IAAO,IAAA,GAEhC,MAAM,cAAc,EAAI,CAIpB,OAHI,KAAK,SAAS,IACd,OAAO,KAAK,SAAS,GAElB,GAEX,MAAM,eAAe,EAAK,CAEtB,OADA,EAAI,QAAS,GAAO,OAAO,KAAK,SAAS,GAAI,CACtC,GAEX,MAAM,mBAAmB,EAAM,CAE3B,OADgB,OAAO,OAAO,KAAK,SAAS,CAAC,OAAQ,GAAY,EAAQ,OAAS,EACpE,GCrBhB,EAAU,aACV,EAAiB,mBACjB,EAAU,mCACV,EAAiB,YACL,GAAG,EAAH,EAClB,IAAM,EAAe,2BAA2B,IAC5B,OAAO,KAAK,EAAa,CAAC,SAAS,SAAS,CCMhE,IAAM,EAAc,CAClB,OAAQ,EACR,aAAc,EACd,OAAQ,CAAC,YAAY,CACrB,OAAQ,EACR,oBAAqB,EACrB,gCAAiC,EACjC,OAAQ,CACN,MAAO,EAAY,MACpB,CACD,eAAgB,IAAI,EACpB,UAAW,GACZ,CAED,SAAgB,EAId,CAAC,SAAQ,GAAG,GAA4C,EAAE,CAGnC,CACvB,MAAO,CACL,GAAG,EACH,GAAG,EACH,OAAQ,CACN,GAAG,EAAY,OACf,GAAI,EAAgD,OACrD,CACD,SACD"}