@kelpie/server 0.7.0 → 0.8.0
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/dist/lib/consumerEmailDomains.d.ts +2 -0
- package/dist/lib/consumerEmailDomains.d.ts.map +1 -0
- package/dist/lib/consumerEmailDomains.js +62 -0
- package/dist/lib/consumerEmailDomains.js.map +1 -0
- package/dist/lib/email.d.ts +7 -0
- package/dist/lib/email.d.ts.map +1 -1
- package/dist/lib/email.js.map +1 -1
- package/dist/lib/emailContent.d.ts +33 -0
- package/dist/lib/emailContent.d.ts.map +1 -0
- package/dist/lib/emailContent.js +54 -0
- package/dist/lib/emailContent.js.map +1 -0
- package/dist/lib/emailDomainAutoLink.d.ts +27 -0
- package/dist/lib/emailDomainAutoLink.d.ts.map +1 -0
- package/dist/lib/emailDomainAutoLink.js +119 -0
- package/dist/lib/emailDomainAutoLink.js.map +1 -0
- package/dist/lib/ids.d.ts +2 -0
- package/dist/lib/ids.d.ts.map +1 -1
- package/dist/lib/ids.js +2 -0
- package/dist/lib/ids.js.map +1 -1
- package/dist/modules/attachedRecords.d.ts.map +1 -1
- package/dist/modules/attachedRecords.js +4 -2
- package/dist/modules/attachedRecords.js.map +1 -1
- package/dist/modules/auth/preferences.d.ts +11 -1
- package/dist/modules/auth/preferences.d.ts.map +1 -1
- package/dist/modules/auth/preferences.js +11 -0
- package/dist/modules/auth/preferences.js.map +1 -1
- package/dist/modules/auth/routes.d.ts.map +1 -1
- package/dist/modules/auth/routes.js +18 -0
- package/dist/modules/auth/routes.js.map +1 -1
- package/dist/modules/auth/schema.d.ts +20 -0
- package/dist/modules/auth/schema.d.ts.map +1 -1
- package/dist/modules/auth/schema.js +11 -1
- package/dist/modules/auth/schema.js.map +1 -1
- package/dist/modules/auth/service.d.ts.map +1 -1
- package/dist/modules/auth/service.js +27 -3
- package/dist/modules/auth/service.js.map +1 -1
- package/dist/modules/companies/repository.d.ts +2 -0
- package/dist/modules/companies/repository.d.ts.map +1 -1
- package/dist/modules/companies/repository.js +1 -0
- package/dist/modules/companies/repository.js.map +1 -1
- package/dist/modules/companies/routes.d.ts +2 -0
- package/dist/modules/companies/routes.d.ts.map +1 -1
- package/dist/modules/companies/routes.js +11 -0
- package/dist/modules/companies/routes.js.map +1 -1
- package/dist/modules/companies/schema.d.ts +17 -0
- package/dist/modules/companies/schema.d.ts.map +1 -1
- package/dist/modules/companies/schema.js +5 -1
- package/dist/modules/companies/schema.js.map +1 -1
- package/dist/modules/companies/service.d.ts +1 -0
- package/dist/modules/companies/service.d.ts.map +1 -1
- package/dist/modules/companies/service.js +22 -0
- package/dist/modules/companies/service.js.map +1 -1
- package/dist/modules/core.d.ts.map +1 -1
- package/dist/modules/core.js +11 -0
- package/dist/modules/core.js.map +1 -1
- package/dist/modules/email-domain-linker/index.d.ts +12 -0
- package/dist/modules/email-domain-linker/index.d.ts.map +1 -0
- package/dist/modules/email-domain-linker/index.js +34 -0
- package/dist/modules/email-domain-linker/index.js.map +1 -0
- package/dist/modules/email-domain-linker/routes.d.ts +14 -0
- package/dist/modules/email-domain-linker/routes.d.ts.map +1 -0
- package/dist/modules/email-domain-linker/routes.js +15 -0
- package/dist/modules/email-domain-linker/routes.js.map +1 -0
- package/dist/modules/email-domain-linker/service.d.ts +37 -0
- package/dist/modules/email-domain-linker/service.d.ts.map +1 -0
- package/dist/modules/email-domain-linker/service.js +63 -0
- package/dist/modules/email-domain-linker/service.js.map +1 -0
- package/dist/modules/eventCatalogs.d.ts +1 -0
- package/dist/modules/eventCatalogs.d.ts.map +1 -1
- package/dist/modules/eventCatalogs.js +1 -0
- package/dist/modules/eventCatalogs.js.map +1 -1
- package/dist/modules/lists/events.d.ts +42 -0
- package/dist/modules/lists/events.d.ts.map +1 -0
- package/dist/modules/lists/events.js +16 -0
- package/dist/modules/lists/events.js.map +1 -0
- package/dist/modules/lists/index.d.ts +10 -0
- package/dist/modules/lists/index.d.ts.map +1 -0
- package/dist/modules/lists/index.js +35 -0
- package/dist/modules/lists/index.js.map +1 -0
- package/dist/modules/lists/repository.d.ts +69 -0
- package/dist/modules/lists/repository.d.ts.map +1 -0
- package/dist/modules/lists/repository.js +165 -0
- package/dist/modules/lists/repository.js.map +1 -0
- package/dist/modules/lists/routes.d.ts +51 -0
- package/dist/modules/lists/routes.d.ts.map +1 -0
- package/dist/modules/lists/routes.js +160 -0
- package/dist/modules/lists/routes.js.map +1 -0
- package/dist/modules/lists/schema.d.ts +264 -0
- package/dist/modules/lists/schema.d.ts.map +1 -0
- package/dist/modules/lists/schema.js +73 -0
- package/dist/modules/lists/schema.js.map +1 -0
- package/dist/modules/lists/service.d.ts +70 -0
- package/dist/modules/lists/service.d.ts.map +1 -0
- package/dist/modules/lists/service.js +214 -0
- package/dist/modules/lists/service.js.map +1 -0
- package/dist/modules/lists/tools.d.ts +4 -0
- package/dist/modules/lists/tools.d.ts.map +1 -0
- package/dist/modules/lists/tools.js +86 -0
- package/dist/modules/lists/tools.js.map +1 -0
- package/dist/modules/people/repository.d.ts +11 -0
- package/dist/modules/people/repository.d.ts.map +1 -1
- package/dist/modules/people/repository.js +16 -0
- package/dist/modules/people/repository.js.map +1 -1
- package/dist/modules/people/service.d.ts.map +1 -1
- package/dist/modules/people/service.js +18 -0
- package/dist/modules/people/service.js.map +1 -1
- package/dist/modules/positions/routes.d.ts.map +1 -1
- package/dist/modules/positions/routes.js +4 -2
- package/dist/modules/positions/routes.js.map +1 -1
- package/dist/modules/sample-data/fixture.d.ts +139 -0
- package/dist/modules/sample-data/fixture.d.ts.map +1 -0
- package/dist/modules/sample-data/fixture.js +461 -0
- package/dist/modules/sample-data/fixture.js.map +1 -0
- package/dist/modules/sample-data/index.d.ts +11 -0
- package/dist/modules/sample-data/index.d.ts.map +1 -0
- package/dist/modules/sample-data/index.js +43 -0
- package/dist/modules/sample-data/index.js.map +1 -0
- package/dist/modules/sample-data/routes.d.ts +15 -0
- package/dist/modules/sample-data/routes.d.ts.map +1 -0
- package/dist/modules/sample-data/routes.js +24 -0
- package/dist/modules/sample-data/routes.js.map +1 -0
- package/dist/modules/sample-data/service.d.ts +38 -0
- package/dist/modules/sample-data/service.d.ts.map +1 -0
- package/dist/modules/sample-data/service.js +412 -0
- package/dist/modules/sample-data/service.js.map +1 -0
- package/dist/modules/sample-data/tools.d.ts +4 -0
- package/dist/modules/sample-data/tools.d.ts.map +1 -0
- package/dist/modules/sample-data/tools.js +22 -0
- package/dist/modules/sample-data/tools.js.map +1 -0
- package/dist/modules/smtp-email/index.d.ts +1 -0
- package/dist/modules/smtp-email/index.d.ts.map +1 -1
- package/dist/modules/smtp-email/index.js +1 -0
- package/dist/modules/smtp-email/index.js.map +1 -1
- package/dist/modules/workspace/service.d.ts.map +1 -1
- package/dist/modules/workspace/service.js +10 -1
- package/dist/modules/workspace/service.js.map +1 -1
- package/dist/schema/index.d.ts +1 -0
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +1 -0
- package/dist/schema/index.js.map +1 -1
- package/migrations/0021_certain_maggott.sql +30 -0
- package/migrations/0022_stormy_manta.sql +1 -0
- package/migrations/0023_funny_maddog.sql +1 -0
- package/migrations/meta/0021_snapshot.json +5389 -0
- package/migrations/meta/0022_snapshot.json +5396 -0
- package/migrations/meta/0023_snapshot.json +5403 -0
- package/migrations/meta/_journal.json +21 -0
- package/package.json +3 -2
- package/src/lib/consumerEmailDomains.ts +62 -0
- package/src/lib/email.ts +7 -0
- package/src/lib/emailContent.ts +91 -0
- package/src/lib/emailDomainAutoLink.ts +165 -0
- package/src/lib/ids.ts +2 -0
- package/src/modules/attachedRecords.ts +9 -2
- package/src/modules/auth/preferences.ts +13 -1
- package/src/modules/auth/routes.ts +22 -0
- package/src/modules/auth/schema.ts +12 -2
- package/src/modules/auth/service.ts +37 -3
- package/src/modules/companies/repository.ts +3 -0
- package/src/modules/companies/routes.ts +13 -0
- package/src/modules/companies/schema.ts +5 -1
- package/src/modules/companies/service.ts +25 -0
- package/src/modules/core.ts +11 -0
- package/src/modules/email-domain-linker/index.ts +40 -0
- package/src/modules/email-domain-linker/routes.ts +40 -0
- package/src/modules/email-domain-linker/service.ts +122 -0
- package/src/modules/eventCatalogs.ts +1 -0
- package/src/modules/lists/events.ts +41 -0
- package/src/modules/lists/index.ts +41 -0
- package/src/modules/lists/repository.ts +313 -0
- package/src/modules/lists/routes.ts +247 -0
- package/src/modules/lists/schema.ts +85 -0
- package/src/modules/lists/service.ts +404 -0
- package/src/modules/lists/tools.ts +128 -0
- package/src/modules/people/repository.ts +26 -0
- package/src/modules/people/service.ts +20 -0
- package/src/modules/positions/routes.ts +4 -2
- package/src/modules/sample-data/fixture.ts +627 -0
- package/src/modules/sample-data/index.ts +50 -0
- package/src/modules/sample-data/routes.ts +49 -0
- package/src/modules/sample-data/service.ts +590 -0
- package/src/modules/sample-data/tools.ts +32 -0
- package/src/modules/smtp-email/index.ts +8 -1
- package/src/modules/workspace/service.ts +13 -1
- package/src/schema/index.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/modules/companies/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAEjG,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAIzE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAE3E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,aAAa,CAAA;AACpB,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAmBrE,4FAA4F;AAC5F,MAAM,oBAAoB,GAAgB;IACxC,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;IAC1B,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,MAAM;IAChB,EAAE,EAAE,cAAc;IAClB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,cAAc;IAC3B,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/modules/companies/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/modules/core.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/modules/core.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AA6BxD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,QAA8D,CAAA;AAElG,eAAO,MAAM,WAAW,EAAE,SAAS,YAAY,EAqC9C,CAAA"}
|
package/dist/modules/core.js
CHANGED
|
@@ -7,10 +7,12 @@ import { createCompaniesModule } from './companies/index.js';
|
|
|
7
7
|
import { createDashboardModule } from './dashboard/index.js';
|
|
8
8
|
import { createDealsModule } from './deals/index.js';
|
|
9
9
|
import { createDecisionsModule } from './decisions/index.js';
|
|
10
|
+
import { createEmailDomainLinkerModule } from './email-domain-linker/index.js';
|
|
10
11
|
import { createFormsModule } from './forms/index.js';
|
|
11
12
|
import { createHandbookModule } from './handbook/index.js';
|
|
12
13
|
import { createHiringModule } from './hiring/index.js';
|
|
13
14
|
import { createImportExportModule } from './import-export/index.js';
|
|
15
|
+
import { createListsModule } from './lists/index.js';
|
|
14
16
|
import { createNotesModule } from './notes/index.js';
|
|
15
17
|
import { createOpportunitiesModule } from './opportunities/index.js';
|
|
16
18
|
import { createPartnershipsModule } from './partnerships/index.js';
|
|
@@ -19,6 +21,7 @@ import { createPipelinesModule } from './pipelines/index.js';
|
|
|
19
21
|
import { createPlansModule } from './plans/index.js';
|
|
20
22
|
import { createPositionsModule } from './positions/index.js';
|
|
21
23
|
import { createRaisesModule } from './raises/index.js';
|
|
24
|
+
import { createSampleDataModule } from './sample-data/index.js';
|
|
22
25
|
import { createSearchModule } from './search/index.js';
|
|
23
26
|
import { createSmtpEmailModule } from './smtp-email/index.js';
|
|
24
27
|
import { createWebhooksModule } from './webhooks/index.js';
|
|
@@ -53,6 +56,7 @@ export const coreModules = [
|
|
|
53
56
|
createHiringModule(coreMigrationsDirectory),
|
|
54
57
|
createPlansModule(coreMigrationsDirectory),
|
|
55
58
|
createDecisionsModule(coreMigrationsDirectory),
|
|
59
|
+
createListsModule(coreMigrationsDirectory),
|
|
56
60
|
createHandbookModule(coreMigrationsDirectory),
|
|
57
61
|
// Neither of these takes a migrations directory: they own no tables and read
|
|
58
62
|
// other modules'.
|
|
@@ -62,6 +66,13 @@ export const coreModules = [
|
|
|
62
66
|
createImportExportModule(coreMigrationsDirectory),
|
|
63
67
|
createAgentTasksModule(coreMigrationsDirectory),
|
|
64
68
|
createWebhooksModule(coreMigrationsDirectory),
|
|
69
|
+
// Owns no tables. One-shot fixture install for a new workspace, called from
|
|
70
|
+
// the setup wizard's checkbox and the admin data page.
|
|
71
|
+
createSampleDataModule(),
|
|
72
|
+
// Owns no tables. Admin action that reruns the email-domain sweep across
|
|
73
|
+
// every workspace Company — backfills links for data that predates the
|
|
74
|
+
// auto-linker, or after a bulk import.
|
|
75
|
+
createEmailDomainLinkerModule(),
|
|
65
76
|
// Owns no tables. Registers a `'smtp'` provider with core's email runtime;
|
|
66
77
|
// the factory only runs if the assembly's `email.provider` picks it.
|
|
67
78
|
createSmtpEmailModule(),
|
package/dist/modules/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/modules/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/modules/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { KelpieModule } from '../../runtime/module.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Rebuild every email-domain link across the workspace.
|
|
4
|
+
*
|
|
5
|
+
* Owns no tables. Requires the modules whose data the sweep reads and writes.
|
|
6
|
+
* The sweep is the same one the companies service runs on a domain change,
|
|
7
|
+
* applied to every workspace Company at once — used to backfill links for
|
|
8
|
+
* data that predates the auto-linker, or after a bulk import.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createEmailDomainLinkerModule(): KelpieModule;
|
|
11
|
+
export type { EmailDomainLinkerService, RelinkCounts } from './service.ts';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/email-domain-linker/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAK3D;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,IAAI,YAAY,CAwB5D;AAED,YAAY,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { createActivityRecorder } from '../activities/index.js';
|
|
2
|
+
import { mountEmailDomainLinkerRoutes } from './routes.js';
|
|
3
|
+
import { createEmailDomainLinkerService } from './service.js';
|
|
4
|
+
/**
|
|
5
|
+
* Rebuild every email-domain link across the workspace.
|
|
6
|
+
*
|
|
7
|
+
* Owns no tables. Requires the modules whose data the sweep reads and writes.
|
|
8
|
+
* The sweep is the same one the companies service runs on a domain change,
|
|
9
|
+
* applied to every workspace Company at once — used to backfill links for
|
|
10
|
+
* data that predates the auto-linker, or after a bulk import.
|
|
11
|
+
*/
|
|
12
|
+
export function createEmailDomainLinkerModule() {
|
|
13
|
+
return {
|
|
14
|
+
id: 'email-domain-linker',
|
|
15
|
+
requires: ['workspace', 'companies', 'people', 'positions', 'activities'],
|
|
16
|
+
register(context) {
|
|
17
|
+
const service = createEmailDomainLinkerService({
|
|
18
|
+
db: context.db,
|
|
19
|
+
transaction: context.transaction,
|
|
20
|
+
createId: context.createId,
|
|
21
|
+
now: context.now,
|
|
22
|
+
recordActivity: createActivityRecorder({
|
|
23
|
+
createId: context.createId,
|
|
24
|
+
now: context.now,
|
|
25
|
+
}),
|
|
26
|
+
});
|
|
27
|
+
context.routes((router) => {
|
|
28
|
+
mountEmailDomainLinkerRoutes(router, { db: context.db, now: context.now, service });
|
|
29
|
+
});
|
|
30
|
+
return Promise.resolve();
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/email-domain-linker/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAA;AAE7D;;;;;;;GAOG;AACH,MAAM,UAAU,6BAA6B;IAC3C,OAAO;QACL,EAAE,EAAE,qBAAqB;QACzB,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC;QAEzE,QAAQ,CAAC,OAAO;YACd,MAAM,OAAO,GAAG,8BAA8B,CAAC;gBAC7C,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,cAAc,EAAE,sBAAsB,CAAC;oBACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;iBACjB,CAAC;aACH,CAAC,CAAA;YAEF,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;gBACxB,4BAA4B,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;YACrF,CAAC,CAAC,CAAA;YAEF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Hono } from 'hono';
|
|
2
|
+
import type { CredentialDependencies } from '../auth/credentials.ts';
|
|
3
|
+
import type { EmailDomainLinkerService, RelinkCounts } from './service.ts';
|
|
4
|
+
/**
|
|
5
|
+
* Wire shape for `POST /v1/workspaces/:id/relink-email-domains`.
|
|
6
|
+
*
|
|
7
|
+
* No request body. The response counts what the sweep did.
|
|
8
|
+
*/
|
|
9
|
+
export interface EmailDomainLinkerRoutesDependencies extends CredentialDependencies {
|
|
10
|
+
readonly service: EmailDomainLinkerService;
|
|
11
|
+
}
|
|
12
|
+
export declare function relinkResponse(counts: RelinkCounts): Record<string, unknown>;
|
|
13
|
+
export declare function mountEmailDomainLinkerRoutes(router: Hono, dependencies: EmailDomainLinkerRoutesDependencies): void;
|
|
14
|
+
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/modules/email-domain-linker/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAA;AAIzC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE1E;;;;GAIG;AAEH,MAAM,WAAW,mCAAoC,SAAQ,sBAAsB;IACjF,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAA;CAC3C;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAK5E;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,IAAI,EACZ,YAAY,EAAE,mCAAmC,GAChD,IAAI,CAYN"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { resolveActorFrom } from '../auth/credentials.js';
|
|
2
|
+
export function relinkResponse(counts) {
|
|
3
|
+
return {
|
|
4
|
+
companies_scanned: counts.companiesScanned,
|
|
5
|
+
positions_created: counts.positionsCreated,
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export function mountEmailDomainLinkerRoutes(router, dependencies) {
|
|
9
|
+
const requireActor = (context) => resolveActorFrom(dependencies, context);
|
|
10
|
+
router.post('/workspaces/:id/relink-email-domains', async (context) => {
|
|
11
|
+
const counts = await dependencies.service.relink(await requireActor(context), context.req.param('id'));
|
|
12
|
+
return context.json(relinkResponse(counts));
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/modules/email-domain-linker/routes.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAczD,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,OAAO;QACL,iBAAiB,EAAE,MAAM,CAAC,gBAAgB;QAC1C,iBAAiB,EAAE,MAAM,CAAC,gBAAgB;KAC3C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,MAAY,EACZ,YAAiD;IAEjD,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAkB,EAAE,CACxD,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAEzC,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACpE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAC9C,MAAM,YAAY,CAAC,OAAO,CAAC,EAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CACxB,CAAA;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Database } from '../../lib/database.ts';
|
|
2
|
+
import type { IdFactory } from '../../lib/ids.ts';
|
|
3
|
+
import type { TransactionScope } from '../../runtime/transaction.ts';
|
|
4
|
+
import type { ActivityRecorder } from '../activities/recorder.ts';
|
|
5
|
+
import type { Actor } from '../auth/actor.ts';
|
|
6
|
+
/**
|
|
7
|
+
* Rebuild every email-domain link across the workspace.
|
|
8
|
+
*
|
|
9
|
+
* Iterates each Company that carries a domain and runs the same sweep the
|
|
10
|
+
* companies service runs on a domain change — every workspace Person whose
|
|
11
|
+
* email is at that domain gets a titleless Position where none exists yet.
|
|
12
|
+
*
|
|
13
|
+
* Idempotent: a follow-up run adds nothing. Add-only, consumer-host-skipping,
|
|
14
|
+
* and workspace-scoped, same as the inline auto-linker.
|
|
15
|
+
*
|
|
16
|
+
* One transaction per Company, not one for the whole sweep. A workspace can
|
|
17
|
+
* carry thousands of Companies, and a single transaction that long would
|
|
18
|
+
* hold row-share locks against every write elsewhere for the whole run.
|
|
19
|
+
*/
|
|
20
|
+
export interface EmailDomainLinkerDependencies {
|
|
21
|
+
readonly db: Database;
|
|
22
|
+
readonly transaction: TransactionScope;
|
|
23
|
+
readonly createId: IdFactory;
|
|
24
|
+
readonly now: () => Date;
|
|
25
|
+
readonly recordActivity: ActivityRecorder;
|
|
26
|
+
}
|
|
27
|
+
export interface RelinkCounts {
|
|
28
|
+
/** Companies with a non-null domain that were considered. Consumer hosts are counted but skipped. */
|
|
29
|
+
readonly companiesScanned: number;
|
|
30
|
+
/** New Positions the sweep inserted this run. */
|
|
31
|
+
readonly positionsCreated: number;
|
|
32
|
+
}
|
|
33
|
+
export interface EmailDomainLinkerService {
|
|
34
|
+
relink(actor: Actor, workspaceId: string): Promise<RelinkCounts>;
|
|
35
|
+
}
|
|
36
|
+
export declare function createEmailDomainLinkerService(dependencies: EmailDomainLinkerDependencies): EmailDomainLinkerService;
|
|
37
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/modules/email-domain-linker/service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAM7C;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAA;IACtC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,IAAI,CAAA;IACxB,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAA;CAC1C;AAED,MAAM,WAAW,YAAY;IAC3B,qGAAqG;IACrG,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,iDAAiD;IACjD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;CACjE;AAED,wBAAgB,8BAA8B,CAC5C,YAAY,EAAE,6BAA6B,GAC1C,wBAAwB,CAsE1B"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { and, eq, isNotNull } from 'drizzle-orm';
|
|
2
|
+
import { toEventActor } from '../../lib/actor.js';
|
|
3
|
+
import { autoLinkCompanyByDomain } from '../../lib/emailDomainAutoLink.js';
|
|
4
|
+
import { AppError } from '../../lib/errors.js';
|
|
5
|
+
import { requireWorkspaceId } from '../auth/actor.js';
|
|
6
|
+
import * as authRepository from '../auth/repository.js';
|
|
7
|
+
import { companies } from '../companies/schema.js';
|
|
8
|
+
import { parseMemberRole, roleAllows } from '../workspace/roles.js';
|
|
9
|
+
export function createEmailDomainLinkerService(dependencies) {
|
|
10
|
+
async function requireAdmin(actor, workspaceId) {
|
|
11
|
+
if (actor.workspaceId !== workspaceId) {
|
|
12
|
+
throw AppError.notFound('Workspace not found');
|
|
13
|
+
}
|
|
14
|
+
if (actor.kind === 'api_key' && actor.userId === null) {
|
|
15
|
+
if (!roleAllows(actor.role, 'admin')) {
|
|
16
|
+
throw new AppError('forbidden', 'This action needs the admin role');
|
|
17
|
+
}
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const userId = actor.userId;
|
|
21
|
+
if (userId === null) {
|
|
22
|
+
throw AppError.notFound('Workspace not found');
|
|
23
|
+
}
|
|
24
|
+
const membership = await authRepository.findMembership(dependencies.db, workspaceId, userId);
|
|
25
|
+
if (membership === undefined) {
|
|
26
|
+
throw AppError.notFound('Workspace not found');
|
|
27
|
+
}
|
|
28
|
+
const role = parseMemberRole(membership.role);
|
|
29
|
+
if (role === undefined) {
|
|
30
|
+
throw new Error(`workspace_members.role holds "${membership.role}", which its check forbids`);
|
|
31
|
+
}
|
|
32
|
+
if (!roleAllows(role, 'admin')) {
|
|
33
|
+
throw new AppError('forbidden', 'This action needs the admin role');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
async relink(actor, workspaceId) {
|
|
38
|
+
requireWorkspaceId(actor);
|
|
39
|
+
await requireAdmin(actor, workspaceId);
|
|
40
|
+
// Every workspace Company that carries a domain — the ones the sweep
|
|
41
|
+
// can match against. Pooled read outside the per-company transactions:
|
|
42
|
+
// the work-list is one query, each write opens its own scope.
|
|
43
|
+
const rows = await dependencies.db
|
|
44
|
+
.select()
|
|
45
|
+
.from(companies)
|
|
46
|
+
.where(and(eq(companies.workspaceId, workspaceId), isNotNull(companies.domain)));
|
|
47
|
+
let created = 0;
|
|
48
|
+
// One transaction per Company, not one for the whole sweep. A workspace
|
|
49
|
+
// can carry thousands of Companies; a single transaction that long would
|
|
50
|
+
// hold row-share locks against every write elsewhere for the whole run.
|
|
51
|
+
for (const company of rows) {
|
|
52
|
+
const inserted = await dependencies.transaction(async ({ tx, events }) => autoLinkCompanyByDomain(tx, events, workspaceId, company, {
|
|
53
|
+
createId: dependencies.createId,
|
|
54
|
+
now: dependencies.now,
|
|
55
|
+
recordActivity: dependencies.recordActivity,
|
|
56
|
+
}), { workspaceId, actor: toEventActor(actor) });
|
|
57
|
+
created += inserted.length;
|
|
58
|
+
}
|
|
59
|
+
return { companiesScanned: rows.length, positionsCreated: created };
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/modules/email-domain-linker/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,7 @@ import './people/events.ts';
|
|
|
22
22
|
import './companies/events.ts';
|
|
23
23
|
import './positions/events.ts';
|
|
24
24
|
import './notes/events.ts';
|
|
25
|
+
import './lists/events.ts';
|
|
25
26
|
import './deals/events.ts';
|
|
26
27
|
import './opportunities/events.ts';
|
|
27
28
|
import './partnerships/events.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventCatalogs.d.ts","sourceRoot":"","sources":["../../src/modules/eventCatalogs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,uBAAuB,CAAA;AAC9B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,2BAA2B,CAAA;AAClC,OAAO,0BAA0B,CAAA;AACjC,OAAO,oBAAoB,CAAA;AAC3B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,sBAAsB,CAAA;AAC7B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,2BAA2B,CAAA"}
|
|
1
|
+
{"version":3,"file":"eventCatalogs.d.ts","sourceRoot":"","sources":["../../src/modules/eventCatalogs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,uBAAuB,CAAA;AAC9B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,2BAA2B,CAAA;AAClC,OAAO,0BAA0B,CAAA;AACjC,OAAO,oBAAoB,CAAA;AAC3B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,sBAAsB,CAAA;AAC7B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,2BAA2B,CAAA"}
|
|
@@ -22,6 +22,7 @@ import './people/events.js';
|
|
|
22
22
|
import './companies/events.js';
|
|
23
23
|
import './positions/events.js';
|
|
24
24
|
import './notes/events.js';
|
|
25
|
+
import './lists/events.js';
|
|
25
26
|
import './deals/events.js';
|
|
26
27
|
import './opportunities/events.js';
|
|
27
28
|
import './partnerships/events.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventCatalogs.js","sourceRoot":"","sources":["../../src/modules/eventCatalogs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,uBAAuB,CAAA;AAC9B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,2BAA2B,CAAA;AAClC,OAAO,0BAA0B,CAAA;AACjC,OAAO,oBAAoB,CAAA;AAC3B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,sBAAsB,CAAA;AAC7B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,2BAA2B,CAAA"}
|
|
1
|
+
{"version":3,"file":"eventCatalogs.js","sourceRoot":"","sources":["../../src/modules/eventCatalogs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,uBAAuB,CAAA;AAC9B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,2BAA2B,CAAA;AAClC,OAAO,0BAA0B,CAAA;AACjC,OAAO,oBAAoB,CAAA;AAC3B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,sBAAsB,CAAA;AAC7B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,2BAA2B,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Domain events published by the lists module.
|
|
4
|
+
*
|
|
5
|
+
* `target` on a `lists.list.*` event is the list itself. `lists.member.*` events
|
|
6
|
+
* name the record that changed membership, so a consumer watching records hears
|
|
7
|
+
* about a list touching it without a second lookup.
|
|
8
|
+
*/
|
|
9
|
+
export declare const listsEvents: {
|
|
10
|
+
'lists.list.created': z.ZodObject<{}, z.core.$strict>;
|
|
11
|
+
'lists.list.updated': z.ZodObject<{
|
|
12
|
+
changed: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
'lists.list.deleted': z.ZodObject<{}, z.core.$strict>;
|
|
15
|
+
'lists.member.added': z.ZodObject<{
|
|
16
|
+
listId: z.ZodString;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
'lists.member.removed': z.ZodObject<{
|
|
19
|
+
listId: z.ZodString;
|
|
20
|
+
}, z.core.$strip>;
|
|
21
|
+
};
|
|
22
|
+
export type ListCreatedData = Record<string, never>;
|
|
23
|
+
export interface ListUpdatedData {
|
|
24
|
+
readonly changed: readonly string[];
|
|
25
|
+
}
|
|
26
|
+
export type ListDeletedData = Record<string, never>;
|
|
27
|
+
export interface ListMemberAddedData {
|
|
28
|
+
readonly listId: string;
|
|
29
|
+
}
|
|
30
|
+
export interface ListMemberRemovedData {
|
|
31
|
+
readonly listId: string;
|
|
32
|
+
}
|
|
33
|
+
declare module '../../runtime/events.ts' {
|
|
34
|
+
interface KelpieEventMap {
|
|
35
|
+
'lists.list.created': ListCreatedData;
|
|
36
|
+
'lists.list.updated': ListUpdatedData;
|
|
37
|
+
'lists.list.deleted': ListDeletedData;
|
|
38
|
+
'lists.member.added': ListMemberAddedData;
|
|
39
|
+
'lists.member.removed': ListMemberRemovedData;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/modules/lists/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB;;;;;;GAMG;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;CAMM,CAAA;AAE9B,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACnD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AACD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACnD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AACD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,OAAO,QAAQ,yBAAyB,CAAC;IACvC,UAAU,cAAc;QACtB,oBAAoB,EAAE,eAAe,CAAA;QACrC,oBAAoB,EAAE,eAAe,CAAA;QACrC,oBAAoB,EAAE,eAAe,CAAA;QACrC,oBAAoB,EAAE,mBAAmB,CAAA;QACzC,sBAAsB,EAAE,qBAAqB,CAAA;KAC9C;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Domain events published by the lists module.
|
|
4
|
+
*
|
|
5
|
+
* `target` on a `lists.list.*` event is the list itself. `lists.member.*` events
|
|
6
|
+
* name the record that changed membership, so a consumer watching records hears
|
|
7
|
+
* about a list touching it without a second lookup.
|
|
8
|
+
*/
|
|
9
|
+
export const listsEvents = {
|
|
10
|
+
'lists.list.created': z.object({}).strict(),
|
|
11
|
+
'lists.list.updated': z.object({ changed: z.array(z.string()).readonly() }),
|
|
12
|
+
'lists.list.deleted': z.object({}).strict(),
|
|
13
|
+
'lists.member.added': z.object({ listId: z.string() }),
|
|
14
|
+
'lists.member.removed': z.object({ listId: z.string() }),
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/modules/lists/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3C,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC3E,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3C,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACtD,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;CAC5B,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { KelpieModule } from '../../runtime/module.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Lists: named collections of records of one type.
|
|
4
|
+
*
|
|
5
|
+
* Requires `workspace` for the tenancy column. Every other record type is
|
|
6
|
+
* addressed polymorphically through `target_type` + `target_id`, so this module
|
|
7
|
+
* does not depend on the modules whose records it references.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createListsModule(migrationsDirectory: string): KelpieModule;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/lists/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAO3D;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,mBAAmB,EAAE,MAAM,GAAG,YAAY,CA0B3E"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { listsEvents } from './events.js';
|
|
2
|
+
import { mountListsRoutes } from './routes.js';
|
|
3
|
+
import * as schema from './schema.js';
|
|
4
|
+
import { createListsService } from './service.js';
|
|
5
|
+
import { registerListsTools } from './tools.js';
|
|
6
|
+
/**
|
|
7
|
+
* Lists: named collections of records of one type.
|
|
8
|
+
*
|
|
9
|
+
* Requires `workspace` for the tenancy column. Every other record type is
|
|
10
|
+
* addressed polymorphically through `target_type` + `target_id`, so this module
|
|
11
|
+
* does not depend on the modules whose records it references.
|
|
12
|
+
*/
|
|
13
|
+
export function createListsModule(migrationsDirectory) {
|
|
14
|
+
return {
|
|
15
|
+
id: 'lists',
|
|
16
|
+
requires: ['workspace'],
|
|
17
|
+
structural: true,
|
|
18
|
+
events: listsEvents,
|
|
19
|
+
register(context) {
|
|
20
|
+
const service = createListsService({
|
|
21
|
+
db: context.db,
|
|
22
|
+
transaction: context.transaction,
|
|
23
|
+
createId: context.createId,
|
|
24
|
+
now: context.now,
|
|
25
|
+
});
|
|
26
|
+
context.schema(schema, migrationsDirectory);
|
|
27
|
+
context.routes((router) => {
|
|
28
|
+
mountListsRoutes(router, { db: context.db, now: context.now, service });
|
|
29
|
+
});
|
|
30
|
+
registerListsTools(context.mcp, service);
|
|
31
|
+
return Promise.resolve();
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/lists/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,mBAA2B;IAC3D,OAAO;QACL,EAAE,EAAE,OAAO;QACX,QAAQ,EAAE,CAAC,WAAW,CAAC;QACvB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,WAAW;QAEnB,QAAQ,CAAC,OAAO;YACd,MAAM,OAAO,GAAG,kBAAkB,CAAC;gBACjC,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC,CAAA;YAEF,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;YAE3C,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;gBACxB,gBAAgB,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;YACzE,CAAC,CAAC,CAAA;YAEF,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YAExC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { ListWindow, SortableFields } from '../../lib/pagination.ts';
|
|
2
|
+
import type { Queryable } from '../../runtime/transaction.ts';
|
|
3
|
+
import type { RecordTargetType } from '../recordTargets.ts';
|
|
4
|
+
import { listMembers, lists } from './schema.ts';
|
|
5
|
+
export type ListRecord = typeof lists.$inferSelect;
|
|
6
|
+
export type ListColumns = typeof lists.$inferInsert;
|
|
7
|
+
export type ListMemberRecord = typeof listMembers.$inferSelect;
|
|
8
|
+
export type ListMemberColumns = typeof listMembers.$inferInsert;
|
|
9
|
+
/**
|
|
10
|
+
* The stored row with the rollup a UI index page needs. `member_count` is
|
|
11
|
+
* computed at read time rather than maintained on write so an unrelated bug
|
|
12
|
+
* cannot leave the count out of step with the actual rows.
|
|
13
|
+
*/
|
|
14
|
+
export type ListWithCount = ListRecord & {
|
|
15
|
+
readonly memberCount: number;
|
|
16
|
+
};
|
|
17
|
+
export declare const LIST_SORTS: SortableFields<ListWithCount>;
|
|
18
|
+
export declare const DEFAULT_LIST_SORT = "-updated_at";
|
|
19
|
+
export interface ListFilters {
|
|
20
|
+
readonly term?: string | undefined;
|
|
21
|
+
readonly targetType?: RecordTargetType | undefined;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @returns Up to `window.fetchLimit` rows: one more than the page, so the
|
|
25
|
+
* caller can tell there is a next one. Each row carries the count of members
|
|
26
|
+
* attached to it.
|
|
27
|
+
*/
|
|
28
|
+
export declare function listLists(db: Queryable, workspaceId: string, filters: ListFilters, window: ListWindow<ListWithCount>): Promise<ListWithCount[]>;
|
|
29
|
+
export declare function findList(db: Queryable, workspaceId: string, id: string): Promise<ListWithCount | undefined>;
|
|
30
|
+
export declare function insertList(db: Queryable, values: ListColumns): Promise<ListRecord>;
|
|
31
|
+
export declare function updateList(db: Queryable, workspaceId: string, id: string, changes: Partial<ListColumns>): Promise<ListRecord | undefined>;
|
|
32
|
+
export declare function deleteList(db: Queryable, workspaceId: string, id: string): Promise<number>;
|
|
33
|
+
/** Members: no cursor pagination yet. A list's members render on one page today. */
|
|
34
|
+
export declare const LIST_MEMBER_SORTS: SortableFields<ListMemberRecord>;
|
|
35
|
+
export declare const DEFAULT_LIST_MEMBER_SORT = "-added_at";
|
|
36
|
+
export interface ListMemberFilters {
|
|
37
|
+
readonly listId: string;
|
|
38
|
+
readonly targetType?: RecordTargetType | undefined;
|
|
39
|
+
}
|
|
40
|
+
export declare function listListMembers(db: Queryable, workspaceId: string, filters: ListMemberFilters, window: ListWindow<ListMemberRecord>): Promise<ListMemberRecord[]>;
|
|
41
|
+
export declare function findListMember(db: Queryable, workspaceId: string, listId: string, id: string): Promise<ListMemberRecord | undefined>;
|
|
42
|
+
export declare function insertListMember(db: Queryable, values: ListMemberColumns): Promise<ListMemberRecord>;
|
|
43
|
+
export declare function deleteListMember(db: Queryable, workspaceId: string, listId: string, id: string): Promise<number>;
|
|
44
|
+
/** A membership row enriched with the list it points at. */
|
|
45
|
+
export interface MembershipWithList {
|
|
46
|
+
readonly id: string;
|
|
47
|
+
readonly listId: string;
|
|
48
|
+
readonly listName: string;
|
|
49
|
+
readonly listTargetType: string;
|
|
50
|
+
readonly targetType: string;
|
|
51
|
+
readonly targetId: string;
|
|
52
|
+
readonly addedAt: Date;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* "Which lists is this record on?"
|
|
56
|
+
*
|
|
57
|
+
* Ordered by list name so a record's Lists tab reads alphabetically and the
|
|
58
|
+
* order does not shift as memberships are added.
|
|
59
|
+
*/
|
|
60
|
+
export declare function listMembershipsForTarget(db: Queryable, workspaceId: string, targetType: string, targetId: string): Promise<MembershipWithList[]>;
|
|
61
|
+
/**
|
|
62
|
+
* Removes every list membership for one target.
|
|
63
|
+
*
|
|
64
|
+
* The target is polymorphic and carries no foreign key of its own, so nothing
|
|
65
|
+
* in the database deletes these when the target goes. The service that deletes
|
|
66
|
+
* the target calls this inside the same transaction.
|
|
67
|
+
*/
|
|
68
|
+
export declare function deleteMembershipsForTarget(db: Queryable, workspaceId: string, targetType: string, targetId: string): Promise<number>;
|
|
69
|
+
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/modules/lists/repository.ts"],"names":[],"mappings":"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"}
|