@antelopejs/interface-database 0.1.6 → 0.1.7

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 (53) hide show
  1. package/dist/antelope.test.js +1 -1
  2. package/dist/atomic.d.ts +3 -37
  3. package/dist/atomic.js +39 -121
  4. package/dist/atomic.js.map +1 -1
  5. package/dist/common.d.ts +1 -58
  6. package/dist/common.js +15 -41
  7. package/dist/common.js.map +1 -1
  8. package/dist/datum.d.ts +1 -55
  9. package/dist/datum.js +2 -66
  10. package/dist/datum.js.map +1 -1
  11. package/dist/query.d.ts +11 -12
  12. package/dist/query.js +24 -22
  13. package/dist/query.js.map +1 -1
  14. package/dist/schema.d.ts +3 -120
  15. package/dist/schema.js +7 -88
  16. package/dist/schema.js.map +1 -1
  17. package/dist/selection.d.ts +1 -104
  18. package/dist/selection.js +5 -123
  19. package/dist/selection.js.map +1 -1
  20. package/dist/staged-query/atomic.d.ts +34 -0
  21. package/dist/staged-query/atomic.js +108 -0
  22. package/dist/staged-query/atomic.js.map +1 -0
  23. package/dist/staged-query/common.d.ts +58 -0
  24. package/dist/staged-query/common.js +45 -0
  25. package/dist/staged-query/common.js.map +1 -0
  26. package/dist/staged-query/datum.d.ts +55 -0
  27. package/dist/staged-query/datum.js +70 -0
  28. package/dist/staged-query/datum.js.map +1 -0
  29. package/dist/staged-query/index.d.ts +8 -0
  30. package/dist/staged-query/index.js +36 -0
  31. package/dist/staged-query/index.js.map +1 -0
  32. package/dist/staged-query/query.d.ts +3 -0
  33. package/dist/staged-query/query.js +9 -0
  34. package/dist/staged-query/query.js.map +1 -0
  35. package/dist/staged-query/schema.d.ts +122 -0
  36. package/dist/staged-query/schema.js +95 -0
  37. package/dist/staged-query/schema.js.map +1 -0
  38. package/dist/staged-query/selection.d.ts +104 -0
  39. package/dist/staged-query/selection.js +126 -0
  40. package/dist/staged-query/selection.js.map +1 -0
  41. package/dist/staged-query/stream.d.ts +185 -0
  42. package/dist/staged-query/stream.js +221 -0
  43. package/dist/staged-query/stream.js.map +1 -0
  44. package/dist/staged-query/valueproxy.d.ts +415 -0
  45. package/dist/staged-query/valueproxy.js +562 -0
  46. package/dist/staged-query/valueproxy.js.map +1 -0
  47. package/dist/stream.d.ts +1 -185
  48. package/dist/stream.js +2 -217
  49. package/dist/stream.js.map +1 -1
  50. package/dist/valueproxy.d.ts +1 -415
  51. package/dist/valueproxy.js +15 -559
  52. package/dist/valueproxy.js.map +1 -1
  53. package/package.json +9 -1
@@ -11,7 +11,7 @@ exports.default = (0, config_1.defineConfig)({
11
11
  source: {
12
12
  type: "package",
13
13
  package: "@antelopejs/mongodb",
14
- version: "1.2.7",
14
+ version: "1.3.0",
15
15
  },
16
16
  },
17
17
  },
package/dist/atomic.d.ts CHANGED
@@ -1,41 +1,7 @@
1
- import { Query } from "./query";
2
- import type { QueryStage } from "./common";
3
- /** Matches an absent revision field on an existing record, not stored null. */
4
- export interface MissingRevision {
5
- kind: "missing";
6
- }
7
- export interface AtomicCondition<T> {
8
- revisionField: keyof T & string;
9
- expectedRevision: string | MissingRevision;
10
- }
11
- /** Replaces supplied top-level fields and atomically installs a fresh revision. */
12
- export interface AtomicUpdate<T> extends AtomicCondition<T> {
13
- type: "update";
14
- nextRevision: string;
15
- patch: Partial<T>;
16
- }
17
- export interface AtomicDelete<T> extends AtomicCondition<T> {
18
- type: "delete";
19
- }
20
- export type AtomicEqualityValue = string | number | boolean | Date;
21
- /** Deletes by one observed scalar value; does not provide revision or ABA protection. */
22
- export interface AtomicDeleteIfEqual<T> {
23
- type: "deleteIfEqual";
24
- field: keyof T & string;
25
- expectedValue: AtomicEqualityValue;
26
- }
27
- export type AtomicMutation<T> = AtomicUpdate<T> | AtomicDelete<T> | AtomicDeleteIfEqual<T>;
28
- export type AtomicMutationOutcome = "applied" | "not-applied" | "unknown";
1
+ import { AtomicMutationQuery as StagedAtomicMutationQuery } from "./staged-query/atomic";
29
2
  /** Signals an adapter that does not implement the atomic mutation contract. */
30
3
  export declare class AtomicMutationUnsupportedError extends Error {
31
4
  constructor();
32
5
  }
33
- /** Validates literal input; adapters must additionally supply scope fields. */
34
- export declare function ValidateAtomicMutation<T>(key: string, request: AtomicMutation<T>, protectedFields?: readonly string[]): void;
35
- /** Rejects selections and cross-instance operations before adapter dispatch. */
36
- export declare function ValidateAtomicMutationTable(stages: QueryStage[]): void;
37
- /** Executes only the explicit atomic stage; invalid adapter results fail closed. */
38
- export declare class AtomicMutationQuery extends Query<AtomicMutationOutcome> {
39
- run(): Promise<AtomicMutationOutcome>;
40
- cursor(): AsyncGenerator<AtomicMutationOutcome, void, unknown>;
41
- }
6
+ export * from "./staged-query/atomic";
7
+ export { StagedAtomicMutationQuery as AtomicMutationQuery };
package/dist/atomic.js CHANGED
@@ -1,12 +1,24 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
17
  exports.AtomicMutationQuery = exports.AtomicMutationUnsupportedError = void 0;
4
- exports.ValidateAtomicMutation = ValidateAtomicMutation;
5
- exports.ValidateAtomicMutationTable = ValidateAtomicMutationTable;
6
18
  const query_1 = require("./query");
19
+ const atomic_1 = require("./staged-query/atomic");
20
+ Object.defineProperty(exports, "AtomicMutationQuery", { enumerable: true, get: function () { return atomic_1.AtomicMutationQuery; } });
7
21
  const outcomes = ["applied", "not-applied", "unknown"];
8
- const tableStages = ["schema", "instance", "table"];
9
- const identityFields = ["id", "_id"];
10
22
  /** Signals an adapter that does not implement the atomic mutation contract. */
11
23
  class AtomicMutationUnsupportedError extends Error {
12
24
  constructor() {
@@ -15,121 +27,27 @@ class AtomicMutationUnsupportedError extends Error {
15
27
  }
16
28
  }
17
29
  exports.AtomicMutationUnsupportedError = AtomicMutationUnsupportedError;
18
- function isRecord(value) {
19
- return (value !== null &&
20
- typeof value === "object" &&
21
- [Object.prototype, null].includes(Object.getPrototypeOf(value)));
22
- }
23
- function isToken(value) {
24
- return typeof value === "string" && value.length > 0;
25
- }
26
- function validateField(field) {
27
- if (!isToken(field) || field.includes(".") || field.startsWith("$")) {
28
- throw new TypeError("Atomic mutation fields must be literal field names");
29
- }
30
- }
31
- function validateConstant(value, ancestors = new Set()) {
32
- if (value === null || ["string", "boolean"].includes(typeof value))
33
- return;
34
- if (typeof value === "number" && Number.isFinite(value))
35
- return;
36
- if (value instanceof Date && Number.isFinite(value.getTime()))
37
- return;
38
- if ((!Array.isArray(value) && !isRecord(value)) || ancestors.has(value)) {
39
- throw new TypeError("Atomic mutation patches must contain constant data");
40
- }
41
- if (Array.isArray(value) && Object.keys(value).length !== value.length) {
42
- throw new TypeError("Atomic mutation arrays must not contain holes");
43
- }
44
- ancestors.add(value);
45
- for (const [field, child] of Object.entries(value)) {
46
- validateField(field);
47
- validateConstant(child, ancestors);
48
- }
49
- ancestors.delete(value);
50
- }
51
- /** Validates literal input; adapters must additionally supply scope fields. */
52
- function ValidateAtomicMutation(key, request, protectedFields = []) {
53
- if (!isToken(key) || !isRecord(request)) {
54
- throw new TypeError("Atomic mutation requires one literal record identity");
55
- }
56
- const forbidden = [...identityFields, ...protectedFields];
57
- if (request.type === "deleteIfEqual") {
58
- validateEquality(request, forbidden);
59
- return;
60
- }
61
- validateField(request.revisionField);
62
- if (forbidden.includes(request.revisionField)) {
63
- throw new TypeError("Atomic mutation revision cannot be an identity field");
64
- }
65
- const expected = request.expectedRevision;
66
- const isMissing = isRecord(expected) &&
67
- expected.kind === "missing" &&
68
- Object.keys(expected).length === 1;
69
- if (!isToken(expected) && !isMissing) {
70
- throw new TypeError("Expected revision must be a token or missing tag");
71
- }
72
- if (request.type === "delete")
73
- return;
74
- if (request.type !== "update") {
75
- throw new TypeError("Unknown atomic mutation operation");
76
- }
77
- validateUpdate(request, forbidden);
78
- }
79
- function validateEquality(request, forbidden) {
80
- validateField(request.field);
81
- if (forbidden.includes(request.field)) {
82
- throw new TypeError("Atomic equality field cannot be an identity field");
83
- }
84
- const value = request.expectedValue;
85
- if (!["string", "number", "boolean"].includes(typeof value) &&
86
- !(value instanceof Date)) {
87
- throw new TypeError("Atomic equality requires a scalar or Date");
88
- }
89
- validateConstant(value);
90
- }
91
- function validateUpdate(request, forbidden) {
92
- if (!isToken(request.nextRevision) ||
93
- request.nextRevision === request.expectedRevision) {
94
- throw new TypeError("Atomic mutation requires a changed revision token");
95
- }
96
- if (!isRecord(request.patch)) {
97
- throw new TypeError("Atomic mutation patch must be an object");
98
- }
99
- forbidden.push(request.revisionField);
100
- if (Object.keys(request.patch).some((field) => forbidden.includes(field))) {
101
- throw new TypeError("Atomic mutation patch cannot change identity or revision");
102
- }
103
- validateConstant(request.patch);
104
- }
105
- /** Rejects selections and cross-instance operations before adapter dispatch. */
106
- function ValidateAtomicMutationTable(stages) {
107
- if (stages.length !== tableStages.length ||
108
- stages.some((stage, index) => stage.stage !== tableStages[index]) ||
109
- (stages[1].options?.id !== undefined &&
110
- typeof stages[1].options.id !== "string")) {
111
- throw new TypeError("Atomic mutation requires one instance-scoped table");
112
- }
113
- }
114
- /** Executes only the explicit atomic stage; invalid adapter results fail closed. */
115
- class AtomicMutationQuery extends query_1.Query {
116
- async run() {
117
- const terminal = this.stages.at(-1);
118
- ValidateAtomicMutationTable(this.stages.slice(0, -1));
119
- if (terminal.stage !== "atomicMutation" ||
120
- terminal.options !== undefined ||
121
- terminal.args.length !== 2) {
122
- throw new TypeError("Atomic mutation requires its canonical terminal stage");
123
- }
124
- ValidateAtomicMutation(terminal.args[0], terminal.args[1]);
125
- const result = await super.run();
126
- if (!outcomes.includes(result))
127
- throw new AtomicMutationUnsupportedError();
128
- return result;
129
- }
130
- cursor() {
131
- throw new TypeError("Atomic mutations cannot be executed as cursors");
132
- }
133
- }
134
- exports.AtomicMutationQuery = AtomicMutationQuery;
30
+ async function run() {
31
+ const stages = this.build();
32
+ const terminal = stages.at(-1);
33
+ (0, atomic_1.ValidateAtomicMutationTable)(stages.slice(0, -1));
34
+ if (terminal.stage !== "atomicMutation" ||
35
+ terminal.options !== undefined ||
36
+ terminal.args.length !== 2) {
37
+ throw new TypeError("Atomic mutation requires its canonical terminal stage");
38
+ }
39
+ (0, atomic_1.ValidateAtomicMutation)(terminal.args[0], terminal.args[1]);
40
+ const result = await query_1.Query.prototype.run.call(this);
41
+ if (!outcomes.includes(result))
42
+ throw new AtomicMutationUnsupportedError();
43
+ return result;
44
+ }
45
+ function cursor() {
46
+ throw new TypeError("Atomic mutations cannot be executed as cursors");
47
+ }
48
+ Object.defineProperties(atomic_1.AtomicMutationQuery.prototype, {
49
+ run: { configurable: true, value: run, writable: true },
50
+ cursor: { configurable: true, value: cursor, writable: true },
51
+ });
52
+ __exportStar(require("./staged-query/atomic"), exports);
135
53
  //# sourceMappingURL=atomic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"atomic.js","sourceRoot":"","sources":["../src/atomic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"atomic.js","sourceRoot":"","sources":["../src/atomic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAAgC;AAChC,kDAK+B;AA2CO,oGA/Cb,4BAAyB,OA+CO;AAzCzD,MAAM,QAAQ,GAAuB,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;AAE3E,+EAA+E;AAC/E,MAAa,8BAA+B,SAAQ,KAAK;IACvD;QACE,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC/C,CAAC;CACF;AALD,wEAKC;AAED,KAAK,UAAU,GAAG;IAGhB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;IAChC,IAAA,oCAA2B,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,IACE,QAAQ,CAAC,KAAK,KAAK,gBAAgB;QACnC,QAAQ,CAAC,OAAO,KAAK,SAAS;QAC9B,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAC1B,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,uDAAuD,CACxD,CAAC;IACJ,CAAC;IACD,IAAA,+BAAsB,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,aAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,8BAA8B,EAAE,CAAC;IAC3E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,MAAM;IACb,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,gBAAgB,CAAC,4BAAyB,CAAC,SAAS,EAAE;IAC3D,GAAG,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvD,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;CAC9D,CAAC,CAAC;AAEH,wDAAsC"}
package/dist/common.d.ts CHANGED
@@ -1,58 +1 @@
1
- import type { Class } from "@antelopejs/interface-core/decorators";
2
- import type { Datum } from "./datum";
3
- import type { Query } from "./query";
4
- import type { ValueProxy, ValueProxyOrValue } from "./valueproxy";
5
- /**
6
- * Recursive Partial generic type
7
- */
8
- export type DeepPartial<T> = {
9
- [K in keyof T]?: T[K] extends Array<infer U1> ? Array<DeepPartial<U1>> : T[K] extends ReadonlyArray<infer U2> ? ReadonlyArray<DeepPartial<U2>> : DeepPartial<T[K]>;
10
- };
11
- /**
12
- * Change event
13
- */
14
- export interface Changes<T> {
15
- /**
16
- * The type of change that occured
17
- *
18
- * Possible values: added, removed, modified
19
- */
20
- changeType: "added" | "removed" | "modified";
21
- /**
22
- * Value prior to the change
23
- */
24
- oldValue?: T;
25
- /**
26
- * New value after the change
27
- */
28
- newValue?: T;
29
- }
30
- export interface InsertOptions {
31
- conflict?: "update" | "replace";
32
- }
33
- export interface QueryStage {
34
- stage: string;
35
- options?: any;
36
- args: any[];
37
- }
38
- export declare function QueryStage(stage: string, options?: any, ...args: any[]): {
39
- stage: string;
40
- options: any;
41
- args: any[];
42
- };
43
- export declare class StagedObject {
44
- protected readonly stages: QueryStage[];
45
- constructor(newStage: QueryStage, previous?: StagedObject);
46
- build(): QueryStage[];
47
- protected stage(type: undefined, stage: string, options?: any, ...args: any[]): this;
48
- protected stage<T extends StagedObject>(type: Class<T>, stage: string, options?: any, ...args: any[]): T;
49
- private static nextargid;
50
- protected callfunc<T extends StagedObject[]>(func: (...args: T) => any, ...args: (typeof StagedObject)[]): QueryStage;
51
- }
52
- export type Value<T> = Datum<T> | ValueProxyOrValue<T>;
53
- type UnknownObject = Record<keyof any, unknown>;
54
- type ExtractTypeObject<T extends UnknownObject> = T extends infer O ? {
55
- [K in keyof O]: ExtractType<O[K]>;
56
- } : never;
57
- export type ExtractType<T> = T extends ValueProxy<infer A> ? A : T extends Query<infer A> ? A : T extends UnknownObject ? ExtractTypeObject<T> : T extends Array<infer A> ? Array<ExtractType<A>> : T;
58
- export {};
1
+ export * from "./staged-query/common";
package/dist/common.js CHANGED
@@ -1,44 +1,18 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StagedObject = void 0;
4
- exports.QueryStage = QueryStage;
5
- function QueryStage(stage, options, ...args) {
6
- return {
7
- stage,
8
- options,
9
- args,
10
- };
11
- }
12
- class StagedObject {
13
- stages;
14
- constructor(newStage, previous) {
15
- this.stages = previous ? [...previous.stages, newStage] : [newStage];
16
- }
17
- //@internal
18
- build() {
19
- return this.stages;
20
- }
21
- stage(type, stage, options, ...args) {
22
- return new (type ?? this.constructor)({
23
- stage,
24
- options,
25
- args,
26
- }, this);
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
27
7
  }
28
- static nextargid = 0;
29
- callfunc(func, ...args) {
30
- const argNumbers = [];
31
- const argValues = [];
32
- for (let i = 0; i < args.length; ++i) {
33
- const id = StagedObject.nextargid++;
34
- argNumbers[i] = id;
35
- argValues[i] = new args[i](QueryStage("arg", undefined, id));
36
- }
37
- return {
38
- stage: "func", // TODO: using the query stage structure here doesnt make any sense
39
- args: [argNumbers, func(...argValues)],
40
- };
41
- }
42
- }
43
- exports.StagedObject = StagedObject;
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./staged-query/common"), exports);
44
18
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":";;;AAiDA,gCAMC;AAND,SAAgB,UAAU,CAAC,KAAa,EAAE,OAAa,EAAE,GAAG,IAAW;IACrE,OAAO;QACL,KAAK;QACL,OAAO;QACP,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAa,YAAY;IACJ,MAAM,CAAe;IAExC,YAAmB,QAAoB,EAAE,QAAuB;QAC9D,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,WAAW;IACJ,KAAK;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAcS,KAAK,CACb,IAA0B,EAC1B,KAAa,EACb,OAAa,EACb,GAAG,IAAW;QAEd,OAAO,IAAI,CAAC,IAAI,IAAK,IAAI,CAAC,WAAmC,CAAC,CAC5D;YACE,KAAK;YACL,OAAO;YACP,IAAI;SACL,EACD,IAAI,CACL,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;IACnB,QAAQ,CAChB,IAAyB,EACzB,GAAG,IAA6B;QAEhC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,SAAS,GAAmB,EAAE,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACrC,MAAM,EAAE,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;YACpC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACnB,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO;YACL,KAAK,EAAE,MAAM,EAAE,mEAAmE;YAClF,IAAI,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,GAAI,SAAe,CAAC,CAAC;SAC9C,CAAC;IACJ,CAAC;;AAxDH,oCAyDC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC"}
package/dist/datum.d.ts CHANGED
@@ -1,55 +1 @@
1
- import { Query } from "./query";
2
- import { ValueProxy } from "./valueproxy";
3
- import type { Selection } from "./selection";
4
- import type { ExtractType, Value } from "./common";
5
- export declare class Datum<T> extends Query<T> {
6
- /**
7
- * Changes the type of this datum.
8
- * This does not actually perform any conversion, it only changes the typescript type.
9
- *
10
- * @returns Same datum with a different type
11
- */
12
- cast<U>(): Datum<U>;
13
- /**
14
- * Indexes the datum.
15
- *
16
- * TODO: Better name?
17
- * TODO: typing for compound keys (a.b.c)
18
- *
19
- * @param key Field name
20
- * @param def Default value
21
- * @returns New datum with the value
22
- */
23
- key<K extends keyof NonNullable<T>, U = undefined>(key: K, def?: U): Datum<U extends undefined ? NonNullable<T>[K] : U | NonNullable<NonNullable<T>[K]>>;
24
- /**
25
- * Defaults the datum to a given value if it is null.
26
- *
27
- * @param value Default value
28
- * @returns Current datum or given value
29
- */
30
- default<U>(val: Value<U>): Datum<U | Exclude<T, null | undefined>>;
31
- /**
32
- * Run a mapping function on the datum.
33
- *
34
- * @param mapper Mapping function
35
- * @returns New datum with the result of the mapper
36
- */
37
- do<U>(mapper: (val: ValueProxy<T>) => U): Datum<ExtractType<U>>;
38
- /**
39
- * Perform a foreign key lookup
40
- *
41
- * @param other Other table
42
- * @param localKey Key in local object
43
- * @param otherKey Key in other table
44
- */
45
- lookup<U = any, TK extends keyof T = keyof T>(other: Selection<U>, localKey: TK, otherKey: keyof U): Datum<Omit<T, TK> & Record<TK, T[TK] extends any[] ? U[] : U>>;
46
- /**
47
- * Plucks fields from the documents.
48
- *
49
- * TODO: Better typing
50
- *
51
- * @param fields Fields to keep
52
- * @returns New datum
53
- */
54
- pluck(...fields: string[]): Datum<Partial<T>>;
55
- }
1
+ export { Datum } from "./staged-query/datum";
package/dist/datum.js CHANGED
@@ -1,70 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Datum = void 0;
4
- const query_1 = require("./query");
5
- const valueproxy_1 = require("./valueproxy");
6
- class Datum extends query_1.Query {
7
- /**
8
- * Changes the type of this datum.
9
- * This does not actually perform any conversion, it only changes the typescript type.
10
- *
11
- * @returns Same datum with a different type
12
- */
13
- cast() {
14
- return this;
15
- }
16
- /**
17
- * Indexes the datum.
18
- *
19
- * TODO: Better name?
20
- * TODO: typing for compound keys (a.b.c)
21
- *
22
- * @param key Field name
23
- * @param def Default value
24
- * @returns New datum with the value
25
- */
26
- key(key, def) {
27
- return this.stage((Datum), "key", undefined, key, def);
28
- }
29
- /**
30
- * Defaults the datum to a given value if it is null.
31
- *
32
- * @param value Default value
33
- * @returns Current datum or given value
34
- */
35
- default(val) {
36
- return this.stage((Datum), "default", undefined, val);
37
- }
38
- /**
39
- * Run a mapping function on the datum.
40
- *
41
- * @param mapper Mapping function
42
- * @returns New datum with the result of the mapper
43
- */
44
- do(mapper) {
45
- return this.stage((Datum), "map", undefined, this.callfunc(mapper, (valueproxy_1.ValueProxy)));
46
- }
47
- /**
48
- * Perform a foreign key lookup
49
- *
50
- * @param other Other table
51
- * @param localKey Key in local object
52
- * @param otherKey Key in other table
53
- */
54
- lookup(other, localKey, otherKey) {
55
- return this.stage((Datum), "lookup", { localKey, otherKey }, other);
56
- }
57
- /**
58
- * Plucks fields from the documents.
59
- *
60
- * TODO: Better typing
61
- *
62
- * @param fields Fields to keep
63
- * @returns New datum
64
- */
65
- pluck(...fields) {
66
- return this.stage((Datum), "pluck", undefined, fields);
67
- }
68
- }
69
- exports.Datum = Datum;
4
+ var datum_1 = require("./staged-query/datum");
5
+ Object.defineProperty(exports, "Datum", { enumerable: true, get: function () { return datum_1.Datum; } });
70
6
  //# sourceMappingURL=datum.js.map
package/dist/datum.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"datum.js","sourceRoot":"","sources":["../src/datum.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,6CAA0C;AAI1C,MAAa,KAAS,SAAQ,aAAQ;IACpC;;;;;OAKG;IACI,IAAI;QACT,OAAO,IAA2B,CAAC;IACrC,CAAC;IAED;;;;;;;;;OASG;IACI,GAAG,CAAgD,GAAM,EAAE,GAAO;QACvE,OAAO,IAAI,CAAC,KAAK,CACf,CAAA,KAIC,CAAA,EACD,KAAK,EACL,SAAS,EACT,GAAG,EACH,GAAG,CACJ,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,OAAO,CAAI,GAAa;QAC7B,OAAO,IAAI,CAAC,KAAK,CACf,CAAA,KAAuC,CAAA,EACvC,SAAS,EACT,SAAS,EACT,GAAG,CACJ,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,EAAE,CAAI,MAAiC;QAC5C,OAAO,IAAI,CAAC,KAAK,CACf,CAAA,KAAqB,CAAA,EACrB,KAAK,EACL,SAAS,EACT,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA,uBAAa,CAAA,CAAC,CACrC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CACX,KAAmB,EACnB,QAAY,EACZ,QAAiB;QAEjB,OAAO,IAAI,CAAC,KAAK,CACf,CAAA,KAA8D,CAAA,EAC9D,QAAQ,EACR,EAAE,QAAQ,EAAE,QAAQ,EAAE,EACtB,KAAK,CACN,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,GAAG,MAAgB;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA,KAAiB,CAAA,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;CACF;AAhGD,sBAgGC"}
1
+ {"version":3,"file":"datum.js","sourceRoot":"","sources":["../src/datum.ts"],"names":[],"mappings":";;;AAAA,8CAA6C;AAApC,8FAAA,KAAK,OAAA"}
package/dist/query.d.ts CHANGED
@@ -1,15 +1,14 @@
1
- import { StagedObject } from "./common";
2
- export declare const RunQuery: (query: import("./common").QueryStage[]) => Promise<any>;
3
- export declare const ReadCursor: (reqId: number, stages: import("./common").QueryStage[]) => Promise<IteratorResult<any, void>>;
1
+ import { Query as StagedQuery } from "./staged-query/query";
2
+ export declare const RunQuery: (query: import("./staged-query/common").QueryStage[]) => Promise<any>;
3
+ export declare const ReadCursor: (reqId: number, stages: import("./staged-query/common").QueryStage[]) => Promise<IteratorResult<any, void>>;
4
4
  export declare const CloseCursor: (reqId: number) => Promise<void>;
5
- export declare class Query<T> extends StagedObject implements PromiseLike<T> {
6
- /**
7
- * Execute the query
8
- *
9
- * @returns Query result
10
- */
5
+ export interface QueryExecution<T> extends PromiseLike<T> {
11
6
  run(): Promise<T>;
12
- then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null): PromiseLike<TResult1 | TResult2>;
13
- cursor(): AsyncGenerator<T extends Array<infer T1> ? T1 : T, void, unknown>;
14
- [Symbol.asyncIterator](): AsyncGenerator<T extends (infer T1)[] ? T1 : T, void, unknown>;
7
+ cursor(): AsyncGenerator<T extends Array<infer U> ? U : T, void, unknown>;
8
+ [Symbol.asyncIterator](): AsyncGenerator<T extends Array<infer U> ? U : T, void, unknown>;
15
9
  }
10
+ declare module "./staged-query/query" {
11
+ interface Query<T> extends QueryExecution<T> {
12
+ }
13
+ }
14
+ export { StagedQuery as Query };
package/dist/query.js CHANGED
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Query = exports.CloseCursor = exports.ReadCursor = exports.RunQuery = void 0;
4
4
  const interface_core_1 = require("@antelopejs/interface-core");
5
- const common_1 = require("./common");
5
+ const query_1 = require("./staged-query/query");
6
+ Object.defineProperty(exports, "Query", { enumerable: true, get: function () { return query_1.Query; } });
6
7
  //@internal
7
8
  exports.RunQuery = (0, interface_core_1.InterfaceFunction)();
8
9
  //@internal
@@ -54,26 +55,27 @@ class IterableCursor {
54
55
  return this;
55
56
  }
56
57
  }
57
- class Query extends common_1.StagedObject {
58
- /**
59
- * Execute the query
60
- *
61
- * @returns Query result
62
- */
63
- run() {
64
- return (0, exports.RunQuery)(this.stages);
65
- }
66
- // oxlint-disable-next-line unicorn/no-thenable -- Query is deliberately PromiseLike so `await query` runs it; the contract requires this method.
67
- then(onfulfilled, onrejected) {
68
- return this.run().then(onfulfilled, onrejected);
69
- }
70
- //TODO: core interface function for async generators
71
- cursor() {
72
- return new IterableCursor(this.stages);
73
- }
74
- [Symbol.asyncIterator]() {
75
- return this.cursor();
76
- }
58
+ function run() {
59
+ return (0, exports.RunQuery)(this.build());
60
+ }
61
+ function then(onfulfilled, onrejected) {
62
+ return this.run().then(onfulfilled, onrejected);
63
+ }
64
+ function cursor() {
65
+ return new IterableCursor(this.build());
66
+ }
67
+ function iterate() {
68
+ return this.cursor();
77
69
  }
78
- exports.Query = Query;
70
+ Object.defineProperties(query_1.Query.prototype, {
71
+ run: { configurable: true, value: run, writable: true },
72
+ // oxlint-disable-next-line unicorn/no-thenable -- Query is deliberately PromiseLike so `await query` executes it.
73
+ then: { configurable: true, value: then, writable: true },
74
+ cursor: { configurable: true, value: cursor, writable: true },
75
+ [Symbol.asyncIterator]: {
76
+ configurable: true,
77
+ value: iterate,
78
+ writable: true,
79
+ },
80
+ });
79
81
  //# sourceMappingURL=query.js.map
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":";;;AAAA,+DAA+D;AAE/D,qCAAwC;AAExC,WAAW;AACE,QAAA,QAAQ,GACnB,IAAA,kCAAiB,GAA0C,CAAC;AAC9D,WAAW;AACE,QAAA,UAAU,GACrB,IAAA,kCAAiB,GAEd,CAAC;AACN,WAAW;AACE,QAAA,WAAW,GAAG,IAAA,kCAAiB,GAA2B,CAAC;AAExE,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,MAAM,cAAc;IAKS;IAJnB,KAAK,CAAS;IACd,OAAO,CAA4C;IACnD,MAAM,CAAsB;IAEpC,YAA2B,MAA8B;QAA9B,WAAM,GAAN,MAAM,CAAwB;QACvD,IAAI,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;IAC3B,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,KAAK,IAAA,kBAAU,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;iBACrC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;iBACrB,OAAO,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;gBACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YAC1B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QAC1B,CAAC;QACD,MAAM,IAAA,mBAAW,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,CAAM;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QAC1B,CAAC;QACD,MAAM,IAAA,mBAAW,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC1C,CAAC;IAED,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,MAAa,KAAS,SAAQ,qBAAY;IACxC;;;;OAIG;IACI,GAAG;QACR,OAAO,IAAA,gBAAQ,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,iJAAiJ;IAC1I,IAAI,CACT,WAAqE,EACrE,UAAuE;QAEvE,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,oDAAoD;IAE7C,MAAM;QAKX,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF;AA/BD,sBA+BC"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}