Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

edgedb

Package Overview
Dependencies
Maintainers
4
Versions
322
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

edgedb - npm Package Compare versions

Comparing version 0.18.0-alpha.6 to 0.18.0-alpha.7

0

dist/codecs/datetime.js

@@ -0,0 +0,0 @@ "use strict";

7

dist/reflection/generators/generateFunctionTypes.js

@@ -254,3 +254,5 @@ "use strict";

function generateReturnCardinality(name, params, returnTypemod, hasNamedParams, anytypes, preservesOptionality = false) {
if (returnTypemod === "SetOfType" && name !== "std::if_else") {
if (returnTypemod === "SetOfType" &&
name !== "std::if_else" &&
name !== "std::assert_exists") {
return `$.Cardinality.Many`;

@@ -281,2 +283,5 @@ }

}
if (name === "std::assert_exists") {
return `$.cardinalityUtil.overrideLowerBound<${cardinalities[0].genTypeName}["__cardinality__"], "One">`;
}
const paramCardinalities = cardinalities.map(param => {

@@ -283,0 +288,0 @@ if (param.typemod === "SetOfType") {

11

dist/reflection/generators/generateObjectTypes.js

@@ -99,3 +99,3 @@ "use strict";

const ptrToLine = ptr => {
var _a, _b;
var _a, _b, _c;
const card = `$.Cardinality.${ptr.real_cardinality}`;

@@ -114,3 +114,4 @@ const target = types.get(ptr.target_id);

writable: (_a = ptr.is_writable) !== null && _a !== void 0 ? _a : false,
lines: ((_b = ptr.pointers) !== null && _b !== void 0 ? _b : [])
hasDefault: (_b = ptr.has_default) !== null && _b !== void 0 ? _b : false,
lines: ((_c = ptr.pointers) !== null && _c !== void 0 ? _c : [])
.filter(p => p.name !== "@target" && p.name !== "@source")

@@ -139,3 +140,3 @@ .map(ptrToLine),

body.writeln([
(0, builders_1.t) `${(0, genutil_1.quote)(line.key)}: $.LinkDesc<${line.staticType}, ${line.card}, {}, ${line.isExclusive.toString()}, ${line.writable.toString()}>;`,
(0, builders_1.t) `${(0, genutil_1.quote)(line.key)}: $.LinkDesc<${line.staticType}, ${line.card}, {}, ${line.isExclusive.toString()}, ${line.writable.toString()}, ${line.hasDefault.toString()}>;`,
]);

@@ -155,3 +156,3 @@ }

body.writeln([
(0, builders_1.t) `}, ${line.isExclusive.toString()}, ${line.writable.toString()}>;`,
(0, builders_1.t) `}, ${line.isExclusive.toString()}, ${line.writable.toString()}, ${line.hasDefault.toString()}>;`,
]);

@@ -162,3 +163,3 @@ }

body.writeln([
(0, builders_1.t) `${(0, genutil_1.quote)(line.key)}: $.PropertyDesc<${line.staticType}, ${line.card}, ${line.isExclusive.toString()}, ${line.writable.toString()}>;`,
(0, builders_1.t) `${(0, genutil_1.quote)(line.key)}: $.PropertyDesc<${line.staticType}, ${line.card}, ${line.isExclusive.toString()}, ${line.writable.toString()}, ${line.hasDefault.toString()}>;`,
]);

@@ -165,0 +166,0 @@ }

@@ -12,2 +12,3 @@ import { Executor } from "../../ifaces";

is_writable: boolean;
has_default: boolean;
pointers: ReadonlyArray<Pointer> | null;

@@ -14,0 +15,0 @@ };

@@ -83,2 +83,3 @@ "use strict";

is_writable := len(.computed_fields) = 0 AND .readonly = false,
has_default := EXISTS .default,
[IS Link].pointers: {

@@ -85,0 +86,0 @@ real_cardinality := ("One" IF .required ELSE "AtMostOne") IF <str>.cardinality = "One" ELSE ("AtLeastOne" IF .required ELSE "Many"),

@@ -96,3 +96,3 @@ import type { Executor } from "../ifaces";

export declare type PropertyTypes = ScalarType | EnumType | ArrayType | TupleType | NamedTupleType;
export interface PropertyDesc<Type extends BaseType = BaseType, Card extends Cardinality = Cardinality, Exclusive extends boolean = boolean, Writable extends boolean = boolean> {
export interface PropertyDesc<Type extends BaseType = BaseType, Card extends Cardinality = Cardinality, Exclusive extends boolean = boolean, Writable extends boolean = boolean, HasDefault extends boolean = boolean> {
__kind__: "property";

@@ -103,2 +103,3 @@ target: Type;

writable: Writable;
hasDefault: HasDefault;
}

@@ -109,3 +110,3 @@ export declare type $scopify<Type extends ObjectType> = $expr_PathNode<TypeSet<Type, Cardinality.One>, null, true>;

};
export interface LinkDesc<Type extends ObjectType = any, Card extends Cardinality = Cardinality, LinkProps extends PropertyShape = any, Exclusive extends boolean = boolean, Writable extends boolean = boolean> {
export interface LinkDesc<Type extends ObjectType = any, Card extends Cardinality = Cardinality, LinkProps extends PropertyShape = any, Exclusive extends boolean = boolean, Writable extends boolean = boolean, HasDefault extends boolean = boolean> {
__kind__: "link";

@@ -117,2 +118,3 @@ target: Type;

writable: Writable;
hasDefault: HasDefault;
}

@@ -119,0 +121,0 @@ export declare type ObjectTypePointers = {

@@ -0,0 +0,0 @@ import {

@@ -106,12 +106,19 @@ "use strict";

}
let cardinality = funcDef.returnTypemod === "SetOfType"
? reflection_1.Cardinality.Many
: reflection_1.cardinalityUtil.multiplyCardinalitiesVariadic(paramCardinalities);
if (funcDef.returnTypemod === "OptionalType" &&
!funcDef.preservesOptionality) {
cardinality = reflection_1.cardinalityUtil.overrideLowerBound(cardinality, "Zero");
}
let cardinality;
if (funcName === "if_else") {
cardinality = reflection_1.cardinalityUtil.multiplyCardinalities(reflection_1.cardinalityUtil.orCardinalities(positionalArgs[0].__cardinality__, positionalArgs[2].__cardinality__), positionalArgs[1].__cardinality__);
}
else if (funcName === "std::assert_exists") {
cardinality = reflection_1.cardinalityUtil.overrideLowerBound(positionalArgs[0].__cardinality__, "One");
}
else {
cardinality =
funcDef.returnTypemod === "SetOfType"
? reflection_1.Cardinality.Many
: reflection_1.cardinalityUtil.multiplyCardinalitiesVariadic(paramCardinalities);
if (funcDef.returnTypemod === "OptionalType" &&
!funcDef.preservesOptionality) {
cardinality = reflection_1.cardinalityUtil.overrideLowerBound(cardinality, "Zero");
}
}
return {

@@ -118,0 +125,0 @@ kind: funcDef.kind,

@@ -196,14 +196,3 @@ import {

let cardinality =
funcDef.returnTypemod === "SetOfType"
? Cardinality.Many
: cardinalityUtil.multiplyCardinalitiesVariadic(paramCardinalities);
if (
funcDef.returnTypemod === "OptionalType" &&
!funcDef.preservesOptionality
) {
cardinality = cardinalityUtil.overrideLowerBound(cardinality, "Zero");
}
let cardinality: Cardinality;
if (funcName === "if_else") {

@@ -217,2 +206,19 @@ cardinality = cardinalityUtil.multiplyCardinalities(

);
} else if (funcName === "std::assert_exists") {
cardinality = cardinalityUtil.overrideLowerBound(
positionalArgs[0].__cardinality__,
"One"
);
} else {
cardinality =
funcDef.returnTypemod === "SetOfType"
? Cardinality.Many
: cardinalityUtil.multiplyCardinalitiesVariadic(paramCardinalities);
if (
funcDef.returnTypemod === "OptionalType" &&
!funcDef.preservesOptionality
) {
cardinality = cardinalityUtil.overrideLowerBound(cardinality, "Zero");
}
}

@@ -219,0 +225,0 @@

import { Cardinality, Expression, ExpressionKind, LinkDesc, ObjectTypeSet, ObjectTypePointers, PropertyDesc, stripBacklinks, stripNonWritables, typeutil, $scopify, stripSet, TypeSet, QueryableExpression } from "../reflection";
import type { pointerToAssignmentExpression } from "./casting";
import { $expr_PathNode } from "../reflection/path";
declare type pointerIsOptional<T extends PropertyDesc | LinkDesc> = T["cardinality"] extends Cardinality.Many | Cardinality.Empty | Cardinality.AtMostOne ? true : false;
export declare type pointerIsOptional<T extends PropertyDesc | LinkDesc> = T["cardinality"] extends Cardinality.Many | Cardinality.Empty | Cardinality.AtMostOne ? true : false;
export declare type InsertShape<Root extends ObjectTypeSet> = typeutil.stripNever<stripNonWritables<stripBacklinks<Root["__element__"]["__pointers__"]>>> extends infer Shape ? Shape extends ObjectTypePointers ? typeutil.addQuestionMarks<{
[k in keyof Shape]: pointerToAssignmentExpression<Shape[k]> | (pointerIsOptional<Shape[k]> extends true ? undefined : never);
[k in keyof Shape]: pointerToAssignmentExpression<Shape[k]> | (pointerIsOptional<Shape[k]> extends true ? undefined | null : never) | (Shape[k]["hasDefault"] extends true ? undefined : never);
}> : never : never;

@@ -53,5 +53,9 @@ interface UnlessConflict {

}, isUpdate?: boolean): {
[key: string]: TypeSet;
[key: string]: TypeSet | {
"+=": TypeSet;
} | {
"-=": TypeSet;
};
};
export declare function insert<Root extends $expr_PathNode>(root: Root, shape: InsertShape<Root>): $expr_Insert<Root>;
export {};

@@ -6,2 +6,3 @@ "use strict";

const path_1 = require("./path");
const set_1 = require("./set");
const query_1 = require("./query");

@@ -34,3 +35,4 @@ function unlessConflict(conflictGetter) {

let val = _val;
if (isUpdate && typeof _val === "object") {
let setModify = null;
if (isUpdate && _val != null && typeof _val === "object") {
const valKeys = Object.keys(_val);

@@ -40,5 +42,6 @@ if (valKeys.length === 1 &&

val = _val[valKeys[0]];
setModify = valKeys[0];
}
}
if (val === null || val === void 0 ? void 0 : val.__kind__) {
if ((val === null || val === void 0 ? void 0 : val.__kind__) || val === undefined) {
newShape[key] = _val;

@@ -48,6 +51,11 @@ }

const pointer = root.__element__.__pointers__[key];
if (!pointer || pointer.__kind__ !== "property") {
if (!pointer || (pointer.__kind__ !== "property" && val !== null)) {
throw new Error(`Could not find property pointer for ${isUpdate ? "update" : "insert"} shape key: '${key}'`);
}
newShape[key] = pointer.target(_val);
const wrappedVal = val === null
? (0, set_1.set)(pointer.target)
: pointer.target(val);
newShape[key] = setModify
? { [setModify]: wrappedVal }
: wrappedVal;
}

@@ -54,0 +62,0 @@ }

@@ -21,6 +21,7 @@ import {

import {$expressionify, $getScopedExpr} from "./path";
import {set} from "./set";
import {$queryify} from "./query";
import {$expr_PathNode} from "../reflection/path";
type pointerIsOptional<T extends PropertyDesc | LinkDesc> =
export type pointerIsOptional<T extends PropertyDesc | LinkDesc> =
T["cardinality"] extends

@@ -40,3 +41,6 @@ | Cardinality.Many

| pointerToAssignmentExpression<Shape[k]>
| (pointerIsOptional<Shape[k]> extends true ? undefined : never);
| (pointerIsOptional<Shape[k]> extends true
? undefined | null
: never)
| (Shape[k]["hasDefault"] extends true ? undefined : never);
}>

@@ -137,7 +141,10 @@ : never

isUpdate: boolean = false
): {[key: string]: TypeSet} {
const newShape: {[key: string]: TypeSet} = {};
): {[key: string]: TypeSet | {"+=": TypeSet} | {"-=": TypeSet}} {
const newShape: {
[key: string]: TypeSet | {"+=": TypeSet} | {"-=": TypeSet};
} = {};
for (const [key, _val] of Object.entries(shape)) {
let val = _val;
if (isUpdate && typeof _val === "object") {
let setModify: string | null = null;
if (isUpdate && _val != null && typeof _val === "object") {
const valKeys = Object.keys(_val);

@@ -149,9 +156,10 @@ if (

val = _val[valKeys[0]];
setModify = valKeys[0];
}
}
if (val?.__kind__) {
if (val?.__kind__ || val === undefined) {
newShape[key] = _val;
} else {
const pointer = root.__element__.__pointers__[key];
if (!pointer || pointer.__kind__ !== "property") {
if (!pointer || (pointer.__kind__ !== "property" && val !== null)) {
throw new Error(

@@ -163,5 +171,9 @@ `Could not find property pointer for ${

}
newShape[key] = (
pointer.target as scalarTypeWithConstructor<ScalarType>
)(_val);
const wrappedVal =
val === null
? set(pointer.target)
: (pointer.target as scalarTypeWithConstructor<ScalarType>)(val);
newShape[key] = setModify
? ({[setModify]: wrappedVal} as any)
: wrappedVal;
}

@@ -168,0 +180,0 @@ }

@@ -74,2 +74,3 @@ "use strict";

writable: false,
hasDefault: false,
};

@@ -76,0 +77,0 @@ }

@@ -127,2 +127,3 @@ import {

writable: false,
hasDefault: false,
};

@@ -129,0 +130,0 @@ }

@@ -1,10 +0,11 @@

import { QueryableExpression, ExpressionKind, ObjectTypePointers, TypeSet, ObjectTypeSet, stripBacklinks, stripNonWritables, typeutil, ObjectTypeExpression, $scopify } from "../reflection";
import { QueryableExpression, ExpressionKind, ObjectTypePointers, TypeSet, ObjectTypeSet, stripBacklinks, stripNonWritables, typeutil, ObjectTypeExpression, $scopify, Cardinality } from "../reflection";
import type { pointerToAssignmentExpression } from "./casting";
import { SelectModifiers, NormalisedSelectModifiers, ComputeSelectCardinality } from "./select";
import { pointerIsOptional } from "./insert";
export declare type UpdateShape<Root extends ObjectTypeSet> = typeutil.stripNever<stripNonWritables<stripBacklinks<Root["__element__"]["__pointers__"]>>> extends infer Shape ? Shape extends ObjectTypePointers ? {
[k in keyof Shape]?: pointerToAssignmentExpression<Shape[k]> extends infer S ? S | {
[k in keyof Shape]?: (pointerToAssignmentExpression<Shape[k]> extends infer S ? S | (Shape[k]["cardinality"] extends Cardinality.Many | Cardinality.AtLeastOne ? {
"+=": S;
} | {
"-=": S;
} : never;
} : never) : never) | (pointerIsOptional<Shape[k]> extends true ? undefined | null : never);
} : never : never;

@@ -11,0 +12,0 @@ export declare type $expr_Update<Set extends TypeSet = TypeSet, Expr extends ObjectTypeSet = ObjectTypeSet, Shape extends UpdateShape<Expr> = any> = QueryableExpression<{

@@ -12,2 +12,3 @@ import {

$scopify,
Cardinality,
} from "../reflection";

@@ -23,3 +24,3 @@ import type {pointerToAssignmentExpression} from "./casting";

} from "./select";
import {$normaliseInsertShape} from "./insert";
import {$normaliseInsertShape, pointerIsOptional} from "./insert";
import {$queryify} from "./query";

@@ -36,7 +37,15 @@

? {
[k in keyof Shape]?: pointerToAssignmentExpression<
Shape[k]
> extends infer S
? S | {"+=": S} | {"-=": S}
: never;
[k in keyof Shape]?:
| (pointerToAssignmentExpression<Shape[k]> extends infer S
?
| S
| (Shape[k]["cardinality"] extends
| Cardinality.Many
| Cardinality.AtLeastOne
? {"+=": S} | {"-=": S}
: never)
: never)
| (pointerIsOptional<Shape[k]> extends true
? undefined | null
: never);
}

@@ -43,0 +52,0 @@ : never

@@ -13,3 +13,3 @@ {

},
"version": "0.18.0-alpha.6",
"version": "0.18.0-alpha.7",
"main": "./dist/index.node.js",

@@ -16,0 +16,0 @@ "types": "./dist/index.node.d.ts",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc