@selvajs/platform 0.15.0-beta.1 → 0.15.0-beta.3

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 (88) hide show
  1. package/dist/computeServer/index.d.ts +1 -1
  2. package/dist/computeServer/index.d.ts.map +1 -1
  3. package/dist/computeServer/interface.d.ts +29 -1
  4. package/dist/computeServer/interface.d.ts.map +1 -1
  5. package/dist/computeServer/types.d.ts +12 -1
  6. package/dist/computeServer/types.d.ts.map +1 -1
  7. package/dist/computeServer/types.js.map +1 -1
  8. package/dist/data/index.d.ts +2 -1
  9. package/dist/data/index.d.ts.map +1 -1
  10. package/dist/data/index.js +1 -1
  11. package/dist/data/index.js.map +1 -1
  12. package/dist/data/interface.d.ts +36 -8
  13. package/dist/data/interface.d.ts.map +1 -1
  14. package/dist/data/interface.js +7 -1
  15. package/dist/data/interface.js.map +1 -1
  16. package/dist/definitions/interface.d.ts +6 -1
  17. package/dist/definitions/interface.d.ts.map +1 -1
  18. package/dist/definitions/schemas.d.ts.map +1 -1
  19. package/dist/definitions/schemas.js +5 -0
  20. package/dist/definitions/schemas.js.map +1 -1
  21. package/dist/events/index.d.ts +1 -1
  22. package/dist/events/index.d.ts.map +1 -1
  23. package/dist/events/index.js +1 -1
  24. package/dist/events/index.js.map +1 -1
  25. package/dist/events/interface.d.ts +7 -0
  26. package/dist/events/interface.d.ts.map +1 -1
  27. package/dist/events/interface.js +7 -0
  28. package/dist/events/interface.js.map +1 -1
  29. package/dist/index.d.ts +7 -4
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +4 -2
  32. package/dist/index.js.map +1 -1
  33. package/dist/logging/interface.d.ts +82 -0
  34. package/dist/logging/interface.d.ts.map +1 -0
  35. package/dist/logging/interface.js +33 -0
  36. package/dist/logging/interface.js.map +1 -0
  37. package/dist/organizations/__tests__/slug-schema.test.d.ts +2 -0
  38. package/dist/organizations/__tests__/slug-schema.test.d.ts.map +1 -0
  39. package/dist/organizations/__tests__/slug-schema.test.js +59 -0
  40. package/dist/organizations/__tests__/slug-schema.test.js.map +1 -0
  41. package/dist/organizations/index.d.ts +1 -1
  42. package/dist/organizations/index.d.ts.map +1 -1
  43. package/dist/organizations/index.js +1 -1
  44. package/dist/organizations/index.js.map +1 -1
  45. package/dist/organizations/schemas.d.ts +24 -2
  46. package/dist/organizations/schemas.d.ts.map +1 -1
  47. package/dist/organizations/schemas.js +47 -2
  48. package/dist/organizations/schemas.js.map +1 -1
  49. package/dist/testing/suites/solveMetricSinkSuite.d.ts +5 -0
  50. package/dist/testing/suites/solveMetricSinkSuite.d.ts.map +1 -1
  51. package/dist/testing/suites/solveMetricSinkSuite.js +17 -8
  52. package/dist/testing/suites/solveMetricSinkSuite.js.map +1 -1
  53. package/dist/testing/suites/storageProviderSuite.d.ts.map +1 -1
  54. package/dist/testing/suites/storageProviderSuite.js +23 -2
  55. package/dist/testing/suites/storageProviderSuite.js.map +1 -1
  56. package/package.json +12 -2
  57. package/dist/auth.d.ts +0 -60
  58. package/dist/auth.d.ts.map +0 -1
  59. package/dist/auth.js +0 -12
  60. package/dist/auth.js.map +0 -1
  61. package/dist/compute.d.ts +0 -47
  62. package/dist/compute.d.ts.map +0 -1
  63. package/dist/compute.js +0 -11
  64. package/dist/compute.js.map +0 -1
  65. package/dist/definitions/service.d.ts +0 -62
  66. package/dist/definitions/service.d.ts.map +0 -1
  67. package/dist/definitions/service.js +0 -149
  68. package/dist/definitions/service.js.map +0 -1
  69. package/dist/definitions.d.ts +0 -146
  70. package/dist/definitions.d.ts.map +0 -1
  71. package/dist/definitions.js +0 -23
  72. package/dist/definitions.js.map +0 -1
  73. package/dist/invites/schemas.d.ts +0 -24
  74. package/dist/invites/schemas.d.ts.map +0 -1
  75. package/dist/invites/schemas.js +0 -17
  76. package/dist/invites/schemas.js.map +0 -1
  77. package/dist/organizations.d.ts +0 -93
  78. package/dist/organizations.d.ts.map +0 -1
  79. package/dist/organizations.js +0 -14
  80. package/dist/organizations.js.map +0 -1
  81. package/dist/testing/adapterSuite.d.ts +0 -33
  82. package/dist/testing/adapterSuite.d.ts.map +0 -1
  83. package/dist/testing/adapterSuite.js +0 -166
  84. package/dist/testing/adapterSuite.js.map +0 -1
  85. package/dist/testing/suites/runner.d.ts +0 -21
  86. package/dist/testing/suites/runner.d.ts.map +0 -1
  87. package/dist/testing/suites/runner.js +0 -7
  88. package/dist/testing/suites/runner.js.map +0 -1
@@ -1,166 +0,0 @@
1
- /**
2
- * Adapter conformance suite for IDefinitionStore.
3
- *
4
- * The goal is to prove every adapter behaves identically from the consuming
5
- * app's perspective — `ctx` scoping, `pending` filtering, `listStalePending`
6
- * cutoff, history mutations, and error shapes.
7
- *
8
- * Runner-agnostic: callers inject a `{ describe, it, expect }` trio so this
9
- * package stays test-framework free. For vitest or jest, pass the globals
10
- * directly; for node:test, wrap them.
11
- */
12
- import { SYSTEM_CONTEXT } from '../context.js';
13
- function ctx(userId, permissions = ['platform_admin']) {
14
- return { userId, permissions };
15
- }
16
- function record(overrides = {}) {
17
- const now = new Date().toISOString();
18
- return {
19
- guid: overrides.guid ?? cryptoRandom(),
20
- projectId: overrides.projectId ?? 'project-1',
21
- ownerId: overrides.ownerId ?? 'user-1',
22
- fileExt: overrides.fileExt ?? 'gh',
23
- meta: overrides.meta ?? { displayName: 'Test' },
24
- history: overrides.history ?? [],
25
- maxHistory: overrides.maxHistory ?? 10,
26
- status: overrides.status ?? 'ready',
27
- createdAt: overrides.createdAt ?? now,
28
- updatedAt: overrides.updatedAt ?? now,
29
- ...overrides
30
- };
31
- }
32
- // Minimal UUID-ish helper — good enough for tests, no crypto import needed.
33
- function cryptoRandom() {
34
- return `test-${Math.random().toString(36).slice(2, 10)}`;
35
- }
36
- export function runDefinitionStoreConformance(opts) {
37
- const { name, createStore, runner } = opts;
38
- const { describe, it, expect } = runner;
39
- describe(`IDefinitionStore conformance: ${name}`, () => {
40
- it('create + get returns the record', async () => {
41
- const store = await createStore();
42
- const rec = record({ guid: 'g1' });
43
- await store.create(ctx('u1'), rec);
44
- const got = await store.get(ctx('u1'), 'g1');
45
- expect(got?.guid).toBe('g1');
46
- });
47
- it('get returns null for missing guid', async () => {
48
- const store = await createStore();
49
- const got = await store.get(ctx('u1'), 'does-not-exist');
50
- expect(got).toBeNull();
51
- });
52
- it('list filters pending by default', async () => {
53
- const store = await createStore();
54
- await store.create(ctx('u1'), record({ guid: 'r1', status: 'ready' }));
55
- await store.create(ctx('u1'), record({ guid: 'p1', status: 'pending' }));
56
- const page = await store.list(ctx('u1'));
57
- const guids = page.items.map((r) => r.guid);
58
- expect(guids).toContain('r1');
59
- expect(guids.includes('p1')).toBe(false);
60
- });
61
- it('list with includePending returns pending too', async () => {
62
- const store = await createStore();
63
- await store.create(ctx('u1'), record({ guid: 'r1', status: 'ready' }));
64
- await store.create(ctx('u1'), record({ guid: 'p1', status: 'pending' }));
65
- const page = await store.list(ctx('u1'), { includePending: true });
66
- const guids = page.items.map((r) => r.guid);
67
- expect(guids).toContain('r1');
68
- expect(guids).toContain('p1');
69
- });
70
- it('listByProject filters by projectId', async () => {
71
- const store = await createStore();
72
- await store.create(ctx('u1'), record({ guid: 'a', projectId: 'proj-a' }));
73
- await store.create(ctx('u1'), record({ guid: 'b', projectId: 'proj-b' }));
74
- const page = await store.listByProject(ctx('u1'), 'proj-a');
75
- const guids = page.items.map((r) => r.guid);
76
- expect(guids).toEqual(['a']);
77
- });
78
- it('update applies patch and bumps updatedAt', async () => {
79
- const store = await createStore();
80
- const created = record({ guid: 'u1', meta: { displayName: 'Old' } });
81
- await store.create(ctx('u1'), created);
82
- await store.update(ctx('u1'), 'u1', { meta: { displayName: 'New' } });
83
- const got = await store.get(ctx('u1'), 'u1');
84
- expect(got?.meta.displayName).toBe('New');
85
- expect(got.updatedAt >= created.updatedAt).toBe(true);
86
- });
87
- it('update on missing guid throws ProviderError with status 404', async () => {
88
- const store = await createStore();
89
- let thrown;
90
- try {
91
- await store.update(ctx('u1'), 'nope', { meta: { displayName: 'X' } });
92
- }
93
- catch (err) {
94
- thrown = err;
95
- }
96
- expect(thrown).toBeTruthy();
97
- const e = thrown;
98
- expect(e.status).toBe(404);
99
- });
100
- it('status flip pending → ready via update', async () => {
101
- const store = await createStore();
102
- await store.create(ctx('u1'), record({ guid: 'x', status: 'pending' }));
103
- const beforeFlip = await store.list(ctx('u1'));
104
- expect(beforeFlip.items.map((r) => r.guid).includes('x')).toBe(false);
105
- await store.update(ctx('u1'), 'x', { status: 'ready' });
106
- const afterFlip = await store.list(ctx('u1'));
107
- expect(afterFlip.items.map((r) => r.guid)).toContain('x');
108
- });
109
- it('addHistoryEntry prepends entries (newest first)', async () => {
110
- const store = await createStore();
111
- await store.create(ctx('u1'), record({ guid: 'h', maxHistory: 0 }));
112
- const e1 = { ref: 'r1', originalName: 'a.gh', archivedAt: '2024-01-01' };
113
- const e2 = { ref: 'r2', originalName: 'b.gh', archivedAt: '2024-01-02' };
114
- await store.addHistoryEntry(ctx('u1'), 'h', e1);
115
- await store.addHistoryEntry(ctx('u1'), 'h', e2);
116
- const got = await store.get(ctx('u1'), 'h');
117
- expect(got.history.map((h) => h.ref)).toEqual(['r2', 'r1']);
118
- });
119
- it('removeHistoryEntry removes the matching ref', async () => {
120
- const store = await createStore();
121
- const entry = { ref: 'keep', originalName: 'a.gh', archivedAt: '2024-01-01' };
122
- const drop = { ref: 'drop', originalName: 'b.gh', archivedAt: '2024-01-02' };
123
- await store.create(ctx('u1'), record({ guid: 'h', history: [drop, entry] }));
124
- await store.removeHistoryEntry(ctx('u1'), 'h', 'drop');
125
- const got = await store.get(ctx('u1'), 'h');
126
- expect(got.history.map((h) => h.ref)).toEqual(['keep']);
127
- });
128
- it('delete removes the record', async () => {
129
- const store = await createStore();
130
- await store.create(ctx('u1'), record({ guid: 'd' }));
131
- await store.delete(ctx('u1'), 'd');
132
- const got = await store.get(ctx('u1'), 'd');
133
- expect(got).toBeNull();
134
- });
135
- it('listStalePending returns only pending + older than cutoff', async () => {
136
- const store = await createStore();
137
- const old = '2024-01-01T00:00:00.000Z';
138
- const recent = new Date().toISOString();
139
- await store.create(ctx('u1'), record({ guid: 'old-pending', status: 'pending', createdAt: old }));
140
- await store.create(ctx('u1'), record({ guid: 'new-pending', status: 'pending', createdAt: recent }));
141
- await store.create(ctx('u1'), record({ guid: 'old-ready', status: 'ready', createdAt: old }));
142
- const cutoff = '2024-06-01T00:00:00.000Z';
143
- const stale = await store.listStalePending(SYSTEM_CONTEXT, cutoff);
144
- const guids = stale.map((r) => r.guid);
145
- expect(guids).toContain('old-pending');
146
- expect(guids.includes('new-pending')).toBe(false);
147
- expect(guids.includes('old-ready')).toBe(false);
148
- });
149
- it('pagination respects limit and nextCursor', async () => {
150
- const store = await createStore();
151
- for (let i = 0; i < 5; i++) {
152
- await store.create(ctx('u1'), record({ guid: `p${i}`, meta: { displayName: `N${i}` } }));
153
- }
154
- const first = await store.list(ctx('u1'), { limit: 2 });
155
- expect(first.items.length).toBe(2);
156
- expect(first.nextCursor).toBeTruthy();
157
- const second = await store.list(ctx('u1'), { limit: 2, cursor: first.nextCursor });
158
- expect(second.items.length).toBe(2);
159
- const firstGuids = new Set(first.items.map((r) => r.guid));
160
- for (const item of second.items) {
161
- expect(firstGuids.has(item.guid)).toBe(false);
162
- }
163
- });
164
- });
165
- }
166
- //# sourceMappingURL=adapterSuite.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapterSuite.js","sourceRoot":"","sources":["../../src/testing/adapterSuite.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import type { RequestContext } from '../../context.js';
2
- export interface ConformanceExpect<T> {
3
- toBe: (expected: T) => void;
4
- toEqual: (expected: unknown) => void;
5
- toBeNull: () => void;
6
- toBeTruthy: () => void;
7
- toBeFalsy: () => void;
8
- toContain: (expected: unknown) => void;
9
- toBeLessThanOrEqual: (expected: number) => void;
10
- toThrow: (expected?: any) => void;
11
- resolves: ConformanceExpect<Awaited<T>>;
12
- not: ConformanceExpect<T>;
13
- }
14
- export interface ConformanceRunner {
15
- describe: (name: string, fn: () => void) => void;
16
- it: (name: string, fn: () => Promise<void> | void) => void;
17
- expect: <T>(actual: T) => ConformanceExpect<T>;
18
- }
19
- export declare function makeCtx(userId: string, permissions?: RequestContext['permissions']): RequestContext;
20
- export declare function makeUuid(): string;
21
- //# sourceMappingURL=runner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/testing/suites/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,iBAAiB,CAAC,CAAC;IACnC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5B,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhD,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IACjC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACjD,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3D,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAC/C;AAED,wBAAgB,OAAO,CACtB,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,cAAc,CAAC,aAAa,CAAsB,GAC7D,cAAc,CAEhB;AAED,wBAAgB,QAAQ,IAAI,MAAM,CAEjC"}
@@ -1,7 +0,0 @@
1
- export function makeCtx(userId, permissions = ['platform_admin']) {
2
- return { userId, permissions };
3
- }
4
- export function makeUuid() {
5
- return crypto.randomUUID();
6
- }
7
- //# sourceMappingURL=runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/testing/suites/runner.ts"],"names":[],"mappings":"AAsBA,MAAM,UAAU,OAAO,CACtB,MAAc,EACd,cAA6C,CAAC,gBAAgB,CAAC;IAE/D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,QAAQ;IACvB,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;AAC5B,CAAC"}