dzql 0.5.32 → 0.6.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/.env.sample +28 -0
- package/compose.yml +28 -0
- package/dist/client/index.ts +1 -0
- package/dist/client/stores/useMyProfileStore.ts +114 -0
- package/dist/client/stores/useOrgDashboardStore.ts +131 -0
- package/dist/client/stores/useVenueDetailStore.ts +117 -0
- package/dist/client/ws.ts +716 -0
- package/dist/db/migrations/000_core.sql +92 -0
- package/dist/db/migrations/20251229T212912022Z_schema.sql +3020 -0
- package/dist/db/migrations/20251229T212912022Z_subscribables.sql +371 -0
- package/dist/runtime/manifest.json +1562 -0
- package/docs/README.md +293 -36
- package/docs/feature-requests/applyPatch-bug-report.md +85 -0
- package/docs/feature-requests/connection-ready-profile.md +57 -0
- package/docs/feature-requests/hidden-bug-report.md +111 -0
- package/docs/feature-requests/hidden-fields-subscribables.md +34 -0
- package/docs/feature-requests/subscribable-param-key-bug.md +38 -0
- package/docs/feature-requests/todo.md +146 -0
- package/docs/for_ai.md +641 -0
- package/docs/project-setup.md +432 -0
- package/examples/blog.ts +50 -0
- package/examples/invalid.ts +18 -0
- package/examples/venues.js +485 -0
- package/package.json +23 -60
- package/src/cli/codegen/client.ts +99 -0
- package/src/cli/codegen/manifest.ts +95 -0
- package/src/cli/codegen/pinia.ts +174 -0
- package/src/cli/codegen/realtime.ts +58 -0
- package/src/cli/codegen/sql.ts +698 -0
- package/src/cli/codegen/subscribable_sql.ts +547 -0
- package/src/cli/codegen/subscribable_store.ts +184 -0
- package/src/cli/codegen/types.ts +142 -0
- package/src/cli/compiler/analyzer.ts +52 -0
- package/src/cli/compiler/graph_rules.ts +251 -0
- package/src/cli/compiler/ir.ts +233 -0
- package/src/cli/compiler/loader.ts +132 -0
- package/src/cli/compiler/permissions.ts +227 -0
- package/src/cli/index.ts +164 -0
- package/src/client/index.ts +1 -0
- package/src/client/ws.ts +286 -0
- package/src/create/.env.example +8 -0
- package/src/create/README.md +101 -0
- package/src/create/compose.yml +14 -0
- package/src/create/domain.ts +153 -0
- package/src/create/package.json +24 -0
- package/src/create/server.ts +18 -0
- package/src/create/setup.sh +11 -0
- package/src/create/tsconfig.json +15 -0
- package/src/runtime/auth.ts +39 -0
- package/src/runtime/db.ts +33 -0
- package/src/runtime/errors.ts +51 -0
- package/src/runtime/index.ts +98 -0
- package/src/runtime/js_functions.ts +63 -0
- package/src/runtime/manifest_loader.ts +29 -0
- package/src/runtime/namespace.ts +483 -0
- package/src/runtime/server.ts +87 -0
- package/src/runtime/ws.ts +197 -0
- package/src/shared/ir.ts +197 -0
- package/tests/client.test.ts +38 -0
- package/tests/codegen.test.ts +71 -0
- package/tests/compiler.test.ts +45 -0
- package/tests/graph_rules.test.ts +173 -0
- package/tests/integration/db.test.ts +174 -0
- package/tests/integration/e2e.test.ts +65 -0
- package/tests/integration/features.test.ts +922 -0
- package/tests/integration/full_stack.test.ts +262 -0
- package/tests/integration/setup.ts +45 -0
- package/tests/ir.test.ts +32 -0
- package/tests/namespace.test.ts +395 -0
- package/tests/permissions.test.ts +55 -0
- package/tests/pinia.test.ts +48 -0
- package/tests/realtime.test.ts +22 -0
- package/tests/runtime.test.ts +80 -0
- package/tests/subscribable_gen.test.ts +72 -0
- package/tests/subscribable_reactivity.test.ts +258 -0
- package/tests/venues_gen.test.ts +25 -0
- package/tsconfig.json +20 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/README.md +0 -90
- package/bin/cli.js +0 -727
- package/docs/compiler/ADVANCED_FILTERS.md +0 -183
- package/docs/compiler/CODING_STANDARDS.md +0 -415
- package/docs/compiler/COMPARISON.md +0 -673
- package/docs/compiler/QUICKSTART.md +0 -326
- package/docs/compiler/README.md +0 -134
- package/docs/examples/README.md +0 -38
- package/docs/examples/blog.sql +0 -160
- package/docs/examples/venue-detail-simple.sql +0 -8
- package/docs/examples/venue-detail-subscribable.sql +0 -45
- package/docs/for-ai/claude-guide.md +0 -1210
- package/docs/getting-started/quickstart.md +0 -125
- package/docs/getting-started/subscriptions-quick-start.md +0 -203
- package/docs/getting-started/tutorial.md +0 -1104
- package/docs/guides/atomic-updates.md +0 -299
- package/docs/guides/client-stores.md +0 -730
- package/docs/guides/composite-primary-keys.md +0 -158
- package/docs/guides/custom-functions.md +0 -362
- package/docs/guides/drop-semantics.md +0 -554
- package/docs/guides/field-defaults.md +0 -240
- package/docs/guides/interpreter-vs-compiler.md +0 -237
- package/docs/guides/many-to-many.md +0 -929
- package/docs/guides/subscriptions.md +0 -537
- package/docs/reference/api.md +0 -1373
- package/docs/reference/client.md +0 -224
- package/src/client/stores/index.js +0 -8
- package/src/client/stores/useAppStore.js +0 -285
- package/src/client/stores/useWsStore.js +0 -289
- package/src/client/ws.js +0 -762
- package/src/compiler/cli/compile-example.js +0 -33
- package/src/compiler/cli/compile-subscribable.js +0 -43
- package/src/compiler/cli/debug-compile.js +0 -44
- package/src/compiler/cli/debug-parse.js +0 -26
- package/src/compiler/cli/debug-path-parser.js +0 -18
- package/src/compiler/cli/debug-subscribable-parser.js +0 -21
- package/src/compiler/cli/index.js +0 -174
- package/src/compiler/codegen/auth-codegen.js +0 -153
- package/src/compiler/codegen/drop-semantics-codegen.js +0 -553
- package/src/compiler/codegen/graph-rules-codegen.js +0 -450
- package/src/compiler/codegen/notification-codegen.js +0 -232
- package/src/compiler/codegen/operation-codegen.js +0 -1382
- package/src/compiler/codegen/permission-codegen.js +0 -318
- package/src/compiler/codegen/subscribable-codegen.js +0 -827
- package/src/compiler/compiler.js +0 -371
- package/src/compiler/index.js +0 -11
- package/src/compiler/parser/entity-parser.js +0 -440
- package/src/compiler/parser/path-parser.js +0 -290
- package/src/compiler/parser/subscribable-parser.js +0 -244
- package/src/database/dzql-core.sql +0 -161
- package/src/database/migrations/001_schema.sql +0 -60
- package/src/database/migrations/002_functions.sql +0 -890
- package/src/database/migrations/003_operations.sql +0 -1135
- package/src/database/migrations/004_search.sql +0 -581
- package/src/database/migrations/005_entities.sql +0 -730
- package/src/database/migrations/006_auth.sql +0 -94
- package/src/database/migrations/007_events.sql +0 -133
- package/src/database/migrations/008_hello.sql +0 -18
- package/src/database/migrations/008a_meta.sql +0 -172
- package/src/database/migrations/009_subscriptions.sql +0 -240
- package/src/database/migrations/010_atomic_updates.sql +0 -157
- package/src/database/migrations/010_fix_m2m_events.sql +0 -94
- package/src/index.js +0 -40
- package/src/server/api.js +0 -9
- package/src/server/db.js +0 -442
- package/src/server/index.js +0 -317
- package/src/server/logger.js +0 -259
- package/src/server/mcp.js +0 -594
- package/src/server/meta-route.js +0 -251
- package/src/server/namespace.js +0 -292
- package/src/server/subscriptions.js +0 -351
- package/src/server/ws.js +0 -573
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
|
|
2
|
+
-- DZQL V2 Core Schema
|
|
3
|
+
CREATE SCHEMA IF NOT EXISTS dzql_v2;
|
|
4
|
+
CREATE EXTENSION IF NOT EXISTS pgcrypto;
|
|
5
|
+
|
|
6
|
+
-- Migrations Table
|
|
7
|
+
CREATE TABLE IF NOT EXISTS dzql_v2.migrations (
|
|
8
|
+
id text PRIMARY KEY,
|
|
9
|
+
applied_at timestamptz DEFAULT now(),
|
|
10
|
+
checksum text NOT NULL,
|
|
11
|
+
name text NOT NULL
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
-- Events Table (Normalized Row Events)
|
|
15
|
+
CREATE TABLE IF NOT EXISTS dzql_v2.events (
|
|
16
|
+
id bigserial PRIMARY KEY,
|
|
17
|
+
commit_id bigint NOT NULL,
|
|
18
|
+
table_name text NOT NULL,
|
|
19
|
+
op text NOT NULL,
|
|
20
|
+
pk jsonb NOT NULL,
|
|
21
|
+
data jsonb,
|
|
22
|
+
old_data jsonb,
|
|
23
|
+
user_id int,
|
|
24
|
+
created_at timestamptz DEFAULT now()
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
-- Commit Sequence
|
|
28
|
+
CREATE SEQUENCE IF NOT EXISTS dzql_v2.commit_seq;
|
|
29
|
+
|
|
30
|
+
-- === AUTH FUNCTIONS ===
|
|
31
|
+
|
|
32
|
+
-- Register User
|
|
33
|
+
CREATE OR REPLACE FUNCTION dzql_v2.register_user(p_params jsonb)
|
|
34
|
+
RETURNS jsonb
|
|
35
|
+
LANGUAGE plpgsql
|
|
36
|
+
SECURITY DEFINER
|
|
37
|
+
SET search_path = dzql_v2, public
|
|
38
|
+
AS $$
|
|
39
|
+
DECLARE
|
|
40
|
+
v_user_id int;
|
|
41
|
+
v_email text;
|
|
42
|
+
v_password text;
|
|
43
|
+
v_name text;
|
|
44
|
+
v_options jsonb;
|
|
45
|
+
BEGIN
|
|
46
|
+
v_email := p_params->>'email';
|
|
47
|
+
v_password := p_params->>'password';
|
|
48
|
+
v_name := COALESCE(p_params->>'name', v_email);
|
|
49
|
+
v_options := COALESCE(p_params->'options', '{}'::jsonb);
|
|
50
|
+
|
|
51
|
+
IF v_email IS NULL OR v_password IS NULL THEN
|
|
52
|
+
RAISE EXCEPTION 'validation_error: email and password required';
|
|
53
|
+
END IF;
|
|
54
|
+
|
|
55
|
+
INSERT INTO users (email, password_hash, name)
|
|
56
|
+
VALUES (v_email, crypt(v_password, gen_salt('bf')), v_name)
|
|
57
|
+
RETURNING id INTO v_user_id;
|
|
58
|
+
|
|
59
|
+
-- TODO: Handle v_options if needed (e.g. creating orgs)
|
|
60
|
+
|
|
61
|
+
-- Return minimal profile (Token generation happens in Runtime layer)
|
|
62
|
+
RETURN jsonb_build_object(
|
|
63
|
+
'user_id', v_user_id,
|
|
64
|
+
'email', v_email,
|
|
65
|
+
'name', v_name
|
|
66
|
+
);
|
|
67
|
+
END;
|
|
68
|
+
$$;
|
|
69
|
+
|
|
70
|
+
-- Login User
|
|
71
|
+
CREATE OR REPLACE FUNCTION dzql_v2.login_user(p_params jsonb)
|
|
72
|
+
RETURNS jsonb
|
|
73
|
+
LANGUAGE plpgsql
|
|
74
|
+
SECURITY DEFINER
|
|
75
|
+
SET search_path = dzql_v2, public
|
|
76
|
+
AS $$
|
|
77
|
+
DECLARE
|
|
78
|
+
v_user record;
|
|
79
|
+
BEGIN
|
|
80
|
+
SELECT * INTO v_user FROM users WHERE email = p_params->>'email';
|
|
81
|
+
|
|
82
|
+
IF v_user IS NULL OR v_user.password_hash != crypt(p_params->>'password', v_user.password_hash) THEN
|
|
83
|
+
RAISE EXCEPTION 'permission_denied: invalid credentials';
|
|
84
|
+
END IF;
|
|
85
|
+
|
|
86
|
+
RETURN jsonb_build_object(
|
|
87
|
+
'user_id', v_user.id,
|
|
88
|
+
'email', v_user.email,
|
|
89
|
+
'name', v_user.name
|
|
90
|
+
);
|
|
91
|
+
END;
|
|
92
|
+
$$;
|