@notionhq/apps 0.0.17 → 0.0.19

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 (67) hide show
  1. package/AGENTS.md +27 -0
  2. package/README.md +77 -35
  3. package/dist/cli/build.d.ts.map +1 -1
  4. package/dist/cli/build.js +12 -7
  5. package/dist/cli/emit-manifest.d.ts +1 -1
  6. package/dist/cli/emit-manifest.d.ts.map +1 -1
  7. package/dist/cli/emit-manifest.js +66 -1
  8. package/dist/index.d.ts +2 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +3 -1
  11. package/dist/notion-as-code/custom-agent.d.ts +1 -0
  12. package/dist/notion-as-code/custom-agent.d.ts.map +1 -1
  13. package/dist/notion-as-code/custom-agent.js +1 -1
  14. package/dist/notion-as-code/database.d.ts +90 -48
  15. package/dist/notion-as-code/database.d.ts.map +1 -1
  16. package/dist/notion-as-code/database.js +135 -45
  17. package/dist/notion-as-code/database.test.d.ts +2 -0
  18. package/dist/notion-as-code/database.test.d.ts.map +1 -0
  19. package/dist/notion-as-code/index.d.ts +2 -2
  20. package/dist/notion-as-code/index.d.ts.map +1 -1
  21. package/dist/notion-as-code/intents.d.ts +34 -2
  22. package/dist/notion-as-code/intents.d.ts.map +1 -1
  23. package/dist/notion-as-code/page.d.ts +1 -0
  24. package/dist/notion-as-code/page.d.ts.map +1 -1
  25. package/dist/notion-as-code/page.js +1 -0
  26. package/dist/notion-as-code/schema.d.ts +8 -4
  27. package/dist/notion-as-code/schema.d.ts.map +1 -1
  28. package/dist/notion-as-code/views.d.ts +29 -10
  29. package/dist/notion-as-code/views.d.ts.map +1 -1
  30. package/dist/sync.d.ts +33 -15
  31. package/dist/sync.d.ts.map +1 -1
  32. package/dist/sync.js +12 -0
  33. package/dist/workflow-access-types.test.d.ts +2 -0
  34. package/dist/workflow-access-types.test.d.ts.map +1 -0
  35. package/dist/workflow-access.d.ts +68 -0
  36. package/dist/workflow-access.d.ts.map +1 -0
  37. package/dist/workflow-access.js +135 -0
  38. package/dist/workflow-state.d.ts +13 -0
  39. package/dist/workflow-state.d.ts.map +1 -0
  40. package/dist/workflow-state.js +107 -0
  41. package/dist/workflow.d.ts +65 -9
  42. package/dist/workflow.d.ts.map +1 -1
  43. package/dist/workflow.js +119 -5
  44. package/docs/BUILD.md +134 -4
  45. package/package.json +1 -1
  46. package/skills/notion-as-code/SKILL.md +89 -49
  47. package/skills/sync/SKILL.md +21 -18
  48. package/skills/workflow/SKILL.md +101 -17
  49. package/src/cli/build.test.ts +148 -64
  50. package/src/cli/build.ts +13 -8
  51. package/src/cli/emit-manifest.ts +107 -0
  52. package/src/index.ts +21 -1
  53. package/src/notion-as-code/custom-agent.ts +2 -1
  54. package/src/notion-as-code/database.test.ts +661 -0
  55. package/src/notion-as-code/database.ts +349 -127
  56. package/src/notion-as-code/index.ts +16 -1
  57. package/src/notion-as-code/intents.ts +39 -2
  58. package/src/notion-as-code/page.ts +2 -0
  59. package/src/notion-as-code/schema.ts +11 -3
  60. package/src/notion-as-code/views.ts +29 -10
  61. package/src/sync.test.ts +295 -0
  62. package/src/sync.ts +85 -21
  63. package/src/workflow-access-types.test.ts +69 -0
  64. package/src/workflow-access.ts +299 -0
  65. package/src/workflow-state.ts +152 -0
  66. package/src/workflow.test.ts +441 -1
  67. package/src/workflow.ts +230 -13
@@ -5,72 +5,162 @@ import { createPage } from "./page.js";
5
5
  import { recordIntent } from "./recorder.js";
6
6
  import { assertParent, assertUserResourceId } from "./resource.js";
7
7
  import { createAppsDatabase } from "./schema.js";
8
- function database(args) {
9
- if (args.parent) {
10
- assertParent(args.parent);
8
+ function database(databaseResourceId, args) {
9
+ if (typeof args !== "object" || args === null || Array.isArray(args)) {
10
+ throw new Error("Notion-as-Code database arguments must be an object");
11
11
  }
12
- const parent = args.parent ?? {
12
+ const parentValue = args.parent;
13
+ if (parentValue !== void 0) {
14
+ assertParent(parentValue);
15
+ }
16
+ const parent = parentValue ?? {
13
17
  type: "resourceId",
14
18
  resourceId: APPS_WORKSPACE_RESOURCE_ID
15
19
  };
16
- if ("properties" in args) {
17
- if (args.dataSources !== void 0) {
18
- throw new Error("Specify either properties or dataSources, not both");
19
- }
20
- const { properties, ...databaseArgs } = args;
20
+ return buildDatabaseHandle(databaseResourceId, args, parent);
21
+ }
22
+ function createChildDatabase(parent) {
23
+ assertParent(parent);
24
+ function addDatabase(databaseResourceId, args) {
25
+ return buildDatabaseHandle(databaseResourceId, args, parent);
26
+ }
27
+ return addDatabase;
28
+ }
29
+ function buildDatabaseHandle(databaseResourceId, args, parent) {
30
+ if (typeof args !== "object" || args === null || Array.isArray(args)) {
31
+ throw new Error("Notion-as-Code database arguments must be an object");
32
+ }
33
+ if (typeof databaseResourceId !== "string") {
34
+ throw new Error("Notion-as-Code database resourceId must be a string");
35
+ }
36
+ assertUserResourceId(databaseResourceId);
37
+ const hasSchema = Object.prototype.hasOwnProperty.call(args, "schema");
38
+ const hasDataSources = Object.prototype.hasOwnProperty.call(args, "datasources");
39
+ if (hasSchema && hasDataSources) {
40
+ throw new Error("Specify either schema or datasources, not both");
41
+ }
42
+ if (args.schema !== void 0) {
21
43
  const source = {
22
- resourceId: `${args.resourceId}-source`,
44
+ resourceId: args.dataSourceResourceId,
23
45
  name: args.name,
24
- properties
46
+ properties: normalizeProperties(args.schema)
47
+ };
48
+ const handle = recordDatabase(databaseResourceId, args, parent, [
49
+ { key: "dataSource", schema: args.schema, definition: source }
50
+ ]);
51
+ const dataSource = handle.datasources.dataSource;
52
+ if (dataSource === void 0) {
53
+ throw new Error(`Database "${databaseResourceId}" is missing its data source`);
54
+ }
55
+ return {
56
+ resourceType: "database",
57
+ resourceId: databaseResourceId,
58
+ dataSource,
59
+ addView: handle.addView
25
60
  };
26
- const handle = createDatabase({ ...databaseArgs, dataSources: [source] }, parent);
27
- const dataSource = handle.dataSources[source.resourceId];
28
- if (!dataSource) {
29
- throw new Error(`Missing data source "${source.resourceId}"`);
61
+ }
62
+ if (args.datasources !== void 0) {
63
+ if (typeof args.datasources !== "object" || args.datasources === null || Array.isArray(args.datasources)) {
64
+ throw new Error("Notion-as-Code datasources must be an object");
30
65
  }
31
- return { ...handle, dataSource };
66
+ const sourceEntries = Object.entries(args.datasources).map(
67
+ ([key, sourceArgs]) => normalizeDataSource(key, sourceArgs)
68
+ );
69
+ return recordDatabase(databaseResourceId, args, parent, sourceEntries);
32
70
  }
33
- return createDatabase(args, parent);
71
+ return recordDatabase(databaseResourceId, args, parent, []);
34
72
  }
35
- function createChildDatabase(parent) {
36
- function addDatabase(args) {
37
- if ("properties" in args) {
38
- return database({ ...args, parent });
73
+ function normalizeDatabaseMetadata(args) {
74
+ const {
75
+ parent: _parent,
76
+ schema: _schema,
77
+ datasources: _datasources,
78
+ dataSourceResourceId: _dataSourceResourceId,
79
+ ...metadata
80
+ } = args;
81
+ return metadata;
82
+ }
83
+ function normalizeDataSource(key, sourceArgs) {
84
+ if (typeof sourceArgs !== "object" || sourceArgs === null || Array.isArray(sourceArgs)) {
85
+ throw new Error(`Data source "${key}" must be an object`);
86
+ }
87
+ const { schema, ...sourceMetadata } = sourceArgs;
88
+ return {
89
+ key,
90
+ schema,
91
+ definition: {
92
+ ...sourceMetadata,
93
+ name: key,
94
+ properties: normalizeProperties(schema)
39
95
  }
40
- return database({ ...args, parent });
96
+ };
97
+ }
98
+ function normalizeProperties(schema) {
99
+ if (typeof schema !== "object" || schema === null || Array.isArray(schema)) {
100
+ throw new Error("Notion-as-Code schema must be an object");
41
101
  }
42
- return addDatabase;
102
+ const properties = [];
103
+ for (const [key, propertyConfig] of Object.entries(schema)) {
104
+ if (typeof propertyConfig !== "object" || propertyConfig === null || Array.isArray(propertyConfig)) {
105
+ throw new Error(`Property "${key}" must be an object`);
106
+ }
107
+ if (typeof propertyConfig.resourceId !== "string") {
108
+ throw new Error(`Property "${key}" must specify a resourceId`);
109
+ }
110
+ properties.push({
111
+ ...propertyConfig,
112
+ name: key
113
+ });
114
+ }
115
+ return properties;
43
116
  }
44
- function createDatabase(args, parent) {
45
- assertUserResourceId(args.resourceId);
46
- const dataSources = args.dataSources ?? [];
117
+ function assertSourceOrView(sourceEntries, views) {
118
+ if (views !== void 0 && !Array.isArray(views)) {
119
+ throw new Error("Notion-as-Code database views must be an array");
120
+ }
121
+ if (sourceEntries.length === 0 && (!Array.isArray(views) || views.length === 0)) {
122
+ throw new Error("Notion-as-Code database must define a data source or view");
123
+ }
124
+ }
125
+ function recordDatabase(databaseResourceId, args, parent, sourceEntries) {
126
+ const metadata = normalizeDatabaseMetadata(args);
127
+ assertSourceOrView(sourceEntries, metadata.views);
128
+ const intent = {
129
+ ...metadata,
130
+ resourceId: databaseResourceId,
131
+ parent,
132
+ dataSources: sourceEntries.map(({ definition }) => definition)
133
+ };
134
+ return createDatabase(intent, sourceEntries);
135
+ }
136
+ function createDatabase(intent, sourceEntries) {
137
+ assertUserResourceId(intent.resourceId);
47
138
  const dataSourceIds = /* @__PURE__ */ new Set();
48
- const handles = {};
49
- for (const dataSource of dataSources) {
50
- assertUserResourceId(dataSource.resourceId);
51
- if (dataSourceIds.has(dataSource.resourceId)) {
139
+ const handles = /* @__PURE__ */ Object.create(null);
140
+ for (const { key, schema, definition } of sourceEntries) {
141
+ if (typeof definition.resourceId !== "string") {
142
+ throw new Error(`Data source "${key}" must specify a resourceId`);
143
+ }
144
+ assertUserResourceId(definition.resourceId);
145
+ if (dataSourceIds.has(definition.resourceId)) {
52
146
  throw new Error(
53
- `Database "${args.resourceId}" has duplicate data source "${dataSource.resourceId}"`
147
+ `Database "${intent.resourceId}" has duplicate data source "${definition.resourceId}"`
54
148
  );
55
149
  }
56
- dataSourceIds.add(dataSource.resourceId);
57
- handles[dataSource.resourceId] = createDataSourceHandle(dataSource);
150
+ dataSourceIds.add(definition.resourceId);
151
+ handles[key] = createDataSourceHandle(definition, schema);
58
152
  }
59
- recordIntent({
60
- type: "database",
61
- ...args,
62
- parent,
63
- dataSources: [...dataSources]
64
- });
153
+ recordIntent({ ...intent, type: "database" });
65
154
  return {
66
- resourceId: args.resourceId,
67
- dataSources: handles,
155
+ resourceType: "database",
156
+ resourceId: intent.resourceId,
157
+ datasources: handles,
68
158
  addView(view) {
69
- recordIntent({ type: "view", databaseResourceId: args.resourceId, view });
159
+ recordIntent({ type: "view", databaseResourceId: intent.resourceId, view });
70
160
  }
71
161
  };
72
162
  }
73
- function createDataSourceHandle(dataSource) {
163
+ function createDataSourceHandle(dataSource, schema) {
74
164
  const propertyResourceIds = /* @__PURE__ */ new Set();
75
165
  const propertyNames = /* @__PURE__ */ new Set();
76
166
  for (const property of dataSource.properties) {
@@ -89,8 +179,9 @@ function createDataSourceHandle(dataSource) {
89
179
  propertyNames.add(property.name);
90
180
  }
91
181
  return {
182
+ resourceType: "dataSource",
92
183
  resourceId: dataSource.resourceId,
93
- schema: dataSource.properties,
184
+ schema,
94
185
  database: createAppsDatabase(dataSource.resourceId, dataSource),
95
186
  addPage(pageArgs) {
96
187
  return createPage(pageArgs, { type: "resourceId", resourceId: dataSource.resourceId });
@@ -99,6 +190,5 @@ function createDataSourceHandle(dataSource) {
99
190
  }
100
191
  export {
101
192
  createChildDatabase,
102
- createDatabase,
103
193
  database
104
194
  };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=database.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.test.d.ts","sourceRoot":"","sources":["../../src/notion-as-code/database.test.ts"],"names":[],"mappings":""}
@@ -1,7 +1,7 @@
1
1
  export { APPS_RESERVED_RESOURCE_ID_PREFIX, APPS_WORKSPACE_RESOURCE_ID } from "./intents.js";
2
- export type { DataSourceDefinition, NotionAsCodeProperty, Parent } from "./intents.js";
2
+ export type { DatabaseIntent, DataSourceDefinition, NotionAsCodeIcon, NotionAsCodeProperty, NotionAsCodePropertyConfig, NotionAsCodeSchema, NotionAsCodeSelectOption, NotionAsCodeStatusOption, Parent, ResourceId, } from "./intents.js";
3
3
  export type { CustomAgentArgs, CustomAgentHandle } from "./custom-agent.js";
4
- export type { ChildDatabaseArgs, ChildDatabaseFactory, ChildSingleSourceDatabaseArgs, DataSourceHandle, DatabaseArgs, DatabaseHandle, SingleSourceDatabaseArgs, SingleSourceDatabaseHandle, } from "./database.js";
4
+ export type { ChildDatabaseArgs, ChildDatabaseFactory, ChildMultiSourceDatabaseArgs, ChildSingleSourceDatabaseArgs, DataSourceArgs, DataSourceHandle, DataSourceMap, DatabaseArgs, DatabaseHandle, MultiSourceDatabaseArgs, SingleSourceDatabaseArgs, SingleSourceDatabaseHandle, } from "./database.js";
5
5
  export type { ChildPageArgs, PageArgs, PageHandle } from "./page.js";
6
6
  export type { TeamspaceArgs, TeamspaceHandle } from "./teamspace.js";
7
7
  export type { ViewArgs, ViewHandle } from "./view.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notion-as-code/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gCAAgC,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC5F,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACvF,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,YAAY,EACX,iBAAiB,EACjB,oBAAoB,EACpB,6BAA6B,EAC7B,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,0BAA0B,GAC1B,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACrE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,YAAY,EACX,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,yBAAyB,EACzB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,4BAA4B,EAC5B,iCAAiC,EACjC,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,+BAA+B,EAC/B,qBAAqB,EACrB,sCAAsC,EACtC,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,QAAQ,GACR,MAAM,YAAY,CAAC;AAEpB,wEAAwE;AACxE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;CAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notion-as-code/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gCAAgC,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC5F,YAAY,EACX,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,kBAAkB,EAClB,wBAAwB,EACxB,wBAAwB,EACxB,MAAM,EACN,UAAU,GACV,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,YAAY,EACX,iBAAiB,EACjB,oBAAoB,EACpB,4BAA4B,EAC5B,6BAA6B,EAC7B,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,GAC1B,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACrE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,YAAY,EACX,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,yBAAyB,EACzB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,4BAA4B,EAC5B,iCAAiC,EACjC,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,+BAA+B,EAC/B,qBAAqB,EACrB,sCAAsC,EACtC,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,QAAQ,GACR,MAAM,YAAY,CAAC;AAEpB,wEAAwE;AACxE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;CAAiB,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import type { CustomAgentArgs } from "./custom-agent.js";
2
- import type { DatabaseArgs } from "./database.js";
3
2
  import type { PageArgs } from "./page.js";
4
3
  import type { TeamspaceArgs } from "./teamspace.js";
5
4
  import type { ViewSchema } from "./views.js";
@@ -44,6 +43,7 @@ type UnsupportedProperty = PropertyBase & {
44
43
  type: "relation" | "formula" | "rollup" | "created_time" | "last_edited_time" | "created_by" | "last_edited_by" | "auto_increment_id" | "person" | "verification";
45
44
  [key: string]: unknown;
46
45
  };
46
+ /** A normalized Notion-as-Code property with its resolved display name. */
47
47
  export type NotionAsCodeProperty = (PropertyBase & {
48
48
  type: "title";
49
49
  }) | (PropertyBase & {
@@ -82,6 +82,24 @@ export type NotionAsCodeProperty = (PropertyBase & {
82
82
  }) | (PropertyBase & {
83
83
  type: "file";
84
84
  }) | UnsupportedProperty;
85
+ /**
86
+ * `T extends unknown` applies Omit to each property variant separately, preserving
87
+ * variant-specific fields such as required status options. Plain Omit on the union
88
+ * would retain only shared keys. Pick also restores type/resourceId on the
89
+ * unsupported variant, whose string index signature would otherwise erase them.
90
+ */
91
+ type DistributivePropertyConfig<T extends NotionAsCodeProperty> = T extends unknown ? Omit<T, "name"> & Pick<T, "type" | "resourceId"> : never;
92
+ /**
93
+ * Authoring properties are keyed by their schema object name. A property-level
94
+ * `name` override would make the key and serialized property diverge, so it is
95
+ * explicitly rejected even for the string-indexed unsupported-property variant.
96
+ */
97
+ export type NotionAsCodePropertyConfig = DistributivePropertyConfig<NotionAsCodeProperty> & {
98
+ name?: never;
99
+ };
100
+ /** A keyed property schema, with object keys supplying serialized property names. */
101
+ export type NotionAsCodeSchema = Record<string, NotionAsCodePropertyConfig>;
102
+ /** The normalized data-source shape emitted in provisioning artifacts. */
85
103
  export type DataSourceDefinition<Properties extends readonly NotionAsCodeProperty[] = readonly NotionAsCodeProperty[]> = {
86
104
  resourceId: ResourceId;
87
105
  name: string;
@@ -92,9 +110,23 @@ export type DataSourceDefinition<Properties extends readonly NotionAsCodePropert
92
110
  export type TeamspaceIntent = TeamspaceArgs & {
93
111
  parent: Parent;
94
112
  };
95
- export type DatabaseIntent = DatabaseArgs & {
113
+ /**
114
+ * The normalized database shape emitted in provisioning artifacts.
115
+ *
116
+ * This intentionally does not depend on the authoring argument shape. Authoring
117
+ * accepts keyed schemas and data-source maps; the recorder always stores arrays.
118
+ */
119
+ export type DatabaseIntent = {
120
+ resourceId: ResourceId;
96
121
  parent: Parent;
97
122
  dataSources: readonly DataSourceDefinition[];
123
+ views?: readonly ViewSchema[];
124
+ icon?: NotionAsCodeIcon;
125
+ cover?: unknown;
126
+ hideDataSourceTitle?: boolean;
127
+ hideDatabaseTitleIfEmpty?: boolean;
128
+ name?: string;
129
+ description?: string;
98
130
  };
99
131
  export type PageIntent = PageArgs & {
100
132
  parent: Parent;
@@ -1 +1 @@
1
- {"version":3,"file":"intents.d.ts","sourceRoot":"","sources":["../../src/notion-as-code/intents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intents.d.ts","sourceRoot":"","sources":["../../src/notion-as-code/intents.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export type PageArgs = {
11
11
  };
12
12
  export type ChildPageArgs = Omit<PageArgs, "parent">;
13
13
  export type PageHandle = {
14
+ readonly resourceType: "page";
14
15
  readonly resourceId: string;
15
16
  addDatabase: ChildDatabaseFactory;
16
17
  addPage: (args: ChildPageArgs) => PageHandle;
@@ -1 +1 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/notion-as-code/page.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,MAAM,EACX,KAAK,UAAU,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAI/E,MAAM,MAAM,QAAQ,GAAG;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAErD,MAAM,MAAM,UAAU,GAAG;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,oBAAoB,CAAC;IAClC,OAAO,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,UAAU,CAAC;CAC7C,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAS/C;AAED,6DAA6D;AAC7D,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAerF"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/notion-as-code/page.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,MAAM,EACX,KAAK,UAAU,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAI/E,MAAM,MAAM,QAAQ,GAAG;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAErD,MAAM,MAAM,UAAU,GAAG;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,oBAAoB,CAAC;IAClC,OAAO,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,UAAU,CAAC;CAC7C,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAS/C;AAED,6DAA6D;AAC7D,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAgBrF"}
@@ -22,6 +22,7 @@ function createPage(args, parent) {
22
22
  parent
23
23
  });
24
24
  return {
25
+ resourceType: "page",
25
26
  resourceId: args.resourceId,
26
27
  addDatabase: createChildDatabase({ type: "resourceId", resourceId: args.resourceId }),
27
28
  addPage(pageArgs) {
@@ -1,8 +1,8 @@
1
1
  import { type Database } from "../database.js";
2
2
  import type { PropertyConfiguration } from "../schema.js";
3
3
  import type { SelectOption, StatusGroup } from "../types.js";
4
- import type { DataSourceDefinition, NotionAsCodeProperty } from "./intents.js";
5
- type AppsPropertyFor<Property extends NotionAsCodeProperty> = Property extends {
4
+ import type { DataSourceDefinition, NotionAsCodePropertyConfig, NotionAsCodeSchema } from "./intents.js";
5
+ type AppsPropertyFor<Property extends NotionAsCodePropertyConfig> = Property extends {
6
6
  type: "title";
7
7
  } ? {
8
8
  type: "title";
@@ -54,8 +54,12 @@ type AppsPropertyFor<Property extends NotionAsCodeProperty> = Property extends {
54
54
  } ? {
55
55
  type: "file";
56
56
  } : PropertyConfiguration;
57
- export type AppsSchemaForProperties<Properties extends readonly NotionAsCodeProperty[]> = {
58
- [Property in Properties[number] as Property["name"]]: AppsPropertyFor<Property>;
57
+ /**
58
+ * Map keyed authoring properties to the Apps schema used by sync handlers. The explicit
59
+ * string-key mapping avoids a homomorphic mapped type interfering with `NoInfer` key checks.
60
+ */
61
+ export type AppsSchemaForSchema<Schema extends NotionAsCodeSchema> = {
62
+ [Property in keyof Schema & string]: AppsPropertyFor<Schema[Property]>;
59
63
  };
60
64
  /** Convert a Notion-as-Code data source into the Apps database used by sync handlers. */
61
65
  export declare function createAppsDatabase(databaseKey: string, dataSource: DataSourceDefinition): Database;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/notion-as-code/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EACX,oBAAoB,EACpB,oBAAoB,EAGpB,MAAM,cAAc,CAAC;AAEtB,KAAK,eAAe,CAAC,QAAQ,SAAS,oBAAoB,IAAI,QAAQ,SAAS;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAC7F;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB,QAAQ,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB,QAAQ,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB,QAAQ,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,GAC3C,QAAQ,SAAS;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,GACjD,QAAQ,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,GACzC,QAAQ,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB,QAAQ,SAAS;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB,QAAQ,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf,QAAQ,SAAS;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB,QAAQ,SAAS;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB,QAAQ,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB,qBAAqB,CAAC;AAEpC,MAAM,MAAM,uBAAuB,CAAC,UAAU,SAAS,SAAS,oBAAoB,EAAE,IAAI;KACxF,QAAQ,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC;CAC/E,CAAC;AAEF,yFAAyF;AACzF,wBAAgB,kBAAkB,CACjC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,oBAAoB,GAC9B,QAAQ,CAsCV"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/notion-as-code/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EACX,oBAAoB,EAEpB,0BAA0B,EAC1B,kBAAkB,EAGlB,MAAM,cAAc,CAAC;AAEtB,KAAK,eAAe,CAAC,QAAQ,SAAS,0BAA0B,IAAI,QAAQ,SAAS;IACpF,IAAI,EAAE,OAAO,CAAC;CACd,GACE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB,QAAQ,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB,QAAQ,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB,QAAQ,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,GAC3C,QAAQ,SAAS;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,GACjD,QAAQ,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,GACzC,QAAQ,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB,QAAQ,SAAS;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB,QAAQ,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf,QAAQ,SAAS;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB,QAAQ,SAAS;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB,QAAQ,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB,qBAAqB,CAAC;AAEpC;;;GAGG;AACH,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,kBAAkB,IAAI;KACnE,QAAQ,IAAI,MAAM,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;CACtE,CAAC;AAEF,yFAAyF;AACzF,wBAAgB,kBAAkB,CACjC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,oBAAoB,GAC9B,QAAQ,CAsCV"}
@@ -337,29 +337,48 @@ export type AdvancedFilterSchema = {
337
337
  * `dataSourceResourceId` must reference a data source created by the script or
338
338
  * supplied through existing resources.
339
339
  *
340
+ * Database declarations require at least one data source or at least one view.
341
+ * A linked-only database may omit `datasources`, or use `datasources: {}`, only
342
+ * when its `views` list is nonempty. `{}`, `{ datasources: {} }`, and
343
+ * `{ datasources: {}, views: [] }` are invalid.
344
+ *
345
+ * @example
346
+ * // A linked-only database can use a typed table view for an explicit source.
347
+ * const linkedTableView: TableViewSchema = {
348
+ * resourceId: "issues-table-view",
349
+ * type: "table",
350
+ * dataSourceResourceId: "issues-source",
351
+ * properties: [{ property: "issue-title", visible: true }]
352
+ * };
353
+ * const linkedDatabase = notion.database("issues-linked-database", {
354
+ * parent: { type: "resourceId", resourceId: "project-page" },
355
+ * views: [linkedTableView]
356
+ * })
357
+ *
340
358
  * @example
341
359
  * // When creating a database with a data source
342
- * const db = await notion.database({
343
- * resourceId: "my-database",
344
- * dataSources: [{ resourceId: "my-datasource", name: "Main", properties: [...] }]
360
+ * const db = notion.database("my-database", {
361
+ * dataSourceResourceId: "my-datasource",
362
+ * name: "Main",
363
+ * schema: { Name: { resourceId: "my-title", type: "title" } }
345
364
  * })
346
365
  *
347
366
  * // Views must reference that data source
348
- * await db.addView({
367
+ * db.addView({
349
368
  * resourceId: "my-table-view",
350
369
  * type: "table",
351
370
  * dataSourceResourceId: "my-datasource" // REQUIRED: matches data source above
352
371
  * })
353
372
  *
354
373
  * @example
355
- * // A linked database can reference another script-created or existing data source
356
- * const linkedDatabase = await notion.database({
357
- * resourceId: "linked-database",
358
- * parent: { type: "resourceId", resourceId: "project-page" },
374
+ * // The explicit empty `datasources` form is valid with a nonempty view list.
375
+ * const explicitLinkedDatabase = notion.database("issues-linked-database-explicit", {
376
+ * datasources: {},
359
377
  * views: [{
360
- * resourceId: "linked-table-view",
378
+ * resourceId: "issues-table-view-explicit",
361
379
  * type: "table",
362
- * dataSourceResourceId: "my-datasource" // Created elsewhere or supplied through an existing collection
380
+ * dataSourceResourceId: "issues-source",
381
+ * properties: [{ property: "issue-title", visible: true }]
363
382
  * }]
364
383
  * })
365
384
  */
@@ -1 +1 @@
1
- {"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/notion-as-code/views.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/notion-as-code/views.ts"],"names":[],"mappings":"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"}
package/dist/sync.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import type { CapabilityContext } from "./context.js";
2
2
  import type { Database } from "./database.js";
3
3
  import type { DataSourceHandle } from "./notion-as-code/database.js";
4
- import type { NotionAsCodeProperty } from "./notion-as-code/intents.js";
5
- import type { AppsSchemaForProperties } from "./notion-as-code/schema.js";
4
+ import type { NotionAsCodeSchema } from "./notion-as-code/intents.js";
5
+ import type { AppsSchemaForSchema } from "./notion-as-code/schema.js";
6
6
  import { type PacerEntry } from "./pacer.js";
7
7
  import type { DatabaseSchema, PropertyConfiguration, TextProperty, TitleProperty } from "./schema.js";
8
8
  import type { Cover, HandlerOptions, Icon, NormalizedSchedule, PeopleValue, PlaceValue, RelationValue, Schedule, TextValue } from "./types.js";
@@ -18,13 +18,35 @@ type PropertyValue<T extends PropertyConfiguration> = T extends {
18
18
  } ? PlaceValue : T extends {
19
19
  type: "relation";
20
20
  } ? RelationValue : TextValue;
21
+ type SyncPropertyName<S extends DatabaseSchema> = Extract<keyof S, string>;
22
+ /**
23
+ * Collect unknown property names across the whole inferred change union before checking it.
24
+ * Otherwise a valid subset properties object could structurally hide an invalid sibling row.
25
+ */
26
+ type SyncUnknownPropertyNames<AllowedPropertyNames extends string, Change> = Change extends {
27
+ type: "upsert";
28
+ properties: infer Properties extends object;
29
+ } ? Exclude<keyof Properties, AllowedPropertyNames> : never;
30
+ /** Require at least one key while keeping all other keys optional. */
31
+ type AtLeastOne<T extends object> = Partial<T> & {
32
+ [RequiredKey in keyof T]-?: Required<Pick<T, RequiredKey>>;
33
+ }[keyof T];
34
+ type SyncUpsertProperties<S extends DatabaseSchema, PrimaryKey extends KeyPropertyName<S>> = AtLeastOne<{
35
+ [P in Exclude<SyncPropertyName<S>, PrimaryKey>]: PropertyValue<S[P]>;
36
+ }>;
37
+ type ExactSyncHandlerResult<AllowedPropertyNames extends string, Result extends {
38
+ changes: readonly unknown[];
39
+ }> = Result & {
40
+ changes: [SyncUnknownPropertyNames<AllowedPropertyNames, Result["changes"][number]>] extends [
41
+ never
42
+ ] ? Result["changes"] : never;
43
+ };
21
44
  export type SyncMode = "replace" | "incremental";
45
+ /** Upsert one or more known non-primary-key properties; the key is supplied separately. */
22
46
  export type SyncChangeUpsert<S extends DatabaseSchema, PrimaryKey extends KeyPropertyName<S>> = {
23
47
  type: "upsert";
24
48
  key: string;
25
- properties: Omit<{
26
- [P in keyof S]: PropertyValue<S[P]>;
27
- }, PrimaryKey>;
49
+ properties: SyncUpsertProperties<S, PrimaryKey>;
28
50
  upstreamUpdatedAt?: string;
29
51
  icon?: Icon;
30
52
  cover?: Cover;
@@ -40,20 +62,16 @@ export type SyncHandlerResult<S extends DatabaseSchema, PrimaryKey extends KeyPr
40
62
  hasMore?: boolean;
41
63
  nextState?: State;
42
64
  };
43
- export type SyncConfiguration<S extends DatabaseSchema, PrimaryKey extends KeyPropertyName<S>, State> = {
65
+ export type SyncConfiguration<S extends DatabaseSchema, PrimaryKey extends KeyPropertyName<S>, State, Result extends SyncHandlerResult<S, PrimaryKey, State> = SyncHandlerResult<S, PrimaryKey, State>> = {
44
66
  database: Database<S>;
45
67
  primaryKey: PrimaryKey;
46
68
  mode?: SyncMode;
47
69
  schedule?: Schedule;
48
- handler: (state: State | undefined, context: CapabilityContext) => Promise<SyncHandlerResult<NoInfer<S>, NoInfer<PrimaryKey>, State>>;
70
+ handler: (state: State | undefined, context: CapabilityContext) => Promise<SyncHandlerResult<NoInfer<S>, NoInfer<PrimaryKey>, State> & ExactSyncHandlerResult<Exclude<SyncPropertyName<NoInfer<S>>, NoInfer<PrimaryKey>>, Result>>;
49
71
  };
50
72
  /** Configuration for a sync backed by a Notion-as-Code data source. */
51
- export type DataSourceSyncConfiguration<Properties extends readonly NotionAsCodeProperty[], PrimaryKey extends KeyPropertyName<AppsSchemaForProperties<Properties>>, State> = {
52
- dataSource: DataSourceHandle<Properties>;
53
- primaryKey: PrimaryKey;
54
- mode?: SyncMode;
55
- schedule?: Schedule;
56
- handler: (state: State | undefined, context: CapabilityContext) => Promise<SyncHandlerResult<NoInfer<AppsSchemaForProperties<Properties>>, NoInfer<PrimaryKey>, State>>;
73
+ export type DataSourceSyncConfiguration<Schema extends NotionAsCodeSchema, PrimaryKey extends KeyPropertyName<AppsSchemaForSchema<Schema>>, State, Result extends SyncHandlerResult<AppsSchemaForSchema<Schema>, PrimaryKey, State> = SyncHandlerResult<AppsSchemaForSchema<Schema>, PrimaryKey, State>> = Omit<SyncConfiguration<AppsSchemaForSchema<Schema>, PrimaryKey, State, Result>, "database"> & {
74
+ dataSource: DataSourceHandle<Schema>;
57
75
  };
58
76
  export type SyncRuntimeContext = {
59
77
  state?: unknown;
@@ -78,8 +96,8 @@ export type Sync = {
78
96
  handler: (context?: SyncRuntimeContext, options?: HandlerOptions) => Promise<SyncRunResult>;
79
97
  };
80
98
  /** Create a database sync. Default-export it from a sync file. */
81
- export declare function createSync<const S extends DatabaseSchema, const PrimaryKey extends KeyPropertyName<S>, State = unknown>(configuration: SyncConfiguration<S, PrimaryKey, State>): Sync;
99
+ export declare function createSync<const S extends DatabaseSchema, const PrimaryKey extends KeyPropertyName<S>, State = unknown, const Result extends SyncHandlerResult<S, PrimaryKey, State> = SyncHandlerResult<S, PrimaryKey, State>>(configuration: SyncConfiguration<S, PrimaryKey, State, Result>): Sync;
82
100
  /** Create a sync backed by a Notion-as-Code data source. */
83
- export declare function sync<const Properties extends readonly NotionAsCodeProperty[], const PrimaryKey extends KeyPropertyName<AppsSchemaForProperties<Properties>>, State = unknown>(configuration: DataSourceSyncConfiguration<Properties, PrimaryKey, State>): Sync;
101
+ export declare function sync<const Schema extends NotionAsCodeSchema, const PrimaryKey extends KeyPropertyName<AppsSchemaForSchema<Schema>>, State = unknown, const Result extends SyncHandlerResult<AppsSchemaForSchema<Schema>, PrimaryKey, State> = SyncHandlerResult<AppsSchemaForSchema<Schema>, PrimaryKey, State>>(configuration: DataSourceSyncConfiguration<Schema, PrimaryKey, State, Result>): Sync;
84
102
  export {};
85
103
  //# sourceMappingURL=sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EAA+B,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAG1E,OAAO,KAAK,EACX,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACX,KAAK,EACL,cAAc,EACd,IAAI,EACJ,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,aAAa,EACb,QAAQ,EACR,SAAS,EACT,MAAM,YAAY,CAAC;AAEpB,KAAK,WAAW,GAAG,aAAa,GAAG,YAAY,CAAC;AAEhD,mEAAmE;AACnE,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,cAAc,IAAI,OAAO,CAC9D;KACE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,GAAG,CAAC,GAAG,KAAK;CACpD,CAAC,MAAM,CAAC,CAAC,EACV,MAAM,CACN,CAAC;AAEF,KAAK,aAAa,CAAC,CAAC,SAAS,qBAAqB,IAAI,CAAC,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC/E,WAAW,GACX,CAAC,SAAS;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B,UAAU,GACV,CAAC,SAAS;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B,aAAa,GACb,SAAS,CAAC;AAEf,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;AAEjD,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,cAAc,EAAE,UAAU,SAAS,eAAe,CAAC,CAAC,CAAC,IAAI;IAC/F,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,IAAI,CAAC;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,EAAE,UAAU,CAAC,CAAC;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,cAAc,EAAE,UAAU,SAAS,eAAe,CAAC,CAAC,CAAC,IACnF,gBAAgB,CAAC,CAAC,EAAE,UAAU,CAAC,GAC/B,gBAAgB,CAAC;AAEpB,MAAM,MAAM,iBAAiB,CAC5B,CAAC,SAAS,cAAc,EACxB,UAAU,SAAS,eAAe,CAAC,CAAC,CAAC,EACrC,KAAK,IACF;IACH,OAAO,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAC5B,CAAC,SAAS,cAAc,EACxB,UAAU,SAAS,eAAe,CAAC,CAAC,CAAC,EACrC,KAAK,IACF;IACH,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,EAAE,CACR,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,OAAO,EAAE,iBAAiB,KACtB,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;CACxE,CAAC;AAEF,uEAAuE;AACvE,MAAM,MAAM,2BAA2B,CACtC,UAAU,SAAS,SAAS,oBAAoB,EAAE,EAClD,UAAU,SAAS,eAAe,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,EACvE,KAAK,IACF;IACH,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACzC,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,EAAE,CACR,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,OAAO,EAAE,iBAAiB,KACtB,OAAO,CACX,iBAAiB,CAAC,OAAO,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAC3F,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACpC,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC9B,CAAC;AAyBF,MAAM,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;CAC5F,CAAC;AAEF,kEAAkE;AAClE,wBAAgB,UAAU,CACzB,KAAK,CAAC,CAAC,SAAS,cAAc,EAC9B,KAAK,CAAC,UAAU,SAAS,eAAe,CAAC,CAAC,CAAC,EAC3C,KAAK,GAAG,OAAO,EACd,aAAa,EAAE,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,IAAI,CAE9D;AAED,4DAA4D;AAC5D,wBAAgB,IAAI,CACnB,KAAK,CAAC,UAAU,SAAS,SAAS,oBAAoB,EAAE,EACxD,KAAK,CAAC,UAAU,SAAS,eAAe,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,EAC7E,KAAK,GAAG,OAAO,EACd,aAAa,EAAE,2BAA2B,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,IAAI,CAEjF"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}