@constructive-io/graphql-query 3.2.5 → 3.3.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.
Files changed (88) hide show
  1. package/README.md +411 -65
  2. package/ast.d.ts +4 -4
  3. package/ast.js +24 -9
  4. package/client/error.d.ts +95 -0
  5. package/client/error.js +277 -0
  6. package/client/execute.d.ts +57 -0
  7. package/client/execute.js +124 -0
  8. package/client/index.d.ts +8 -0
  9. package/client/index.js +20 -0
  10. package/client/typed-document.d.ts +31 -0
  11. package/client/typed-document.js +44 -0
  12. package/custom-ast.d.ts +22 -8
  13. package/custom-ast.js +16 -1
  14. package/esm/ast.js +22 -7
  15. package/esm/client/error.js +271 -0
  16. package/esm/client/execute.js +120 -0
  17. package/esm/client/index.js +8 -0
  18. package/esm/client/typed-document.js +40 -0
  19. package/esm/custom-ast.js +16 -1
  20. package/esm/generators/field-selector.js +381 -0
  21. package/esm/generators/index.js +13 -0
  22. package/esm/generators/mutations.js +200 -0
  23. package/esm/generators/naming-helpers.js +154 -0
  24. package/esm/generators/select.js +661 -0
  25. package/esm/index.js +30 -0
  26. package/esm/introspect/index.js +9 -0
  27. package/esm/introspect/infer-tables.js +697 -0
  28. package/esm/introspect/schema-query.js +120 -0
  29. package/esm/introspect/transform-schema.js +271 -0
  30. package/esm/introspect/transform.js +38 -0
  31. package/esm/meta-object/convert.js +3 -0
  32. package/esm/meta-object/format.json +11 -41
  33. package/esm/meta-object/validate.js +20 -4
  34. package/esm/query-builder.js +14 -18
  35. package/esm/types/index.js +18 -0
  36. package/esm/types/introspection.js +54 -0
  37. package/esm/types/mutation.js +4 -0
  38. package/esm/types/query.js +4 -0
  39. package/esm/types/schema.js +5 -0
  40. package/esm/types/selection.js +4 -0
  41. package/esm/utils.js +69 -0
  42. package/generators/field-selector.d.ts +30 -0
  43. package/generators/field-selector.js +387 -0
  44. package/generators/index.d.ts +9 -0
  45. package/generators/index.js +42 -0
  46. package/generators/mutations.d.ts +30 -0
  47. package/generators/mutations.js +238 -0
  48. package/generators/naming-helpers.d.ts +48 -0
  49. package/generators/naming-helpers.js +169 -0
  50. package/generators/select.d.ts +39 -0
  51. package/generators/select.js +705 -0
  52. package/index.d.ts +19 -0
  53. package/index.js +34 -1
  54. package/introspect/index.d.ts +9 -0
  55. package/introspect/index.js +25 -0
  56. package/introspect/infer-tables.d.ts +42 -0
  57. package/introspect/infer-tables.js +700 -0
  58. package/introspect/schema-query.d.ts +20 -0
  59. package/introspect/schema-query.js +123 -0
  60. package/introspect/transform-schema.d.ts +86 -0
  61. package/introspect/transform-schema.js +281 -0
  62. package/introspect/transform.d.ts +20 -0
  63. package/introspect/transform.js +43 -0
  64. package/meta-object/convert.d.ts +3 -0
  65. package/meta-object/convert.js +3 -0
  66. package/meta-object/format.json +11 -41
  67. package/meta-object/validate.d.ts +8 -3
  68. package/meta-object/validate.js +20 -4
  69. package/package.json +4 -3
  70. package/query-builder.d.ts +11 -12
  71. package/query-builder.js +25 -29
  72. package/{types.d.ts → types/core.d.ts} +25 -18
  73. package/types/index.d.ts +12 -0
  74. package/types/index.js +34 -0
  75. package/types/introspection.d.ts +121 -0
  76. package/types/introspection.js +62 -0
  77. package/types/mutation.d.ts +45 -0
  78. package/types/mutation.js +5 -0
  79. package/types/query.d.ts +91 -0
  80. package/types/query.js +5 -0
  81. package/types/schema.d.ts +265 -0
  82. package/types/schema.js +6 -0
  83. package/types/selection.d.ts +43 -0
  84. package/types/selection.js +5 -0
  85. package/utils.d.ts +17 -0
  86. package/utils.js +72 -0
  87. /package/esm/{types.js → types/core.js} +0 -0
  88. /package/{types.js → types/core.js} +0 -0
package/index.d.ts CHANGED
@@ -1,4 +1,23 @@
1
+ /**
2
+ * @constructive-io/graphql-query
3
+ *
4
+ * Browser-safe GraphQL query generation core.
5
+ * Contains the pure-function query builders, AST generators, naming helpers,
6
+ * introspection utilities, and client execution layer.
7
+ *
8
+ * This package is the canonical source for runtime query generation logic.
9
+ * @constructive-io/graphql-codegen depends on this for the core and adds
10
+ * Node.js-only build-time features (CLI, file output, watch mode, etc.).
11
+ */
1
12
  export { QueryBuilder } from './query-builder';
2
13
  export { QueryExecutor, createExecutor } from './executor';
14
+ export * from './ast';
15
+ export * from './custom-ast';
3
16
  export * from './types';
4
17
  export * as MetaObject from './meta-object';
18
+ export { convertFromMetaSchema } from './meta-object/convert';
19
+ export { validateMetaObject, type ValidationResult } from './meta-object/validate';
20
+ export * from './generators';
21
+ export * from './client';
22
+ export * from './introspect';
23
+ export { stripSmartComments } from './utils';
package/index.js CHANGED
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ /**
3
+ * @constructive-io/graphql-query
4
+ *
5
+ * Browser-safe GraphQL query generation core.
6
+ * Contains the pure-function query builders, AST generators, naming helpers,
7
+ * introspection utilities, and client execution layer.
8
+ *
9
+ * This package is the canonical source for runtime query generation logic.
10
+ * @constructive-io/graphql-codegen depends on this for the core and adds
11
+ * Node.js-only build-time features (CLI, file output, watch mode, etc.).
12
+ */
2
13
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
14
  if (k2 === undefined) k2 = k;
4
15
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -36,11 +47,33 @@ var __importStar = (this && this.__importStar) || (function () {
36
47
  };
37
48
  })();
38
49
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.MetaObject = exports.createExecutor = exports.QueryExecutor = exports.QueryBuilder = void 0;
50
+ exports.stripSmartComments = exports.validateMetaObject = exports.convertFromMetaSchema = exports.MetaObject = exports.createExecutor = exports.QueryExecutor = exports.QueryBuilder = void 0;
51
+ // QueryBuilder class (runtime query builder)
40
52
  var query_builder_1 = require("./query-builder");
41
53
  Object.defineProperty(exports, "QueryBuilder", { enumerable: true, get: function () { return query_builder_1.QueryBuilder; } });
54
+ // QueryExecutor (server-side execution via PostGraphile)
42
55
  var executor_1 = require("./executor");
43
56
  Object.defineProperty(exports, "QueryExecutor", { enumerable: true, get: function () { return executor_1.QueryExecutor; } });
44
57
  Object.defineProperty(exports, "createExecutor", { enumerable: true, get: function () { return executor_1.createExecutor; } });
58
+ // AST builders (getAll, getMany, getOne, createOne, patchOne, deleteOne)
59
+ __exportStar(require("./ast"), exports);
60
+ // Custom AST (geometry, interval, etc.)
61
+ __exportStar(require("./custom-ast"), exports);
62
+ // All types (core + codegen-style schema/introspection/query/mutation/selection)
45
63
  __exportStar(require("./types"), exports);
64
+ // Meta object utilities (convert, validate)
46
65
  exports.MetaObject = __importStar(require("./meta-object"));
66
+ // Also export meta-object functions directly for codegen backward compatibility
67
+ var convert_1 = require("./meta-object/convert");
68
+ Object.defineProperty(exports, "convertFromMetaSchema", { enumerable: true, get: function () { return convert_1.convertFromMetaSchema; } });
69
+ var validate_1 = require("./meta-object/validate");
70
+ Object.defineProperty(exports, "validateMetaObject", { enumerable: true, get: function () { return validate_1.validateMetaObject; } });
71
+ // Generators (buildSelect, buildFindOne, buildCount, mutations, field-selector, naming-helpers)
72
+ __exportStar(require("./generators"), exports);
73
+ // Client utilities (TypedDocumentString, error handling, execute)
74
+ __exportStar(require("./client"), exports);
75
+ // Introspection utilities (infer-tables, transform, transform-schema, schema-query)
76
+ __exportStar(require("./introspect"), exports);
77
+ // Utility functions
78
+ var utils_1 = require("./utils");
79
+ Object.defineProperty(exports, "stripSmartComments", { enumerable: true, get: function () { return utils_1.stripSmartComments; } });
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Introspection barrel export
3
+ *
4
+ * Re-exports introspection utilities for converting GraphQL schemas to CleanTable format.
5
+ */
6
+ export * from './infer-tables';
7
+ export * from './transform';
8
+ export * from './transform-schema';
9
+ export * from './schema-query';
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ /**
3
+ * Introspection barrel export
4
+ *
5
+ * Re-exports introspection utilities for converting GraphQL schemas to CleanTable format.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ __exportStar(require("./infer-tables"), exports);
23
+ __exportStar(require("./transform"), exports);
24
+ __exportStar(require("./transform-schema"), exports);
25
+ __exportStar(require("./schema-query"), exports);
@@ -0,0 +1,42 @@
1
+ import type { IntrospectionQueryResponse } from '../types/introspection';
2
+ import type { CleanTable } from '../types/schema';
3
+ /**
4
+ * PostGraphile naming patterns for type detection
5
+ */
6
+ declare const PATTERNS: {
7
+ connection: RegExp;
8
+ edge: RegExp;
9
+ filter: RegExp;
10
+ condition: RegExp;
11
+ orderBy: RegExp;
12
+ patch: RegExp;
13
+ createInput: RegExp;
14
+ updateInput: RegExp;
15
+ deleteInput: RegExp;
16
+ createPayload: RegExp;
17
+ updatePayload: RegExp;
18
+ deletePayload: RegExp;
19
+ createMutation: RegExp;
20
+ updateMutation: RegExp;
21
+ deleteMutation: RegExp;
22
+ };
23
+ export interface InferTablesOptions {
24
+ /**
25
+ * Custom pattern overrides (for non-standard PostGraphile configurations)
26
+ */
27
+ patterns?: Partial<typeof PATTERNS>;
28
+ /**
29
+ * Include PostgreSQL COMMENT descriptions on tables and fields.
30
+ * @default true
31
+ */
32
+ comments?: boolean;
33
+ }
34
+ /**
35
+ * Infer CleanTable[] from GraphQL introspection by recognizing PostGraphile patterns
36
+ *
37
+ * @param introspection - Standard GraphQL introspection response
38
+ * @param options - Optional configuration
39
+ * @returns Array of CleanTable objects compatible with existing generators
40
+ */
41
+ export declare function inferTablesFromIntrospection(introspection: IntrospectionQueryResponse, options?: InferTablesOptions): CleanTable[];
42
+ export {};