@vrplatform/kysely 1.3.45-6561 → 1.3.45-736

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.
Files changed (78) hide show
  1. package/build/.data.tar +2 -2
  2. package/build/main/control-plane/index.d.ts +137 -0
  3. package/build/main/control-plane/index.js.map +1 -1
  4. package/build/main/index.d.ts +11 -0
  5. package/build/main/index.js +131 -26
  6. package/build/main/index.js.map +1 -1
  7. package/build/main/local/generate.js +1 -0
  8. package/build/main/local/generate.js.map +1 -1
  9. package/build/main/local/index.js +109 -8
  10. package/build/main/local/index.js.map +1 -1
  11. package/build/main/postgres-error.d.ts +3 -3
  12. package/build/main/postgres-error.js +4 -3
  13. package/build/main/postgres-error.js.map +1 -1
  14. package/build/main/query/tenant/status.d.ts +1 -1
  15. package/build/main/query/tenant/status.js +4 -2
  16. package/build/main/query/tenant/status.js.map +1 -1
  17. package/build/main/regional.d.ts +1 -0
  18. package/build/main/regional.js +1 -0
  19. package/build/main/regional.js.map +1 -1
  20. package/build/main/test/index.d.ts +23 -3
  21. package/build/main/test/index.js +35 -13
  22. package/build/main/test/index.js.map +1 -1
  23. package/build/main/v1.generated.d.ts +338 -37
  24. package/build/main/v1.generated.js.map +1 -1
  25. package/build/migrations-v2/0000000000015-durable-flow-events.ts +163 -0
  26. package/build/migrations-v2/0000000000016-billing-listing-facts.ts +539 -0
  27. package/build/migrations-v2/0000000000017-webhook-secret-reencryption-failures.ts +18 -0
  28. package/build/migrations-v2/0000000000018-durable-flow-event-sensitive-input.ts +28 -0
  29. package/build/migrations-v2/0000000000019-asynchronous-operations.ts +736 -0
  30. package/build/migrations-v2/0000000000031-ui-permission-role-simplification.ts +70 -0
  31. package/build/migrations-v2/0000000000032-tenant-delete-ownership-cascades.ts +44 -0
  32. package/build/migrations-v2/0000000000033-reservation-issue-seed-bucket-index.ts +19 -0
  33. package/build/migrations-v2/0000000000034-retire-recent-classification-indexes.ts +29 -0
  34. package/build/migrations-v2/0000000000035-core-change-autovacuum.ts +24 -0
  35. package/build/migrations-v2/0000000000036-journal-entry-inactive-reason-constraint.ts +33 -0
  36. package/build/migrations-v2/0000000000037-journal-entry-inactive-reasons.ts +19 -0
  37. package/build/migrations-v2/0000000000038-journal-entry-group-inactive-reason.ts +14 -0
  38. package/build/migrations-v2/0000000000039-reservation-guest-breakdown.ts +19 -0
  39. package/build/migrations-v2/0000000000040-csv-import-source-identity-index.ts +23 -0
  40. package/build/migrations-v2/0000000000041-payment-returns.ts +38 -0
  41. package/build/migrations-v2/0000000000042-operation-resource-types.ts +609 -0
  42. package/build/migrations-v2/0000000000043-reservation-journal-freshness.ts +149 -0
  43. package/build/migrations-v2/0000000000044-reservation-journal-freshness-backfill.ts +254 -0
  44. package/build/migrations-v2/0000000000045-reservation-journal-freshness-revision-repair.ts +83 -0
  45. package/build/migrations-v2/0000000000046-materialized-reservation-journal-operations.ts +709 -0
  46. package/build/migrations-v2/0000000000047-public-audit-completion.ts +77 -0
  47. package/build/migrations-v2/0000000000048-reservation-journal-full-refresh-repair.ts +136 -0
  48. package/build/migrations-v2/0000000000049-queued-journal-operation-failures.ts +60 -0
  49. package/build/migrations-v2/0000000000050-connection-oauth-state.ts +43 -0
  50. package/build/migrations-v2/0000000000051-owner-statement-email-delivery.ts +134 -0
  51. package/build/migrations-v2/0000000000052-fee-journal-lock-skip-operations.ts +59 -0
  52. package/build/migrations-v2/0000000000053-fee-journal-lock-skip-null-attempt.ts +44 -0
  53. package/build/migrations-v2/0000000000054-journal-refresh-issue-codes.ts +16 -0
  54. package/build/migrations-v2/0000000000055-tenant-billing-subscription.ts +8 -0
  55. package/build/module/control-plane/index.d.ts +137 -0
  56. package/build/module/control-plane/index.js.map +1 -1
  57. package/build/module/index.d.ts +11 -0
  58. package/build/module/index.js +131 -26
  59. package/build/module/index.js.map +1 -1
  60. package/build/module/local/generate.js +1 -0
  61. package/build/module/local/generate.js.map +1 -1
  62. package/build/module/local/index.js +109 -8
  63. package/build/module/local/index.js.map +1 -1
  64. package/build/module/postgres-error.d.ts +3 -3
  65. package/build/module/postgres-error.js +4 -3
  66. package/build/module/postgres-error.js.map +1 -1
  67. package/build/module/query/tenant/status.d.ts +1 -1
  68. package/build/module/query/tenant/status.js +4 -2
  69. package/build/module/query/tenant/status.js.map +1 -1
  70. package/build/module/regional.d.ts +1 -0
  71. package/build/module/regional.js +1 -0
  72. package/build/module/regional.js.map +1 -1
  73. package/build/module/test/index.d.ts +23 -3
  74. package/build/module/test/index.js +34 -13
  75. package/build/module/test/index.js.map +1 -1
  76. package/build/module/v1.generated.d.ts +338 -37
  77. package/build/module/v1.generated.js.map +1 -1
  78. package/package.json +4 -2
@@ -1,10 +1,30 @@
1
1
  import { type LocalKysely, type UseLocalKyselyOptions } from '../local';
2
+ type UseTestKyselyOptions = UseLocalKyselyOptions & {
3
+ /**
4
+ * Force a private database even when the worker shares one. Required by specs
5
+ * that model several regions at once, where two handles must be two distinct
6
+ * physical databases.
7
+ */
8
+ isolated?: boolean;
9
+ };
2
10
  declare global {
3
- var __vrplatform_testSharedKysely: Promise<LocalKysely> | LocalKysely | undefined;
11
+ var __vrplatformSharedKysely: Promise<LocalKysely> | undefined;
4
12
  }
5
- export declare function useTestAutoCleanupKysely(args?: UseLocalKyselyOptions): Promise<LocalKysely>;
13
+ /**
14
+ * Locally each worker process shares one database, because specs isolate by
15
+ * tenant and the faster suite is what makes running it before a push realistic.
16
+ *
17
+ * CI keeps a database per spec file. It retries nothing, so a badly scoped spec
18
+ * would surface there as a red build in an unrelated file rather than as a
19
+ * local failure the author can reproduce.
20
+ *
21
+ * VR_TEST_SHARED_KYSELY overrides either way; `isolated: true` opts a single
22
+ * call out when a spec genuinely needs two physical databases at once.
23
+ */
24
+ export declare function resolveSharedKysely(env: Record<string, string | undefined>): boolean;
25
+ export declare function useTestAutoCleanupKysely(args?: UseTestKyselyOptions): Promise<LocalKysely>;
6
26
  type ReturnType = LocalKysely & {
7
27
  [Symbol.dispose]: () => Promise<void>;
8
28
  };
9
- export declare function useLocalKyselyResource(args?: UseLocalKyselyOptions): Promise<ReturnType>;
29
+ export declare function useLocalKyselyResource(args?: UseTestKyselyOptions): Promise<ReturnType>;
10
30
  export {};
@@ -1,32 +1,54 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveSharedKysely = resolveSharedKysely;
3
4
  exports.useTestAutoCleanupKysely = useTestAutoCleanupKysely;
4
5
  exports.useLocalKyselyResource = useLocalKyselyResource;
5
6
  const bun_test_1 = require("bun:test");
6
7
  const local_1 = require("../local");
8
+ /**
9
+ * Locally each worker process shares one database, because specs isolate by
10
+ * tenant and the faster suite is what makes running it before a push realistic.
11
+ *
12
+ * CI keeps a database per spec file. It retries nothing, so a badly scoped spec
13
+ * would surface there as a red build in an unrelated file rather than as a
14
+ * local failure the author can reproduce.
15
+ *
16
+ * VR_TEST_SHARED_KYSELY overrides either way; `isolated: true` opts a single
17
+ * call out when a spec genuinely needs two physical databases at once.
18
+ */
19
+ function resolveSharedKysely(env) {
20
+ if (env.VR_TEST_SHARED_KYSELY)
21
+ return env.VR_TEST_SHARED_KYSELY !== '0';
22
+ return !(env.CI || env.GITHUB_ACTIONS);
23
+ }
24
+ const sharedKysely = resolveSharedKysely(process.env);
25
+ function acquireKysely(args) {
26
+ if (!sharedKysely || args?.isolated)
27
+ return (0, local_1.useLocalKysely)(args);
28
+ globalThis.__vrplatformSharedKysely ?? (globalThis.__vrplatformSharedKysely = (0, local_1.useLocalKysely)(args));
29
+ return globalThis.__vrplatformSharedKysely;
30
+ }
31
+ function ownsKysely(args) {
32
+ return !sharedKysely || Boolean(args?.isolated);
33
+ }
7
34
  async function useTestAutoCleanupKysely(args) {
8
- if (process.env.VR_TEST_SHARED_KYSELY === '1') {
9
- const existing = globalThis.__vrplatform_testSharedKysely;
10
- if (!existing) {
11
- const created = (0, local_1.useLocalKysely)(args);
12
- globalThis.__vrplatform_testSharedKysely = created;
13
- return created;
14
- }
15
- return await existing;
35
+ const kysely = await acquireKysely(args);
36
+ if (ownsKysely(args)) {
37
+ (0, bun_test_1.afterAll)(async () => {
38
+ await kysely.destroy();
39
+ });
16
40
  }
17
- const kysely = await (0, local_1.useLocalKysely)(args);
18
- (0, bun_test_1.afterAll)(async () => {
19
- await kysely.destroy();
20
- });
21
41
  return kysely;
22
42
  }
23
43
  async function useLocalKyselyResource(args) {
24
- const kysely = await (0, local_1.useLocalKysely)(args);
44
+ const kysely = await acquireKysely(args);
25
45
  return new Proxy({}, {
26
46
  get(_target, prop) {
27
47
  // somehow not working if using Symbol.dispose
28
48
  if (prop === Symbol.asyncDispose) {
29
49
  return async () => {
50
+ if (!ownsKysely(args))
51
+ return;
30
52
  await kysely.destroy();
31
53
  };
32
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"src/","sources":["test/index.ts"],"names":[],"mappings":";;AAgBA,4DAkBC;AAMD,wDAyBC;AAjED,uCAAoC;AACpC,oCAIkB;AAWX,KAAK,UAAU,wBAAwB,CAAC,IAA4B;IACzE,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,GAAG,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,6BAA6B,CAAC;QAC1D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,CAAC;YACrC,UAAU,CAAC,6BAA6B,GAAG,OAAO,CAAC;YACnD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,MAAM,QAAQ,CAAC;IACxB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAc,EAAC,IAAI,CAAC,CAAC;IAE1C,IAAA,mBAAQ,EAAC,KAAK,IAAI,EAAE;QAClB,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAMM,KAAK,UAAU,sBAAsB,CAC1C,IAA4B;IAE5B,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAc,EAAC,IAAI,CAAC,CAAC;IAE1C,OAAO,IAAI,KAAK,CACd,EAAE,EACF;QACE,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,8CAA8C;YAC9C,IAAI,IAAI,KAAK,MAAM,CAAC,YAAY,EAAE,CAAC;gBACjC,OAAO,KAAK,IAAI,EAAE;oBAChB,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACzB,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;gBACvC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;YACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;KACF,CACY,CAAC;AAClB,CAAC","sourcesContent":["import { afterAll } from 'bun:test';\nimport {\n type LocalKysely,\n type UseLocalKyselyOptions,\n useLocalKysely,\n} from '../local';\n\ndeclare global {\n // Shared Kysely instance for test processes that run multiple files in one Bun process.\n // This must be process-global to allow cross-file reuse.\n var __vrplatform_testSharedKysely:\n | Promise<LocalKysely>\n | LocalKysely\n | undefined;\n}\n\nexport async function useTestAutoCleanupKysely(args?: UseLocalKyselyOptions) {\n if (process.env.VR_TEST_SHARED_KYSELY === '1') {\n const existing = globalThis.__vrplatform_testSharedKysely;\n if (!existing) {\n const created = useLocalKysely(args);\n globalThis.__vrplatform_testSharedKysely = created;\n return created;\n }\n return await existing;\n }\n\n const kysely = await useLocalKysely(args);\n\n afterAll(async () => {\n await kysely.destroy();\n });\n\n return kysely;\n}\n\ntype ReturnType = LocalKysely & {\n [Symbol.dispose]: () => Promise<void>;\n};\n\nexport async function useLocalKyselyResource(\n args?: UseLocalKyselyOptions\n): Promise<ReturnType> {\n const kysely = await useLocalKysely(args);\n\n return new Proxy(\n {},\n {\n get(_target, prop) {\n // somehow not working if using Symbol.dispose\n if (prop === Symbol.asyncDispose) {\n return async () => {\n await kysely.destroy();\n };\n }\n if (prop === 'kysely') {\n return kysely;\n }\n if (typeof kysely[prop] === 'function') {\n return kysely[prop].bind(kysely);\n }\n return kysely[prop];\n },\n }\n ) as ReturnType;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"src/","sources":["test/index.ts"],"names":[],"mappings":";;AA+BA,kDAKC;AAcD,4DAUC;AAMD,wDA0BC;AA5FD,uCAAoC;AACpC,oCAIkB;AAelB;;;;;;;;;;GAUG;AACH,SAAgB,mBAAmB,CACjC,GAAuC;IAEvC,IAAI,GAAG,CAAC,qBAAqB;QAAE,OAAO,GAAG,CAAC,qBAAqB,KAAK,GAAG,CAAC;IACxE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAEtD,SAAS,aAAa,CAAC,IAA2B;IAChD,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,QAAQ;QAAE,OAAO,IAAA,sBAAc,EAAC,IAAI,CAAC,CAAC;IACjE,UAAU,CAAC,wBAAwB,KAAnC,UAAU,CAAC,wBAAwB,GAAK,IAAA,sBAAc,EAAC,IAAI,CAAC,EAAC;IAC7D,OAAO,UAAU,CAAC,wBAAwB,CAAC;AAC7C,CAAC;AAED,SAAS,UAAU,CAAC,IAA2B;IAC7C,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC;AAEM,KAAK,UAAU,wBAAwB,CAAC,IAA2B;IACxE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAEzC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,IAAA,mBAAQ,EAAC,KAAK,IAAI,EAAE;YAClB,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAMM,KAAK,UAAU,sBAAsB,CAC1C,IAA2B;IAE3B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAEzC,OAAO,IAAI,KAAK,CACd,EAAE,EACF;QACE,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,8CAA8C;YAC9C,IAAI,IAAI,KAAK,MAAM,CAAC,YAAY,EAAE,CAAC;gBACjC,OAAO,KAAK,IAAI,EAAE;oBAChB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;wBAAE,OAAO;oBAC9B,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACzB,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;gBACvC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;YACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;KACF,CACY,CAAC;AAClB,CAAC","sourcesContent":["import { afterAll } from 'bun:test';\nimport {\n type LocalKysely,\n type UseLocalKyselyOptions,\n useLocalKysely,\n} from '../local';\n\ntype UseTestKyselyOptions = UseLocalKyselyOptions & {\n /**\n * Force a private database even when the worker shares one. Required by specs\n * that model several regions at once, where two handles must be two distinct\n * physical databases.\n */\n isolated?: boolean;\n};\n\ndeclare global {\n var __vrplatformSharedKysely: Promise<LocalKysely> | undefined;\n}\n\n/**\n * Locally each worker process shares one database, because specs isolate by\n * tenant and the faster suite is what makes running it before a push realistic.\n *\n * CI keeps a database per spec file. It retries nothing, so a badly scoped spec\n * would surface there as a red build in an unrelated file rather than as a\n * local failure the author can reproduce.\n *\n * VR_TEST_SHARED_KYSELY overrides either way; `isolated: true` opts a single\n * call out when a spec genuinely needs two physical databases at once.\n */\nexport function resolveSharedKysely(\n env: Record<string, string | undefined>\n): boolean {\n if (env.VR_TEST_SHARED_KYSELY) return env.VR_TEST_SHARED_KYSELY !== '0';\n return !(env.CI || env.GITHUB_ACTIONS);\n}\n\nconst sharedKysely = resolveSharedKysely(process.env);\n\nfunction acquireKysely(args?: UseTestKyselyOptions): Promise<LocalKysely> {\n if (!sharedKysely || args?.isolated) return useLocalKysely(args);\n globalThis.__vrplatformSharedKysely ??= useLocalKysely(args);\n return globalThis.__vrplatformSharedKysely;\n}\n\nfunction ownsKysely(args?: UseTestKyselyOptions): boolean {\n return !sharedKysely || Boolean(args?.isolated);\n}\n\nexport async function useTestAutoCleanupKysely(args?: UseTestKyselyOptions) {\n const kysely = await acquireKysely(args);\n\n if (ownsKysely(args)) {\n afterAll(async () => {\n await kysely.destroy();\n });\n }\n\n return kysely;\n}\n\ntype ReturnType = LocalKysely & {\n [Symbol.dispose]: () => Promise<void>;\n};\n\nexport async function useLocalKyselyResource(\n args?: UseTestKyselyOptions\n): Promise<ReturnType> {\n const kysely = await acquireKysely(args);\n\n return new Proxy(\n {},\n {\n get(_target, prop) {\n // somehow not working if using Symbol.dispose\n if (prop === Symbol.asyncDispose) {\n return async () => {\n if (!ownsKysely(args)) return;\n await kysely.destroy();\n };\n }\n if (prop === 'kysely') {\n return kysely;\n }\n if (typeof kysely[prop] === 'function') {\n return kysely[prop].bind(kysely);\n }\n return kysely[prop];\n },\n }\n ) as ReturnType;\n}\n"]}