@sequenceholdings/orm 2.7.0 → 2.8.1
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.
- package/README.md +49 -4
- package/dist/authoring.cjs +30 -0
- package/dist/authoring.cjs.map +1 -1
- package/dist/authoring.d.cts +7 -1
- package/dist/authoring.d.ts +7 -1
- package/dist/authoring.js +30 -0
- package/dist/authoring.js.map +1 -1
- package/dist/canonical.d.cts +71 -71
- package/dist/canonical.d.ts +71 -71
- package/dist/cli.cjs +3473 -3342
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.d.cts +13 -1
- package/dist/cli.d.ts +13 -1
- package/dist/cli.js +3472 -3343
- package/dist/cli.js.map +1 -1
- package/dist/client.cjs +24 -6
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +12 -3
- package/dist/client.d.ts +12 -3
- package/dist/client.js +24 -6
- package/dist/client.js.map +1 -1
- package/dist/compiler.cjs +844 -15
- package/dist/compiler.cjs.map +1 -1
- package/dist/compiler.d.cts +12 -2
- package/dist/compiler.d.ts +12 -2
- package/dist/compiler.js +844 -17
- package/dist/compiler.js.map +1 -1
- package/dist/index.cjs +30 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +57 -57
- package/dist/index.d.ts +57 -57
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -1
- package/dist/ir.d.cts +72 -72
- package/dist/ir.d.ts +72 -72
- package/dist/sdl.cjs +3 -3
- package/dist/sdl.cjs.map +1 -1
- package/dist/sdl.d.cts +2 -0
- package/dist/sdl.d.ts +2 -0
- package/dist/sdl.js +3 -3
- package/dist/sdl.js.map +1 -1
- package/package.json +1 -1
- package/templates/orm-namespace/graphql/example/queries.ts +52 -5
- package/templates/orm-namespace/schema/tables.ts +5 -2
- package/templates/orm-namespace/sequence.config.ts +6 -4
- package/dist/{definition-DjfC7Lll.d.cts → definition-B99BsOAO.d.cts} +4 -4
- package/dist/{definition-DjfC7Lll.d.ts → definition-B99BsOAO.d.ts} +4 -4
package/dist/index.cjs
CHANGED
|
@@ -317,6 +317,22 @@ function toPlatformUser(options) {
|
|
|
317
317
|
function isSeqLink(value) {
|
|
318
318
|
return typeof value === "object" && value !== null && value.kind === LINK_BRAND;
|
|
319
319
|
}
|
|
320
|
+
var TABLE_CONFIG_KEYS = /* @__PURE__ */ new Set([
|
|
321
|
+
"displayName",
|
|
322
|
+
"description",
|
|
323
|
+
"renamedFrom",
|
|
324
|
+
"primaryKey",
|
|
325
|
+
"indexes",
|
|
326
|
+
"checks",
|
|
327
|
+
"foreignKeys",
|
|
328
|
+
"links",
|
|
329
|
+
"policies",
|
|
330
|
+
"cowMutations",
|
|
331
|
+
"cellMetadata",
|
|
332
|
+
"cellRevisions",
|
|
333
|
+
"materializes",
|
|
334
|
+
"internal"
|
|
335
|
+
]);
|
|
320
336
|
function isSeqTable(value) {
|
|
321
337
|
return typeof value === "object" && value !== null && value.kind === TABLE_BRAND;
|
|
322
338
|
}
|
|
@@ -331,6 +347,11 @@ function assertIdentifier({ value, what, file, pattern = IDENTIFIER_PATTERN }) {
|
|
|
331
347
|
function defineTable(name2, columns, config = {}) {
|
|
332
348
|
const file = activeAuthoringContext()?.currentFile;
|
|
333
349
|
assertIdentifier({ value: name2, what: "table name", file });
|
|
350
|
+
for (const key of Object.keys(config)) {
|
|
351
|
+
if (!TABLE_CONFIG_KEYS.has(key)) {
|
|
352
|
+
throw new OrmDefinitionError(`table "${name2}": unknown defineTable option "${key}"`, file);
|
|
353
|
+
}
|
|
354
|
+
}
|
|
334
355
|
const entries = Object.entries(columns);
|
|
335
356
|
if (entries.length === 0) {
|
|
336
357
|
throw new OrmDefinitionError(`table "${name2}" declares no columns`, file);
|
|
@@ -423,6 +444,7 @@ function defineSyncedTable(name2, columnsOrConfig, maybeConfig) {
|
|
|
423
444
|
if (config.primaryKey !== void 0) tableConfig.primaryKey = config.primaryKey;
|
|
424
445
|
if (config.links !== void 0) tableConfig.links = config.links;
|
|
425
446
|
if (config.policies !== void 0) tableConfig.policies = { read: config.policies.read };
|
|
447
|
+
if (config.internal === true) tableConfig.internal = true;
|
|
426
448
|
const table = {
|
|
427
449
|
kind: TABLE_BRAND,
|
|
428
450
|
tableName: name2,
|
|
@@ -2889,6 +2911,11 @@ function serializeNamespace(input) {
|
|
|
2889
2911
|
enumsByName.set(ref.name, ref);
|
|
2890
2912
|
}
|
|
2891
2913
|
const canonicalTables = tables.map((table) => buildCanonicalTable({ table, relationsByName, enumsByName }));
|
|
2914
|
+
for (const table of tables) {
|
|
2915
|
+
if (table.source !== void 0 && table.config.internal === true && config.exports && Object.hasOwn(config.exports, table.tableName)) {
|
|
2916
|
+
throw new OrmDefinitionError(`internal synced source "${table.tableName}" cannot be exported; export a permitted managed view instead`, table.file);
|
|
2917
|
+
}
|
|
2918
|
+
}
|
|
2892
2919
|
const canonicalEnums = [...enumsByName.values()].map((ref) => ({
|
|
2893
2920
|
name: ref.name,
|
|
2894
2921
|
values: [...ref.values]
|
|
@@ -3222,6 +3249,9 @@ function buildCanonicalLink({
|
|
|
3222
3249
|
if (!relationsByName.has(targetName)) {
|
|
3223
3250
|
return fail3(`targets ${relationKind(target)} "${targetName}" which is not part of this namespace`);
|
|
3224
3251
|
}
|
|
3252
|
+
if (isSeqTable(target) && target.source !== void 0 && target.config.internal === true) {
|
|
3253
|
+
return fail3(`targets internal synced source "${targetName}"; expose a permitted managed view instead`);
|
|
3254
|
+
}
|
|
3225
3255
|
if (link.enforce && (!isSeqTable(relation) || !isSeqTable(target))) {
|
|
3226
3256
|
return fail3("cannot enforce a PostgreSQL foreign key involving a view");
|
|
3227
3257
|
}
|