@dialecte/core 0.2.22 → 0.4.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 (49) hide show
  1. package/dist/document/document.d.ts +22 -12
  2. package/dist/document/document.d.ts.map +1 -1
  3. package/dist/document/transaction/update/update.d.ts.map +1 -1
  4. package/dist/errors/codes.d.ts +4 -0
  5. package/dist/errors/codes.d.ts.map +1 -1
  6. package/dist/helpers/converter.d.ts +3 -3
  7. package/dist/helpers/converter.d.ts.map +1 -1
  8. package/dist/helpers/standardizing.d.ts.map +1 -1
  9. package/dist/helpers.js +95 -66
  10. package/dist/index.js +3 -3
  11. package/dist/project/index.d.ts +1 -1
  12. package/dist/project/index.d.ts.map +1 -1
  13. package/dist/project/io/import-document.d.ts.map +1 -1
  14. package/dist/project/io/init-empty-document.d.ts.map +1 -1
  15. package/dist/project/project.d.ts +34 -4
  16. package/dist/project/project.d.ts.map +1 -1
  17. package/dist/project/types.d.ts +57 -3
  18. package/dist/project/types.d.ts.map +1 -1
  19. package/dist/{project-CbTmBW8e.js → project-CblzZXzn.js} +1673 -1610
  20. package/dist/store/in-memory/in-memory-store.d.ts +4 -0
  21. package/dist/store/in-memory/in-memory-store.d.ts.map +1 -1
  22. package/dist/store/local/dexie-store.d.ts +4 -0
  23. package/dist/store/local/dexie-store.d.ts.map +1 -1
  24. package/dist/store/store.types.d.ts +5 -0
  25. package/dist/store/store.types.d.ts.map +1 -1
  26. package/dist/test/create-test-dialecte.d.ts +2 -2
  27. package/dist/test/create-test-dialecte.d.ts.map +1 -1
  28. package/dist/test/run-test-cases.d.ts +2 -2
  29. package/dist/test/run-test-cases.d.ts.map +1 -1
  30. package/dist/test/run-test-cases.type.d.ts +3 -3
  31. package/dist/test/run-test-cases.type.d.ts.map +1 -1
  32. package/dist/test.js +1 -1
  33. package/dist/types/definition.d.ts +8 -0
  34. package/dist/types/definition.d.ts.map +1 -1
  35. package/dist/types/dialecte-config.d.ts +6 -1
  36. package/dist/types/dialecte-config.d.ts.map +1 -1
  37. package/dist/types/io.d.ts +7 -0
  38. package/dist/types/io.d.ts.map +1 -1
  39. package/dist/utils/attribute-rules.d.ts +64 -0
  40. package/dist/utils/attribute-rules.d.ts.map +1 -0
  41. package/dist/utils/index.d.ts +1 -0
  42. package/dist/utils/index.d.ts.map +1 -1
  43. package/dist/{utils-XD-swXWn.js → utils-DgKwrT2n.js} +37 -4
  44. package/dist/utils.js +2 -2
  45. package/dist/xml/parse/parse-xml-document.types.d.ts +3 -1
  46. package/dist/xml/parse/parse-xml-document.types.d.ts.map +1 -1
  47. package/dist/xml/parse/parser.d.ts +2 -1
  48. package/dist/xml/parse/parser.d.ts.map +1 -1
  49. package/package.json +1 -1
@@ -2,8 +2,9 @@ import { Query } from './query';
2
2
  import { Transaction } from './transaction';
3
3
  import { PreparedTransaction, DocumentState } from './types';
4
4
  import { AllExtensions, ExtensionsRegistry, QueryExtensions } from './types.extensions';
5
+ import { ProjectChannelMessage } from '../project/types';
5
6
  import { Store } from '../store';
6
- import { AnyDialecteConfig, TransactionHooks } from '../types';
7
+ import { AnyDialecteConfig, DialecteHooks } from '../types';
7
8
  /**
8
9
  * Document — the public entry point for querying and mutating a dialecte.
9
10
  *
@@ -19,22 +20,31 @@ import { AnyDialecteConfig, TransactionHooks } from '../types';
19
20
  export declare class Document<GenericConfig extends AnyDialecteConfig, GenericExtension extends ExtensionsRegistry = {}> {
20
21
  protected store: Store;
21
22
  protected config: GenericConfig;
22
- protected hooks: TransactionHooks<GenericConfig> | undefined;
23
+ protected hooks: DialecteHooks<GenericConfig> | undefined;
23
24
  readonly documentId: string;
24
25
  private extensionsRegistry?;
26
+ /**
27
+ * Observable state, shared with the owning Project's DocumentEntry.
28
+ * Every Document instance opened for the same documentId mutates the same
29
+ * object, so commits (local or folded in from other tabs by the Project)
30
+ * are visible to all of them without any same-tab messaging.
31
+ */
25
32
  readonly state: DocumentState;
26
- /** Track concurrent transactions to manage loading flag */
27
- private activeTransactions;
28
33
  /**
29
- * BroadcastChannel scoped to this database.
30
- * Receives update events from other Document instances (other extensions)
31
- * targeting the same database, keeping state.lastUpdate in sync.
32
- *
33
- * BroadcastChannel does not deliver messages back to the sender,
34
- * so no self-filter is needed.
34
+ * Name of the project's BroadcastChannel. Open your own instance
35
+ * (`new BroadcastChannel(doc.channelName)`) to receive ProjectChannelMessage
36
+ * events for this project, same-tab and cross-tab.
35
37
  */
36
- private channel;
37
- constructor(store: Store, config: GenericConfig, documentId: string, extensions: GenericExtension | undefined, hooks: TransactionHooks<GenericConfig> | undefined, channel: BroadcastChannel);
38
+ readonly channelName: string;
39
+ /** Announce a mutation on the project channel (provided by the owning Project) */
40
+ private notify;
41
+ /** Track concurrent transactions to manage loading flag */
42
+ private activeTransactions;
43
+ constructor(store: Store, config: GenericConfig, documentId: string, extensions: GenericExtension | undefined, hooks: DialecteHooks<GenericConfig> | undefined, project: {
44
+ state: DocumentState;
45
+ channelName: string;
46
+ notify: (message: ProjectChannelMessage) => void;
47
+ });
38
48
  private withQueryExtensions;
39
49
  private withAllExtensions;
40
50
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/document/document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAI3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAC5F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAElE;;;;;;;;;;;GAWG;AACH,qBAAa,QAAQ,CACpB,aAAa,SAAS,iBAAiB,EACvC,gBAAgB,SAAS,kBAAkB,GAAG,EAAE;IAEhD,SAAS,CAAC,KAAK,EAAE,KAAK,CAAA;IACtB,SAAS,CAAC,MAAM,EAAE,aAAa,CAAA;IAC/B,SAAS,CAAC,KAAK,EAAE,gBAAgB,CAAC,aAAa,CAAC,GAAG,SAAS,CAAA;IAC5D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAkB;IAE7C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAM5B;IAED,2DAA2D;IAC3D,OAAO,CAAC,kBAAkB,CAAI;IAE9B;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO,CAAkB;gBAGhC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,gBAAgB,GAAG,SAAS,EACxC,KAAK,EAAE,gBAAgB,CAAC,aAAa,CAAC,GAAG,SAAS,EAClD,OAAO,EAAE,gBAAgB;IAoB1B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,iBAAiB;IAmBzB;;OAEG;IACH,SAAS,CAAC,WAAW,IAAI,KAAK,CAAC,aAAa,CAAC;IAI7C,IAAI,KAAK,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAEpE;IAID;;;OAGG;IACH,SAAS,CAAC,iBAAiB,IAAI,WAAW,CAAC,aAAa,CAAC;IAInD,WAAW,CAAC,CAAC,EAClB,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACpF,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1B,OAAO,CAAC,CAAC,CAAC;IA+Cb;;;;;;;;;;;;;;;;;;;OAmBG;IACG,OAAO,CACZ,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EACvF,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1B,OAAO,CAAC,mBAAmB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAgGhE,iCAAiC;IACjC,KAAK,IAAI,IAAI;IAIb,wDAAwD;IAClD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/document/document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAI3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAC5F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE/D;;;;;;;;;;;GAWG;AACH,qBAAa,QAAQ,CACpB,aAAa,SAAS,iBAAiB,EACvC,gBAAgB,SAAS,kBAAkB,GAAG,EAAE;IAEhD,SAAS,CAAC,KAAK,EAAE,KAAK,CAAA;IACtB,SAAS,CAAC,MAAM,EAAE,aAAa,CAAA;IAC/B,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,SAAS,CAAA;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAkB;IAE7C;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAE7B;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAE5B,kFAAkF;IAClF,OAAO,CAAC,MAAM,CAA0C;IAExD,2DAA2D;IAC3D,OAAO,CAAC,kBAAkB,CAAI;gBAG7B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,gBAAgB,GAAG,SAAS,EACxC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,SAAS,EAC/C,OAAO,EAAE;QACR,KAAK,EAAE,aAAa,CAAA;QACpB,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAA;KAChD;IAcF,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,iBAAiB;IAmBzB;;OAEG;IACH,SAAS,CAAC,WAAW,IAAI,KAAK,CAAC,aAAa,CAAC;IAI7C,IAAI,KAAK,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAEpE;IAID;;;OAGG;IACH,SAAS,CAAC,iBAAiB,IAAI,WAAW,CAAC,aAAa,CAAC;IAInD,WAAW,CAAC,CAAC,EAClB,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACpF,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1B,OAAO,CAAC,CAAC,CAAC;IA+Cb;;;;;;;;;;;;;;;;;;;OAmBG;IACG,OAAO,CACZ,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EACvF,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1B,OAAO,CAAC,mBAAmB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAgGhE,iCAAiC;IACjC,KAAK,IAAI,IAAI;IAIb,wDAAwD;IAClD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/document/transaction/update/update.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAEzF;;;;GAIG;AACH,wBAAsB,WAAW,CAChC,aAAa,SAAS,iBAAiB,EACvC,cAAc,SAAS,UAAU,CAAC,aAAa,CAAC,EAC/C,MAAM,EAAE;IACT,cAAc,EAAE,aAAa,CAAA;IAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAA;IACvC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAC/B,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IAC3B,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;IACvC,MAAM,EAAE,YAAY,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;CACnD,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CA8CpD"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/document/transaction/update/update.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,KAAK,EACX,iBAAiB,EAGjB,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,MAAM,SAAS,CAAA;AAEhB;;;;GAIG;AACH,wBAAsB,WAAW,CAChC,aAAa,SAAS,iBAAiB,EACvC,cAAc,SAAS,UAAU,CAAC,aAAa,CAAC,EAC/C,MAAM,EAAE;IACT,cAAc,EAAE,aAAa,CAAA;IAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAA;IACvC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAC/B,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IAC3B,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;IACvC,MAAM,EAAE,YAAY,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;CACnD,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CA0DpD"}
@@ -75,6 +75,10 @@ export declare const ERROR_CATALOG: {
75
75
  readonly code: "D3005";
76
76
  readonly message: "Value is already used within its scope";
77
77
  };
78
+ readonly UNKNOWN_NAMESPACE_PREFIX: {
79
+ readonly code: "D3006";
80
+ readonly message: "Unknown namespace prefix on attribute — pass it explicitly as { name, namespace: { prefix, uri } }";
81
+ };
78
82
  readonly ALREADY_COMMITTED: {
79
83
  readonly code: "D4001";
80
84
  readonly message: "Transaction already committed";
@@ -1 +1 @@
1
- {"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../../src/errors/codes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6IhB,CAAA"}
1
+ {"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../../src/errors/codes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkJhB,CAAA"}
@@ -23,9 +23,9 @@ export declare function toTreeRecord<GenericConfig extends AnyDialecteConfig, Ge
23
23
  tree?: TreeRecord<GenericConfig, GenericElement>[];
24
24
  }): TreeRecord<GenericConfig, GenericElement>;
25
25
  /**
26
- * Converts attributes to FullAttributeObject array format.
27
- * If already an array, returns as-is.
28
- * If object format, converts to array (without namespace since not available in object format).
26
+ * Converts attributes to FullAttributeObject array format and canonicalizes each
27
+ * attribute name to the two naming rules (see `canonicalizeAttributeName`), so
28
+ * records from import, create, and update share one stored name per attribute.
29
29
  */
30
30
  export declare function toFullAttributeArray<GenericConfig extends AnyDialecteConfig, GenericElement extends ElementsOf<GenericConfig>>(params: {
31
31
  dialecteConfig: GenericConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/helpers/converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/helpers/converter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"standardizing.d.ts","sourceRoot":"","sources":["../../src/helpers/standardizing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,iBAAiB,EACjB,UAAU,EACV,qBAAqB,EACrB,SAAS,EACT,uBAAuB,EACvB,gBAAgB,EAChB,MAAM,SAAS,CAAA;AAEhB,wBAAgB,iBAAiB,CAChC,aAAa,SAAS,iBAAiB,EACvC,cAAc,SAAS,UAAU,CAAC,aAAa,CAAC,EAC/C,MAAM,EAAE;IACT,cAAc,EAAE,aAAa,CAAA;IAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAA;IACvC,MAAM,EAAE;QACP,OAAO,EAAE,cAAc,CAAA;QACvB,UAAU,CAAC,EACR,uBAAuB,CAAC,aAAa,EAAE,cAAc,CAAC,GACtD,qBAAqB,CAAC,aAAa,EAAE,cAAc,CAAC,EAAE,CAAA;KACzD,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;CACzE,GAAG,SAAS,CAAC,aAAa,EAAE,cAAc,CAAC,CAwE3C"}
1
+ {"version":3,"file":"standardizing.d.ts","sourceRoot":"","sources":["../../src/helpers/standardizing.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,iBAAiB,EACjB,UAAU,EACV,qBAAqB,EACrB,SAAS,EACT,uBAAuB,EACvB,gBAAgB,EAChB,MAAM,SAAS,CAAA;AAEhB,wBAAgB,iBAAiB,CAChC,aAAa,SAAS,iBAAiB,EACvC,cAAc,SAAS,UAAU,CAAC,aAAa,CAAC,EAC/C,MAAM,EAAE;IACT,cAAc,EAAE,aAAa,CAAA;IAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAA;IACvC,MAAM,EAAE;QACP,OAAO,EAAE,cAAc,CAAA;QACvB,UAAU,CAAC,EACR,uBAAuB,CAAC,aAAa,EAAE,cAAc,CAAC,GACtD,qBAAqB,CAAC,aAAa,EAAE,cAAc,CAAC,EAAE,CAAA;KACzD,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;CACzE,GAAG,SAAS,CAAC,aAAa,EAAE,cAAc,CAAC,CA6F3C"}
package/dist/helpers.js CHANGED
@@ -1,15 +1,15 @@
1
- import { r as e } from "./utils-XD-swXWn.js";
1
+ import { a as e, c as t, l as n, o as r, r as i, s as a } from "./utils-DgKwrT2n.js";
2
2
  //#region src/helpers/constant.ts
3
- var t = "db-id", n = {
3
+ var o = "db-id", s = {
4
4
  uri: "http://dialecte.dev/XML/DEV",
5
5
  prefix: "dev"
6
- }, r = `${n.prefix}:${t}`, i = {
6
+ }, c = `${s.prefix}:${o}`, l = {
7
7
  uri: "http://www.w3.org/2001/XMLSchema-instance",
8
8
  prefix: "xsi"
9
- }, a = `xmlns:${i.prefix}="${i.uri}"`, o = {
10
- dev: n,
11
- xsi: i
12
- }, s = [
9
+ }, u = `xmlns:${l.prefix}="${l.uri}"`, d = {
10
+ dev: s,
11
+ xsi: l
12
+ }, f = [
13
13
  "id",
14
14
  "tagName",
15
15
  "namespace",
@@ -17,42 +17,42 @@ var t = "db-id", n = {
17
17
  "children",
18
18
  "parent",
19
19
  "value"
20
- ], c = [...s, "status"], l = [...c, "tree"];
21
- function u(e, t) {
20
+ ], p = [...f, "status"], m = [...p, "tree"];
21
+ function h(e, t) {
22
22
  if (typeof e != "object" || !e) return !1;
23
23
  let n = Object.keys(e);
24
24
  return t.every((t) => t in e) && n.every((e) => t.includes(e)) && n.length === t.length;
25
25
  }
26
- function d(e) {
26
+ function g(e) {
27
27
  return Array.isArray(e);
28
28
  }
29
- function f(e) {
30
- return u(e, s);
29
+ function _(e) {
30
+ return h(e, f);
31
31
  }
32
- function p(e) {
33
- return u(e, c);
32
+ function v(e) {
33
+ return h(e, p);
34
34
  }
35
- function m(e) {
36
- return u(e, l);
35
+ function y(e) {
36
+ return h(e, m);
37
37
  }
38
- function h(e, t) {
38
+ function b(e, t) {
39
39
  return e.tagName === t;
40
40
  }
41
- function g(e, t) {
41
+ function x(e, t) {
42
42
  return e.tagName === t;
43
43
  }
44
- function _(e, t) {
44
+ function S(e, t) {
45
45
  return e.tagName === t;
46
46
  }
47
- function v(e, t) {
47
+ function C(e, t) {
48
48
  return t.elements.includes(e);
49
49
  }
50
- function y(e, t) {
50
+ function w(e, t) {
51
51
  return e.attributes.some((e) => e.name === t);
52
52
  }
53
53
  //#endregion
54
54
  //#region src/helpers/converter.ts
55
- function b(e) {
55
+ function T(e) {
56
56
  return {
57
57
  id: e.id,
58
58
  tagName: e.tagName,
@@ -63,87 +63,116 @@ function b(e) {
63
63
  children: e.children
64
64
  };
65
65
  }
66
- function x(e) {
66
+ function E(e) {
67
67
  let { record: t, status: n } = e, r = n ?? ("status" in t ? t.status : "unchanged");
68
68
  return {
69
- ...b(t),
69
+ ...T(t),
70
70
  status: r
71
71
  };
72
72
  }
73
- function S(e) {
73
+ function D(e) {
74
74
  let { record: t, status: n, tree: r } = e, i = r ?? ("tree" in t ? t.tree : []);
75
75
  return {
76
- ...x({
76
+ ...E({
77
77
  record: t,
78
78
  status: n
79
79
  }),
80
80
  tree: i
81
81
  };
82
82
  }
83
- function C(e) {
83
+ function O(e) {
84
84
  let { dialecteConfig: t, tagName: n, attributes: r } = e;
85
- return d(r) ? r : Object.entries(r).map(([e, r]) => ({
85
+ return (g(r) ? r : Object.entries(r).map(([e, r]) => ({
86
86
  name: e,
87
87
  value: r,
88
88
  namespace: t.definition[n]?.attributes.details[e]?.namespace || void 0
89
+ }))).map((e) => k({
90
+ attribute: e,
91
+ dialecteConfig: t,
92
+ tagName: n
89
93
  }));
90
94
  }
91
- function w(t) {
92
- return e(t, { detail: "The record or ref is undefined" }), {
93
- id: t.id,
94
- tagName: t.tagName
95
+ function k(r) {
96
+ let { attribute: i, dialecteConfig: a, tagName: o } = r, { namespace: s } = i, c = i.name.indexOf(":");
97
+ if (!s && c !== -1) {
98
+ let e = i.name.slice(0, c);
99
+ e !== "xmlns" && (s = t(a, e), s || n("UNKNOWN_NAMESPACE_PREFIX", {
100
+ detail: `Unknown namespace prefix '${e}' on attribute '${i.name}' — pass it explicitly as { name, namespace: { prefix, uri } }.`,
101
+ ref: { tagName: o }
102
+ }));
103
+ }
104
+ return s && s.prefix && s.prefix !== "xmlns" ? {
105
+ ...i,
106
+ name: `${s.prefix}:${e(i.name)}`,
107
+ namespace: s
108
+ } : s === i.namespace ? i : {
109
+ ...i,
110
+ namespace: s
111
+ };
112
+ }
113
+ function A(e) {
114
+ return i(e, { detail: "The record or ref is undefined" }), {
115
+ id: e.id,
116
+ tagName: e.tagName
95
117
  };
96
118
  }
97
119
  //#endregion
98
120
  //#region src/helpers/standardizing.ts
99
- function T(e) {
100
- let { dialecteConfig: t, hooks: n, record: r } = e, { id: i, tagName: a, attributes: o, namespace: s, value: c } = r, l = i ?? crypto.randomUUID(), u = o ? C({
101
- tagName: a,
102
- attributes: o,
121
+ function j(e) {
122
+ let { dialecteConfig: t, hooks: n, record: i } = e, { id: o, tagName: s, attributes: c, namespace: l, value: u } = i, d = o ?? crypto.randomUUID(), f = c ? O({
123
+ tagName: s,
124
+ attributes: c,
103
125
  dialecteConfig: t
104
- }) : [], d = {
105
- id: l,
106
- tagName: a,
107
- attributes: u,
108
- namespace: s ?? {
126
+ }) : [], p = {
127
+ id: d,
128
+ tagName: s,
129
+ attributes: f,
130
+ namespace: l ?? {
109
131
  prefix: "prefixNeededForNotSupportedNamespace",
110
132
  uri: "uriNeededForNotSupportedNamespace"
111
133
  },
112
- value: c ?? "",
113
- parent: r.parent ?? null,
114
- children: r.children ?? []
134
+ value: u ?? "",
135
+ parent: i.parent ?? null,
136
+ children: i.children ?? []
115
137
  };
116
- if (!t.elements.includes(a)) return d;
117
- let f = t.definition[a].attributes.sequence, p = t.definition[a].attributes.details, m = f.flatMap((e) => {
118
- let t = p[e].required, n = p[e]?.namespace || void 0, r = u.find((t) => t.name === e)?.value ?? (t ? p[e]?.default ?? "" : p[e]?.default);
119
- return r === void 0 ? [] : [{
138
+ if (!t.elements.includes(s)) return p;
139
+ let m = t.definition[s].attributes.sequence, h = m.flatMap((e) => {
140
+ let n = r({
141
+ dialecteConfig: t,
142
+ tagName: s,
143
+ attributeName: e
144
+ }), i = n.fixed ?? n.default, a = f.find((t) => t.name === e)?.value ?? (n.isRequired ? i ?? "" : i);
145
+ return a === void 0 ? [] : [{
120
146
  name: e,
121
- value: r,
122
- namespace: n
147
+ value: a,
148
+ namespace: n.namespace
123
149
  }];
124
- }), h = u.filter((e) => "namespace" in e && e.namespace != null && !f.includes(e.name)), g = {
125
- ...d,
126
- namespace: t.definition[a].namespace,
127
- attributes: [...m, ...h]
150
+ }), g = f.filter((e) => "namespace" in e && e.namespace != null && !m.includes(e.name)), _ = i.parent?.tagName, v = _ ? t.definition[_]?.children?.details?.[s]?.namespace : void 0, y = {
151
+ ...p,
152
+ namespace: v ?? t.definition[s].namespace,
153
+ attributes: a([...h, ...g], m)
128
154
  };
129
- return n?.afterStandardizedRecord && (g = n.afterStandardizedRecord({ record: g })), g;
155
+ return n?.afterStandardizedRecord && (y = n.afterStandardizedRecord({ record: y }), y = {
156
+ ...y,
157
+ attributes: a(y.attributes, m)
158
+ }), y;
130
159
  }
131
160
  //#endregion
132
161
  //#region src/helpers/merge-extensions.ts
133
- function E(t, n, r, i) {
134
- if (!t || !n) return;
135
- let a = Object.keys(n).filter((e) => e in t);
136
- e(a.length === 0, {
162
+ function M(e, t, n, r) {
163
+ if (!e || !t) return;
164
+ let a = Object.keys(t).filter((t) => t in e);
165
+ i(a.length === 0, {
137
166
  key: "EXTENSION_METHOD_COLLISION",
138
- detail: `Module "${r}" has conflicting ${i} method(s): ${a.map((e) => `"${e}"`).join(", ")}`
167
+ detail: `Module "${n}" has conflicting ${r} method(s): ${a.map((e) => `"${e}"`).join(", ")}`
139
168
  });
140
169
  }
141
- function D(e) {
170
+ function N(e) {
142
171
  let t = {}, n = {}, r = [...Object.entries(e.base ?? {}), ...Object.entries(e.custom ?? {})];
143
- for (let [e, i] of r) i.query && (E(t[e], i.query, e, "query"), t[e] = {
172
+ for (let [e, i] of r) i.query && (M(t[e], i.query, e, "query"), t[e] = {
144
173
  ...t[e],
145
174
  ...i.query
146
- }), i.transaction && (E(n[e], i.transaction, e, "transaction"), n[e] = {
175
+ }), i.transaction && (M(n[e], i.transaction, e, "transaction"), n[e] = {
147
176
  ...n[e],
148
177
  ...i.transaction
149
178
  });
@@ -154,15 +183,15 @@ function D(e) {
154
183
  }
155
184
  //#endregion
156
185
  //#region src/helpers/strip-attributes.ts
157
- function O(e, t) {
186
+ function P(e, t) {
158
187
  let n = new Set(t), r = {
159
188
  ...e,
160
189
  attributes: e.attributes.filter((e) => !n.has(e.name))
161
190
  };
162
191
  return "tree" in e ? {
163
192
  ...r,
164
- tree: e.tree.map((e) => O(e, t))
193
+ tree: e.tree.map((e) => P(e, t))
165
194
  } : r;
166
195
  }
167
196
  //#endregion
168
- export { r as CUSTOM_RECORD_ID_ATTRIBUTE, t as CUSTOM_RECORD_ID_ATTRIBUTE_NAME, n as DIALECTE_DEV_NAMESPACE, o as DIALECTE_NAMESPACES, a as XMLNS_XSI_NAMESPACE, i as XSI_NAMESPACE, y as isAttributeOf, g as isChildOf, v as isElementOf, d as isFullAttributeArray, _ as isParentOf, f as isRawRecord, h as isRecordOf, p as isTrackedRecord, m as isTreeRecord, D as mergeExtensions, T as standardizeRecord, O as stripAttributes, C as toFullAttributeArray, b as toRawRecord, w as toRef, x as toTrackedRecord, S as toTreeRecord };
197
+ export { c as CUSTOM_RECORD_ID_ATTRIBUTE, o as CUSTOM_RECORD_ID_ATTRIBUTE_NAME, s as DIALECTE_DEV_NAMESPACE, d as DIALECTE_NAMESPACES, u as XMLNS_XSI_NAMESPACE, l as XSI_NAMESPACE, w as isAttributeOf, x as isChildOf, C as isElementOf, g as isFullAttributeArray, S as isParentOf, _ as isRawRecord, b as isRecordOf, v as isTrackedRecord, y as isTreeRecord, N as mergeExtensions, j as standardizeRecord, P as stripAttributes, O as toFullAttributeArray, T as toRawRecord, A as toRef, E as toTrackedRecord, D as toTreeRecord };
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import { $ as e, A as t, B as n, C as r, D as i, E as a, F as o, G as s, H as c, I as l, J as u, K as d, L as f, M as p, N as m, O as h, P as g, Q as _, R as v, S as y, T as b, U as x, V as S, W as C, X as w, Y as T, Z as E, _ as D, a as O, at as k, b as A, c as j, ct as M, d as N, et as P, f as F, g as I, h as L, i as R, it as z, j as B, k as V, l as H, lt as U, m as W, n as G, nt as K, o as q, ot as J, p as Y, q as X, r as Z, rt as Q, s as $, st as ee, t as te, tt as ne, u as re, ut as ie, v as ae, w as oe, x as se, y as ce } from "./project-CbTmBW8e.js";
2
- import { a as le, i as ue } from "./utils-XD-swXWn.js";
3
- export { V as AnyQuery, i as AnyTransaction, N as BLOBS_SCHEMA, F as BLOB_DATA_SCHEMA, Y as CHANGELOG_SCHEMA, W as DOCUMENTS_SCHEMA, re as DexieStore, oe as Document, le as ERROR_CATALOG, H as InMemoryStore, L as META_SCHEMA, p as ParseSession, te as Project, h as Query, I as TABLE_BLOBS, D as TABLE_BLOB_PREFIX, ae as TABLE_CHANGELOG, ce as TABLE_DOCUMENTS, A as TABLE_META, se as TABLE_RECORD_PREFIX, f as TEMP_IDB_ID_ATTRIBUTE_NAME, a as Transaction, C as applyOmit, x as applyOrder, u as applyUnwrap, ie as bindExtensions, y as blobTableName, R as buildDocumentState, g as buildXmlDocument, S as collectSnapshotRecords, o as downloadFile, q as exportBlob, $ as exportDocument, K as findAncestors, P as findByAttributes, e as findDescendants, v as formatXml, E as getAttribute, _ as getAttributeFullObject, T as getAttributes, w as getAttributesFullObject, z as getChild, Q as getChildren, ee as getRecord, J as getRecords, k as getRecordsByTagName, t as getSnapshot, c as getTree, Z as importDocument, M as indexStagedDeletesByParent, G as initEmptyDocument, m as inspectXml, s as isOmitted, b as isTransactionContext, ne as matchesAttributeFilter, U as overlayAllStaged, d as parseOmit, B as parseXmlFile, O as reconcileDocumentState, r as recordTableName, n as recordsToTree, j as resolveStore, X as shouldStopTraversal, ue as throwDialecteError, l as xmlDocumentToString };
1
+ import { $ as e, A as t, B as n, C as r, D as i, E as a, F as o, G as s, H as c, I as l, J as u, K as d, L as f, M as p, N as m, O as h, P as g, Q as _, R as v, S as y, T as b, U as x, V as S, W as C, X as w, Y as T, Z as E, _ as D, a as O, at as k, b as A, c as j, ct as M, d as N, et as P, f as F, g as I, h as L, i as R, it as z, j as B, k as V, l as H, lt as U, m as W, n as G, nt as K, o as q, ot as J, p as Y, q as X, r as Z, rt as Q, s as $, st as ee, t as te, tt as ne, u as re, ut as ie, v as ae, w as oe, x as se, y as ce } from "./project-CblzZXzn.js";
2
+ import { l as le, u as ue } from "./utils-DgKwrT2n.js";
3
+ export { V as AnyQuery, i as AnyTransaction, N as BLOBS_SCHEMA, F as BLOB_DATA_SCHEMA, Y as CHANGELOG_SCHEMA, W as DOCUMENTS_SCHEMA, re as DexieStore, oe as Document, ue as ERROR_CATALOG, H as InMemoryStore, L as META_SCHEMA, p as ParseSession, te as Project, h as Query, I as TABLE_BLOBS, D as TABLE_BLOB_PREFIX, ae as TABLE_CHANGELOG, ce as TABLE_DOCUMENTS, A as TABLE_META, se as TABLE_RECORD_PREFIX, f as TEMP_IDB_ID_ATTRIBUTE_NAME, a as Transaction, C as applyOmit, x as applyOrder, u as applyUnwrap, ie as bindExtensions, y as blobTableName, R as buildDocumentState, g as buildXmlDocument, S as collectSnapshotRecords, o as downloadFile, q as exportBlob, $ as exportDocument, K as findAncestors, P as findByAttributes, e as findDescendants, v as formatXml, E as getAttribute, _ as getAttributeFullObject, T as getAttributes, w as getAttributesFullObject, z as getChild, Q as getChildren, ee as getRecord, J as getRecords, k as getRecordsByTagName, t as getSnapshot, c as getTree, Z as importDocument, M as indexStagedDeletesByParent, G as initEmptyDocument, m as inspectXml, s as isOmitted, b as isTransactionContext, ne as matchesAttributeFilter, U as overlayAllStaged, d as parseOmit, B as parseXmlFile, O as reconcileDocumentState, r as recordTableName, n as recordsToTree, j as resolveStore, X as shouldStopTraversal, le as throwDialecteError, l as xmlDocumentToString };
@@ -5,6 +5,6 @@ export { exportBlob } from './io/export-blob';
5
5
  export { initEmptyDocument } from './io/init-empty-document';
6
6
  export { importDocument } from './io/import-document';
7
7
  export { resolveStore } from '../store/resolve-store';
8
- export type { ProjectParams, InitEmptyDocumentOptions, ImportDocumentOptions, ExportDocumentOptions, ExportBlobOptions, StorageParam, DocumentRecord, DocumentEntry, ProjectState, } from './types';
8
+ export type { ProjectParams, InitEmptyDocumentOptions, ImportDocumentOptions, ExportDocumentOptions, ExportBlobOptions, StorageParam, DocumentRecord, DocumentEntry, ProjectState, ProjectChannelMessage, } from './types';
9
9
  export type { InitEmptyDocumentParams, InitEmptyDocumentResult, ImportDocumentParams, ImportDocumentResult, ExportDocumentParams, ExportDocumentResult, ExportBlobParams, ExportBlobResult, } from './types';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/project/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,YAAY,EACX,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,YAAY,GACZ,MAAM,SAAS,CAAA;AAChB,YAAY,EACX,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GAChB,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/project/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,YAAY,EACX,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,YAAY,EACZ,qBAAqB,GACrB,MAAM,SAAS,CAAA;AAChB,YAAY,EACX,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GAChB,MAAM,SAAS,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"import-document.d.ts","sourceRoot":"","sources":["../../../src/project/io/import-document.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAG1E;;;GAGG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA2ChG"}
1
+ {"version":3,"file":"import-document.d.ts","sourceRoot":"","sources":["../../../src/project/io/import-document.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAG1E;;;GAGG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA4ChG"}
@@ -1 +1 @@
1
- {"version":3,"file":"init-empty-document.d.ts","sourceRoot":"","sources":["../../../src/project/io/init-empty-document.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAkB,MAAM,UAAU,CAAA;AAGhG;;;GAGG;AACH,wBAAsB,iBAAiB,CACtC,MAAM,EAAE,uBAAuB,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CAkDlC"}
1
+ {"version":3,"file":"init-empty-document.d.ts","sourceRoot":"","sources":["../../../src/project/io/init-empty-document.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAkB,MAAM,UAAU,CAAA;AAGhG;;;GAGG;AACH,wBAAsB,iBAAiB,CACtC,MAAM,EAAE,uBAAuB,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CA4ClC"}
@@ -1,7 +1,7 @@
1
1
  import { Document, ExtensionModules, MergedExtensions, QueryExtensions, Query } from '../document';
2
2
  import { InitEmptyDocumentOptions, ImportDocumentOptions, ExportDocumentOptions, ExportBlobOptions, ExportBlobResult, ProjectParams, ProjectState, DocumentRecord } from './types';
3
3
  import { Store } from '../store';
4
- import { AnyDialecteConfig, BlobAttachment, BlobRecord, TransactionHooks } from '../types';
4
+ import { AnyDialecteConfig, BlobAttachment, BlobRecord, DialecteHooks } from '../types';
5
5
  /**
6
6
  * Project — top-level entry point for multi-file dialecte workspaces.
7
7
  *
@@ -11,7 +11,16 @@ import { AnyDialecteConfig, BlobAttachment, BlobRecord, TransactionHooks } from
11
11
  export declare class Project<GenericConfig extends AnyDialecteConfig, GenericModules extends ExtensionModules = Record<never, never>, GenericStore extends Store = Store> {
12
12
  private _name?;
13
13
  private _store?;
14
- private _channel?;
14
+ /** Posting side of the project channel. Never listened to. */
15
+ private _postChannel?;
16
+ /**
17
+ * Listening side of the project channel. A separate instance from
18
+ * _postChannel on purpose: BroadcastChannel withholds a message only from
19
+ * the exact instance that posted it, so this instance also receives this
20
+ * tab's own posts (echo) — one code path folds every mutation source,
21
+ * local and cross-tab, into project state.
22
+ */
23
+ private _listenChannel?;
15
24
  private readonly storage;
16
25
  private configs;
17
26
  private defaultConfigKey;
@@ -19,7 +28,20 @@ export declare class Project<GenericConfig extends AnyDialecteConfig, GenericMod
19
28
  private hooks?;
20
29
  get name(): string;
21
30
  private get store();
22
- private get channel();
31
+ private get postChannel();
32
+ /**
33
+ * Name of this project's BroadcastChannel — the public event contract.
34
+ * Open your own instance (see createChannel) to receive every
35
+ * ProjectChannelMessage, same-tab and cross-tab.
36
+ */
37
+ get channelName(): string;
38
+ /**
39
+ * Convenience: a fresh BroadcastChannel on this project's channel.
40
+ * The caller owns it — call channel.close() when done listening.
41
+ */
42
+ createChannel(): BroadcastChannel;
43
+ /** Post a message on the project channel. */
44
+ private notify;
23
45
  readonly state: ProjectState;
24
46
  constructor(params: {
25
47
  configs: Record<string, GenericConfig>;
@@ -29,13 +51,21 @@ export declare class Project<GenericConfig extends AnyDialecteConfig, GenericMod
29
51
  base?: ExtensionModules;
30
52
  custom?: ExtensionModules;
31
53
  };
32
- hooks?: TransactionHooks<GenericConfig>;
54
+ hooks?: DialecteHooks<GenericConfig>;
33
55
  });
34
56
  /**
35
57
  * Open a named project: resolve store, open DB connection, hydrate state.
36
58
  * Must be called before import/export/openDocument.
37
59
  */
38
60
  open(name: string): Promise<this>;
61
+ /**
62
+ * Fold an incoming channel message into project state. Receives this tab's
63
+ * own posts too (see _listenChannel), so every mutation source — local
64
+ * commit, other-tab commit, undo/redo — converges through this one handler.
65
+ */
66
+ private onChannelMessage;
67
+ /** Recompute canUndo/canRedo for a document from the store's history. */
68
+ private refreshHistoryStatus;
39
69
  /**
40
70
  * Close the store and release resources.
41
71
  */
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/project/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/project/project.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { DocumentState, ExtensionModules } from '../document';
2
2
  import { Store } from '../store/store.types';
3
- import { AnyDialecteConfig, BlobRecord, ChunkOptions, TransactionHooks } from '../types';
3
+ import { AnyDialecteConfig, BlobAttachment, BlobRecord, ChunkOptions, DialecteHooks } from '../types';
4
4
  /**
5
5
  * DocumentRecord - metadata entry for a file registered in a Project.
6
6
  *
@@ -38,6 +38,56 @@ export type ProjectState = {
38
38
  documents: Map<string, DocumentEntry>;
39
39
  activeTransactions: number;
40
40
  };
41
+ /**
42
+ * ProjectChannelMessage - the public event contract of a Project.
43
+ *
44
+ * Every mutation a Project or one of its Documents performs is announced on a
45
+ * BroadcastChannel named `project.channelName`. Open your own channel instance
46
+ * (`project.createChannel()`) to receive every message, same-tab and cross-tab
47
+ * (the spec only withholds a message from the exact instance that posted it).
48
+ *
49
+ * Payloads are structured-cloneable by construction — they cross the channel.
50
+ * Changing a member of this union is a breaking API change.
51
+ */
52
+ export type ProjectChannelMessage = {
53
+ type: 'commit';
54
+ documentId: string;
55
+ timestamp: number;
56
+ } | {
57
+ type: 'init-empty-document';
58
+ documentId: string;
59
+ timestamp: number;
60
+ } | {
61
+ type: 'document-removed';
62
+ documentId: string;
63
+ timestamp: number;
64
+ } | {
65
+ type: 'document-imported';
66
+ documentId: string;
67
+ timestamp: number;
68
+ } | {
69
+ type: 'blob-added';
70
+ blobId: string;
71
+ documentId: string;
72
+ timestamp: number;
73
+ } | {
74
+ type: 'blob-attached';
75
+ blobId: string;
76
+ ref: BlobAttachment;
77
+ timestamp: number;
78
+ } | {
79
+ type: 'blob-detached';
80
+ blobId: string;
81
+ ref: {
82
+ documentId: string;
83
+ recordRef: string;
84
+ };
85
+ timestamp: number;
86
+ } | {
87
+ type: 'blob-removed';
88
+ blobId: string;
89
+ timestamp: number;
90
+ };
41
91
  export type StorageParam = {
42
92
  type: 'local';
43
93
  } | {
@@ -63,8 +113,8 @@ export type ProjectParams<GenericConfig extends AnyDialecteConfig, BaseExtension
63
113
  base?: BaseExtensions;
64
114
  custom?: CustomExtensions;
65
115
  };
66
- /** Transaction hooks applied to all Documents */
67
- hooks?: TransactionHooks<GenericConfig>;
116
+ /** All lifecycle hooks (IO + record), applied to every Document opened from this Project */
117
+ hooks?: DialecteHooks<GenericConfig>;
68
118
  };
69
119
  export type InitEmptyDocumentOptions = {
70
120
  /** Filename without extension. Defaults to 'untitled'. */
@@ -81,6 +131,8 @@ export type InitEmptyDocumentParams = {
81
131
  configs: Record<string, AnyDialecteConfig>;
82
132
  defaultConfigKey: string;
83
133
  options?: InitEmptyDocumentOptions;
134
+ /** Hooks from the Project instance (erased); standardizes the root record */
135
+ hooks?: DialecteHooks<AnyDialecteConfig>;
84
136
  };
85
137
  export type InitEmptyDocumentResult = {
86
138
  documentId: string;
@@ -103,6 +155,8 @@ export type ImportDocumentParams = {
103
155
  configs: Record<string, AnyDialecteConfig>;
104
156
  defaultConfigKey: string;
105
157
  options?: ImportDocumentOptions;
158
+ /** Hooks from the Project instance (erased); io hooks + standardization at import */
159
+ hooks?: DialecteHooks<AnyDialecteConfig>;
106
160
  };
107
161
  export type ImportDocumentResult = {
108
162
  documentId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/project/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/project/types.ts"],"names":[],"mappings":"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"}