{
  "version": 3,
  "sources": ["../src/main.ts"],
  "sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {packageTracer} from '@alwatr/package-tracer';\n\n__dev_mode__: packageTracer.add(__package_name__, __package_version__);\n\n/**\n * Flat promise that can be resolved or rejected from outside.\n */\nexport interface Flatomise<T> {\n  /**\n   * The promise.\n   */\n  readonly promise: Promise<T>;\n\n  /**\n   * Resolve the promise.\n   */\n  readonly resolve: (value: T | PromiseLike<T>) => void;\n\n  /**\n   * Reject the promise.\n   */\n  readonly reject: (reason?: any) => void;\n\n  /**\n   * Whether the promise is settled (resolved or rejected).\n   */\n  readonly settled: boolean;\n}\n\n/**\n * Create a new Flatomise is a promise that can be resolved or rejected from outside.\n *\n * @returns A new Flatomise.\n *\n * @example\n * ```typescript\n * const flatomise = newFlatomise();\n * flatomise.promise.then(() => {\n *   console.log('flatomise resolved');\n * });\n * flatomise.resolve();\n * ```\n */\nexport function newFlatomise<T>(): Flatomise<T> {\n  const flatomise: Partial<Mutable<Flatomise<T>>> = {settled: false};\n  flatomise.promise = new Promise<T>((resolve, reject) => {\n    flatomise.resolve = resolve;\n    flatomise.reject = reject;\n  });\n  flatomise.promise.finally(() => {\n    flatomise.settled = true;\n  });\n  return flatomise as Flatomise<T>;\n}\n"],
  "mappings": ";;;AACA,SAAQ,qBAAoB;AAE5B,aAAc,eAAc,IAAI,qBAAkB,OAAmB;AAyC9D,SAAS,eAAgC;AAC9C,QAAM,YAA4C,EAAC,SAAS,MAAK;AACjE,YAAU,UAAU,IAAI,QAAW,CAAC,SAAS,WAAW;AACtD,cAAU,UAAU;AACpB,cAAU,SAAS;AAAA,EACrB,CAAC;AACD,YAAU,QAAQ,QAAQ,MAAM;AAC9B,cAAU,UAAU;AAAA,EACtB,CAAC;AACD,SAAO;AACT;",
  "names": []
}
